Obsah:
- Krok 1: Vybavenie, ktoré potrebujeme.. !
- Krok 2: Hardvérové pripojenia
- Krok 3: Kód
- Krok 4: Práca s kódom
- Krok 5: Aplikácie a funkcie
- Krok 6: Prostriedky, ako ísť ďalej
Video: Orientácia mapy prostredníctvom webového servera: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
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.. !
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
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 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
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:
Otvárač garážových brán so spätnou väzbou pomocou servera Esp8266 ako webového servera .: 6 krokov
Otvárač garážových brán so spätnou väzbou pomocou servera Esp8266 ako webového servera .: Ahoj, ukážem vám, ako si jednoducho vytvoriť otvárač garážových brán.-ESP8266 je kódovaný ako webový server, dvere je možné otvoriť kdekoľvek na svete-s spätná väzba, budete vedieť, či sú dvere otvorené alebo zatvorené v reálnom čase-jednoduché, iba jedna skratka, pomocou ktorej
Internetom riadená dióda LED pomocou webového servera založeného na ESP32: 10 krokov
Internetom riadená dióda LED pomocou webového servera založeného na ESP32: Prehľad projektu V tomto príklade zistíme, ako vytvoriť webový server na báze ESP32 na ovládanie stavu LED, ktorý je prístupný odkiaľkoľvek na svete. Na tento projekt budete potrebovať počítač Mac, ale tento softvér môžete spustiť aj na
LED pásik ESP 8266 Nodemcu RGB ovládaný diaľkovým ovládačom webového servera: 4 kroky
ESP 8266 Nodemcu RGB LED pásik ovládaný diaľkovým ovládaním webového servera: V tomto návode sa naučíme, ako previesť nodemcu na IR diaľkový ovládač RGB LED pásu a že diaľkové ovládanie nodemcu musí byť ovládané webovou stránkou hostenou na mobile alebo PC pomocou nodemcu
ESP 8266 Nodemcu Ws 2812 Neopixelová LED lampa MOOD ovládaná pomocou webového servera: 6 krokov
ESP 8266 Nodemcu Ws 2812 Neopixelová LED lampa MOOD ovládaná pomocou webového servera: V tomto projekte vyrobíme lampu MOOD od spoločnosti nodemcu & neopixel a ktoré je možné ovládať pomocou ľubovoľného prehliadača pomocou miestneho webového servera
Ovládanie 7-segmentového LED displeja pomocou webového servera ESP8266: 8 krokov (s obrázkami)
Ovládanie 7-segmentového LED displeja pomocou webového servera ESP8266: Môj projekt má Nodemcu ESP8266, ktorý riadi 7-segmentový displej prostredníctvom servera http pomocou html formulára