Daftar Isi:

Orientasi Peta Melalui Server Web: 6 Langkah
Orientasi Peta Melalui Server Web: 6 Langkah

Video: Orientasi Peta Melalui Server Web: 6 Langkah

Video: Orientasi Peta Melalui Server Web: 6 Langkah
Video: #12 - Tutorial Penggunaan GeoServer Sebagai Server Web GIS 2024, November
Anonim
Orientasi Peta Melalui Server Web
Orientasi Peta Melalui Server Web

Internet of Things, (IoT) adalah salah satu topik populer di planet ini saat ini. Dan, itu berkembang pesat dari hari ke hari dengan Internet. Internet of Things mengubah rumah sederhana menjadi rumah pintar, di mana segala sesuatu mulai dari lampu hingga kunci Anda dapat dikontrol dari ponsel cerdas atau desktop Anda. Ini adalah kemewahan yang semua orang ingin miliki.

Kami selalu bermain dengan alat yang kami punya dan terus bekerja untuk melangkah ke langkah berikutnya dari batas kami. Kami mencoba memberi pelanggan kami visi tentang teknologi dan ide terbaru. Jadi, Anda dapat mengubah rumah Anda menjadi rumah pintar dan menikmati kemewahan tanpa banyak usaha.

Hari ini, kami berpikir untuk mengerjakan salah satu topik terpenting di IoT - Orientasi Peta Digital.

Kami akan membangun server web di mana kami dapat memantau pergerakan perangkat atau benda apa pun (Terserah Anda, siapa yang ingin Anda mata-matai;)). Anda selalu dapat memikirkan untuk meningkatkan proyek ini ke tingkat berikutnya dengan beberapa modifikasi dan jangan lupa untuk memberi tahu kami di komentar di bawah.

Mari kita mulai dari..!!

Langkah 1: Peralatan Yang Kita Butuhkan.

Peralatan Yang Kami Butuhkan..!!
Peralatan Yang Kami Butuhkan..!!
Peralatan Yang Kami Butuhkan..!!
Peralatan Yang Kami Butuhkan..!!
Peralatan Yang Kami Butuhkan..!!
Peralatan Yang Kami Butuhkan..!!
Peralatan Yang Kami Butuhkan..!!
Peralatan Yang Kami Butuhkan..!!

1. Sensor LSM9DS0

Sensor 3-in-1 yang diproduksi oleh STMicroelectronics, LSM9DS0 adalah sistem-dalam-paket yang menampilkan sensor percepatan linier digital 3D, sensor laju sudut digital 3D, dan sensor magnetik digital 3D. LSM9DS0 memiliki percepatan linier skala penuh ±2g/±4g/±6g/±8g/±16g, medan magnet skala penuh ±2/±4/±8/±12 gauss dan laju sudut ±245 /±500/±2000 dps.

2. Adafruit Huzzah ESP8266

Prosesor ESP8266 dari Espressif adalah mikrokontroler 80 MHz dengan front-end WiFi lengkap (baik sebagai klien dan titik akses) dan tumpukan TCP/IP dengan dukungan DNS juga. ESP8266 adalah platform luar biasa untuk pengembangan aplikasi IoT. ESP8266 menyediakan platform yang matang untuk memantau dan mengontrol aplikasi menggunakan Bahasa Kawat Arduino dan Arduino IDE.

3. Pemrogram USB ESP8266

adaptor host ESP8266-nya dirancang khusus oleh Dcube Store untuk versi Adafruit Huzzah dari ESP8266, memungkinkan antarmuka I²C.

4. Kabel Penghubung I2C

5. Kabel USB Mini

Catu daya kabel USB mini adalah pilihan ideal untuk memberi daya pada Adafruit Huzzah ESP8266.

Langkah 2: Koneksi Perangkat Keras

Koneksi Perangkat Keras
Koneksi Perangkat Keras
Koneksi Perangkat Keras
Koneksi Perangkat Keras
Koneksi Perangkat Keras
Koneksi Perangkat Keras

Secara umum, membuat koneksi adalah bagian termudah dalam proyek ini. Ikuti instruksi dan gambar, dan Anda seharusnya tidak memiliki masalah.

Pertama-tama ambil Adafruit Huzzah ESP8266 dan letakkan USB Programmer (dengan Inward Facing I²C Port) di atasnya. Tekan USB Programmer dengan lembut dan kita selesai dengan langkah ini semudah pie (Lihat gambar di atas).

Koneksi Sensor dan Adafruit Huzzah ESP8266Ambil sensor dan Hubungkan Kabel I²C dengannya. Untuk pengoperasian yang benar dari kabel ini, harap diingat bahwa Output I²C SELALU terhubung ke Input I²C. Hal yang sama harus diikuti untuk Adafruit Huzzah ESP8266 dengan USB Programmer terpasang di atasnya (Lihat gambar di atas).

Dengan bantuan Programmer USB ESP8266, sangat mudah untuk memprogram ESP. Yang perlu Anda lakukan hanyalah mencolokkan sensor ke USB Programmer dan Anda siap melakukannya. Kami lebih suka menggunakan adaptor ini karena jauh lebih mudah untuk menghubungkan perangkat keras. Tidak perlu khawatir menyolder pin ESP ke sensor atau membaca diagram pin dan lembar data. Kita dapat menggunakan dan mengerjakan beberapa sensor secara bersamaan, Anda hanya perlu membuat rantai. Tanpa Programmer USB plug and play ini, ada banyak risiko membuat koneksi yang salah. Kabel yang buruk dapat mematikan wifi Anda serta sensor Anda.

Catatan: Kabel coklat harus selalu mengikuti koneksi Ground (GND) antara output dari satu perangkat dan input dari perangkat lain.

Pemberdayaan Sirkuit

Colokkan kabel Mini USB ke colokan listrik Adafruit Huzzah ESP8266. Nyalakan dan voila, kami siap berangkat!

Langkah 3: Kode

Kode
Kode

Kode ESP untuk Sensor Adafruit Huzzah ESP8266 dan LSM9DS0 tersedia di repositori github kami.

Sebelum melanjutkan ke kode, pastikan Anda membaca instruksi yang diberikan dalam file Readme dan mengatur Adafruit Huzzah ESP8266 Anda sesuai dengan itu. Ini akan memakan waktu hanya 5 menit untuk mengatur ESP.

Kodenya panjang tetapi dalam bentuk paling sederhana yang dapat Anda bayangkan dan Anda tidak akan kesulitan memahaminya.

Untuk kenyamanan Anda, Anda dapat menyalin kode ESP yang berfungsi untuk sensor ini dari sini juga:

// Didistribusikan dengan lisensi kehendak bebas.// Gunakan sesuka Anda, untung atau gratis, asalkan sesuai dengan lisensi karya terkait. // LSM9DSO // Kode ini dirancang untuk bekerja dengan Modul Mini TCS3414_I2CS I2C yang tersedia dari dcubestore.com.

#termasuk

#termasuk

#termasuk

#termasuk

// Alamat LSM9DSO Gyro I2C adalah 6A(106)

#define Addr_Gyro 0x6A // LSM9DSO Alamat Accl I2C adalah 1E(30) #define Addr_Accl 0x1E

const char* ssid = "ssid Anda";

const char* kata sandi = "kata sandi Anda"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;

ESP8266WebServer server (80);

batalkan akar pegangan()

{ data int tidak ditandatangani[6];

// Mulai Transmisi I2C

Wire.beginTransmission(Addr_Gyro); // Pilih register kontrol 1 Wire.write(0x20); // Kecepatan data = 95Hz, X, Y, Z-Axis diaktifkan, nyalakan Wire.write(0x0F); // Hentikan Kabel Transmisi I2C.endTransmission();

// Mulai Transmisi I2C

Wire.beginTransmission(Addr_Gyro); // Pilih register kontrol 4 Wire.write(0x23); // 2000 dps skala penuh, pembaruan berkelanjutan Wire.write(0x30); // Hentikan Kabel Transmisi I2C.endTransmission();

// Mulai Transmisi I2C

Wire.beginTransmission(Addr_Accl); // Pilih register kontrol 1 Wire.write(0x20); // Kecepatan data akselerasi = 100Hz, X, Y, Z-Axis diaktifkan, nyalakan Wire.write(0x67); // Hentikan Transmisi I2C pada perangkat Wire.endTransmission();

// Mulai Transmisi I2C

Wire.beginTransmission(Addr_Accl); // Pilih register kontrol 2 Wire.write(0x21); // Pemilihan skala penuh +/- 16g Wire.write(0x20); // Hentikan Kabel Transmisi I2C.endTransmission();

// Mulai Transmisi I2C

Wire.beginTransmission(Addr_Accl); // Pilih register kontrol 5 Wire.write(0x24); // Resolusi tinggi magnetik, kecepatan data keluaran = 50Hz Wire.write(0x70); // Hentikan Kabel Transmisi I2C.endTransmission();

// Mulai Transmisi I2C

Wire.beginTransmission(Addr_Accl); // Pilih register kontrol 6 Wire.write(0x25); // Magnetik skala penuh +/- 12 gauss Wire.write(0x60); // Hentikan Kabel Transmisi I2C.endTransmission();

// Mulai Transmisi I2C

Wire.beginTransmission(Addr_Accl); // Pilih register kontrol 7 Wire.write(0x26); // Mode normal, mode konversi kontinu magnetik Wire.write(0x00); // Hentikan Kabel Transmisi I2C.endTransmission(); penundaan (300);

for (int i = 0; i < 6; i++) { // Mulai Kabel Transmisi I2C.beginTransmission(Addr_Gyro); // Pilih register data Wire.write((40 + i)); // Hentikan Kabel Transmisi I2C.endTransmission();

// Meminta 1 byte data

Wire.requestFrom(Addr_Gyro, 1);

// Baca 6 byte data

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb if (Wire.available() == 1) { data = Wire.read(); } }

// Konversi data

int xGyro = ((data[1] * 256) + data[0]); int yGyro = ((data[3] * 256) + data[2]); int zGyro = ((data[5] * 256) + data[4]);

for (int i = 0; i < 6; i++) { // Mulai Kabel Transmisi I2C.beginTransmission(Addr_Accl); // Pilih register data Wire.write((40 + i)); // Hentikan Kabel Transmisi I2C.endTransmission();

// Meminta 1 byte data

Wire.requestFrom(Addr_Accl, 1);

// Baca 6 byte data

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb // zAccl lsb, zAccl msb if (Wire.available() == 1) { data = Wire.read(); } }

// Konversi data

int xAccl = ((data[1] * 256) + data[0]); int yAccl = ((data[3] * 256) + data[2]); int zAccl = ((data[5] * 256) + data[4]);

for (int i = 0; i < 6; i++) { // Mulai Kabel Transmisi I2C.beginTransmission(Addr_Accl); // Pilih register data Wire.write((8 + i)); // Hentikan Kabel Transmisi I2C.endTransmission();

// Meminta 1 byte data

Wire.requestFrom(Addr_Accl, 1);

// Baca 6 byte data

// xMag lsb, xMag msb, yMag lsb, yMag msb // zMag lsb, zMag msb if (Wire.available() == 1) { data = Wire.read(); } }

// Konversi data

int xMag = ((data[1] * 256) + data[0]); int yMag = ((data[3] * 256) + data[2]); int zMag = ((data[5] * 256) + data[4]);

// Keluarkan data ke monitor serial

Serial.print("Sumbu X dari rotasi: "); Serial.println(xGyro); Serial.print("Sumbu rotasi Y: "); Serial.println(yGyro); Serial.print("Sumbu Z dari rotasi: "); Serial.println(zGyro); Serial.print("Percepatan pada Sumbu X: "); Serial.println(xAccl); Serial.print("Percepatan pada Sumbu Y: "); Serial.println(yAccl); Serial.print("Percepatan pada Sumbu Z: "); Serial.println(zAccl); Serial.print("Medan magnet pada sumbu X: "); Serial.println(xMag); Serial.print("Medan magnet pada Sumbu Y: "); Serial.println(yMag); Serial.print("Magnetic dimasukkan pada Sumbu Z: "); Serial.println(zMag);

// Keluarkan data ke server web

server.sendContent ("

TOKO DCUBE

www.dcubestore.com

"" Modul Mini Sensor LSM9DS0 I2C

);

server.sendContent ("

Sumbu X dari rotasi = " + String(xGyro)); server.sendContent ("

Sumbu Y rotasi = " + String(yGyro)); server.sendContent ("

Z-Sumbu rotasi = " + String(zGyro)); server.sendContent ("

Akselerasi di X-Axis = " + String(xAccl)); server.sendContent ("

Akselerasi pada sumbu Y = " + String(yAccl)); server.sendContent ("

Akselerasi di Sumbu Z = " + String(zAccl)); server.sendContent ("

Magnetik diajukan di X-Axis = " + String(xMag)); server.sendContent ("

Magnetik diajukan di Y-Axis = " + String(yMag)); server.sendContent ("

Magnetik diajukan di Z-Axis = " + String(zMag)); delay(1000); }

batalkan pengaturan()

{ // Inisialisasi komunikasi I2C sebagai MASTER Wire.begin(2, 14); // Inisialisasi komunikasi serial, setel baud rate = 115200 Serial.begin(115200);

// Hubungkan ke jaringan WiFi

WiFi.begin(ssid, kata sandi);

// Tunggu koneksi

while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Terhubung ke "); Serial.println(ssid);

// Dapatkan alamat IP ESP8266

Serial.print("Alamat IP: "); Serial.println(WiFi.localIP());

// Mulai server

server.on("/", handleroot); server.mulai(); Serial.println("Server HTTP dimulai"); }

lingkaran kosong()

{ server.handleClient(); }

Langkah 4: Kerja Kode

Kerja Kode
Kerja Kode

Sekarang, unduh (atau git pull) kode dan buka di Arduino IDE.

Kompilasi dan unggah kode dan lihat hasilnya di Serial Monitor.

Catatan: Sebelum mengunggah, pastikan Anda memasukkan jaringan SSID dan kata sandi Anda di kode.

Salin alamat IP ESP8266 dari Serial Monitor dan tempel di browser web Anda. Anda akan melihat halaman web dengan sumbu rotasi, percepatan dan pembacaan medan magnet di 3-sumbu.

Output dari sensor pada Serial Monitor dan Web Server ditunjukkan pada gambar di atas.

Langkah 5: Aplikasi dan Fitur

LSM9DS0 adalah sistem-dalam-paket yang menampilkan sensor percepatan linier digital 3D, sensor kecepatan sudut digital 3D, dan sensor magnetik digital 3D. Dengan mengukur ketiga sifat ini, Anda dapat memperoleh banyak pengetahuan tentang gerakan suatu objek. Mengukur gaya dan arah medan magnet bumi dengan magnetometer, Anda dapat memperkirakan arah Anda. Akselerometer di ponsel Anda dapat mengukur arah gaya gravitasi, dan memperkirakan orientasi (potret, lanskap, datar, dll.). Quadcopters dengan giroskop built-in dapat melihat gulungan atau pitch yang tiba-tiba. Kita dapat menggunakan ini di Global Positioning System (GPS).

Beberapa aplikasi lainnya termasuk navigasi dalam ruangan, antarmuka pengguna cerdas, pengenalan gerakan tingkat lanjut, game dan perangkat input realitas virtual, dll.

Dengan bantuan ESP8266, kita dapat meningkatkan kapasitasnya menjadi lebih panjang. Kami dapat mengontrol peralatan kami dan memantau kinerja di sana dari desktop dan perangkat seluler kami. Kami dapat menyimpan dan mengelola data secara online dan mempelajarinya kapan saja untuk dimodifikasi. Lebih banyak aplikasi termasuk Otomasi Rumah, Jaringan Mesh, Kontrol Nirkabel Industri, Monitor Bayi, Jaringan Sensor, Elektronik yang Dapat Dipakai, Perangkat Sadar Lokasi Wi-Fi, Suar Sistem Posisi Wi-Fi.

Langkah 6: Sumber Daya untuk Melangkah Lebih Jauh

Untuk informasi lebih lanjut tentang LSM9DS0 dan ESP8266, lihat tautan di bawah ini:

  • Lembar Data Sensor LSM9DS0
  • Diagram Pengkabelan LSM9DS0
  • Lembar Data ESP8266

Direkomendasikan: