Përmbajtje:
- Hapi 1: Pajisjet që na duhen.. !
- Hapi 2: Lidhjet e harduerit
- Hapi 3: Kodi
- Hapi 4: Punimi i Kodit
- Hapi 5: Aplikimet dhe Karakteristikat
- Hapi 6: Burimet për të shkuar më tej
Video: Orientimi i Hartës përmes Web Serverit: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:17
Interneti i Gjërave, (IoT) është një nga temat më të njohura në planet tani. Dhe, po rritet me shpejtësi nga dita në ditë me internetin. Interneti i Gjërave po ndryshon shtëpitë e thjeshta në shtëpi të zgjuara, ku gjithçka nga dritat tuaja deri te kyçet tuaja mund të kontrollohet nga smartphone ose desktopi juaj. Ky është luksi që të gjithë duan ta kenë.
Ne gjithmonë luajmë me mjetet që kemi dhe vazhdojmë të punojmë për të shkuar në hapin tjetër të kufijve tanë. Ne përpiqemi t'i japim klientit tonë një vizion të teknologjive dhe ideve më të fundit. Kështu që ju mund ta ktheni shtëpinë tuaj në shtëpi të zgjuara dhe të shijoni shijen e luksit pa shumë përpjekje.
Sot, ne mendojmë të punojmë në një nga temat më të rëndësishme në IoT - Orientimi dixhital i hartës.
Ne do të ndërtojmë një server në internet përmes të cilit mund të monitorojmë lëvizjet e çdo pajisjeje ose sendi (Varet nga ju, kë doni të spiunoni;)). Ju gjithmonë mund të mendoni për azhurnimin e këtij projekti në nivelin tjetër me disa modifikime dhe mos harroni të na tregoni në komentet më poshtë.
Le të fillojmë sesa.. !!
Hapi 1: Pajisjet që na duhen.. !
1. Sensori LSM9DS0
Sensori 3 në 1 i prodhuar nga STMicroelectronics, LSM9DS0 është një sistem në paketë që përmban një sensor 3D nxitimi linear dixhital, një sensor 3D të shkallës këndore dixhitale dhe një sensor magnetik dixhital 3D. LSM9DS0 ka një shkallë të plotë nxitimi lineare prej ± 2g/± 4g/± 6g/± 8g/± 16g, një fushë magnetike në shkallë të plotë prej ± 2/± 4/± 8/± 12 gaus dhe një normë këndore prej 5 245 /± 500/± 2000 dps.
2. Adafruit Huzzah ESP8266
Procesori ESP8266 nga Espressif është një mikrokontrollues 80 MHz me një front të plotë WiFi (si klient dhe pikë aksesi) dhe pirg TCP/IP me mbështetje DNS gjithashtu. ESP8266 është një platformë e jashtëzakonshme për zhvillimin e aplikacioneve IoT. ESP8266 siguron një platformë të pjekur për monitorimin dhe kontrollin e aplikacioneve duke përdorur gjuhën Arduino Wire dhe Arduino IDE.
3. Programues USB ESP8266
përshtatësi i tij pritës ESP8266 u krijua posaçërisht nga Dyqani Dcube për versionin Adafruit Huzzah të ESP8266, duke lejuar ndërfaqen I²C.
4. Kabllo Lidhëse I2C
5. Mini kabllo USB
Mini kabllo USB Furnizimi me energji elektrike është një zgjedhje ideale për fuqizimin e Adafruit Huzzah ESP8266.
Hapi 2: Lidhjet e harduerit
Në përgjithësi, krijimi i lidhjeve është pjesa më e lehtë në këtë projekt. Ndiqni udhëzimet dhe imazhet, dhe nuk duhet të keni probleme.
Para së gjithash, merrni Adafruit Huzzah ESP8266 dhe vendosni programuesin USB (me portën e brendshme të I²C). Shtypni butësisht Programuesin USB dhe ne jemi bërë me këtë hap aq të lehtë sa byrek (Shih foton më lart).
Lidhja e Sensorit dhe Adafruit Huzzah ESP8266Merrni sensorin dhe Lidhni Kabllon I²C me të. Për funksionimin e duhur të këtij kablli, ju lutemi mbani mend që Dalja I² GJITHMON lidhet me Hyrjen I²C. E njëjta gjë duhej të ndiqet për Adafruit Huzzah ESP8266 me Programuesin USB të montuar mbi të (Shih foton më lart).
Me ndihmën e ESP8266 USB Programmer, është shumë e lehtë të programosh ESP. E tëra çfarë ju duhet të bëni është ta lidhni sensorin me USB Programmer dhe jeni mirë. Ne preferojmë ta përdorim këtë përshtatës sepse e bën shumë më të lehtë lidhjen e harduerit. Mos u shqetësoni për lidhjen e kunjave të ESP në sensor ose leximin e diagrameve dhe fletës së të dhënave. Ne mund të përdorim dhe punojmë në sensorë të shumtë njëkohësisht, ju vetëm duhet të bëni një zinxhir. Pa këto plug and play USB Programmer ekziston shumë rrezik për të bërë lidhje të gabuar. Një instalime elektrike e keqe mund të vrasë wifi -n tuaj, si dhe sensorin tuaj.
Shënim: Teli kafe duhet të ndjekë lidhjen Ground (GND) midis daljes së një pajisjeje dhe hyrjes së një pajisjeje tjetër.
Fuqizimi i qarkut
Futeni kabllon Mini USB në prizën e energjisë të Adafruit Huzzah ESP8266. Ndizeni dhe voila, jemi mirë të shkojmë!
Hapi 3: Kodi
Kodi ESP për Sensorin Adafruit Huzzah ESP8266 dhe LSM9DS0 është i disponueshëm në depon tonë të github.
Para se të kaloni në kod, sigurohuni që të lexoni udhëzimet e dhëna në skedarin Readme dhe konfiguroni Adafruit Huzzah ESP8266 tuaj sipas tij. Do të duhen vetëm 5 minuta për të vendosur ESP.
Kodi është i gjatë, por është në formën më të thjeshtë që mund ta imagjinoni dhe nuk do ta keni të vështirë ta kuptoni.
Për lehtësinë tuaj, mund të kopjoni kodin ESP të punës për këtë sensor edhe nga këtu:
// Shpërndarë me një licencë me vullnet të lirë.// Përdoreni atë në çdo mënyrë që dëshironi, fitimprurëse ose falas, me kusht që të përshtatet në licencat e veprave të tij shoqëruese. // LSM9DSO // Ky kod është krijuar për të punuar me Mini Modulin TCS3414_I2CS I2C i disponueshëm nga dcubestore.com.
#përfshi
#përfshi
#përfshi
#përfshi
// Adresa e LSM9DSO Gyro I2C është 6A (106)
#define Addr_Gyro 0x6A // LSM9DSO Accl I2C adresa është 1E (30) #define Addr_Accl 0x1E
const char* ssid = "ssid juaj";
const char* fjalëkalimi = "fjalëkalimi juaj"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;
Serveri ESP8266WebServer (80);
pavlefshme handroot ()
{të dhëna të panënshkruara int [6];
// Filloni Transmetimin I2C
Wire.beginTransmission (Addr_Gyro); // Zgjidh regjistrin e kontrollit 1 Wire.write (0x20); // Shkalla e të dhënave = 95Hz, X, Y, Z-Axis aktivizuar, ndizni Wire.write (0x0F); // Ndalo I2C Transmetimi Wire.endTransmission ();
// Filloni Transmetimin I2C
Wire.beginTransmission (Addr_Gyro); // Zgjidh regjistrin e kontrollit 4 Wire.write (0x23); // Shkallë e plotë 2000 dps, përditësim i vazhdueshëm Wire.write (0x30); // Ndalo I2C Transmetimi Wire.endTransmission ();
// Filloni Transmetimin I2C
Wire.beginTransmission (Addr_Accl); // Zgjidh regjistrin e kontrollit 1 Wire.write (0x20); // Shkalla e të dhënave të përshpejtimit = 100Hz, X, Y, Z-Axis aktivizuar, ndizni Wire.write (0x67); // Ndaloni Transmetimin I2C në pajisjen Wire.endTransmission ();
// Filloni Transmetimin I2C
Wire.beginTransmission (Addr_Accl); // Zgjidh regjistrin e kontrollit 2 Wire.write (0x21); // Përzgjedhje e shkallës së plotë +/- 16g Wire.write (0x20); // Ndalo I2C Transmetimi Wire.endTransmission ();
// Filloni Transmetimin I2C
Wire.beginTransmission (Addr_Accl); // Zgjidh regjistrin e kontrollit 5 Wire.write (0x24); // Rezolucion i lartë magnetik, shkalla e të dhënave të daljes = 50Hz Wire.write (0x70); // Ndalo I2C Transmetimi Wire.endTransmission ();
// Filloni Transmetimin I2C
Wire.beginTransmission (Addr_Accl); // Zgjidh regjistrin e kontrollit 6 Wire.write (0x25); // Shkallë magnetike e plotë +/- 12 gauss Wire.write (0x60); // Ndalo I2C Transmetimi Wire.endTransmission ();
// Filloni Transmetimin I2C
Wire.beginTransmission (Addr_Accl); // Zgjidh regjistrin e kontrollit 7 Wire.write (0x26); // Mënyra normale, mënyra e konvertimit magnetik të vazhdueshëm Wire.write (0x00); // Ndalo I2C Transmetimi Wire.endTransmission (); vonesë (300);
për (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Gyro); // Zgjidh regjistrin e të dhënave Wire.write ((40 + i)); // Ndalo I2C Transmetimi Wire.endTransmission ();
// Kërkoni 1 bajt të dhëna
Tela. Kërkohet Nga (Addr_Gyro, 1);
// Lexoni 6 bajt të dhëna
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb if (Wire.available () == 1) {data = Wire.read (); }}
// Shndërroni të dhënat
int xGyro = ((të dhënat [1] * 256) + të dhënat [0]); int yGyro = ((të dhënat [3] * 256) + të dhënat [2]); int zGyro = ((të dhënat [5] * 256) + të dhënat [4]);
për (int i = 0; i <6; i ++) {// Fillo Telin e Transmetimit I2C.beginTransmission (Addr_Accl); // Zgjidh regjistrin e të dhënave Wire.write ((40 + i)); // Ndalo I2C Transmetimi Wire.endTransmission ();
// Kërkoni 1 bajt të dhëna
Tela. Kërkohet Nga (Addr_Accl, 1);
// Lexoni 6 bajt të dhëna
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb // zAccl lsb, zAccl msb if (Wire.available () == 1) {data = Wire.read (); }}
// Shndërroni të dhënat
int xAccl = ((të dhënat [1] * 256) + të dhënat [0]); int yAccl = ((të dhënat [3] * 256) + të dhënat [2]); int zAccl = ((të dhënat [5] * 256) + të dhënat [4]);
për (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Accl); // Zgjidh regjistrin e të dhënave Wire.write ((8 + i)); // Ndalo I2C Transmetimi Wire.endTransmission ();
// Kërkoni 1 bajt të dhëna
Tela. Kërkohet Nga (Addr_Accl, 1);
// Lexoni 6 bajt të dhëna
// xMag lsb, xMag msb, yMag lsb, yMag msb // zMag lsb, zMag msb if (Wire.available () == 1) {data = Wire.read (); }}
// Shndërroni të dhënat
int xMag = ((të dhënat [1] * 256) + të dhënat [0]); int yMag = ((të dhënat [3] * 256) + të dhënat [2]); int zMag = ((të dhënat [5] * 256) + të dhënat [4]);
// Dalja e të dhënave në monitorin serik
Serial.print ("X-Boshti i rrotullimit:"); Serial.println (xGyro); Serial.print ("Y-Boshti i rrotullimit:"); Serial.println (yGyro); Serial.print ("Z-Aksi i rrotullimit:"); Serial.println (zGyro); Serial.print ("Përshpejtimi në boshtin X:"); Serial.println (xAccl); Serial.print ("Përshpejtimi në Boshtin Y:"); Serial.println (yAccl); Serial.print ("Përshpejtimi në Boshtin Z:"); Serial.println (zAccl); Serial.print ("Fusha magnetike në boshtin X:"); Serial.println (xMag); Serial.print ("Fusha magnetike në Boshtin Y:"); Serial.println (yMag); Serial.print ("Magnetike e regjistruar në Z-Bosht:"); Serial.println (zMag);
// Dalja e të dhënave në serverin e uebit
server.sendContent ("
Dyqan DCUBE
www.dcubestore.com
"" LSM9DS0 Sensor I2C Mini Moduli
);
server.sendContent ("
X-Boshti i rrotullimit = " + String (xGyro)); server.sendContent ("
Y-Aksi i rrotullimit = " + Vargu (yGyro)); server.sendContent ("
Z-Aksi i rrotullimit = " + Vargu (zGyro)); server.sendContent ("
Përshpejtimi në Boshtin X = " + String (xAccl)); server.sendContent ("
Përshpejtimi në Y-Axis = " + String (yAccl)); server.sendContent ("
Përshpejtimi në Z-Axis = " + String (zAccl)); server.sendContent ("
Magnetike e regjistruar në X-Axis = " + String (xMag)); server.sendContent ("
Magnetike e regjistruar në Y-Axis = " + String (yMag)); server.sendContent ("
Magnetike e regjistruar në Z-Axis = " + String (zMag)); vonesë (1000);}
void setup ()
{// Filloni komunikimin I2C si MASTER Wire.filloni (2, 14); // Filloni komunikimin serik, vendosur normën e baud = 115200 Serial.begin (115200);
// Lidhu me rrjetin WiFi
WiFi.filloni (ssid, fjalëkalim);
// Prisni lidhjen
ndërsa (WiFi.status ()! = WL_CONNECTED) {vonesë (500); Serial.print ("."); } Serial.println (""); Serial.print ("I lidhur me"); Serial.println (ssid);
// Merrni adresën IP të ESP8266
Serial.print ("Adresa IP:"); Serial.println (WiFi.localIP ());
// Nis serverin
server.on ("/", handroot); server.filloj (); Serial.println ("Serveri HTTP filloi"); }
lak void ()
{server.handleClient (); }
Hapi 4: Punimi i Kodit
Tani, shkarkoni (ose git pull) kodin dhe hapeni atë në Arduino IDE.
Përpiloni dhe ngarkoni kodin dhe shihni daljen në Serial Monitor.
Shënim: Para ngarkimit, sigurohuni që të futni rrjetin dhe fjalëkalimin tuaj SSID në kod.
Kopjoni adresën IP të ESP8266 nga Serial Monitor dhe ngjiteni në shfletuesin tuaj të internetit. Do të shihni një faqe në internet me boshtin e rrotullimit, nxitimit dhe leximit të fushës magnetike në 3 boshtet.
Dalja e sensorit në Serial Monitor dhe Web Server janë treguar në figurën e mësipërme.
Hapi 5: Aplikimet dhe Karakteristikat
LSM9DS0 është një sistem në paketë që përmban një sensor dixhital të nxitimit linear 3D, një sensor 3D të ritmit këndor dixhital dhe një sensor magnetik dixhital 3D. Duke matur këto tre veti, mund të fitoni një njohuri të madhe në lidhje me lëvizjen e një objekti. Duke matur forcën dhe drejtimin e fushës magnetike të Tokës me një magnetometër, mund të përafroni drejtimin tuaj. Një akselerometër në telefonin tuaj mund të masë drejtimin e forcës së gravitetit dhe të vlerësojë orientimin (portret, peizazh, banesë, etj.). Katërkopterët me xhiroskopë të integruar mund të shikojnë për rrotullime ose fusha të papritura. Ne mund ta përdorim këtë në Sistemin e Pozicionimit Global (GPS).
Disa aplikacione të tjera përfshijnë navigimin e brendshëm, ndërfaqet e përdoruesve të zgjuar, njohjen e përparuar të gjesteve, pajisjet e futjes së lojërave dhe realitetit virtual, etj.
Me ndihmën e ESP8266, ne mund të rrisim kapacitetin e tij në një gjatësi më të madhe. Ne mund të kontrollojmë pajisjet tona dhe të monitorojmë performancën atje nga desktopet dhe pajisjet tona mobile. Ne mund t'i ruajmë dhe menaxhojmë të dhënat në internet dhe t'i studiojmë ato në çdo kohë për modifikime. Më shumë aplikacione përfshijnë Automatizimin e Shtëpisë, Rrjetin Mesh, Kontrollin Industrial pa tel, Vëzhguesit e foshnjave, Rrjetet e Sensorëve, Elektronikë të Veshshme, Pajisjet e vetëdijshme për Vendndodhjen Wi-Fi, Fenerët e Sistemit të Pozicionit Wi-Fi.
Hapi 6: Burimet për të shkuar më tej
Për më shumë informacion në lidhje me LSM9DS0 dhe ESP8266, shikoni lidhjet më poshtë:
- Fleta e të dhënave të sensorit LSM9DS0
- Diagrami i telave LSM9DS0
- Fleta e të dhënave ESP8266
Recommended:
Kontrolli i udhëhequr përmes aplikacionit Blynk duke përdorur Nodemcu përmes internetit: 5 hapa
Kontrolli i udhëhequr përmes aplikacionit Blynk duke përdorur Nodemcu në internet: Përshëndetje të gjithëve Sot do t'ju tregojmë se si mund të kontrolloni një LED duke përdorur një smartphone përmes internetit
Ora e Hartës së Nëndheshme të Londrës: 9 Hapa (me fotografi)
Ora e Hartave të Nëndheshme të Londrës: Në vitin 2014, në prag të stazhit në një konsulencë për printimin 3D në Londër dhe një eksperiment me litofanët me ngjyra duke përdorur makinën e tyre Stratasys, unë hartoj të tashmen time, një printim 3D me ngjyra të linjave të tubave në zonën e tyre zyrat. Isha
Llamba e Hartës- Informative dhe e Bukur !: 7 hapa
Llamba e Hartës- Informative dhe e Bukur !: Kjo llambë është bërë nga një hartë e përdorur/e re. Përdor hyrje 7-12V, dhe mund të personalizohet në ngjyra dhe shkëlqim të ndryshëm. Madje ka karikim USB! Shumë e thjeshtë për tu bërë, por kërkon disa saldime
Kontrolloni pajisjet përmes internetit përmes shfletuesit. (IoT): 6 hapa
Kontrolloni pajisjet përmes internetit përmes shfletuesit. (IoT): Në këtë Instructable unë do t'ju tregoj se si mund t'i kontrolloni pajisjet si LED, Reletë, motorët etj përmes internetit përmes shfletuesit të uebit. Dhe mund t'i qaseni kontrolleve në mënyrë të sigurt mbi çdo pajisje. Platforma në internet që kam përdorur këtu është vizita e RemoteMe.org
Roboti i Trajnueshëm i Gjestit i kontrolluar përmes Bluetooth përmes Arduino: 4 hapa
Roboti i Trajnueshëm i Gjestit i Kontrolluar Me anë të Bluetooth në Arduino: Ka dy mënyra në Krah. Së pari është Modaliteti Manual që mund të lëvizni krahun me bluetooth në telefonin tuaj celular duke lëvizur rrëshqitësit në aplikacion. Në të njëjtën kohë, ju mund të ruani pozicionet tuaja dhe mund të luani … E dyta është Gesture Mode që përdor ph -in tuaj