Sisällysluettelo:
- Vaihe 1: Tarvitsemamme laitteet..
- Vaihe 2: Laitteistoyhteydet
- Vaihe 3: Koodi
- Vaihe 4: Koodin käyttö
- Vaihe 5: Sovellukset ja ominaisuudet
- Vaihe 6: Resursseja eteenpäin
Video: Kartan suuntaus verkkopalvelimen kautta: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
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..
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
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
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ö
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:
Internet -ohjattu merkkivalo ESP32 -pohjaisen verkkopalvelimen avulla: 10 vaihetta
Internet-ohjattu LED-valo ESP32-pohjaisen verkkopalvelimen avulla: Projektin yleiskatsaus Tässä esimerkissä selvitämme, miten ESP32-pohjainen verkkopalvelin voidaan valvoa LED-tilaa, johon pääsee kaikkialta maailmasta. Tarvitset Mac -tietokoneen tähän projektiin, mutta voit käyttää tätä ohjelmistoa jopa i
ESP 8266 Nodemcu Ws 2812 Neopixel -pohjainen LED -MOOD -lamppu, jota ohjataan verkkopalvelimen avulla: 6 vaihetta
ESP 8266 Nodemcu Ws 2812 Neopixel -pohjainen LED -MOOD -lamppu, jota ohjataan verkkopalvelimen avulla: Tässä projektissa teemme MOOD -lampun nodemcu & neopixel ja jota voidaan ohjata millä tahansa selaimella paikallisen verkkopalvelimen avulla
Ohjaa laitteita Internetin kautta selaimen kautta. (IoT): 6 vaihetta
Ohjaa laitteita Internetin kautta selaimen kautta. (IoT): Tässä ohjeessa näytän sinulle, kuinka voit ohjata laitteita, kuten LED-valoja, releitä, moottoreita jne. Internetin kautta verkkoselaimen kautta. Ja voit käyttää ohjaimia turvallisesti millä tahansa laitteella. Tässä käyttämäni verkkoalusta on RemoteMe.org -vierailu
MIDI -kartan luominen BCD3000: lle Traktor Prossa: 6 vaihetta
MIDI-kartan luominen BCD3000: lle Traktor Prossa: Tämä vie sinut vaihe vaiheelta omien mukautettujen tsi-MIDI-karttojen luomiseen Traktor Prossa Behringerin DEEJAY BCD3000: lle
Tiedostojen siirtäminen lähiverkon kautta BitTorrentin kautta: 6 vaihetta
Tiedostojen siirtäminen lähiverkon kautta BitTorrentin kautta: Joskus sinun on ehkä siirrettävä tiedostoja verkon kautta useille tietokoneille. Vaikka voit laittaa sen flash -asemaan tai CD/DVD -levylle, sinun on mentävä jokaiseen tietokoneeseen kopioimalla tiedostot, ja kaikkien tiedostojen kopioiminen voi viedä hetken (etenkin f