Mundarija:
- 1 -qadam: Bizga kerak bo'lgan uskunalar.. !
- 2 -qadam: Uskuna ulanishlari
- 3 -qadam: kod
- 4 -qadam: kod bilan ishlash
- 5 -qadam: Ilovalar va xususiyatlar
- 6 -qadam: Oldinga borish uchun manbalar
Video: Veb -server orqali xarita yo'nalishi: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Internet -narsalar (IoT) - hozirda sayyoradagi eng mashhur mavzulardan biri. Va Internet kundan -kunga tez o'sib bormoqda. Narsalar Interneti oddiy uylarni aqlli uylarga o'zgartirmoqda, bu erda sizning chiroqlaringizdan qulflarigacha hamma narsani smartfon yoki ish stolidan boshqarish mumkin. Bu hamma egalik qilishni xohlaydigan hashamat.
Biz har doim qo'limizga kelgan asboblar bilan o'ynaymiz va chegaralarimizning keyingi bosqichiga o'tishda davom etamiz. Biz mijozimizga eng yangi texnologiyalar va g'oyalar haqida tasavvur berishga harakat qilamiz. Shunday qilib, siz o'z uyingizni aqlli uylarga aylantira olasiz va ko'p harakat qilmasdan hashamatning ta'midan bahramand bo'lishingiz mumkin.
Bugun biz IoT -ning eng muhim mavzularidan biri - raqamli xaritalarga yo'naltirish ustida ishlashni o'ylayapmiz.
Biz veb -server yaratamiz, u orqali biz har qanday qurilma yoki narsaning harakatini kuzatib boramiz (bu sizga bog'liq, siz kimni josuslik qilasiz;)). Siz har doim ba'zi o'zgartirishlar bilan ushbu loyihani keyingi bosqichga ko'tarish haqida o'ylashingiz mumkin va bizga quyidagi izohlarda aytishni unutmang.
Boshlaylik.. !!
1 -qadam: Bizga kerak bo'lgan uskunalar.. !
1. LSM9DS0 sensori
STMicroelectronics tomonidan ishlab chiqarilgan 3-in-1 sensori, LSM9DS0-bu 3D raqamli chiziqli tezlashtirish sensori, 3D raqamli burchak tezligi sensori va 3D raqamli magnitli sensorga ega tizimli paket. LSM9DS0 ± 2g/± 4g/± 6g/± 8g/± 16g chiziqli tezlanishning to'liq shkalasi, magnit maydonining ± 2/± 4/± 8/± 12 gauss va ± 245 burchak tezligiga ega. /± 500/± 2000 dps.
2. Adafruit Huzzah ESP8266
Espressif-dan ESP8266 protsessori-bu 80 MGts chastotali to'liq Wi-Fi interfeysi (mijoz va kirish nuqtasi sifatida) va DNS qo'llab-quvvatlanadigan TCP/IP to'plami. ESP8266 - bu IoT dasturlarini ishlab chiqish uchun ajoyib platforma. ESP8266 Arduino Wire Language va Arduino IDE yordamida ilovalarni kuzatish va boshqarish uchun etuk platformani taqdim etadi.
3. ESP8266 USB dasturchisi
uning ESP8266 xost adapteri IcC interfeysiga ruxsat beruvchi ESP8266 ning Adafruit Huzzah versiyasi uchun maxsus Dcube Store tomonidan ishlab chiqilgan.
4. I2C ulanish kabeli
5. Mini USB kabeli
Mini USB kabeli Quvvat manbai Adafruit Huzzah ESP8266 -ni quvvatlantirish uchun ideal tanlovdir.
2 -qadam: Uskuna ulanishlari
Umuman olganda, ulanish - bu loyihaning eng oson qismi. Ko'rsatmalar va rasmlarga rioya qiling, shunda hech qanday muammo bo'lmasligi kerak.
Birinchidan, Adafruit Huzzah ESP8266 -ni oling va unga USB dasturchisini (ichkariga qaragan I²C porti bilan) joylashtiring. USB dasturchisini sekin bosing va biz bu qadamni pirogdek oson bajaramiz (yuqoridagi rasmga qarang).
Sensor va Adafruit Huzzah ESP8266 ulanishi Sensorni oling va u bilan I²C kabelini ulang. Ushbu kabelning to'g'ri ishlashi uchun, esda tutingki, I²C chiqishi har doim I²C kirishiga ulanadi. USB dasturchi o'rnatilgan Adafruit Huzzah ESP8266 uchun ham shunday qilish kerak edi (yuqoridagi rasmga qarang).
ESP8266 USB Programmer yordamida ESPni dasturlash juda oson. Sensorni USB dasturchiga ulash kifoya, shunda siz borishingiz mumkin. Biz ushbu adapterdan foydalanishni afzal ko'ramiz, chunki bu uskunani ulashni ancha osonlashtiradi. Sensorga ESP pinlarini lehimlash yoki pinlar diagrammasi va ma'lumotlar jadvalini o'qish haqida tashvishlanmang. Biz bir vaqtning o'zida bir nechta sensorlardan foydalanishimiz va ishlashimiz mumkin, siz faqat zanjir yasashingiz kerak. Agar USB -dasturchining ulanishi va ulanishi bo'lmasa, noto'g'ri ulanish xavfi katta. Yomon sim sizning Wi -Fi -ni ham, sensoringizni ham o'ldirishi mumkin.
E'tibor bering: jigarrang sim har doim bitta qurilmaning chiqishi va boshqa qurilmaning kirishi o'rtasidagi Ground (GND) aloqasini kuzatishi kerak.
O'chirishning kuchi
Mini USB kabelini Adafruit Huzzah ESP8266 quvvat manbaiga ulang. Uni yoqing va voila, biz borishga tayyormiz!
3 -qadam: kod
Adafruit Huzzah ESP8266 va LSM9DS0 sensori uchun ESP kodi bizning github omborimizda mavjud.
Kodga o'tishdan oldin, Readme faylida berilgan ko'rsatmalarni o'qiganingizga va Adafruit Huzzah ESP8266 -ni unga muvofiq sozlaganingizga ishonch hosil qiling. ESPni o'rnatish uchun atigi 5 daqiqa vaqt ketadi.
Kod uzun, lekin siz tasavvur qila oladigan eng oddiy shaklda va siz uni tushunishda hech qanday qiyinchiliklarga duch kelmaysiz.
Qulaylik uchun siz ushbu sensor uchun ishlaydigan ESP kodini bu erdan ko'chirishingiz mumkin:
// Ixtiyoriy litsenziya bilan tarqatilgan. // LSM9DSO // Bu kod dcubestore.com saytida mavjud bo'lgan TCS3414_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan.
#qo'shing
#qo'shing
#qo'shing
#qo'shing
// LSM9DSO Gyro I2C manzili 6A (106)
#define Addr_Gyro 0x6A // LSM9DSO Accl I2C manzili 1E (30) #define Addr_Accl 0x1E
const char* ssid = "ssid";
const char* password = "sizning parolingiz"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;
ESP8266WebServer serveri (80);
void handleroot ()
{imzosiz int ma'lumotlar [6];
// I2C uzatishni boshlang
Wire.beginTransmission (Addr_Gyro); // Boshqaruv registrini tanlang 1 Wire.write (0x20); // Ma'lumot uzatish tezligi = 95Hz, X, Y, Z o'qi yoqilgan, Wire.write yoqilgan (0x0F); // I2C Transmission Wire.endTransmission () ni to'xtating;
// I2C uzatishni boshlang
Wire.beginTransmission (Addr_Gyro); // Boshqarish registrini tanlang 4 Wire.write (0x23); // To'liq o'lchovli 2000 d/ s, doimiy yangilanish Wire.write (0x30); // I2C Transmission Wire.endTransmission () ni to'xtating;
// I2C uzatishni boshlang
Wire.beginTransmission (Addr_Accl); // Boshqaruv registrini tanlang 1 Wire.write (0x20); // Ma'lumotni tezlashtirish tezligi = 100Hz, X, Y, Z o'qi yoqilgan, Wire.write yoqilgan (0x67); // Wire.endTransmission () qurilmasida I2C uzatishni to'xtatish;
// I2C uzatishni boshlang
Wire.beginTransmission (Addr_Accl); // Boshqarish registrini tanlang 2 Wire.write (0x21); // To'liq o'lchovli tanlov +/- 16g Wire.write (0x20); // I2C Transmission Wire.endTransmission () ni to'xtating;
// I2C uzatishni boshlang
Wire.beginTransmission (Addr_Accl); // Boshqarish registrini tanlang 5 Wire.write (0x24); // Magnit yuqori aniqlik, chiqish tezligi = 50Hz Wire.write (0x70); // I2C Transmission Wire.endTransmission () ni to'xtating;
// I2C uzatishni boshlang
Wire.beginTransmission (Addr_Accl); // Boshqarish registrini tanlang 6 Wire.write (0x25); // Magnit to'liq o'lchovli +/- 12 gauss Wire.write (0x60); // I2C Transmission Wire.endTransmission () ni to'xtating;
// I2C uzatishni boshlang
Wire.beginTransmission (Addr_Accl); // Boshqarish registrini tanlang 7 Wire.write (0x26); // Oddiy rejim, magnit uzluksiz konvertatsiya qilish rejimi Wire.write (0x00); // I2C Transmission Wire.endTransmission () ni to'xtating; kechikish (300);
for (int i = 0; i <6; i ++) {// I2C Transmission Wire.beginTransmission (Addr_Gyro) ni ishga tushirish; // Wire.write ma'lumotlar registrini tanlang ((40 + i)); // I2C Transmission Wire.endTransmission () ni to'xtating;
// 1 bayt ma'lumotni so'rang
Wire.requestFrom (Addr_Gyro, 1);
// 6 bayt ma'lumotni o'qing
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb if (Wire.available () == 1) {data = Wire.read (); }}
// Ma'lumotni aylantirish
int xGyro = ((ma'lumotlar [1] * 256) + ma'lumotlar [0]); int yGyro = ((ma'lumotlar [3] * 256) + ma'lumotlar [2]); int zGyro = ((ma'lumotlar [5] * 256) + ma'lumotlar [4]);
for (int i = 0; i <6; i ++) {// I2C Transmission Wire.beginTransmission -ni ishga tushirish (Addr_Accl); // Wire.write ma'lumotlar registrini tanlang ((40 + i)); // I2C Transmission Wire.endTransmission () ni to'xtating;
// 1 bayt ma'lumotni so'rang
Wire.requestFrom (Addr_Accl, 1);
// 6 bayt ma'lumotni o'qing
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb // zAccl lsb, zAccl msb if (Wire.available () == 1) {data = Wire.read (); }}
// Ma'lumotni aylantirish
int xAccl = ((ma'lumotlar [1] * 256) + ma'lumotlar [0]); int yAccl = ((ma'lumotlar [3] * 256) + ma'lumotlar [2]); int zAccl = ((ma'lumotlar [5] * 256) + ma'lumotlar [4]);
for (int i = 0; i <6; i ++) {// I2C Transmission Wire.beginTransmission -ni ishga tushirish (Addr_Accl); // Wire.write ma'lumotlar registrini tanlang ((8 + i)); // I2C Transmission Wire.endTransmission () ni to'xtating;
// 1 bayt ma'lumotni so'rang
Wire.requestFrom (Addr_Accl, 1);
// 6 bayt ma'lumotni o'qing
// xMag lsb, xMag msb, yMag lsb, yMag msb // zMag lsb, zMag msb if (Wire.available () == 1) {data = Wire.read (); }}
// Ma'lumotni aylantirish
int xMag = ((ma'lumotlar [1] * 256) + ma'lumotlar [0]); int yMag = ((ma'lumotlar [3] * 256) + ma'lumotlar [2]); int zMag = ((ma'lumotlar [5] * 256) + ma'lumotlar [4]);
// Ma'lumotlarni ketma -ket monitorga chiqarish
Serial.print ("X o'qining aylanish o'qi:"); Serial.println (xGyro); Serial.print ("Y-aylanish o'qi:"); Serial.println (yGyro); Serial.print ("Z-aylanish o'qi:"); Serial.println (zGyro); Serial.print ("X o'qida tezlashtirish:"); Serial.println (xAccl); Serial.print ("Y o'qida tezlashtirish:"); Serial.println (yAccl); Serial.print ("Z o'qida tezlashtirish:"); Serial.println (zAccl); Serial.print ("X o'qida magnit maydon:"); Serial.println (xMag); Serial.print ("Y o'qida magnit maydon:"); Serial.println (yMag); Serial.print ("Magnit Z-o'qiga yozilgan:"); Serial.println (zMag);
// Veb -serverga ma'lumotlarni chiqarish
server.sendContent ("
DCUBE DO'KONI
www.dcubestore.com
"" LSM9DS0 sensori I2C mini moduli
);
server.sendContent ("
X o'qining aylanish o'qi = " + String (xGyro)); server.sendContent ("
Y-aylanish o'qi = " + String (yGyro)); server.sendContent ("
Z-aylanish o'qi = " + String (zGyro)); server.sendContent ("
X o'qida tezlashtirish = " + String (xAccl)); server.sendContent ("
Y eksa tezligi = " + String (yAccl)); server.sendContent ("
Z-o'qi tezligi = " + String (zAccl)); server.sendContent ("
Magnit X o'qida joylashgan = " + String (xMag)); server.sendContent ("
Magnit Y-Axis = " + String (yMag)) da yozilgan; server.sendContent ("
Magnit Z-Axis = " + String (zMag)); kechikish (1000);}
bo'sh o'rnatish ()
{// I2C aloqasini MASTER Wire.begin sifatida boshlang (2, 14); // Seriyali aloqani ishga tushiring, uzatilgan tezlik = 115200 Serial.begin (115200);
// WiFi tarmog'iga ulaning
WiFi.begin (ssid, parol);
// Ulanishni kuting
while (WiFi.status ()! = WL_CONNECTED) {kechiktirish (500); Serial.print ("."); } Serial.println (""); Serial.print ("Ulangan"); Serial.println (ssid);
// ESP8266 IP -manzilini oling
Serial.print ("IP -manzil:"); Serial.println (WiFi.localIP ());
// Serverni ishga tushiring
server.on ("/", ishlov beruvchi); server.begin (); Serial.println ("HTTP -server ishga tushdi"); }
bo'sh halqa ()
{server.handleClient (); }
4 -qadam: kod bilan ishlash
Endi kodni yuklab oling (yoki git pull) va uni Arduino IDE -da oching.
Kodni tuzing va yuklang va chiqishni ketma -ket monitorda ko'ring.
Eslatma: yuklashdan oldin, kodga SSID tarmog'ingiz va parolingizni kiritganingizga ishonch hosil qiling.
Serial monitordan ESP8266 IP -manzilini nusxalash va veb -brauzeringizga joylashtirish. Siz 3 o'qda aylanish o'qi, tezlanish va magnit maydonining o'qilishi bo'lgan veb-sahifani ko'rasiz.
Sensorning ketma -ket monitor va veb -serverdagi chiqishi yuqoridagi rasmda ko'rsatilgan.
5 -qadam: Ilovalar va xususiyatlar
LSM9DS0-bu 3D raqamli chiziqli tezlashtirish sensori, 3D raqamli burchak tezligi sensori va 3D raqamli magnitli sensorga ega tizimli to'plam. Ushbu uchta xususiyatni o'lchab, siz ob'ektning harakati haqida ko'p ma'lumotga ega bo'lishingiz mumkin. Magnitometr yordamida Yer magnit maydonining kuchi va yo'nalishini o'lchab, siz o'z yo'nalishingizni taxmin qilishingiz mumkin. Telefoningizdagi akselerometr tortishish kuchining yo'nalishini o'lchashi va yo'nalishini (portret, landshaft, tekis va boshqalar) taxmin qilishi mumkin. O'rnatilgan giroskopli kvadrokopterlar to'satdan yuvarlanishni yoki qadamlarni qidirishi mumkin. Biz buni global joylashishni aniqlash tizimida (GPS) ishlatishimiz mumkin.
Yana bir nechta ilovalarga yopiq navigatsiya, aqlli foydalanuvchi interfeysi, kengaytirilgan imo -ishorani aniqlash, o'yin va virtual haqiqatni kiritish qurilmalari va boshqalar kiradi.
ESP8266 yordamida biz uning quvvatini yanada uzunroq qilib oshirishimiz mumkin. Biz o'z qurilmalarimizni boshqarishimiz va ish stoli va mobil qurilmalarimiz ishini kuzatib borishimiz mumkin. Biz ma'lumotlarni onlayn saqlashimiz va boshqarishimiz va o'zgartirishlar uchun ularni istalgan vaqtda o'rganishimiz mumkin. Boshqa ilovalarga uy avtomatizatsiyasi, to'r tarmog'i, sanoat simsiz boshqaruv, chaqaloq monitorlari, sensorlar tarmoqlari, taqiladigan elektronika, Wi-Fi joylashuvini biladigan qurilmalar, Wi-Fi joylashuv tizimi mayoqlari kiradi.
6 -qadam: Oldinga borish uchun manbalar
LSM9DS0 va ESP8266 haqida qo'shimcha ma'lumot olish uchun quyidagi havolalarga qarang:
- LSM9DS0 sensorli ma'lumotlar jadvali
- LSM9DS0 ulanish sxemasi
- ESP8266 ma'lumotlar jadvali
Tavsiya:
Xarita chiroqchasi- ma'lumotli va chiroyli !: 7 qadam
Xarita chiroqchasi- ma'lumotli va chiroyli!: Bu chiroq ishlatilgan/yangi xaritadan qilingan. U 7-12V kuchlanishni ishlatadi, uni har xil rang va yorqinlikka moslashtirish mumkin, hatto USB orqali zaryadlash mumkin! Ishlash juda oddiy, lekin biroz lehimlashni talab qiladi
Geeetech kengashi Raspberry Pi orqali to'g'ridan -to'g'ri simli USB kabeli orqali: 4 qadam
Geeetech kengashi Raspberry Pi orqali to'g'ridan -to'g'ri maxsus USB kabeli orqali: Salom! Ushbu qo'llanmada JST XH 4-pinli maxsus USB-ni qanday qilish kerakligi ko'rsatilgan, shuning uchun siz Raspberry Pi yoki boshqa USB qurilmangizni Geeetech printeridagi A10 kabi Geeetech 2560 rev 3 kartasiga to'g'ridan-to'g'ri ulashingiz mumkin. Bu kabel qulay paralelga ulanadi
Bir nechta BMP280 datchiklari Arduino Uno orqali SPI orqali: 6 qadam
Bir nechta BMP280 datchiklari Arduino Uno -da SPI orqali: Bu qo'llanmada biz uchta BMP280 -ni Arduino Uno -ga SPI orqali ulashamiz, lekin har bir sensor uchun nSS (Slave Select) sifatida D3 dan D10 raqamli portlari yordamida Uno -da sakkizta BMP280 -ni ulashingiz mumkin. B o'lchagan atmosfera bosimi namunalarining
Braço Robo Controlado orqali uyali aloqa orqali: 3 qadam
Bracho Robô Controlado uyali aloqa tizimi orqali: yordamchi dasturlar bilan jihozlangan, ular bir -biridan farqli o'laroq, bir -biridan farqli o'laroq, elektron pochta orqali yuboriladi: axborot uzatish uchun telefon orqali yuboriladi
Brauzer orqali Internet orqali qurilmalarni boshqarish. (IoT): 6 qadam
Brauzer orqali Internet orqali qurilmalarni boshqarish. (IoT): Ushbu yo'riqnomada men sizga LED-lar, o'rni, dvigatellar va boshqalar kabi qurilmalarni internet orqali brauzer orqali qanday boshqarishni ko'rsataman. Va siz har qanday qurilma orqali boshqaruv elementlariga xavfsiz kirishingiz mumkin. Men foydalangan veb -platforma bu RemoteMe.org saytiga tashrif