Daftar Isi:
- Langkah 1: Peralatan Yang Kita Butuhkan.
- Langkah 2: Koneksi Perangkat Keras
- Langkah 3: Kode
- Langkah 4: Kerja Kode
- Langkah 5: Aplikasi dan Fitur
- Langkah 6: Sumber Daya untuk Melangkah Lebih Jauh
Video: Orientasi Peta Melalui Server Web: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
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.
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
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 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
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:
Mengontrol Led Melalui Aplikasi Blynk Menggunakan Nodemcu Melalui Internet: 5 Langkah
Mengontrol Led Melalui Aplikasi Blynk Menggunakan Nodemcu Melalui Internet: Halo Semua Hari Ini Kami Akan Menunjukkan Kepada Anda Bagaimana Anda Dapat Mengontrol LED Menggunakan Smartphone Melalui Internet
Gelang Orientasi Terhubung: 6 Langkah
Gelang Orientasi Terhubung: Proyek akademik ini, gelang orientasi terhubung, diwujudkan oleh empat siswa dari sekolah teknik Polytech Paris-UPMC: Sébastien Potet, Pauline Pham, Kevin Antunes dan Boris Bras. Apa proyek kita? Selama satu semester
Mempelajari Orientasi Dengan Raspberry Pi dan MXC6226XU Menggunakan Python: 6 Langkah
Mempelajari Orientasi Dengan Raspberry Pi dan MXC6226XU Menggunakan Python: Kebisingan hanyalah bagian dari pengoperasian kendaraan. Dengung motor kendaraan yang sangat disetel adalah suara yang luar biasa. Tapak ban berdengung di jalan, angin menderu saat mengitari kaca spion, serpihan plastik, dan potongan di dasbor menghasilkan l
Kontrol Perangkat Melalui Internet Melalui Browser. (IoT): 6 Langkah
Kontrol Perangkat Melalui Internet Melalui Browser. (IoT): Dalam Instructable ini saya akan menunjukkan kepada Anda bagaimana Anda dapat mengontrol perangkat seperti LED, Relay, motor dll melalui internet melalui web-browser. Dan Anda dapat mengakses kontrol dengan aman melalui perangkat apa pun. Platform web yang saya gunakan di sini adalah kunjungan RemoteMe.org
Perancangan dan Realisasi Sistem Orientasi Panel Fotovoltaik: 5 Langkah
Perancangan dan Realisasi Sistem Orientasi Panel Fotovoltaik: Perancangan dan Realisasi Sistem Orientasi Panel Fotovoltaik