Sisällysluettelo:

Kartan suuntaus verkkopalvelimen kautta: 6 vaihetta
Kartan suuntaus verkkopalvelimen kautta: 6 vaihetta

Video: Kartan suuntaus verkkopalvelimen kautta: 6 vaihetta

Video: Kartan suuntaus verkkopalvelimen kautta: 6 vaihetta
Video: Elixir - suunnistus - Kartan suuntaus 2024, Marraskuu
Anonim
Karttasuuntaus verkkopalvelimen kautta
Karttasuuntaus verkkopalvelimen kautta

Esineiden internet (IoT) on yksi tämän hetken suosituimmista aiheista. Ja se kasvaa nopeasti päivä päivältä Internetin kanssa. Esineiden internet muuttaa yksinkertaiset kodit älykoteiksi, joissa kaikkea valostasi lukkoihisi voidaan ohjata älypuhelimella tai työpöydällä. Tämä on ylellisyyttä, jonka jokainen haluaa omistaa.

Pelaamme aina saamillamme työkaluilla ja jatkamme työtämme rajojemme seuraavaan vaiheeseen. Pyrimme antamaan asiakkaillemme näkemyksen uusimmista tekniikoista ja ideoista. Joten voit tehdä kodistasi älykkäitä koteja ja nauttia ylellisyyden mausta ilman paljon vaivaa.

Tänään ajattelemme työskentelemistä yhdellä IoT: n tärkeimmistä aiheista - Digital Map Orientation.

Rakennamme verkkopalvelimen, jonka kautta voimme seurata minkä tahansa laitteen tai esineen liikkeitä (riippuu sinusta, ketä vakoilet;)). Voit aina ajatella tämän projektin päivittämistä seuraavalle tasolle tietyillä muutoksilla, äläkä unohda kertoa meille alla olevissa kommenteissa.

Aloitetaan kuin.. !!

Vaihe 1: Tarvitsemamme laitteet..

Tarvittavat laitteet.. !!
Tarvittavat laitteet.. !!
Tarvittavat laitteet.. !!
Tarvittavat laitteet.. !!
Tarvittavat laitteet.. !!
Tarvittavat laitteet.. !!
Tarvittavat laitteet.. !!
Tarvittavat laitteet.. !!

1. LSM9DS0 -anturi

STMicroelectronicsin valmistama 3-in-1-anturi LSM9DS0 on järjestelmäpaketti, jossa on 3D-digitaalinen lineaarinen kiihtyvyysanturi, 3D-digitaalinen kulmanopeusanturi ja 3D-digitaalinen magneettianturi. LSM9DS0: n koko lineaarinen kiihtyvyysasteikko on ± 2 g/± 4 g/± 6 g/± 8 g/± 16 g, magneettikentän täysi asteikko ± 2/± 4/± 8/± 12 gauss ja kulmanopeus ± 245 /± 500/± 2000 dps.

2. Adafruit Huzzah ESP8266

Espressifin ESP8266-prosessori on 80 MHz: n mikro-ohjain, jossa on täysi WiFi-käyttöliittymä (sekä asiakas- että tukiasemana) ja TCP/IP-pino DNS-tuella. ESP8266 on uskomaton alusta IoT -sovellusten kehittämiseen. ESP8266 tarjoaa kypsän alustan sovellusten seurantaan ja hallintaan käyttämällä Arduino Wire Language -kieltä ja Arduino IDE: tä.

3. ESP8266 USB -ohjelmoija

hänen ESP8266 -isäntäsovittimensa on suunnitellut erityisesti Dcube Store ESP8266: n Adafruit Huzzah -versiolle, mikä mahdollistaa I²C -käyttöliittymän.

4. I2C -liitäntäkaapeli

5. Mini USB -kaapeli

Mini -USB -kaapeli Virtalähde on ihanteellinen valinta Adafruit Huzzah ESP8266: n virtalähteeksi.

Vaihe 2: Laitteistoyhteydet

Laitteiston liitännät
Laitteiston liitännät
Laitteiston liitännät
Laitteiston liitännät
Laitteiston liitännät
Laitteiston liitännät

Yleensä yhteyksien luominen on helpoin osa tätä projektia. Noudata ohjeita ja kuvia, eikä sinulla pitäisi olla ongelmia.

Ota ensin Adafruit Huzzah ESP8266 ja aseta USB -ohjelmoija (sisäänpäin suuntautuvalla I²C -portilla) sen päälle. Paina USB -ohjelmoijaa varovasti, ja olemme tehneet tämän vaiheen yhtä helposti kuin piirakka (katso yllä oleva kuva).

Anturin ja Adafruit Huzzah ESP8266: n liitäntä Ota anturi ja liitä I²C -kaapeli sen kanssa. Jotta tämä kaapeli toimisi oikein, muista, että I²C -lähtö kytketään AINA I²C -tuloon. Samaa oli noudatettava Adafruit Huzzah ESP8266 -laitteessa, johon oli asennettu USB -ohjelmoija (katso yllä oleva kuva).

ESP8266 USB -ohjelmoijan avulla ESP: n ohjelmointi on erittäin helppoa. Sinun tarvitsee vain kytkeä anturi USB -ohjelmoijaan ja olet valmis lähtemään. Käytämme mieluummin tätä sovitinta, koska se helpottaa huomattavasti laitteiston liittämistä. Ei hätää juottamalla ESP -nastat anturiin tai lukemalla nastakaavioita ja lomaketta. Voimme käyttää ja työskennellä useiden antureiden kanssa samanaikaisesti, sinun tarvitsee vain tehdä ketju. Ilman näitä plug and play USB -ohjelmoijia on olemassa suuri riski väärän yhteyden muodostamisesta. Huono johdotus voi tappaa sekä langattoman verkon että anturin.

Huomautus: Ruskean johdon tulee aina seurata maadoitusliitäntää (GND) yhden laitteen ulostulon ja toisen laitteen tulon välillä.

Piirin virta

Liitä Mini USB -kaapeli Adafruit Huzzah ESP8266 -laitteen virtaliitäntään. Sytytä se ja voila, meillä on hyvä mennä!

Vaihe 3: Koodi

Koodi
Koodi

Adafruit Huzzah ESP8266- ja LSM9DS0 -anturin ESP -koodi on saatavana github -arkistostamme.

Ennen kuin jatkat koodia, muista lukea Readme -tiedoston ohjeet ja asentaa Adafruit Huzzah ESP8266 sen mukaan. ESP: n määrittäminen kestää vain 5 minuuttia.

Koodi on pitkä, mutta se on yksinkertaisimmassa muodossa, jonka voit kuvitella, eikä sinulla ole vaikeuksia ymmärtää sitä.

Voit myös kopioida anturin toimivan ESP -koodin täältä:

// Levitetään vapaaehtoisella lisenssillä. // LSM9DSO // Tämä koodi on suunniteltu toimimaan TCS3414_I2CS I2C Mini -moduulin kanssa, joka on saatavana osoitteesta dcubestore.com.

#sisältää

#sisältää

#sisältää

#sisältää

// LSM9DSO Gyro I2C -osoite on 6A (106)

#define Addr_Gyro 0x6A // LSM9DSO Accl I2C -osoite on 1E (30) #define Addr_Accl 0x1E

const char* ssid = "sinun ssid";

const char* password = "salasanasi"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;

ESP8266WebServer -palvelin (80);

tyhjä kädensija ()

{unsigned int data [6];

// Käynnistä I2C -lähetys

Wire.beginTransmission (Addr_Gyro); // Valitse ohjausrekisteri 1 Wire.write (0x20); // Tiedonsiirtonopeus = 95 Hz, X, Y, Z-akseli käytössä, virta päällä Wire.write (0x0F); // Pysäytä I2C -lähetys Wire.endTransmission ();

// Käynnistä I2C -lähetys

Wire.beginTransmission (Addr_Gyro); // Valitse ohjausrekisteri 4 Wire.write (0x23); // Täysimittainen 2000 dps, jatkuva päivitys Wire.write (0x30); // Pysäytä I2C -lähetys Wire.endTransmission ();

// Käynnistä I2C -lähetys

Wire.beginTransmission (Addr_Accl); // Valitse ohjausrekisteri 1 Wire.write (0x20); // Kiihtyvyysdata = 100 Hz, X, Y, Z-akseli käytössä, virta päällä Wire.write (0x67); // Pysäytä I2C -lähetys laitteessa Wire.endTransmission ();

// Käynnistä I2C -lähetys

Wire.beginTransmission (Addr_Accl); // Valitse ohjausrekisteri 2 Wire.write (0x21); // Koko asteikon valinta +/- 16 g Wire.write (0x20); // Pysäytä I2C -lähetys Wire.endTransmission ();

// Käynnistä I2C -lähetys

Wire.beginTransmission (Addr_Accl); // Valitse ohjausrekisteri 5 Wire.write (0x24); // Magneettinen korkea resoluutio, lähtö datanopeus = 50 Hz Wire.write (0x70); // Pysäytä I2C -lähetys Wire.endTransmission ();

// Käynnistä I2C -lähetys

Wire.beginTransmission (Addr_Accl); // Valitse ohjausrekisteri 6 Wire.write (0x25); // Magneettinen täysimittainen +/- 12 gauss Wire.write (0x60); // Pysäytä I2C -lähetys Wire.endTransmission ();

// Käynnistä I2C -lähetys

Wire.beginTransmission (Addr_Accl); // Valitse ohjausrekisteri 7 Wire.write (0x26); // Normaalitila, magneettinen jatkuva muuntotila Wire.write (0x00); // Pysäytä I2C -lähetys Wire.endTransmission (); viive (300);

for (int i = 0; i <6; i ++) {// Käynnistä I2C Transmission Wire.beginTransmission (Addr_Gyro); // Valitse tietorekisteri Wire.write ((40 + i)); // Pysäytä I2C -lähetys Wire.endTransmission ();

// Pyydä 1 tavu dataa

Wire.requestFrom (Addr_Gyro, 1);

// Lue 6 tavua dataa

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

// Muunna tiedot

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

for (int i = 0; i <6; i ++) {// Käynnistä I2C Transmission Wire.beginTransmission (Addr_Accl); // Valitse tietorekisteri Wire.write ((40 + i)); // Pysäytä I2C -lähetys Wire.endTransmission ();

// Pyydä 1 tavu dataa

Wire.requestFrom (Addr_Accl, 1);

// Lue 6 tavua dataa

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

// Muunna tiedot

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

for (int i = 0; i <6; i ++) {// Käynnistä I2C Transmission Wire.beginTransmission (Addr_Accl); // Valitse tietorekisteri Wire.write ((8 + i)); // Pysäytä I2C -lähetys Wire.endTransmission ();

// Pyydä 1 tavu dataa

Wire.requestFrom (Addr_Accl, 1);

// Lue 6 tavua dataa

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

// Muunna tiedot

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

// Tulostustiedot sarjamittarille

Serial.print ("X-pyörimisakseli:"); Sarja.println (xGyro); Serial.print ("Y-pyörimisakseli:"); Sarja.println (yGyro); Serial.print ("Z-pyörimisakseli:"); Sarja.println (zGyro); Serial.print ("Kiihtyvyys X-akselissa:"); Sarja.println (xAccl); Serial.print ("Kiihtyvyys Y-akselilla:"); Sarja.println (yAccl); Serial.print ("Kiihtyvyys Z-akselissa:"); Sarja.println (zAccl); Serial.print ("Magneettikenttä X-akselilla:"); Sarja.println (xMag); Serial.print ("Magneettikenttä Y-akselilla:"); Sarja.println (yMag); Serial.print ("Magneettinen arkisto Z-akselilla:"); Sarja.println (zMag);

// Tulostustiedot verkkopalvelimelle

server.sendContent ("

DCUBE -KAUPPA

www.dcubestore.com

"" LSM9DS0 -anturin I2C -minimoduuli

);

server.sendContent ("

X-pyörimisakseli = " + Jono (xGyro)); server.sendContent ("

Y-kiertoakseli = " + Jono (yGyro)); server.sendContent ("

Z-kiertoakseli = " + Jono (zGyro)); server.sendContent ("

Kiihtyvyys X-akselilla = " + merkkijono (xAccl)); server.sendContent ("

Kiihtyvyys Y-akselilla = " + merkkijono (yAccl)); server.sendContent ("

Z-akselin kiihtyvyys = " + merkkijono (zAccl)); server.sendContent ("

Magneettinen arkistoitu X-akselille = " + merkkijono (xMag)); server.sendContent ("

Magneettinen arkistoitu Y-akseliin = " + Jono (yMag)); server.sendContent ("

Magneettinen arkistoitu Z-akselilla = " + merkkijono (zMag)); viive (1000);}

mitätön asennus ()

{// Alusta I2C -viestintä MASTER Wire.begin (2, 14); // Alusta sarjaliikenne, aseta baudinopeus = 115200 Serial.begin (115200);

// Yhdistä WiFi -verkkoon

WiFi.begin (ssid, salasana);

// Odota yhteyttä

while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } Sarja.println (""); Serial.print ("Yhdistetty"); Sarja.println (ssid);

// Hanki ESP8266: n IP -osoite

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

// Käynnistä palvelin

server.on ("/", käsikäyttö); server.begin (); Serial.println ("HTTP -palvelin käynnistetty"); }

tyhjä silmukka ()

{server.handleClient (); }

Vaihe 4: Koodin käyttö

Koodin toiminta
Koodin toiminta

Lataa nyt (tai git pull) koodi ja avaa se Arduino IDE: ssä.

Käännä ja lähetä koodi ja katso tulos Serial Monitorista.

Huomautus: Varmista ennen lataamista, että kirjoitat SSID -verkon ja salasanan koodiin.

Kopioi ESP8266: n IP -osoite sarjamonitorista ja liitä se selaimeesi. Näet verkkosivun, jossa on pyörimisakseli, kiihtyvyys ja magneettikentän lukema 3-akselilla.

Anturin lähtö Serial Monitorissa ja Web -palvelimessa näkyy yllä olevassa kuvassa.

Vaihe 5: Sovellukset ja ominaisuudet

LSM9DS0 on pakettijärjestelmä, jossa on 3D-digitaalinen lineaarinen kiihtyvyysanturi, 3D-digitaalinen kulmanopeusanturi ja 3D-digitaalinen magneettianturi. Näitä kolmea ominaisuutta mittaamalla voit saada paljon tietoa esineen liikkeestä. Mittaamalla magneettikentän voiman ja suunnan magnetometrillä voit arvioida suunnan. Puhelimesi kiihtyvyysmittari voi mitata painovoiman suunnan ja arvioida suunnan (pysty, vaaka, tasainen jne.). Nelikopterit, joissa on sisäänrakennettu gyroskooppi, voivat varoa äkillisiä rullauksia tai nousuja. Voimme käyttää tätä globaalissa paikannusjärjestelmässä (GPS).

Joitakin muita sovelluksia ovat sisätilojen navigointi, älykkäät käyttöliittymät, edistynyt eleiden tunnistus, pelaaminen ja virtuaalitodellisuuden syöttölaitteet jne.

ESP8266: n avulla voimme lisätä sen kapasiteettia pidemmälle. Voimme hallita laitteitamme ja valvoa niiden suorituskykyä pöytäkoneiltamme ja mobiililaitteistamme. Voimme tallentaa ja hallita tietoja verkossa ja tutkia niitä milloin tahansa muutoksia varten. Lisää sovelluksia ovat kotiautomaatio, mesh-verkko, teollinen langaton ohjaus, vauvamonitorit, anturiverkot, puettava elektroniikka, Wi-Fi-sijaintitietoiset laitteet, Wi-Fi-paikannusjärjestelmän majakat.

Vaihe 6: Resursseja eteenpäin

Lisätietoja LSM9DS0: sta ja ESP8266: sta löydät alla olevista linkeistä:

  • LSM9DS0 anturin tuoteseloste
  • LSM9DS0 kytkentäkaavio
  • ESP8266 tuotetiedot

Suositeltava: