Sisukord:

Kaardi orientatsioon veebiserveri kaudu: 6 sammu
Kaardi orientatsioon veebiserveri kaudu: 6 sammu

Video: Kaardi orientatsioon veebiserveri kaudu: 6 sammu

Video: Kaardi orientatsioon veebiserveri kaudu: 6 sammu
Video: Польша - Аренда квартир в Польше | 4 важных совета 2024, Juuli
Anonim
Kaardi orientatsioon veebiserveri kaudu
Kaardi orientatsioon veebiserveri kaudu

Asjade Internet (IoT) on praegu planeedil üks populaarsemaid teemasid. Ja see kasvab Internetiga kiiresti iga päevaga. Asjade Internet muudab lihtsad kodud nutikodudeks, kus nutitelefonist või lauaarvutist saab juhtida kõike, alates valgustitest ja lukkudest. See on luksus, mida kõik tahavad omada.

Mängime alati saadud tööriistadega ja jätkame tööd, et minna oma piiride järgmise sammu juurde. Püüame anda oma kliendile nägemuse uusimatest tehnoloogiatest ja ideedest. Niisiis, et saate muuta oma kodu nutikateks kodudeks ja nautida luksusmaitset ilma palju vaeva nägemata.

Täna mõtleme IoT ühe olulisema teema - digitaalse kaardi orientatsiooni - kallale.

Ehitame veebiserveri, mille kaudu saame jälgida mis tahes seadme või asja liikumist (see sõltub sinust, keda sa nuhkid;)). Võite alati mõelda selle projekti mõnele muudatusele viimise järgmisele tasemele ja ärge unustage meile sellest allpool kommentaarides rääkida.

Alustame kui.. !!

Samm: vajalikud seadmed..

Vajalikud seadmed.. !!
Vajalikud seadmed.. !!
Vajalikud seadmed.. !!
Vajalikud seadmed.. !!
Vajalikud seadmed.. !!
Vajalikud seadmed.. !!
Vajalikud seadmed.. !!
Vajalikud seadmed.. !!

1. LSM9DS0 andur

STMicroelectronics toodetud 3-ühes andur LSM9DS0 on pakendis süsteem, mis sisaldab 3D digitaalset lineaarset kiirendusandurit, 3D digitaalset nurkkiiruse andurit ja 3D digitaalset magnetandurit. LSM9DS0 lineaarse kiirenduse täisskaala on ± 2 g/± 4 g/± 6 g/± 8 g/± 16 g, magnetvälja täisskaala on ± 2/± 4/± 8/± 12 gauss ja nurkkiirus on 245 /± 500/± 2000 dps.

2. Adafruit Huzzah ESP8266

Espressifi ESP8266 protsessor on 80 MHz mikrokontroller, millel on täielik WiFi esipaneel (nii kliendina kui ka pääsupunktina) ja TCP/IP-virn, millel on ka DNS-tugi. ESP8266 on uskumatu platvorm asjade Interneti rakenduste arendamiseks. ESP8266 pakub küpset platvormi rakenduste jälgimiseks ja juhtimiseks, kasutades Arduino traadikeelt ja Arduino IDE -d.

3. ESP8266 USB programmeerija

tema ESP8266 hostiadapteri on spetsiaalselt välja töötanud Dcube Store ESP8266 Adafruit Huzzah versiooni jaoks, võimaldades I²C liidest.

4. I2C ühenduskaabel

5. Mini USB -kaabel

Mini -USB -kaabel Toide on ideaalne valik Adafruit Huzzah ESP8266 toiteks.

Samm: riistvaraühendused

Riistvaraühendused
Riistvaraühendused
Riistvaraühendused
Riistvaraühendused
Riistvaraühendused
Riistvaraühendused

Üldiselt on ühenduste loomine selle projekti kõige lihtsam osa. Järgige juhiseid ja pilte ning probleeme ei tohiks tekkida.

Kõigepealt võtke Adafruit Huzzah ESP8266 ja asetage sellele USB -programmeerija (sissepoole suunatud I²C -pordiga). Vajutage õrnalt USB -programmeerijat ja oleme selle sammuga sama lihtne kui pirukas (vt ülaltoodud pilti).

Anduri ja Adafruit Huzzah ESP8266 ühendamine Võtke andur ja ühendage sellega I²C kaabel. Selle kaabli nõuetekohaseks toimimiseks pidage meeles, et I²C väljund ühendub ALATI I²C sisendiga. Sama tuli järgida ka Adafruit Huzzah ESP8266 puhul, millele oli paigaldatud USB -programmeerija (vt ülaltoodud pilti).

ESP8266 USB programmeerija abil on ESP programmeerimine väga lihtne. Kõik, mida peate tegema, on ühendada andur USB -programmeerijaga ja teil on hea minna. Me eelistame seda adapterit kasutada, kuna see muudab riistvara ühendamise palju lihtsamaks. Ärge muretsege ESP -i tihvtide jootmise pärast anduriga ega tihvtide diagrammide ja andmelehe lugemist. Saame samaaegselt kasutada ja töötada mitme anduriga, peate lihtsalt ahela tegema. Ilma nende plug and play USB programmeerijata on suur oht vale ühenduse loomiseks. Halb juhtmestik võib tappa nii teie WiFi kui ka teie anduri.

Märkus. Pruun juhe peaks alati järgima maandusühendust (GND) ühe seadme väljundi ja teise seadme sisendi vahel.

Vooluahela toide

Ühendage Mini USB -kaabel Adafruit Huzzah ESP8266 toitepistikupessa. Pange see põlema ja voila, meil on hea minna!

3. samm: kood

Kood
Kood

Adafruit Huzzah ESP8266 ja LSM9DS0 anduri ESP -kood on saadaval meie githubi hoidlas.

Enne koodi juurde asumist lugege kindlasti läbi lugemisfailis antud juhised ja seadistage Adafruit Huzzah ESP8266 selle järgi. ESP seadistamine võtab vaid 5 minutit.

Kood on pikk, kuid see on kõige lihtsamal kujul, mida võite ette kujutada, ja teil pole selle mõistmisel raskusi.

Mugavuse huvides saate siit kopeerida ka selle anduri töötava ESP -koodi:

// Levitatakse vaba tahte litsentsiga. // LSM9DSO // See kood on loodud töötama TCS3414_I2CS I2C minimooduliga, mis on saadaval saidil dcubestore.com.

#kaasake

#kaasake

#kaasake

#kaasake

// LSM9DSO Gyro I2C aadress on 6A (106)

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

const char* ssid = "sinu ssid";

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

ESP8266WebServer server (80);

tühi käepide ()

{allkirjastamata int andmed [6];

// Käivitage I2C edastamine

Wire.beginTransmission (Addr_Gyro); // Vali juhtregister 1 Wire.write (0x20); // Andmeedastuskiirus = 95Hz, X, Y, Z-telg lubatud, toide Wire.write (0x0F); // Peata I2C ülekanne Wire.endTransmission ();

// Käivitage I2C edastamine

Wire.beginTransmission (Addr_Gyro); // Vali juhtregister 4 Wire.write (0x23); // Täismahus 2000 dps, pidev uuendamine Wire.write (0x30); // Peata I2C ülekanne Wire.endTransmission ();

// Käivitage I2C edastamine

Wire.beginTransmission (Addr_Accl); // Vali juhtregister 1 Wire.write (0x20); // Kiirenduse andmeedastuskiirus = 100 Hz, X, Y, Z-telg lubatud, toide Wire.write (0x67); // Peata I2C edastamine seadmel Wire.endTransmission ();

// Käivitage I2C edastamine

Wire.beginTransmission (Addr_Accl); // Vali juhtregister 2 Wire.write (0x21); // Täielik skaala valik +/- 16g Wire.write (0x20); // Peata I2C ülekanne Wire.endTransmission ();

// Käivitage I2C edastamine

Wire.beginTransmission (Addr_Accl); // Vali juhtregister 5 Wire.write (0x24); // Magnetiline kõrge eraldusvõime, andmeedastuskiirus = 50Hz Wire.write (0x70); // Peata I2C ülekanne Wire.endTransmission ();

// Käivitage I2C edastamine

Wire.beginTransmission (Addr_Accl); // Vali juhtregister 6 Wire.write (0x25); // Magnetiline täisskaala +/- 12 gauss Wire.write (0x60); // Peata I2C ülekanne Wire.endTransmission ();

// Käivitage I2C edastamine

Wire.beginTransmission (Addr_Accl); // Vali juhtregister 7 Wire.write (0x26); // Tavarežiim, magnetilise pideva teisendamise režiim Wire.write (0x00); // Peata I2C ülekanne Wire.endTransmission (); viivitus (300);

for (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Gyro); // Valige andmeregister Wire.write ((40 + i)); // Peata I2C ülekanne Wire.endTransmission ();

// Taotle 1 baiti andmeid

Wire.requestFrom (Addr_Gyro, 1);

// Lugege 6 baiti andmeid

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

// Teisendage andmed

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

for (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Accl); // Valige andmeregister Wire.write ((40 + i)); // Peata I2C ülekanne Wire.endTransmission ();

// Taotle 1 baiti andmeid

Wire.requestFrom (Addr_Accl, 1);

// Lugege 6 baiti andmeid

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

// Teisendage andmed

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

for (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Accl); // Valige andmeregister Wire.write ((8 + i)); // Peata I2C ülekanne Wire.endTransmission ();

// Taotle 1 baiti andmeid

Wire.requestFrom (Addr_Accl, 1);

// Lugege 6 baiti andmeid

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

// Teisendage andmed

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

// Andmete väljastamine jadamonitorile

Serial.print ("Pöörlemise X-telg:"); Serial.println (xGyro); Serial.print ("Y-pöörlemistelg:"); Serial.println (yGyro); Serial.print ("Z-pöörlemistelg:"); Serial.println (zGyro); Serial.print ("Kiirendus X-teljel:"); Serial.println (xAccl); Serial.print ("Kiirendus Y-teljel:"); Serial.println (yAccl); Serial.print ("Kiirendus Z-teljel:"); Serial.println (zAccl); Serial.print ("Magnetväli X-teljel:"); Serial.println (xMag); Serial.print ("Magnetväli Y-teljel:"); Serial.println (yMag); Serial.print ("Magnetiline arhiiv Z-teljel:"); Serial.println (zMag);

// Andmete väljastamine veebiserverisse

server.sendContent ("

DCUBE POOD

www.dcubestore.com

"" LSM9DS0 anduri I2C minimoodul

);

server.sendContent ("

Pöörlemise X-telg = " + string (xGyro)); server.sendContent ("

Pöörlemistelg Y-telg = " + string (yGyro)); server.sendContent ("

Pöörlemistelg Z-telg = " + string (zGyro)); server.sendContent ("

Kiirendus X-teljel = " + string (xAccl)); server.sendContent ("

Kiirendus Y-teljel = " + string (yAccl)); server.sendContent ("

Kiirendus Z-teljel = " + string (zAccl)); server.sendContent ("

Magnetiline on esitatud X-teljel = " + string (xMag)); server.sendContent ("

Magnetiline esitatakse Y-teljel = " + string (yMag)); server.sendContent ("

Z-teljel olev magnetiline = " + string (zMag)); viivitus (1000);}

tühine seadistus ()

{// Initsialiseeri I2C side kui MASTER Wire.begin (2, 14); // Initsialiseeri jadaühendus, määrake edastuskiirus = 115200 Serial.begin (115200);

// WiFi -võrguga ühenduse loomine

WiFi.begin (ssid, parool);

// Oota ühendust

while (WiFi.status ()! = WL_CONNECTED) {delay (500); Seeria.print ("."); } Serial.println (""); Serial.print ("Ühendatud"); Serial.println (ssid);

// Hankige ESP8266 IP -aadress

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

// Käivitage server

server.on ("/", käepide); server.begin (); Serial.println ("HTTP -server käivitati"); }

tühine tsükkel ()

{server.handleClient (); }

Samm: koodi töötamine

Koodi töötamine
Koodi töötamine

Nüüd laadige kood alla (või tõmmake see alla) ja avage see Arduino IDE -s.

Kompileerige ja laadige kood üles ning vaadake Serial Monitori väljundit.

Märkus. Enne üleslaadimist sisestage kindlasti oma SSID -võrk ja parool.

Kopeerige jadamonitorist ESP8266 IP -aadress ja kleepige see oma veebibrauserisse. Näete 3-teljelist pöörlemistelje, kiirenduse ja magnetvälja lugemisega veebilehte.

Anduri väljund jadamonitoril ja veebiserveril on näidatud ülaltoodud pildil.

Samm: rakendused ja funktsioonid

LSM9DS0 on pakendis süsteem, mis sisaldab 3D digitaalset lineaarset kiirendusandurit, 3D digitaalset nurkkiiruse andurit ja 3D digitaalset magnetandurit. Mõõtes neid kolme omadust, saate objekti liikumise kohta palju teadmisi. Mõõtes magnetomeetriga Maa magnetvälja jõudu ja suunda, saate oma suunda ligikaudselt hinnata. Telefonis olev kiirendusmõõtur saab mõõta raskusjõu suunda ja hinnata orientatsiooni (portree, maastik, tasane jne). Sisseehitatud güroskoopidega kvadrokopterid võivad tähelepanu pöörata äkilistele rullidele või tõusudele. Saame seda kasutada globaalses positsioneerimissüsteemis (GPS).

Veel mõned rakendused hõlmavad siseruumides navigeerimist, nutikaid kasutajaliideseid, täiustatud žestituvastust, mängu- ja virtuaalreaalsuse sisendseadmeid jne.

ESP8266 abil saame suurendada selle võimsust pikemaks. Saame juhtida oma seadmeid ja jälgida nende jõudlust laua- ja mobiilseadmete kaudu. Saame andmeid veebis salvestada ja hallata ning neid igal ajal muudatuste tegemiseks uurida. Rohkem rakendusi hõlmavad koduautomaatika, võrkvõrk, tööstuslik juhtmevaba juhtimine, beebimonitorid, andurivõrgud, kantav elektroonika, WiFi-asukohateadlikud seadmed, WiFi-positsioonisüsteemi majakad.

6. samm: ressursid kaugemale jõudmiseks

Lisateabe saamiseks LSM9DS0 ja ESP8266 kohta vaadake allolevaid linke:

  • LSM9DS0 Anduri andmeleht
  • LSM9DS0 juhtmestiku skeem
  • ESP8266 Andmeleht

Soovitan: