Kazalo:
- Korak: Oprema, ki jo potrebujemo.. !
- 2. korak: Povezave strojne opreme
- 3. korak: Koda
- 4. korak: Delovanje kode
- 5. korak: Aplikacije in funkcije
- 6. korak: Viri za nadaljevanje
Video: Usmeritev zemljevida prek spletnega strežnika: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Internet stvari (IoT) je trenutno ena izmed priljubljenih tem na planetu. Z internetom pa iz dneva v dan hitro narašča. Internet stvari spreminja preproste domove v pametne domove, kjer lahko vse, od luči do ključavnic, nadzirate s pametnega telefona ali namizja. To je luksuz, ki si ga vsi želijo imeti.
Vedno se igramo z orodji, ki jih imamo, in nadaljujemo z naslednjim korakom svojih omejitev. Našim strankam poskušamo dati vizijo najnovejših tehnologij in idej. Tako, da lahko svoj dom spremenite v pametne domove in brez veliko truda uživate v okusu razkošja.
Danes razmišljamo o delu na eni najpomembnejših tem v IoT - orientaciji digitalnih zemljevidov.
Zgradili bomo spletni strežnik, preko katerega bomo lahko spremljali premike katere koli naprave ali stvari (odvisno od vas, koga boste vohunili;)). Vedno lahko razmišljate o nadgradnji tega projekta na naslednjo stopnjo z nekaterimi spremembami in ne pozabite nam to povedati v spodnjih komentarjih.
Začnimo kot … !!
Korak: Oprema, ki jo potrebujemo.. !
1. Senzor LSM9DS0
Senzor 3 v 1, ki ga proizvaja STMicroelectronics, je LSM9DS0 sistem v paketu, ki vsebuje 3D digitalni linearni senzor pospeška, 3D digitalni senzor kotne hitrosti in 3D digitalni magnetni senzor. LSM9DS0 ima linearno polno lestvico pospeševanja ± 2 g/± 4 g/± 6 g/± 8 g/± 16 g, magnetno polje v obsegu ± 2/± 4/± 8/± 12 gauss in kotno hitrost ± 245 /± 500/± 2000 dps.
2. Adafruit Huzzah ESP8266
Procesor ESP8266 podjetja Espressif je 80 MHz mikrokrmilnik s polnim vmesnikom WiFi (tako kot odjemalec kot dostopna točka) in skladom TCP/IP s podporo DNS. ESP8266 je neverjetna platforma za razvoj aplikacij IoT. ESP8266 ponuja zrelo platformo za spremljanje in nadzor aplikacij z uporabo jezika Arduino Wire in Arduino IDE.
3. ESP8266 USB programer
njegov gostiteljski adapter ESP8266 je posebej zasnoval Dcube Store za različico ESP8266 Adafruit Huzzah, ki omogoča vmesnik I²C.
4. Povezovalni kabel I2C
5. Mini USB kabel
Napajalnik mini USB kabla je idealna izbira za napajanje Adafruit Huzzah ESP8266.
2. korak: Povezave strojne opreme
Na splošno je povezovanje najlažji del tega projekta. Sledite navodilom in slikam in ne bi smelo biti težav.
Najprej vzemite Adafruit Huzzah ESP8266 in nanj namestite USB programator (z vhodom I²C). Nežno pritisnite USB programator in s tem korakom smo končali tako enostavno kot pita (glejte zgornjo sliko).
Povezava senzorja in Adafruit Huzzah ESP8266 Vzemite senzor in z njim povežite kabel I²C. Za pravilno delovanje tega kabla ne pozabite, da je izhod I²C VEDNO priključen na vhod I²C. Enako je bilo treba upoštevati pri Adafruit Huzzah ESP8266 z USB programerjem, nameščenim nad njim (glej zgornjo sliko).
S pomočjo programatorja ESP8266 USB Programmer je zelo enostavno programirati ESP. Vse, kar morate storiti, je, da senzor priključite na USB programer in ste pripravljeni. Ta adapter raje uporabljamo, ker veliko olajša povezavo strojne opreme. Brez skrbi glede spajkanja zatičev ESP na senzor ali branja diagramov pin in podatkovnega lista. Lahko uporabljamo in delamo na več senzorjih hkrati, samo narediti morate verigo. Brez teh USB programerjev plug and play obstaja veliko tveganje za napačno povezavo. Slabo ožičenje lahko uniči vaš WiFi in vaš senzor.
Opomba: Rjava žica mora vedno slediti ozemljitveni (GND) povezavi med izhodom ene naprave in vhodom druge naprave.
Napajanje vezja
Kabel Mini USB priključite v napajalni vtič Adafruit Huzzah ESP8266. Prižgite in voila, lahko gremo!
3. korak: Koda
Koda ESP za senzor Adafruit Huzzah ESP8266 in LSM9DS0 je na voljo v našem skladišču github.
Preden nadaljujete s kodo, preberite navodila v datoteki Readme in v skladu z njo nastavite svoj Adafruit Huzzah ESP8266. Nastavitev ESP bo trajala le 5 minut.
Koda je dolga, vendar je v najpreprostejši obliki, ki si jo lahko zamislite, in ne boste imeli težav pri razumevanju.
Za vaše udobje lahko od tu tudi kopirate delujočo kodo ESP za ta senzor:
// Razdeljeno z licenco po lastni volji.// Uporabite ga kakor koli želite, dobičkonosno ali brezplačno, pod pogojem, da ustreza licencam pripadajočih del. // LSM9DSO // Ta koda je zasnovana za delo z mini modulom TCS3414_I2CS I2C, ki je na voljo na spletnem mestu dcubestore.com.
#vključi
#vključi
#vključi
#vključi
// Naslov žiroskopa I2C LSM9DSO je 6A (106)
#define Addr_Gyro 0x6A // LSM9DSO Naslov Accl I2C je 1E (30) #define Addr_Accl 0x1E
const char* ssid = "vaš ssid";
const char* password = "vaše geslo"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;
Strežnik ESP8266WebServer (80);
void handleroot ()
{unsigned int data [6];
// Zagon prenosa I2C
Wire.beginTransmission (Addr_Gyro); // Izberite kontrolni register 1 Wire.write (0x20); // Prenos podatkov = 95Hz, X, Y, Z-os omogočena, vklop Wire.write (0x0F); // Ustavi I2C prenosno žico.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr_Gyro); // Izberite kontrolni register 4 Wire.write (0x23); // Celovito 2000 dps, neprekinjeno posodabljanje Wire.write (0x30); // Ustavi I2C prenosno žico.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr_Accl); // Izberite kontrolni register 1 Wire.write (0x20); // Hitrost prenosa podatkov = 100Hz, X, Y, Z-os omogočena, vklop Wire.write (0x67); // Ustavitev prenosa I2C na napravi Wire.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr_Accl); // Izberite kontrolni register 2 Wire.write (0x21); // Popolna izbira lestvice +/- 16g Wire.write (0x20); // Ustavi I2C prenosno žico.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr_Accl); // Izberite kontrolni register 5 Wire.write (0x24); // Magnetna visoka ločljivost, hitrost izhodnih podatkov = 50Hz Wire.write (0x70); // Ustavi I2C prenosno žico.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr_Accl); // Izberite kontrolni register 6 Wire.write (0x25); // Magnetno polno +/- 12 gauss Wire.write (0x60); // Ustavi I2C prenosno žico.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr_Accl); // Izberite kontrolni register 7 Wire.write (0x26); // Običajen način, magnetni način neprekinjene pretvorbe Wire.write (0x00); // Ustavi I2C prenosno žico.endTransmission (); zamuda (300);
for (int i = 0; i <6; i ++) {// Začni prenos I2C Wire.beginTransmission (Addr_Gyro); // Izberite podatkovni register Wire.write ((40 + i)); // Ustavi I2C prenosno žico.endTransmission ();
// Zahtevajte 1 bajt podatkov
Wire.requestFrom (Addr_Gyro, 1);
// Preberite 6 bajtov podatkov
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb if (Wire.available () == 1) {data = Wire.read (); }}
// Pretvorimo podatke
int xGyro = ((podatki [1] * 256) + podatki [0]); int yGyro = ((podatki [3] * 256) + podatki [2]); int zGyro = ((podatki [5] * 256) + podatki [4]);
for (int i = 0; i <6; i ++) {// Začni prenos I2C Wire.beginTransmission (Addr_Accl); // Izberite podatkovni register Wire.write ((40 + i)); // Ustavi I2C prenosno žico.endTransmission ();
// Zahtevajte 1 bajt podatkov
Wire.requestFrom (Addr_Accl, 1);
// Preberite 6 bajtov podatkov
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb // zAccl lsb, zAccl msb if (Wire.available () == 1) {data = Wire.read (); }}
// Pretvorimo podatke
int xAccl = ((podatki [1] * 256) + podatki [0]); int yAccl = ((podatki [3] * 256) + podatki [2]); int zAccl = ((podatki [5] * 256) + podatki [4]);
for (int i = 0; i <6; i ++) {// Začni prenos I2C Wire.beginTransmission (Addr_Accl); // Izberite podatkovni register Wire.write ((8 + i)); // Ustavi I2C prenosno žico.endTransmission ();
// Zahtevajte 1 bajt podatkov
Wire.requestFrom (Addr_Accl, 1);
// Preberite 6 bajtov podatkov
// xMag lsb, xMag msb, yMag lsb, yMag msb // zMag lsb, zMag msb if (Wire.available () == 1) {data = Wire.read (); }}
// Pretvorimo podatke
int xMag = ((podatki [1] * 256) + podatki [0]); int yMag = ((podatki [3] * 256) + podatki [2]); int zMag = ((podatki [5] * 256) + podatki [4]);
// Izhodni podatki na serijski monitor
Serial.print ("X-os vrtenja:"); Serial.println (xGyro); Serial.print ("Y-os vrtenja:"); Serial.println (yGyro); Serial.print ("Z-os vrtenja:"); Serial.println (zGyro); Serial.print ("Pospešek v osi X:"); Serial.println (xAccl); Serial.print ("Pospešek v osi Y:"); Serial.println (yAccl); Serial.print ("Pospešek v osi Z:"); Serial.println (zAccl); Serial.print ("Magnetno polje v osi X:"); Serial.println (xMag); Serial.print ("Magnetno polje v osi Y:"); Serial.println (yMag); Serial.print ("Magnetno polje v osi Z:"); Serial.println (zMag);
// Izhodni podatki na spletni strežnik
server.sendContent ("
DCUBE STORE
www.dcubestore.com
"" LSM9DS0 senzor I2C mini modul
);
server.sendContent ("
Os X rotacije = " + String (xGyro)); server.sendContent ("
Y-os vrtenja = " + niz (yGyro)); server.sendContent ("
Z-os vrtenja = " + niz (zGyro)); server.sendContent ("
Pospešek v osi X = " + niz (xAccl)); server.sendContent ("
Pospešek v osi Y = " + niz (yAccl)); server.sendContent ("
Pospešek v osi Z = " + niz (zAccl)); server.sendContent ("
Magnetno polje v osi X = " + niz (xMag)); server.sendContent ("
Magnetno polje v osi Y = " + niz (yMag)); server.sendContent ("
Magnetno polje v osi Z = " + niz (zMag)); zakasnitev (1000);}
void setup ()
{// Inicializirajte komunikacijo I2C kot MASTER Wire.begin (2, 14); // Začetek serijske komunikacije, nastavljena hitrost prenosa = 115200 Serial.begin (115200);
// Povežite se z omrežjem WiFi
WiFi.begin (ssid, geslo);
// Počakajte na povezavo
while (WiFi.status ()! = WL_CONNECTED) {zamuda (500); Serial.print ("."); } Serial.println (""); Serial.print ("Povezano z"); Serial.println (ssid);
// Pridobite naslov IP ESP8266
Serial.print ("IP naslov:"); Serial.println (WiFi.localIP ());
// Zaženite strežnik
server.on ("/", handleroot); server.begin (); Serial.println ("strežnik HTTP se je zagnal"); }
void loop ()
{server.handleClient (); }
4. korak: Delovanje kode
Zdaj prenesite (ali git povlecite) kodo in jo odprite v Arduino IDE.
Sestavite in naložite kodo in si oglejte izpis na Serial Monitor.
Opomba: Preden naložite, v kodo vnesite omrežje SSID in geslo.
Kopirajte naslov IP ESP8266 iz serijskega monitorja in ga prilepite v spletni brskalnik. Na 3-osi boste videli spletno stran z osjo vrtenja, pospeška in branjem magnetnega polja.
Izhod senzorja na serijskem monitorju in spletnem strežniku je prikazan na zgornji sliki.
5. korak: Aplikacije in funkcije
LSM9DS0 je sistem v paketu, ki vsebuje 3D digitalni senzor linearnega pospeška, 3D digitalni senzor kotne hitrosti in 3D digitalni magnetni senzor. Z merjenjem teh treh lastnosti lahko pridobite veliko znanja o gibanju predmeta. Z merjenjem sile in smeri magnetnega polja Zemlje z magnetometrom lahko približate svojo smer. Merilnik pospeška v telefonu lahko meri smer gravitacijske sile in ocenjuje orientacijo (pokončno, ležeče, ravno itd.). Štirikopterji z vgrajenimi žiroskopi lahko pazijo na nenadne premike ali nagibe. To lahko uporabimo v sistemu globalnega pozicioniranja (GPS).
Nekatere druge aplikacije vključujejo notranjo navigacijo, pametne uporabniške vmesnike, napredno prepoznavanje kretenj, igralne naprave in naprave za vnos navidezne resničnosti itd.
S pomočjo ESP8266 lahko povečamo njegovo zmogljivost na večjo dolžino. Lahko nadzorujemo svoje naprave in tam spremljamo zmogljivost namiznih in mobilnih naprav. Podatke lahko hranimo in upravljamo na spletu ter jih kadar koli preučimo glede sprememb. Več aplikacij vključuje domačo avtomatizacijo, mrežno omrežje, industrijsko brezžično krmiljenje, otroške varuške, senzorska omrežja, nosljivo elektroniko, naprave, ki zaznavajo lokacijo Wi-Fi, svetilnike položaja Wi-Fi.
6. korak: Viri za nadaljevanje
Za več informacij o LSM9DS0 in ESP8266 si oglejte spodnje povezave:
- Tehnični list senzorja LSM9DS0
- Shema ožičenja LSM9DS0
- Tehnični list ESP8266
Priporočena:
Visuino - Pridobite natančen čas s spletnega strežnika NIST s pomočjo NodeMCU: 8 korakov
Visuino - Pridobite natančen čas s spletnega strežnika NIST s pomočjo NodeMCU: V tej vadnici bomo uporabili NodeMCU Mini, OLED Lcd in Visuino za prikaz internetnega časa v živo s strežnika NIST na LCD -ju. Oglejte si predstavitveni video. Zasluge za navdih ima uporabnik youtube " Ciprian Balalau "
Internetna LED z uporabo spletnega strežnika na osnovi ESP32: 10 korakov
Internetna LED z uporabo spletnega strežnika, ki temelji na ESP32: Pregled projekta V tem primeru bomo ugotovili, kako narediti spletni strežnik na osnovi ESP32 za nadzor stanja LED, ki je dostopen od koder koli po svetu. Za ta projekt boste potrebovali računalnik Mac, vendar lahko to programsko opremo zaženete tudi na i
ESP 8266 Nodemcu RGB LED trak, ki ga nadzira daljinski upravljalnik spletnega strežnika: 4 koraki
ESP 8266 Nodemcu RGB LED trak, ki ga nadzira daljinski upravljalnik spletnega strežnika: V tem navodilu se bomo naučili, kako pretvoriti nodemcu v daljinski upravljalnik IR traku RGB LED in da mora daljinski upravljalnik nodemcu upravljati spletna stran, ki gostuje na mobilnem telefonu ali računalniku z nodemcu
Prenosni alarm za preverjanje spletnega strežnika (z uporabo NodeMCU ESP8266): 6 korakov
Prenosni alarm za preverjanje spletnega strežnika (z uporabo NodeMCU ESP8266): Kaj nam pomeni kazalnik padca strežnika/storitve ..? V svetu spletne infrastrukture je veliko … !! Ohraniti moramo vso razpoložljivost naše storitve " ne želim razočarati vaše storitve/strežnika in izgubiti podjetja " Toda včasih postavite
Vadnica IO spletnega gonilnika z uporabo spletnega mesta v živo in primeri dela: 8 korakov
Vadnica IO spletnega gonilnika z uporabo spletnega mesta v živo in primeri dela: vadnica spletnega gonilnika IO z uporabo spletnega mesta v živo in primeri dela Zadnja posodobitev: 26. 7. 2015 (Pogosto preverjajte, ko posodabljam ta navodila z več podrobnostmi in primeri) Ozadje Nedavno sem imel zanimiv izziv, ki se mi je predstavil. Moral sem