Kazalo:

Usmeritev zemljevida prek spletnega strežnika: 6 korakov
Usmeritev zemljevida prek spletnega strežnika: 6 korakov

Video: Usmeritev zemljevida prek spletnega strežnika: 6 korakov

Video: Usmeritev zemljevida prek spletnega strežnika: 6 korakov
Video: Веб-программирование – информатика для руководителей бизнеса 2016 2024, Julij
Anonim
Usmeritev zemljevida prek spletnega strežnika
Usmeritev zemljevida prek spletnega strežnika

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

Potrebna oprema.. !!
Potrebna oprema.. !!
Potrebna oprema.. !!
Potrebna oprema.. !!
Potrebna oprema.. !!
Potrebna oprema.. !!
Potrebna oprema.. !!
Potrebna oprema.. !!

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

Povezave strojne opreme
Povezave strojne opreme
Povezave strojne opreme
Povezave strojne opreme
Povezave strojne opreme
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
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

Delovanje kodeksa
Delovanje kodeksa

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: