Tartalomjegyzék:

Térkép orientáció webszerveren keresztül: 6 lépés
Térkép orientáció webszerveren keresztül: 6 lépés

Videó: Térkép orientáció webszerveren keresztül: 6 lépés

Videó: Térkép orientáció webszerveren keresztül: 6 lépés
Videó: Battlefield 2042 - Alle wichtigen Einstellungen für den Multiplayer in 2023 [Controller, Update, PS] 2024, December
Anonim
Térkép orientáció webszerveren keresztül
Térkép orientáció webszerveren keresztül

A dolgok internete (IoT) az egyik legnépszerűbb téma a bolygón. És napról napra gyorsan növekszik az Internet segítségével. A tárgyak internete az egyszerű otthonokat intelligens otthonokká változtatja, ahol a lámpáktól a zárakig mindent okostelefonjáról vagy asztaláról vezérelhet. Ez az a luxus, amelyre mindenki vágyik.

Mindig a megszerzett eszközökkel játszunk, és azon dolgozunk, hogy továbblépjünk a határaink következő lépcsőjéhez. Igyekszünk ügyfeleinknek képet adni a legújabb technológiákról és ötletekről. Tehát, hogy otthonát intelligens otthonokká alakíthassa, és minden erőfeszítés nélkül élvezhesse a luxus ízét.

Ma az IoT egyik legfontosabb témáján - a digitális térképorientáción - dolgozunk.

Felépítünk egy webszervert, amelyen keresztül nyomon követhetjük bármely eszköz vagy dolog mozgását (Rajtad múlik, kit kérsz;). Mindig elgondolkodhat azon, hogy ezt a projektet a következő szintre emelje bizonyos módosításokkal, és ne felejtse el elmondani nekünk az alábbi megjegyzésekben.

Kezdjük, mint.. !!

1. lépés: Berendezés, amire szükségünk van

Felszerelés, amire szükségünk van !!
Felszerelés, amire szükségünk van !!
Felszerelés, amire szükségünk van !!
Felszerelés, amire szükségünk van !!
Felszerelés, amire szükségünk van !!
Felszerelés, amire szükségünk van !!
Felszerelés, amire szükségünk van !!
Felszerelés, amire szükségünk van !!

1. LSM9DS0 érzékelő

Az STMicroelectronics által gyártott 3 az 1-ben érzékelő, az LSM9DS0 egy csomagban lévő rendszer, amely 3D digitális lineáris gyorsulásérzékelőt, 3D digitális szögsebesség-érzékelőt és 3D digitális mágneses érzékelőt tartalmaz. Az LSM9DS0 lineáris gyorsulási skálája ± 2 g/± 4 g/± 6 g/± 8 g/± 16 g, mágneses mező teljes skála ± 2/± 4/± 8/± 12 gauss és szögsebessége ± 245 /± 500/± 2000 dps.

2. Adafruit Huzzah ESP8266

Az Espressif ESP8266 processzora egy 80 MHz-es mikrokontroller, teljes WiFi előlappal (ügyfélként és hozzáférési pontként is), valamint TCP/IP veremmel, DNS támogatással. Az ESP8266 egy hihetetlen platform az IoT -alkalmazások fejlesztéséhez. Az ESP8266 kiforrott platformot kínál az alkalmazások felügyeletéhez és vezérléséhez az Arduino Wire Language és az Arduino IDE használatával.

3. ESP8266 USB programozó

ESP8266 hosztadapterét kifejezetten a Dcube Store tervezte az ESP8266 Adafruit Huzzah verziójához, lehetővé téve az I²C felületet.

4. I2C csatlakozó kábel

5. Mini USB kábel

A mini USB kábel A tápegység ideális választás az Adafruit Huzzah ESP8266 tápellátásához.

2. lépés: Hardverkapcsolatok

Hardver kapcsolatok
Hardver kapcsolatok
Hardver kapcsolatok
Hardver kapcsolatok
Hardver kapcsolatok
Hardver kapcsolatok

Általában a kapcsolatok létrehozása a legegyszerűbb része ennek a projektnek. Kövesse az utasításokat és a képeket, és nem lehet probléma.

Először is vegye fel az Adafruit Huzzah ESP8266 készüléket, és helyezze rá az USB programozót (befelé néző I²C porttal). Óvatosan nyomja meg az USB programozót, és készen vagyunk ezzel a lépéssel, ami olyan egyszerű, mint a pite (lásd a fenti képet).

Az érzékelő és az Adafruit Huzzah ESP8266 csatlakoztatása Fogja meg az érzékelőt, és csatlakoztassa vele az I²C kábelt. A kábel megfelelő működéséhez ne feledje, hogy az I²C kimenet MINDIG az I²C bemenethez csatlakozik. Ugyanezt kellett követni az Adafruit Huzzah ESP8266 esetében is, amelyre az USB -programozót szerelték (lásd a fenti képet).

Az ESP8266 USB programozó segítségével az ESP programozása nagyon egyszerű. Mindössze annyit kell tennie, hogy csatlakoztatja az érzékelőt az USB programozóhoz, és már indulhat is. Inkább ezt az adaptert használjuk, mert sokkal könnyebb a hardver csatlakoztatása. Nem kell aggódnia, hogy az ESP csapjait az érzékelőhöz forrasztja, vagy a pin diagramokat és az adatlapot olvassa. Egyidejűleg több érzékelőt is használhatunk és dolgozhatunk rajtuk, csak láncot kell készíteni. Ezek nélkül a plug and play USB programozó nélkül nagy a veszélye annak, hogy rossz kapcsolatot létesít. A rossz huzalozás megölheti a wifit és az érzékelőt.

Megjegyzés: A barna vezetéknek mindig követnie kell a föld (GND) kapcsolatot az egyik eszköz kimenete és egy másik eszköz bemenete között.

Az áramkör áramellátása

Csatlakoztassa a Mini USB kábelt az Adafruit Huzzah ESP8266 tápcsatlakozójához. Gyújts rá és íme, már indulhatunk is!

3. lépés: Kód

Kód
Kód

Az Adafruit Huzzah ESP8266 és LSM9DS0 érzékelő ESP kódja elérhető a github tárházunkban.

Mielőtt folytatná a kódot, feltétlenül olvassa el a Readme fájlban található utasításokat, és állítsa be az Adafruit Huzzah ESP8266 készüléket ennek megfelelően. Az ESP beállítása mindössze 5 percet vesz igénybe.

A kód hosszú, de a legegyszerűbb formában képzelhető el, és nem lesz nehéz megérteni.

Az Ön kényelme érdekében innen is másolhatja az érzékelő működő ESP -kódját:

// Szabad akaratú licenccel terjesztve. // LSM9DSO // Ez a kód a dcubestore.com webhelyen elérhető TCS3414_I2CS I2C mini modullal való együttműködésre készült.

#befoglalni

#befoglalni

#befoglalni

#befoglalni

// Az LSM9DSO Gyro I2C címe 6A (106)

#define Addr_Gyro 0x6A // LSM9DSO Accl I2C cím 1E (30) #define Addr_Accl 0x1E

const char* ssid = "a te ssid";

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

ESP8266WebServer szerver (80);

üres fogantyú ()

{unsigned int data [6];

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr_Gyro); // Vezérlőregiszter kiválasztása 1 Wire.write (0x20); // Adatsebesség = 95 Hz, X, Y, Z-tengely engedélyezve, bekapcsolás a Wire.write (0x0F); // Stop I2C Transmission Wire.endTransmission ();

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr_Gyro); // Vezérlőregiszter kiválasztása 4 Wire.write (0x23); // Teljes skála 2000 dps, folyamatos frissítés Wire.write (0x30); // Stop I2C Transmission Wire.endTransmission ();

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr_Accl); // Vezérlőregiszter kiválasztása 1 Wire.write (0x20); // Gyorsulási adatsebesség = 100 Hz, X, Y, Z-tengely engedélyezve, bekapcsolás a Wire.write-en (0x67); // Az I2C átvitel leállítása a készüléken Wire.endTransmission ();

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr_Accl); // Vezérlőregiszter kiválasztása 2 Wire.write (0x21); // Teljes skálaválaszték +/- 16g Wire.write (0x20); // Stop I2C Transmission Wire.endTransmission ();

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr_Accl); // Vezérlőregiszter kiválasztása 5 Wire.write (0x24); // Mágneses nagy felbontás, kimeneti adatsebesség = 50Hz Wire.write (0x70); // Stop I2C Transmission Wire.endTransmission ();

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr_Accl); // Vezérlőregiszter kiválasztása 6 Wire.write (0x25); // Mágneses teljes skála +/- 12 gauss Wire.write (0x60); // Stop I2C Transmission Wire.endTransmission ();

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr_Accl); // Vezérlőregiszter kiválasztása 7 Wire.write (0x26); // Normál mód, mágneses folyamatos átalakítási mód Wire.write (0x00); // Stop I2C Transmission Wire.endTransmission (); késleltetés (300);

for (int i = 0; i <6; i ++) {// Indítsa el az I2C átviteli vezetéket.beginTransmission (Addr_Gyro); // Adatregiszter kiválasztása Wire.write ((40 + i)); // Stop I2C Transmission Wire.endTransmission ();

// 1 bájt adat kérése

Wire.requestFrom (Addr_Gyro, 1);

// 6 bájt adat olvasása

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

// Konvertálja az adatokat

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

for (int i = 0; i <6; i ++) {// Indítsa el az I2C átviteli vezetéket.beginTransmission (Addr_Accl); // Adatregiszter kiválasztása Wire.write ((40 + i)); // Stop I2C Transmission Wire.endTransmission ();

// 1 bájt adat kérése

Wire.requestFrom (Addr_Accl, 1);

// 6 bájt adat olvasása

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

// Konvertálja az adatokat

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

for (int i = 0; i <6; i ++) {// Indítsa el az I2C átviteli vezetéket.beginTransmission (Addr_Accl); // Adatregiszter kiválasztása Wire.write ((8 + i)); // Stop I2C Transmission Wire.endTransmission ();

// 1 bájt adat kérése

Wire.requestFrom (Addr_Accl, 1);

// 6 bájt adat olvasása

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

// Konvertálja az adatokat

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

// Adatok kimenete soros monitorra

Serial.print ("X forgástengely:"); Soros.println (xGyro); Serial.print ("Y-forgástengely:"); Soros.println (yGyro); Serial.print ("Z forgástengely:"); Soros.println (zGyro); Serial.print ("Gyorsulás az X-tengelyben:"); Sorozat.println (xAccl); Serial.print ("Gyorsulás az Y tengelyen:"); Soros.println (yAccl); Serial.print ("Gyorsulás Z-tengelyben:"); Soros.println (zAccl); Serial.print ("Mágneses mező az X-tengelyen:"); Soros.println (xMag); Serial.print ("Mágneses mező az Y tengelyen:"); Soros.println (yMag); Serial.print ("Mágneses fájl Z-tengelyben:"); Soros.println (zMag);

// Adatok kimenete a webszerverre

server.sendContent ("

DCUBE ÁRUHÁZ

www.dcubestore.com

"" LSM9DS0 érzékelő I2C mini modul

);

server.sendContent ("

X-forgástengely = " + String (xGyro)); server.sendContent ("

Y-forgástengely = " + String (yGyro)); server.sendContent ("

Z-forgástengely = " + String (zGyro)); server.sendContent ("

Gyorsulás az X-tengelyben = " + String (xAccl)); server.sendContent ("

Gyorsulás az Y tengelyben = " + String (yAccl)); server.sendContent ("

Gyorsulás a Z-tengelyben = " + String (zAccl)); server.sendContent ("

Mágneses fájl az X-tengelyben = " + String (xMag)); server.sendContent ("

Mágneses fájl Y-tengelyben = " + String (yMag)); server.sendContent ("

Mágneses fájl Z-tengelyben = " + String (zMag)); késleltetés (1000);}

üres beállítás ()

{// Inicializálja az I2C kommunikációt MASTER Wire néven.begin (2, 14); // Soros kommunikáció inicializálása, adatátviteli sebesség beállítása = 115200 Serial.begin (115200);

// Csatlakozás WiFi hálózathoz

WiFi.begin (ssid, jelszó);

// Várja meg a csatlakozást

while (WiFi.status ()! = WL_CONNECTED) {delay (500); Soros.nyomtatás ("."); } Soros.println (""); Serial.print ("Csatlakoztatva"); Soros.println (ssid);

// Szerezze be az ESP8266 IP -címét

Serial.print ("IP -cím:"); Serial.println (WiFi.localIP ());

// Indítsa el a szervert

server.on ("/", handroot); szerver.begin (); Serial.println ("HTTP szerver elindult"); }

üres hurok ()

{server.handleClient (); }

4. lépés: A kód működése

A kód működése
A kód működése

Most töltse le (vagy git pull) a kódot, és nyissa meg az Arduino IDE -ben.

Fordítsa össze és töltse fel a kódot, és nézze meg a kimenetet a Serial Monitoron.

Megjegyzés: Feltöltés előtt feltétlenül írja be az SSID -hálózatot és a jelszót a kódba.

Másolja ki az ESP8266 IP -címét a soros monitorból, és illessze be a böngészőbe. Látni fog egy weboldalt, amely a 3 tengelyben a forgástengelyt, a gyorsulást és a mágneses mező leolvasását tartalmazza.

Az érzékelő kimenete a soros monitoron és a webszerveren a fenti képen látható.

5. lépés: Alkalmazások és szolgáltatások

Az LSM9DS0 egy csomagban lévő rendszer, amely 3D digitális lineáris gyorsulásérzékelőt, 3D digitális szögsebesség-érzékelőt és 3D digitális mágneses érzékelőt tartalmaz. E három tulajdonság mérésével sok ismeretet szerezhet egy tárgy mozgásáról. A Föld mágneses mezőjének erejét és irányát magnetométerrel mérve közelítheti az irányt. A telefon gyorsulásmérője meg tudja mérni a gravitációs erő irányát, és megbecsülheti a tájolást (álló, fekvő, lapos stb.). A beépített giroszkóppal rendelkező quadcopterek figyelhetnek a hirtelen elgurulásokra vagy dőlésekre. Ezt használhatjuk a globális helymeghatározó rendszerben (GPS).

További alkalmazások közé tartozik a beltéri navigáció, az intelligens felhasználói felületek, a fejlett gesztusfelismerés, a játék- és virtuális valóság -beviteli eszközök stb.

Az ESP8266 segítségével nagyobb hosszúságra növelhetjük kapacitását. Irányíthatjuk készülékeinket, és monitorozhatjuk azok teljesítményét asztali számítógépeinkről és mobil eszközeinkről. Az adatokat online tárolhatjuk és kezelhetjük, és bármikor tanulmányozhatjuk azokat a módosítások érdekében. További alkalmazások közé tartozik az otthonautomatizálás, a hálóhálózat, az ipari vezeték nélküli vezérlés, a bébiőrök, az érzékelőhálózatok, a hordható elektronika, a Wi-Fi helyérzékeny eszközök, a Wi-Fi helyzetrendszer jelzőfényei.

6. lépés: Erőforrások a továbblépéshez

Ha többet szeretne megtudni az LSM9DS0 és ESP8266 eszközökről, nézze meg az alábbi linkeket:

  • LSM9DS0 érzékelő adatlapja
  • LSM9DS0 bekötési rajz
  • ESP8266 Adatlap

Ajánlott: