Sisukord:
- Samm: vajalik riistvara
- Samm: riistvaraühendused
- 3. samm: ülesannete ajastamise kood
- Samm: temperatuuri ja niiskuse väärtuste lugemise kood
- Samm: veebiserveri hostimise kood
- 6. toiming: asjade seadistamine
- Samm 7: kood andmete postitamiseks Thing Speaki
- 8. samm: üldine kood
- 9. samm: krediidid
Video: THINGSPEAK TEMPERATURE AND HUMIDITY APP, kasutades ESP8266: 9 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Oma elektrooniliste asjadega nokitsedes tekkis mul idee teha veebipõhine ilmarakendus. See veebirakendus kasutab reaalajas temperatuuri ja niiskuse andmete saamiseks SHT31 andurit. Oleme oma projekti kasutusele võtnud WiFi -moodulis ESP8266. Online või offline! Pole vaja muretseda, olenemata sellest, kas olete võrgus või väljaspool seda, saate ilmateateid kõikjalt ja igal ajal. See veebirakendus postitab andmed nii kohalikku veebiserverisse kui ka pilve. Pilvetoimingute jaoks kasutame ThingSpeak API -d. SHT31 kasutab andurilt andmete saamiseks I2C -d.
SHT 31 on Sensirioni toodetud temperatuuri ja niiskuse andurid. SHT31 tagab kõrge täpsuse umbes ± 2% RH. Selle niiskus on vahemikus 0 kuni 100% ja temperatuurivahemik -40 kuni 125 ° C. See on 8 sekundi anduri reageerimisajaga palju usaldusväärsem ja kiirem. Selle funktsionaalsus hõlmab täiustatud signaalitöötlust ja I2C ühilduvust. Sellel on erinevad töörežiimid, mis muudavad selle energiatõhusaks.
Selles õpetuses oleme liidestanud SHT 31 Adafruit Huzzah plaadiga. Temperatuuri ja niiskuse väärtuste lugemiseks kasutasime kaitsekilpi ESP8266 I2C. See adapter muudab kõik tihvtid kasutajale kättesaadavaks ja pakub kasutajasõbralikku I2C keskkonda.
Samm: vajalik riistvara
Selle ülesande täitmiseks kasutatav riistvara:
- SHT 31
- Adafruit Huzzah ESP8266
- ESP8266 I2C adapter
- I2C kaabel
Samm: riistvaraühendused
See samm sisaldab riistvara ühendamise juhendit. Selles jaotises selgitatakse põhimõtteliselt anduri ja ESP8266 vahel vajalikke juhtmestiku ühendusi. Ühendused on järgmised.
- SHT31 töötab üle I2C. Ülaltoodud pilt näitab ühendust ESP8266 ja SHT31 mooduli vahel. Kasutame selle jaoks I2C -kaablit, kas saame kasutada 4 F kuni F hüppajajuhtmeid.
- ühte juhet kasutatakse Vcc jaoks, teist traati GND jaoks ja teisi kahte vastavalt SDA ja SCL jaoks
- Vastavalt I2C adapterile kasutatakse ESP8266 plaadi pin2 ja tihvti 14 vastavalt SDA ja SCL -na
3. samm: ülesannete ajastamise kood
Selles õpetuses teeme kolme toimingut
- Lugege SHT11 andmeid I2C protokolli abil
- hostida veebiserverit ja postitada sensori näit veebilehele
- postitage anduri näidud ThingSpeak API -sse
Selle saavutamiseks kasutame TaskScheduleri teeki. Oleme kavandanud kolm erinevat ülesannet, mis viitavad kolmele erinevale kontrollitoimingule. seda tehakse järgmiselt
- Ülesanne 1 on anduri väärtuse lugemiseks, see ülesanne kestab 1 sekund, kuni see jõuab 10 sekundi aegumiseni.
- Kui ülesanne 1 saab oma aja, on ülesanne 2 lubatud ja ülesanne 1 keelatud.
- Selles tagasihelistamises loome ühenduse AP -ga. STA ja AP vahel vahetamise eest hoolitsetakse kahe loogilise muutuja eest
- Ülesandes 2 hostime veebiserverit aadressil 192.168.1.4. See ülesanne kestab iga 5 sekundi järel, kuni jõuab aegumiseni, mis on 50 sekundit
- Kui ülesanne 2 jõuab ajalõpule, on ülesanne 3 lubatud ja ülesanne 2 keelatud.
-
Selles tagasipöördumises loome ühenduse STA -ga (kohalik IP). Ülesandes 3 postitame anduri näidu ThingSpeak API pilve
- Ülesanne 3 töötab iga viie sekundi tagant, kuni see jõuab oma aegumiseni, st 50 sekundini
- Kui ülesanne 3 saab oma aja, on ülesanne 1 uuesti lubatud ja ülesanne 3 keelatud.
- Kui tagasihelistamist ei helistata või seade on jõudeolekus, läheb see valgusrežiimi, säästes seega energiat.
tühine ülesanneI2CCallback ();
void taskI2CDisable (); tühine ülesanneAPCallback (); void taskAPDisable (); tühine ülesanneWiFiCallback (); tühine ülesanneWiFiDisable (); // Ülesanded i2c -le, veebiserveri hostimine ja postitamine asjade kõnele Task tI2C (1 * TASK_SECOND, TASK_FOREVER ja & taskI2CCallback, & ts, false, NULL ja taskI2CDisable); Ülesanne tI2C (1 * TASK_SECOND, TASK_FOREVER ja & taskI2CCallback, & ts, false, NULL ja taskI2CDisable); Ülesanne tAP (5*TASK_SECOND, TASK_FOREVER, & taskAPCallback, & ts, false, NULL ja & taskAPDisable); Task tWiFi (5* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL ja & taskWiFiDisable); // ülesannete ajalõpp tI2C.setTimeout (10 * TASK_SECOND); tAP.setTimeout (50 * TASK_SECOND); tWiFi.setTimeout (50 * TASK_SECOND); // lubage I2C ülesanne tI2C.enable ();
Samm: temperatuuri ja niiskuse väärtuste lugemise kood
Temperatuuri ja niiskuse väärtuste lugemiseks kasutame Wire.h raamatukogu. See teek hõlbustab i2c suhtlust anduri ja põhiseadme vahel. 0x44 on SHT31 I2C -aadress.
SHT31 töötab erinevas töörežiimis. Selle jaoks saate viidata andmelehele. Kasutame ühe võtte tegemiseks vastavalt MSB ja LSB -d vastavalt 0x2C ja 0x06.
// I2C ülesande tagasihelistamine tühine taskI2CCallback () {Serial.println ("taskI2CStarted"); allkirjastamata int juur [6]; // alustada edastamist alates 0x44; Wire.beginTransmission (Addr); // suure korratavusega ühe lasu edastamiseks kasutame 0x2C (MSB) ja 0x06 (LSB) Wire.write (0x2C); Wire.write (0x06); // lõppülekanne Wire.endTransmission (); // taotle baite alates 0x44 Wire.beginTransmission (Addr); Wire.endTransmission (); Wire.requestFrom (Addr, 6); kui (Wire.available () == 6) {// andmed [0] ja andmed [1] sisaldavad 16 bitti temperatuuri. juur [0] = Wire.read (); juur [1] = Wire.read (); // andmed [2] sisaldavad 8 bitti CRC juur [2] = Wire.read (); // andmed [3] ja andmed [4] sisaldavad 16 bitti niiskust juur [3] = Wire.read (); juur [4] = Wire.read (); // andmed [5] koosneb 8 -bitisest CRC juurist [5] = Wire.read (); } int temp = (juur [0] * 256) + juur [1]; // nihutage MSB 8 bitti võrra lisage LSB ujuk cTemp = -45,0 + (175,0 * temp /65535,0); ujuk fTemp = (cTemp * 1,8) + 32,0; // nihutage MSB -d 8 bitti, lisage sellele LSB, jagage see täisresolutsiooniga ja * 100 ujuki niiskuse protsendi jaoks = (100,0 * ((juur [3] * 256,0) + juur [4])) /65535.0; tempC = cTemp; tempF = fTemp; niiske = niiskus; Serial.print ("Temperatuur C: / t"); Serial.println (String (cTemp, 1)); Serial.print ("Temperatuur F: / t"); Serial.println (String (fTemp, 1)); Serial.print ("Niiskus: / t"); Serial.println (String (niiskus, 1)); }
Samm: veebiserveri hostimise kood
Oleme hostinud oma seadmest veebiserveri staatilisel IP -l.
Veebiserveri majutamiseks kasutatakse ESP8266WebServeri teeki
- Esmalt peame staatilise IP loomiseks deklareerima IP -aadressi, lüüsi ja alamvõrgu maski
- Nüüd deklareerige oma pääsupunkti jaoks ssid ja parool. Ühendage juurdepääsupunktiga mis tahes STA -seadmest
- hostige serverit pordil 80, mis on Interneti -sideprotokolli vaikeport, sisestage hüperteksti edastusprotokoll (HTTP) oma veebibrauserisse sissejuhatava veebilehe jaoks 192.168.1.4 ja 192.168.1.4/Väärtus sensori lugemise veebilehe jaoks
// staatiline Ip APIP -aadressile ap_local_IP (192, 168, 1, 4); IPAddress ap_gateway (192, 168, 1, 254); IPAddress ap_subnet (255, 255, 255, 0); // ssid ja AP kohaliku WiFi jaoks STA -režiimis const char WiFissid = "*********"; const char WiFipass = "*********"; // ssid ja pass AP const char jaoks APssid = "********"; const char APpass = "********"; ESP8266WebServer server (80); tühine seadistus {server.on ("/", onHandleDataRoot); server.on ("/Value", onHandleDataFeed); server.onNotFound (onHandleNotFound);} void taskAPCallback () {Serial.println ("taskAP start"); server.handleClient (); } void onHandleDataRoot () {server.send (200, "text/html", PAGE1); } void onHandleDataFeed () {server.send (200, "text/html", PAGE2); } void onHandleNotFound () {String message = "Faili ei leitud / n / n"; sõnum += "URI:"; sõnum += server.uri (); message += "\ nMetod:"; sõnum += (server.method () == HTTP_GET)? "GET": "POST"; message += "\ nArgumendid:"; sõnum += server.args (); sõnum += "\ n"; server.send (404, "tekst/tavaline", sõnum); } void reconnectAPWiFi () {WiFi.mode (WIFI_AP_STA); viivitus (100); WiFi.disconnect (); boolean olek = WiFi.softAPConfig (ap_local_IP, ap_gateway, ap_subnet); if (olek == tõene) {Serial.print ("Soft-AP seadistamine …"); boolean ap = WiFi.softAP (APssid, APpass); if (ap == true) {Serial.print ("ühendatud: / t"); // IPAddress myIP = WiFi.softAPIP (); Serial.println (WiFi.softAPIP ()); } server.begin ();
}
6. toiming: asjade seadistamine
ThingSpeak on IoT platvorm. ThingSpeak on tasuta veebiteenus, mis võimaldab teil andurite andmeid pilve koguda ja salvestada.
Selles etapis annan teile lühikese protseduuri oma Thing Speak konto seadistamiseks
- Registreeruge ThingSpeakis uue kasutajakonto saamiseks
- Looge uus kanal, valides Kanalid, Minu kanalid ja seejärel Uus kanal
- Muutke oma väljad
- Need väljad sisaldavad teie anduri andmeid
- Pange tähele API kirjutamise võti ja kanali ID
- Arduino visandil saate kasutada Arduino jaoks ThingSpeaki teeki või saate andmed otse postitada ThingSpeak API -sse
- järgmine samm käsitleb sisu postitamist Thing Speak API -sse
Samm 7: kood andmete postitamiseks Thing Speaki
Siin postitame anduri näidud Thing Speaki. selle ülesande täitmiseks on vaja järgmisi samme-
- Looge oma kõnele mõeldud konto Looge andurite andmete salvestamiseks kanaleid ja välju
- saame hankida ja postitada andmed ESP-st saidile thingSpeak ja vastupidi, kasutades apetile GET- ja POST-päringuid.
- saame oma andmed ThingSpeaki postitada järgmiselt
id taskWiFiCallback () {WiFiClient wifiClient; if (wifiClient.connect (hostId, 80)) {String postStr = apiKey; postStr += "& väli1 ="; postStr += String (niiske); postStr += "& väli2 ="; postStr += String (tempC); postStr += "& väli3 ="; postStr += String (tempF); postStr += "\ r / n / r / n"; wifiClient.print ("POST /uuenda HTTP /1.1 / n"); wifiClient.print ("Host: api.thingspeak.com / n"); wifiClient.print ("Ühendus: sulge / n"); wifiClient.print ("X-THINGSPEAKAPIKEY:"+apiKey+"\ n"); wifiClient.print ("Sisu tüüp: application/x-www-form-urlencoded / n"); wifiClient.print ("Sisu-pikkus:"); wifiClient.print (postStr.length ()); wifiClient.print ("\ n / n"); wifiClient.print (postStr); } wifiClient.stop (); }
8. samm: üldine kood
Üldine kood on saadaval minu GitHubi hoidlas
9. samm: krediidid
- Arduino JSON
- ESP826WebServer
- Ülesannete planeerija
- SHT 31
- I2C skaneerimine
- HIH6130 juhendatav juhend
- Traat
- NCD.io
Soovitan:
IoT võtmehoidja leidja, kasutades ESP8266-01: 11 sammu (piltidega)
IoT võtmehoidja leidja, kasutades ESP8266-01: kas olete nagu mina alati unustanud, kuhu oma võtmed hoidsite? Ma ei leia oma võtmeid kunagi õigel ajal! Ja selle minu harjumuse tõttu olen hilinenud oma kolledžiga, selle piiratud väljaande tähesõdade maiustuste müügiga (ikka veel närviline!), Kuupäevaga (ta ei valinud kunagi
Covid-19 värskenduste jälgija, kasutades ESP8266: 9 sammu
Covid-19 värskenduste jälgija, kasutades ESP8266: See projekt näitab OLED-ekraanil reaalajas praeguseid andmeid India osariikide erinevate linnade koroonaviiruse puhangu kohta. See reaalajas olekute jälgija aitab teil jälgida oma ringkonna reaalajas covid-19 värskendust. See projekt on täiesti
Kuidas ESP8266 AT püsivara välgutada või programmeerida, kasutades ESP8266 vilkurit ja programmeerijat, IOT Wifi moodulit: 6 sammu
Kuidas ESP8266 AT püsivara välgutada või programmeerida, kasutades ESP8266 välklampi ja programmeerijat, IOT Wifi moodulit: Kirjeldus: see moodul on USB-adapter /programmeerija ESP-01 või ESP-01S tüüpi ESP8266 moodulite jaoks. ESP01 ühendamiseks on see mugavalt varustatud 2x4P 2,54 mm emasega. Samuti purustab see kõik ESP-01 tihvtid läbi 2x4P 2,54 mm isase h
(Ascensor) liftimudel, kasutades Arduino, App Inventori ja muud tasuta tarkvara: 7 sammu
(Ascensor) Liftimudel Arduino, App Inventori ja muu vaba tarkvara abil: ESPConstrucción, paso a paso, de un ascensor a escala usando arduino (como controlador del motor y entradas y salidas por bluetooth), rakenduse leiutaja (para diseño de aplicación como panel) de control del ascensor) y freeCAD ja LibreCAD para diseño.Abajo
ESP8266 NODEMCU BLYNK IOT Õpetus - Esp8266 IOT kasutades Blunk ja Arduino IDE - LED -ide juhtimine Interneti kaudu: 6 sammu
ESP8266 NODEMCU BLYNK IOT Õpetus | Esp8266 IOT kasutades Blunk ja Arduino IDE | LED -ide juhtimine Interneti kaudu: Tere juhid, selles juhendis olevad poisid, õpime kasutama IOT -i koos meie ESP8266 või Nodemcu -ga. Me kasutame selleks rakendust blynk. Nii et me kasutame meie esp8266/nodemcu LED -ide juhtimiseks Interneti kaudu. Nii et rakendus Blynk ühendatakse meie esp8266 või Nodemcu -ga