Mundarija:

Veb -server orqali xarita yo'nalishi: 6 qadam
Veb -server orqali xarita yo'nalishi: 6 qadam

Video: Veb -server orqali xarita yo'nalishi: 6 qadam

Video: Veb -server orqali xarita yo'nalishi: 6 qadam
Video: IT ЙУНАЛИШЛАРИ 2024, Noyabr
Anonim
Veb -server orqali xaritalarni yo'naltirish
Veb -server orqali xaritalarni yo'naltirish

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.. !

Bizga kerak bo'lgan uskunalar.. !!
Bizga kerak bo'lgan uskunalar.. !!
Bizga kerak bo'lgan uskunalar.. !!
Bizga kerak bo'lgan uskunalar.. !!
Bizga kerak bo'lgan uskunalar.. !!
Bizga kerak bo'lgan uskunalar.. !!
Bizga kerak bo'lgan uskunalar.. !!
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

Uskuna ulanishlari
Uskuna ulanishlari
Uskuna ulanishlari
Uskuna ulanishlari
Uskuna ulanishlari
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

Kod
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

Kodning ishlashi
Kodning ishlashi

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: