Obsah:

Orientácia mapy prostredníctvom webového servera: 6 krokov
Orientácia mapy prostredníctvom webového servera: 6 krokov

Video: Orientácia mapy prostredníctvom webového servera: 6 krokov

Video: Orientácia mapy prostredníctvom webového servera: 6 krokov
Video: ⚡️ Я НЕ СДАМСЯ! AMAZON 2.0 | Интернет магазин с нуля - Часть 3 2024, Júl
Anonim
Orientácia mapy prostredníctvom webového servera
Orientácia mapy prostredníctvom webového servera

Internet vecí (IoT) je v súčasnosti jednou z obľúbených tém na planéte. A s internetom sa každým dňom rýchlo rozrastá. Internet vecí mení jednoduché domácnosti na inteligentné domácnosti, kde je možné všetko od vašich svetiel po zámky ovládať z vášho smartfónu alebo pracovnej plochy. To je luxus, ktorý chce mať každý.

Vždy hráme s nástrojmi, ktoré máme, a pokračujeme v práci na ďalšom kroku svojich limitov. Našim zákazníkom sa snažíme poskytnúť víziu najnovších technológií a nápadov. Aby ste zo svojho domu mohli urobiť inteligentné domy a užiť si chuť luxusu bez veľkého úsilia.

Dnes uvažujeme o práci na jednej z najdôležitejších tém v IoT - orientácia digitálnej mapy.

Postavíme webový server, prostredníctvom ktorého budeme môcť monitorovať pohyby akéhokoľvek zariadenia alebo veci (Je len na vás, koho chcete špehovať;)). Vždy môžete premýšľať o inovácii tohto projektu na ďalšiu úroveň s určitými úpravami a nezabudnite nám to povedať v nižšie uvedených komentároch.

Začnime než.. !!

Krok 1: Vybavenie, ktoré potrebujeme.. !

Potrebné vybavenie.. !!
Potrebné vybavenie.. !!
Potrebné vybavenie.. !!
Potrebné vybavenie.. !!
Potrebné vybavenie.. !!
Potrebné vybavenie.. !!
Potrebné vybavenie.. !!
Potrebné vybavenie.. !!

1. Senzor LSM9DS0

LSM9DS0, snímač 3 v 1, ktorý vyrába spoločnosť STMicroelectronics, je súčasťou balenia systému s digitálnym snímačom lineárnej akcelerácie 3D, digitálnym snímačom uhlovej rýchlosti 3D a digitálnym magnetickým snímačom 3D. LSM9DS0 má plnú stupnicu lineárneho zrýchlenia ± 2 g/± 4 g/± 6 g/± 8 g/± 16 g, plnú škálu magnetického poľa ± 2/± 4/± 8/± 12 gaussov a uhlovú rýchlosť ± 245 /± 500/± 2000 dps.

2. Adafruit Huzzah ESP8266

Procesor ESP8266 od spoločnosti Espressif je 80 MHz mikrokontrolér s úplným front-endom WiFi (ako klient aj prístupový bod) a zásobníkom TCP/IP s podporou DNS. ESP8266 je neuveriteľná platforma pre vývoj aplikácií IoT. ESP8266 poskytuje vyspelú platformu na monitorovanie a ovládanie aplikácií pomocou Arduino Wire Language a Arduino IDE.

3. Programátor USB ESP8266

jeho hostiteľský adaptér ESP8266 bol navrhnutý špeciálne v obchode Dcube Store pre verziu ESP8266 pre Adafruit Huzzah a umožňuje rozhranie I²C.

4. Pripojovací kábel I2C

5. Mini USB kábel

Mini USB kábel Napájací zdroj je ideálnou voľbou pre napájanie Adafruit Huzzah ESP8266.

Krok 2: Hardvérové pripojenia

Hardvérové pripojenia
Hardvérové pripojenia
Hardvérové pripojenia
Hardvérové pripojenia
Hardvérové pripojenia
Hardvérové pripojenia

Vo všeobecnosti je vytváranie spojení najľahšou súčasťou tohto projektu. Postupujte podľa pokynov a obrázkov a nemali by ste mať žiadne problémy.

Najprv vezmite Adafruit Huzzah ESP8266 a umiestnite naň programátor USB (s portom I²C smerujúcim dovnútra). Jemne stlačte USB programátor a tento krok máme hotový rovnako ľahko ako koláč (viď obrázok vyššie).

Pripojenie senzora a Adafruit Huzzah ESP8266 Vezmite senzor a pripojte k nemu kábel I²C. Pre správnu funkciu tohto kábla pamätajte na to, že výstup I²C sa VŽDY pripája k vstupu I²C. To isté bolo potrebné dodržať pre Adafruit Huzzah ESP8266 s namontovaným programátorom USB (pozri obrázok vyššie).

S pomocou programátora ESP8266 USB je veľmi jednoduché naprogramovať ESP. Všetko, čo musíte urobiť, je zapojiť snímač do USB programátora a môžete ísť. Radšej používame tento adaptér, pretože výrazne uľahčuje pripojenie hardvéru. Žiadne starosti s spájkovaním pinov ESP k senzoru alebo čítaním pinových diagramov a datasheetu. Môžeme používať a pracovať na viacerých snímačoch súčasne, stačí vytvoriť reťaz. Bez týchto programátorov USB typu plug and play existuje veľké riziko nesprávneho pripojenia. Zlé zapojenie môže poškodiť vašu sieť Wi -Fi aj senzor.

Poznámka: Hnedý vodič by mal vždy nasledovať po uzemnení (GND) medzi výstupom jedného zariadenia a vstupom iného zariadenia.

Napájanie obvodu

Zapojte kábel Mini USB do napájacieho konektora Adafruit Huzzah ESP8266. Zapáľte a voilá, môžeme vyraziť!

Krok 3: Kód

Kód
Kód

Kód ESP pre snímač Adafruit Huzzah ESP8266 a LSM9DS0 je k dispozícii v našom úložisku github.

Predtým, ako prejdete na kód, prečítajte si pokyny uvedené v súbore Readme a nastavte podľa neho svoj Adafruit Huzzah ESP8266. Nastavenie ESP bude trvať iba 5 minút.

Kód je dlhý, ale je v najjednoduchšej forme, akú si dokážete predstaviť, a nebudete mať problémy s jeho porozumením.

Pre vaše pohodlie môžete skopírovať funkčný kód ESP pre tento snímač aj tu:

// Distribuované s licenciou slobodnej vôle.// Používajte ho akýmkoľvek spôsobom chcete, so ziskom alebo zadarmo, za predpokladu, že sa zmestí do licencií súvisiacich diel. // LSM9DSO // Tento kód je navrhnutý tak, aby pracoval s mini modulom TCS3414_I2CS I2C, ktorý je k dispozícii na dcubestore.com.

#zahrnúť

#zahrnúť

#zahrnúť

#zahrnúť

// Adresa LSM9DSO Gyro I2C je 6A (106)

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

const char* ssid = "váš ssid";

const char* heslo = "vaše heslo"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;

Server ESP8266 WebServer (80);

void handleroot ()

{nepodpísané int údaje [6];

// Spustite prenos I2C

Wire.beginTransmission (Addr_Gyro); // Vyberte riadiaci register 1 Wire.write (0x20); // Dátový tok = 95 Hz, X, Y, os Z povolená, zapnuté Wire.write (0x0F); // Zastavenie prenosu I2C Wire.endTransmission ();

// Spustite prenos I2C

Wire.beginTransmission (Addr_Gyro); // Vyberte riadiaci register 4 Wire.write (0x23); // Plný rozsah 2000 dps, priebežná aktualizácia Wire.write (0x30); // Zastavenie prenosu I2C Wire.endTransmission ();

// Spustite prenos I2C

Wire.beginTransmission (Addr_Accl); // Vyberte riadiaci register 1 Wire.write (0x20); // Dátová rýchlosť zrýchlenia = 100Hz, X, Y, os Z povolená, zapnutie Wire.write (0x67); // Zastavte prenos I2C na zariadení Wire.endTransmission ();

// Spustite prenos I2C

Wire.beginTransmission (Addr_Accl); // Vyberte riadiaci register 2 Wire.write (0x21); // Výber plnej mierky +/- 16g Wire.write (0x20); // Zastavenie prenosu I2C Wire.endTransmission ();

// Spustite prenos I2C

Wire.beginTransmission (Addr_Accl); // Vyberte riadiaci register 5 Wire.write (0x24); // Magnetické vysoké rozlíšenie, výstupný dátový tok = 50 Hz Wire.write (0x70); // Zastavenie prenosu I2C Wire.endTransmission ();

// Spustite prenos I2C

Wire.beginTransmission (Addr_Accl); // Vyberte riadiaci register 6 Wire.write (0x25); // Magnetický plný rozsah +/- 12 gaussov Wire.write (0x60); // Zastavenie prenosu I2C Wire.endTransmission ();

// Spustite prenos I2C

Wire.beginTransmission (Addr_Accl); // Vyberte riadiaci register 7 Wire.write (0x26); // Normálny režim, režim kontinuálnej magnetickej konverzie Wire.write (0x00); // Zastavenie prenosu I2C Wire.endTransmission (); oneskorenie (300);

for (int i = 0; i <6; i ++) {// Spustenie prenosu I2C Wire.beginTransmission (Addr_Gyro); // Vyberte dátový register Wire.write ((40 + i)); // Zastavenie prenosu I2C Wire.endTransmission ();

// Požiadajte o 1 bajt údajov

Wire.requestFrom (Addr_Gyro, 1);

// Prečítajte 6 bajtov údajov

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

// Previesť údaje

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

for (int i = 0; i <6; i ++) {// Spustenie prenosu I2C Wire.beginTransmission (Addr_Accl); // Vyberte dátový register Wire.write ((40 + i)); // Zastavenie prenosu I2C Wire.endTransmission ();

// Požiadajte o 1 bajt údajov

Wire.requestFrom (Addr_Accl, 1);

// Prečítajte 6 bajtov údajov

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

// Previesť údaje

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

for (int i = 0; i <6; i ++) {// Spustenie prenosu I2C Wire.beginTransmission (Addr_Accl); // Vyberte dátový register Wire.write ((8 + i)); // Zastavenie prenosu I2C Wire.endTransmission ();

// Požiadajte o 1 bajt údajov

Wire.requestFrom (Addr_Accl, 1);

// Prečítajte 6 bajtov údajov

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

// Previesť údaje

int xMag = ((údaje [1] * 256) + údaje [0]); int yMag = ((údaje [3] * 256) + údaje [2]); int zMag = ((údaje [5] * 256) + údaje [4]);

// Výstup údajov na sériový monitor

Serial.print ("Os otáčania X:"); Serial.println (xGyro); Serial.print ("Os otáčania Y:"); Serial.println (yGyro); Serial.print ("Osa Z rotácie:"); Serial.println (zGyro); Serial.print ("Zrýchlenie v osi X:"); Serial.println (xAccl); Serial.print ("Zrýchlenie v osi Y:"); Serial.println (yAccl); Serial.print ("Zrýchlenie v osi Z:"); Serial.println (zAccl); Serial.print ("Magnetické pole v osi X:"); Serial.println (xMag); Serial.print ("Magnetické pole v osi Y:"); Serial.println (yMag); Serial.print ("Magnetický súbor v osi Z:"); Serial.println (zMag);

// Výstup údajov na webový server

server.sendContent ("

OBCHOD DCUBE

www.dcubestore.com

Mini modul senzora I2C "" LSM9DS0

);

server.sendContent ("

Os otáčania X = " + reťazec (xGyro)); server.sendContent ("

Os otáčania Y = " + reťazec (yGyro)); server.sendContent ("

Os otáčania Z = " + reťazec (zGyro)); server.sendContent ("

Zrýchlenie v osi X = " + reťazec (xAccl)); server.sendContent ("

Zrýchlenie v osi Y = " + reťazec (yAccl)); server.sendContent ("

Zrýchlenie v osi Z = " + reťazec (zAccl)); server.sendContent ("

Magnetický súbor v osi X = " + reťazec (xMag)); server.sendContent ("

Magnetický súbor v osi Y = " + reťazec (yMag)); server.sendContent ("

Magnetický záznam v osi Z = " + reťazec (zMag)); oneskorenie (1000);}

neplatné nastavenie ()

{// Inicializujte komunikáciu I2C ako MASTER Wire.begin (2, 14); // Inicializácia sériovej komunikácie, nastavenie prenosovej rýchlosti = 115200 Serial.begin (115200);

// Pripojenie k sieti WiFi

WiFi.begin (ssid, heslo);

// Počkajte na pripojenie

while (WiFi.status ()! = WL_CONNECTED) {oneskorenie (500); Serial.print ("."); } Serial.println (""); Serial.print („Pripojené k“); Serial.println (ssid);

// Získať IP adresu ESP8266

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

// Spustite server

server.on ("/", handleroot); server.begin (); Serial.println ("Server HTTP spustený"); }

prázdna slučka ()

{server.handleClient (); }

Krok 4: Práca s kódom

Práca s kódom
Práca s kódom

Teraz si stiahnite (alebo git pull) kód a otvorte ho v Arduino IDE.

Skompilovajte a nahrajte kód a pozrite si výstup na Serial Monitor.

Poznámka: Pred odovzdaním sa uistite, že ste do kódu zadali svoju sieť SSID a heslo.

Skopírujte IP adresu ESP8266 z Serial Monitor a vložte ju do webového prehliadača. Uvidíte webovú stránku s osou otáčania, zrýchlenia a čítania magnetického poľa v 3-osi.

Výstup senzora na sériovom monitore a webovom serveri je zobrazený na obrázku vyššie.

Krok 5: Aplikácie a funkcie

LSM9DS0 je balík systému, ktorý obsahuje 3D digitálny snímač lineárnej akcelerácie, 3D digitálny snímač uhlovej rýchlosti a 3D digitálny magnetický senzor. Meraním týchto troch vlastností môžete získať veľké množstvo znalostí o pohybe objektu. Meraním sily a smeru magnetického poľa Zeme pomocou magnetometra môžete priblížiť svoj smer. Akcelerometer v telefóne môže merať smer gravitačnej sily a odhadovať orientáciu (na výšku, na šírku, na plocho atď.). Kvadrokoptéry so vstavanými gyroskopmi môžu dávať pozor na náhle zvitky alebo smoly. Môžeme to použiť v systéme GPS (Global Positioning System).

Niektoré ďalšie aplikácie zahŕňajú vnútornú navigáciu, inteligentné používateľské rozhrania, pokročilé rozpoznávanie gest, vstupné zariadenia pre hry a virtuálnu realitu atď.

S pomocou ESP8266 dokážeme zvýšiť jeho kapacitu na väčšiu dĺžku. Môžeme ovládať svoje spotrebiče a monitorovať tam výkon našich stolných počítačov a mobilných zariadení. Údaje môžeme ukladať a spravovať online a študovať ich kedykoľvek na účely úprav. Medzi ďalšie aplikácie patrí domáca automatizácia, sieťová sieť, priemyselné bezdrôtové ovládanie, detské opatrovateľky, senzorové siete, nositeľná elektronika, zariadenia na rozpoznávanie polohy Wi-Fi, majáky polohového systému Wi-Fi.

Krok 6: Prostriedky, ako ísť ďalej

Ďalšie informácie o LSM9DS0 a ESP8266 nájdete v nižšie uvedených odkazoch:

  • Dátový list snímača LSM9DS0
  • Schéma zapojenia LSM9DS0
  • Dátový list ESP8266

Odporúča: