Sisukord:
- Samm: vajalikud seadmed..
- Samm: riistvaraühendused
- 3. samm: kood
- Samm: koodi töötamine
- Samm: rakendused ja funktsioonid
- 6. samm: ressursid kaugemale jõudmiseks
Video: Kaardi orientatsioon veebiserveri kaudu: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
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..
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
Ü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
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
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:
Juhtimine Blynk -rakenduse kaudu Nodemcu abil Interneti kaudu: 5 sammu
LED -i juhtimine Blynk -rakenduse kaudu Interneti kaudu Nodemcu abil: Tere kõigile, täna näitame teile, kuidas saate LED -i juhtida Interneti kaudu nutitelefoni abil
Klaasist kivist LED -toru (WiFi kaudu juhitav nutitelefonirakenduse kaudu): 6 sammu (koos piltidega)
Klaasist kivist LED-toru (WiFi kaudu juhitav nutitelefonirakenduse kaudu): Tere kaastegijad! Selles juhendatavas näitan teile, kuidas ehitada WiFi-juhitav LED-toru, mis on klaasikividega täidetud, et saada kena difusiooniefekt. Valgusdioodid on individuaalselt adresseeritavad ja seetõttu on mõned head efektid võimalikud
Äratus LAN -i kaudu igal arvutil traadita võrgu kaudu: 3 sammu
Äratus LAN -i kaudu igal arvutil traadita võrgu kaudu: Raspbpiani kujutise muutuste tõttu pole see õpetus enam ajakohane. Palun järgige värskendatud õpetust siit: https://www.instructables.com/id/Raspberry-Pi-As-Wake-on-LAN-ServerWOL on tänapäeval peaaegu kõigis Etherneti portides. See pole
Kuva tekst OLED -i kaudu Interneti kaudu: 9 sammu
Kuva tekst OLED -i kaudu Interneti kaudu: Tere ja tere tulemast! See lühike õpetus õpetab teid Magicblocks -i abil Magicbitil teksti kuvama. Selle eesmärgi saavutamiseks on kaks peamist meetodit; Kasutades süstimisplokki. Kasutades armatuurlauda. Kõigepealt logige sisse oma Magicb'i
Temperatuuri ja niiskuse andmekoguja Arduino'st Android -telefonini SD -kaardi mooduliga Bluetoothi kaudu: 5 sammu
Temperatuuri ja niiskuse andmekoguja Arduinost Android -telefonini, millel on Bluetooth -kaardi kaudu SD -kaardi moodul: Tere kõigile, see on minu esimene juhendatav, loodan, et aitan tegijate kogukonda, kuna olen sellest kasu saanud. Sageli kasutame oma projektides andureid, kuid leiame viisi andmete kogumiseks, salvestamiseks ja kohe telefonide või muude seadmete edastamiseks