Isi kandungan:

Orientasi Peta Melalui Pelayan Web: 6 Langkah
Orientasi Peta Melalui Pelayan Web: 6 Langkah

Video: Orientasi Peta Melalui Pelayan Web: 6 Langkah

Video: Orientasi Peta Melalui Pelayan Web: 6 Langkah
Video: TERBARU! TUTORIAL MOOC PPPK 2023 - Official Video P3K BANGKOM ASN LAN RI 2024, November
Anonim
Orientasi Peta Melalui Pelayan Web
Orientasi Peta Melalui Pelayan Web

Internet of Things, (IoT) adalah salah satu topik popular di planet ini sekarang. Dan, ia berkembang pesat dari hari ke hari dengan Internet. Internet of Things mengubah rumah sederhana menjadi rumah pintar, di mana segala-galanya dari lampu hingga kunci anda dapat dikawal dari telefon pintar atau desktop anda. Inilah kemewahan yang ingin dimiliki oleh semua orang.

Kami selalu bermain dengan alat yang kami ada dan terus berusaha untuk melangkah ke tahap seterusnya. Kami cuba memberi visi kepada pelanggan mengenai teknologi dan idea terkini. Oleh itu, anda boleh mengubah kediaman anda menjadi rumah pintar dan menikmati rasa mewah tanpa banyak usaha.

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

Kami akan membina pelayan web di mana kami dapat memantau pergerakan mana-mana peranti atau benda (Terserah kepada anda, siapa yang anda intip;)). Anda selalu boleh memikirkan untuk meningkatkan projek ini ke tahap seterusnya dengan beberapa pengubahsuaian dan jangan lupa memberitahu kami dalam komen di bawah.

Mari bermula daripada.. !!

Langkah 1: Peralatan yang Kami Perlu..

Peralatan yang Kami Perlu.. !!
Peralatan yang Kami Perlu.. !!
Peralatan yang Kami Perlu.. !!
Peralatan yang Kami Perlu.. !!
Peralatan yang Kami Perlu.. !!
Peralatan yang Kami Perlu.. !!
Peralatan yang Kami Perlu.. !!
Peralatan yang Kami Perlu.. !!

1. Sensor LSM9DS0

Sensor 3-dalam-1 yang dihasilkan oleh STMicroelectronics, LSM9DS0 adalah sistem dalam pakej yang menampilkan sensor pecutan linear digital 3D, sensor kadar sudut digital 3D, dan sensor magnet digital 3D. LSM9DS0 mempunyai skala penuh pecutan linear ± 2g / ± 4g / ± 6g / ± 8g / ± 16g, skala penuh medan magnet ± 2 / ± 4 / ± 8 / ± 12 gauss dan laju sudut ± 245 / ± 500 / ± 2000 dps.

2. Adafruit Huzzah ESP8266

Pemproses ESP8266 dari Espressif adalah mikrokontroler 80 MHz dengan front-end WiFi penuh (baik sebagai klien dan jalur akses) dan TCP / IP stack dengan sokongan DNS juga. ESP8266 adalah platform yang luar biasa untuk pengembangan aplikasi IoT. ESP8266 menyediakan platform yang matang untuk memantau dan mengawal aplikasi menggunakan Arduino Wire Language dan Arduino IDE.

3. Pengaturcara USB ESP8266

penyesuai hos ESP8266nya direka khusus oleh Dcube Store untuk versi Adafruit Huzzah dari ESP8266, yang membolehkan antara muka I²C.

4. Kabel Penyambung I2C

5. Kabel USB Mini

Kabel kuasa mini USB adalah pilihan yang sesuai untuk menghidupkan Adafruit Huzzah ESP8266.

Langkah 2: Sambungan Perkakasan

Sambungan Perkakasan
Sambungan Perkakasan
Sambungan Perkakasan
Sambungan Perkakasan
Sambungan Perkakasan
Sambungan Perkakasan

Secara amnya, membuat sambungan adalah bahagian termudah dalam projek ini. Ikuti arahan dan gambar, dan anda semestinya tidak menghadapi masalah.

Mula-mula ambil Adafruit Huzzah ESP8266 dan letakkan USB Programmer (dengan Inward Facing I²C Port) di atasnya. Tekan USB Programmer dengan lembut dan kami selesai dengan langkah ini semudah pai (Lihat gambar di atas).

Sambungan Sensor dan Adafruit Huzzah ESP8266Bawa sensor dan Sambungkan Kabel I²C dengannya. Untuk pengoperasian kabel ini dengan betul, ingatlah bahawa Output I²C SELALU menghubungkan ke Input I²C. Perkara yang sama harus diikuti untuk Adafruit Huzzah ESP8266 dengan Programmer USB dipasang di atasnya (Lihat gambar di atas).

Dengan bantuan Programmer USB ESP8266, sangat mudah untuk memprogramkan ESP. Yang perlu anda buat ialah pasangkan sensor ke USB Programmer dan anda boleh pergi. Kami lebih suka menggunakan penyesuai ini kerana lebih mudah menyambungkan perkakasan. Tidak perlu risau untuk menyisipkan pin ESP ke sensor atau membaca gambarajah pin dan lembaran data. Kami boleh menggunakan dan menggunakan beberapa sensor secara serentak, anda hanya perlu membuat rantai. Tanpa Programmer USB plug and play ini terdapat banyak risiko membuat sambungan yang salah. Pendawaian yang buruk boleh membunuh wifi anda dan juga sensor anda.

Catatan: Kawat coklat harus selalu mengikuti hubungan Ground (GND) antara output satu peranti dan input peranti lain.

Kuasa Litar

Pasang kabel Mini USB ke soket kuasa Adafruit Huzzah ESP8266. Nyalakan dan voila, kami bersedia!

Langkah 3: Kod

Kod
Kod

Kod ESP untuk Adafruit Huzzah ESP8266 dan LSM9DS0 Sensor boleh didapati di repositori github kami.

Sebelum meneruskan kodnya, pastikan anda membaca arahan yang diberikan dalam fail Readme dan siapkan Adafruit Huzzah ESP8266 yang sesuai dengannya. Hanya perlu 5 minit untuk menyediakan ESP.

Kodnya panjang tetapi terdapat dalam bentuk termudah yang dapat anda bayangkan dan anda tidak akan sukar untuk memahaminya.

Untuk kemudahan anda, anda boleh menyalin kod ESP yang berfungsi untuk sensor ini dari sini juga:

// Diagihkan dengan lesen kehendak bebas.// Gunakannya dengan cara yang anda mahukan, untung atau percuma, dengan syarat ia sesuai dengan lesen karya yang berkaitan. // LSM9DSO // Kod ini dirancang untuk berfungsi dengan Modul Mini TCS3414_I2CS I2C yang tersedia dari dcubestore.com.

#sertakan

#sertakan

#sertakan

#sertakan

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

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

const char * ssid = "ssid anda";

const char * password = "kata laluan anda"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;

Pelayan ESP8266WebServer (80);

pengendalian kekosongan ()

{data int yang tidak ditandatangani [6];

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr_Gyro); // Pilih daftar kawalan 1 Wire.write (0x20); // Kadar data = 95Hz, X, Y, Z-Axis diaktifkan, kuasa pada Wire.write (0x0F); // Hentikan I2C Transmission Wire.endTransmission ();

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr_Gyro); // Pilih daftar kawalan 4 Wire.write (0x23); // Skala penuh 2000 dps, kemas kini berterusan Wire.write (0x30); // Hentikan I2C Transmission Wire.endTransmission ();

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr_Accl); // Pilih daftar kawalan 1 Wire.write (0x20); // Kadar data pecutan = 100Hz, X, Y, Z-Axis diaktifkan, kuasa pada Wire.write (0x67); // Hentikan Penghantaran I2C pada peranti Wire.endTransmission ();

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr_Accl); // Pilih daftar kawalan 2 Wire.write (0x21); // Pemilihan skala penuh +/- 16g Wire.write (0x20); // Hentikan I2C Transmission Wire.endTransmission ();

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr_Accl); // Pilih daftar kawalan 5 Wire.write (0x24); // Resolusi tinggi magnetik, kadar data output = 50Hz Wire.write (0x70); // Hentikan I2C Transmission Wire.endTransmission ();

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr_Accl); // Pilih daftar kawalan 6 Wire.write (0x25); // Magnet berskala penuh +/- 12 gauss Wire.write (0x60); // Hentikan I2C Transmission Wire.endTransmission ();

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr_Accl); // Pilih daftar kawalan 7 Wire.write (0x26); // Mod normal, mod penukaran berterusan magnet Wire.write (0x00); // Hentikan I2C Transmission Wire.endTransmission (); kelewatan (300);

untuk (int i = 0; i <6; i ++) {// Mulakan Wire Transmission I2C.beginTransmission (Addr_Gyro); // Pilih daftar data Wire.write ((40 + i)); // Hentikan I2C Transmission Wire.endTransmission ();

// Minta 1 bait data

Wire.requestFrom (Addr_Gyro, 1);

// Baca 6 bait data

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

// Tukarkan data

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

untuk (int i = 0; i <6; i ++) {// Mula I2C Transmission Wire.beginTransmission (Addr_Accl); // Pilih daftar data Wire.write ((40 + i)); // Hentikan I2C Transmission Wire.endTransmission ();

// Minta 1 bait data

Wire.requestFrom (Addr_Accl, 1);

// Baca 6 bait data

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

// Tukarkan data

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

untuk (int i = 0; i <6; i ++) {// Mula I2C Transmission Wire.beginTransmission (Addr_Accl); // Pilih daftar data Wire.write ((8 + i)); // Hentikan I2C Transmission Wire.endTransmission ();

// Minta 1 bait data

Wire.requestFrom (Addr_Accl, 1);

// Baca 6 bait data

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

// Tukarkan 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 bersiri

Serial.print ("X-Axis of rotation:"); Serial.println (xGyro); Serial.print ("Y-Axis of rotation:"); Serial.println (yGyro); Serial.print ("Z-Axis of rotation:"); Serial.println (zGyro); Serial.print ("Pecutan dalam X-Axis:"); Serial.println (xAccl); Serial.print ("Pecutan dalam Y-Axis:"); Serial.println (yAccl); Serial.print ("Pecutan dalam Z-Axis:"); Serial.println (zAccl); Serial.print ("Medan magnet dalam X-Axis:"); Serial.println (xMag); Serial.print ("Medan magnet dalam Y-Axis:"); Serial.println (yMag); Serial.print ("Magnetic difailkan dalam Z-Axis:"); Serial.println (zMag);

// Keluarkan data ke pelayan web

pelayan.sendContent ("

KEDAI DCUBE

www.dcubestore.com

Modul Mini Sensor I2C LSM9DS0

);

pelayan.sendContent ("

X-Axis of rotation = "+ String (xGyro)); server.sendContent ("

Y-Axis of rotation = "+ String (yGyro)); server.sendContent ("

Z-Axis of rotation = "+ String (zGyro)); server.sendContent ("

Pecutan dalam X-Axis = "+ String (xAccl)); server.sendContent ("

Pecutan dalam Y-Axis = "+ String (yAccl)); server.sendContent ("

Pecutan dalam Z-Axis = "+ String (zAccl)); server.sendContent ("

Magnetik difailkan dalam X-Axis = "+ String (xMag)); server.sendContent ("

Magnetik difailkan dalam Y-Axis = "+ String (yMag)); server.sendContent ("

Magnetik difailkan dalam Z-Axis = "+ String (zMag)); kelewatan (1000);}

persediaan tidak sah ()

{// Memulakan komunikasi I2C sebagai MASTER Wire.begin (2, 14); // Mulakan komunikasi bersiri, tetapkan kadar baud = 115200 Serial.begin (115200);

// Sambungkan ke rangkaian WiFi

WiFi.begin (ssid, kata laluan);

// Tunggu sambungan

sementara (WiFi.status ()! = WL_CONNECTED) {kelewatan (500); Cetakan bersiri ("."); } Serial.println (""); Serial.print ("Bersambung ke"); Serial.println (ssid);

// Dapatkan alamat IP ESP8266

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

// Mulakan pelayan

pelayan.on ("/", pengendali); pelayan.begin (); Serial.println ("Pelayan HTTP dimulakan"); }

gelung kosong ()

{server.handleClient (); }

Langkah 4: Mengendalikan Kod

Kerja Kod
Kerja Kod

Sekarang, muat turun (atau git tarik) kod dan buka di Arduino IDE.

Susun dan muat naik kodnya dan lihat outputnya di Serial Monitor.

Catatan: Sebelum memuat naik, pastikan anda memasukkan rangkaian SSID dan kata laluan anda dalam kod tersebut.

Salin alamat IP ESP8266 dari Serial Monitor dan tampal di penyemak imbas web anda. Anda akan melihat halaman web dengan paksi putaran, pecutan dan bacaan medan magnet dalam paksi 3.

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

Langkah 5: Aplikasi dan Ciri

LSM9DS0 adalah sistem dalam pakej yang menampilkan sensor pecutan linear digital 3D, sensor kadar sudut digital 3D, dan sensor magnet digital 3D. Dengan mengukur ketiga sifat ini, anda dapat memperoleh banyak pengetahuan mengenai pergerakan objek. Dengan mengukur daya dan arah medan magnet Bumi dengan magnetometer, anda dapat menghitung arah anda. Pecutan di telefon anda dapat mengukur arah gaya graviti, dan mengira orientasi (potret, lanskap, rata, dll.). Quadcopters dengan giroskop terbina dalam dapat melihat gulungan atau nada yang tiba-tiba. Kita boleh menggunakannya dalam Sistem Penentududukan Global (GPS).

Beberapa aplikasi lagi termasuk navigasi Dalaman, antara muka pengguna Pintar, Pengenalan isyarat lanjutan, Perisian input permainan dan realiti maya, dll.

Dengan bantuan ESP8266, kita dapat meningkatkan kapasitinya menjadi lebih panjang. Kami dapat mengawal peralatan kami dan memantau prestasi di sana dari desktop dan peranti mudah alih kami. Kami dapat menyimpan dan mengurus data secara dalam talian dan mempelajarinya kapan saja untuk pengubahsuaian. Lebih banyak aplikasi merangkumi Automasi Rumah, Rangkaian Mesh, Kawalan Wayarles Industri, Monitor Bayi, Rangkaian Sensor, Elektronik Boleh Dipakai, Peranti yang Mengetahui Lokasi Wi-Fi, Suara Sistem Kedudukan Wi-Fi.

Langkah 6: Sumber untuk Melangkah Lebih Lanjut

Untuk maklumat lebih lanjut mengenai LSM9DS0 dan ESP8266, lihat pautan di bawah:

  • Lembaran Data Sensor LSM9DS0
  • Rajah Pendawaian LSM9DS0
  • Lembaran Data ESP8266

Disyorkan: