Isi kandungan:
- Langkah 1: Peralatan yang Kami Perlu..
- Langkah 2: Sambungan Perkakasan
- Langkah 3: Kod
- Langkah 4: Mengendalikan Kod
- Langkah 5: Aplikasi dan Ciri
- Langkah 6: Sumber untuk Melangkah Lebih Lanjut
Video: Orientasi Peta Melalui Pelayan Web: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
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..
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
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 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
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:
Buat Buku Peta Menggunakan Peta Google: 17 Langkah (dengan Gambar)
Buat Buku Peta Menggunakan Peta Google: Pada suatu hari saya mencari di kedai buku untuk Panduan Jalan untuk DuPage County, IL kerana teman wanita saya tinggal di sana dan memerlukan peta jalan yang terperinci. Malangnya, satu-satunya yang mereka ada dekat dengan Cook County (seperti ini
Gelang Orientasi Bersambung: 6 Langkah
Gelang Orientasi Bersambung: Projek akademik ini, gelang orientasi bersambung, direalisasikan oleh empat pelajar dari sekolah teknik Polytech Paris-UPMC: S é bastien Potet, Pauline Pham, Kevin Antunes dan Boris Bras. Apa projek kami? Selama satu semester
Mempelajari Orientasi Dengan Raspberry Pi dan MXC6226XU Menggunakan Python: 6 Langkah
Mempelajari Orientasi Dengan Raspberry Pi dan MXC6226XU Menggunakan Python: Bunyi hanyalah sebahagian daripada kerja kenderaan. Suara motor kenderaan yang sangat diselaraskan adalah bunyi yang luar biasa. Tayar menggerutu ke arah jalan, angin bergetar ketika mengelilingi cermin, potongan plastik, dan kepingan di papan pemuka menghasilkan
Sambungan TCP / IP Melalui GPRS: Cara Menghantar Data ke Pelayan Menggunakan SIM900A Modul: 4 Langkah
Sambungan TCP / IP Melalui GPRS: Cara Menghantar Data ke Pelayan Menggunakan SIM900A Modul: Dalam tutorial ini saya akan memberitahu anda tentang cara mengirim data ke pelayan TCP menggunakan modul sim900. Kita juga akan melihat bagaimana kita dapat menerima data dari pelayan ke klien (modul GSM)
Jam Animasi LED SMART Bersambung Web Dengan Panel Kawalan berasaskan Web, Pelayan Masa Diselaraskan: 11 Langkah (dengan Gambar)
Jam Animasi LED SMART Bersambung Web Dengan Panel Kawalan Berasaskan Web, Time Server Synchronized: Kisah jam ini sudah lama - lebih dari 30 tahun. Ayah saya mempelopori idea ini ketika saya baru berusia 10 tahun, jauh sebelum revolusi LED - kembali ketika LED di mana 1/1000 kecerahan cahaya mereka yang membutakan semasa. Betul