Përmbajtje:
- Hapi 1: Kërkohet harduer
- Hapi 2: Lidhjet e harduerit
- Hapi 3: Kodi për caktimin e detyrave
- Hapi 4: Kodi për Leximin e Vlerave të Temperaturës dhe Lagështisë
- Hapi 5: Kodi për pritjen e një serveri në internet
- Hapi 6: Konfigurimi i Thingspeak
- Hapi 7: Kodi për Postimin e të Dhënave në Gjë
- Hapi 8: Kodi i përgjithshëm
- Hapi 9: Kredite
Video: THINGSPEAK TEMPERATURA DHE LARGSIA PPR APLIKIMIN ESP8266: 9 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:17
Ndërsa merresha me gjërat e mia elektronike, më erdhi kjo ide për të bërë aplikacionin e motit të bazuar në ueb. Ky aplikacion në internet përdor sensorin SHT31 për të marrë të dhënat e temperaturës dhe lagështisë në kohë reale. Ne kemi vendosur projektin tonë në modulin ESP8266 WiFi. Online ose offline! Nuk ka nevojë të shqetësoheni, pavarësisht nëse jeni online ose jashtë linje, do të merrni përditësimet e motit nga kudo dhe në çdo kohë. Ky aplikacion në internet poston të dhëna në serverin lokal të internetit, si dhe në cloud. Për operacionet cloud, ne po përdorim ThingSpeak API. SHT31 përdor I2C për të marrë të dhënat nga sensori.
SHT 31 është një Sensorë Temperature dhe Lagështie e prodhuar nga Sensirion. SHT31 siguron një nivel të lartë saktësie rreth ± 2% RH. Gama e lagështisë së saj është nga 0 në 100% dhe diapazoni i temperaturës është nga -40 në 125 ° C. Muchshtë shumë më i besueshëm dhe i shpejtë me 8 sekonda kohë të përgjigjes së sensorit. Funksionaliteti i tij përfshin përpunim të shtuar të sinjalit dhe pajtueshmëri me I2C. Ka mënyra të ndryshme të funksionimit, gjë që e bën atë efikas në energji.
Në këtë tutorial, ne kemi ndërlidhur SHT 31 me tabelën Adafruit Huzzah. Për të lexuar vlerat e Temperaturës dhe Lagështisë ne kemi përdorur mburojën ESP8266 I2C. Ky përshtatës i bën të gjitha kunjat të arritshme për përdoruesit dhe ofron mjedis miqësor ndaj përdoruesit I2C.
Hapi 1: Kërkohet harduer
Pajisjet kompjuterike të përdorura për të përfunduar këtë detyrë:
- SHT 31
- Adafruit Huzzah ESP8266
- Përshtatës ESP8266 I2C
- Kabllo I2C
Hapi 2: Lidhjet e harduerit
Ky hap përfshin udhëzuesin e lidhjes së harduerit. Ky seksion në thelb shpjegon lidhjet e telave të kërkuara midis sensorit dhe ESP8266. Lidhjet janë si më poshtë.
- SHT31 punon mbi I2C. Imazhi i mësipërm demonstron lidhjen midis modulit ESP8266 dhe SHT31. Ne po përdorim kabllon I2C për të ose mund të përdorim tela kërcyes 4 F në F.
- një tel përdoret për Vcc, tela e dytë për GND dhe dy të tjera përkatësisht për SDA dhe SCL
- Sipas përshtatësit I2C pin2 dhe kunja 14 e një bordi ESP8266 përdoren si SDA dhe SCL respektivisht
Hapi 3: Kodi për caktimin e detyrave
Në këtë tutorial, ne po kryejmë tre operacione
- Lexoni të dhënat nga SHT11 duke përdorur protokollin I2C
- strehoni serverin në internet dhe postoni leximin e sensorit në faqen në internet
- postoni leximet e sensorit në ThingSpeak API
Për ta arritur këtë ne po përdorim bibliotekën TaskScheduler. Ne kemi planifikuar tre detyra të ndryshme duke iu referuar tre operacioneve të ndryshme të kontrollit. kjo bëhet si më poshtë
- Detyra 1 është për të lexuar vlerën e sensorit, kjo detyrë funksionon për 1 sekondë derisa të arrijë afatin prej 10 sekondash.
- Kur Task1 arrin kohën e vet, Detyra 2 është e aktivizuar dhe Task1 është e çaktivizuar.
- Ne lidhemi me AP në këtë përgjigje, Dy variabla boole janë marrë për t'u kujdesur për ndërrimin midis STA dhe AP
- Në Detyrën 2 ne po presim një server në internet në 192.168.1.4. Kjo detyrë funksionon për çdo 5 sekonda derisa të arrijë kohën e saj që është 50 sekonda
-
Kur Detyra 2 arrin afatin, Detyra 3 është aktivizuar dhe Task2 është çaktivizuar.
- Ne lidhemi me STA (IP lokale) në këtë kalback Në Detyrën 3 po postojmë leximin e sensorit në cloud ThingSpeak API
- Detyra 3 funksionon çdo pesë sekonda derisa të arrijë afatin e saj domethënë 50 sekonda
- Kur Task3 arrin kohën e vet, Detyra 1 aktivizohet përsëri dhe Task3 është çaktivizuar.
- Kur asnjë telefonatë nuk thirret ose pajisja është e papunë, ajo shkon në Gjumë të lehtë, duke kursyer energji.
void taskI2CCallback ();
void taskI2CDisable (); void taskAPCallback (); void taskAPDisable (); void taskWiFiCallback (); void taskWiFiDisable (); // Detyrat për i2c, web serverin pritës dhe postimin në thingspeak Task tI2C (1 * TASK_SECOND, TASK_FOREVER, & taskI2CCallback, & ts, false, NULL, & taskI2CDisable); Detyra tI2C (1 * TASK_SECOND, TASK_FOREVER, & taskI2CCallback, & ts, false, NULL, & taskI2CDisable); Detyra tAP (5*TASK_SECOND, TASK_FOREVER, & taskAPCallback, & ts, false, NULL, & taskAPDisable); Detyra tWiFi (5* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable); // timeout për detyrat tI2C.setTimeout (10 * TASK_SECOND); tAP.setTimeout (50 * TASK_SECOND); tWiFi.setTimeout (50 * TASK_SECOND); // aktivizo detyrën I2C tI2C.aktivizo ();
Hapi 4: Kodi për Leximin e Vlerave të Temperaturës dhe Lagështisë
Ne po përdorim bibliotekën Wire.h për të lexuar vlerat e temperaturës dhe lagështisë. Kjo bibliotekë lehtëson komunikimin i2c midis sensorit dhe pajisjes kryesore. 0x44 është adresa I2C për SHT31.
SHT31 funksionon në një mënyrë të ndryshme operacionesh. Ju mund t'i referoheni fletës së të dhënave për këtë. Ne po përdorim 0x2C dhe 0x06 si MSB dhe LSB respektivisht për funksionimin me një goditje të vetme.
// I2C task callback void taskI2CCallback () {Serial.println ("taskI2CStarted"); rrënjë int e panënshkruar [6]; // filloni transmetimin nga 0x44; Wire.beginTransmetimi (Addr); // për transmetimin e një goditjeje me përsëritje të lartë ne përdorim 0x2C (MSB) dhe 0x06 (LSB) Wire.write (0x2C); Wire.write (0x06); // përfundoni transmetimin Wire.endTransmission (); // kërko byte nga 0x44 Wire.beginTransmission (Addr); Wire.endTransmission (); Tela. Kërkohet Nga (Addr, 6); nëse (Wire.available () == 6) {// të dhënat [0] dhe të dhënat [1] përmbajnë 16 bit temperaturë. rrënjë [0] = Wire.read (); rrënjë [1] = Wire.read (); // të dhënat [2] përmbajnë 8 bit të rrënjës CRC [2] = Wire.read (); // të dhënat [3] dhe të dhënat [4] përmbajnë 16 bit rrënjë lagështie [3] = Wire.read (); rrënjë [4] = Wire.read (); // të dhënat [5] përbëhen nga rrënjë CRC 8 bit [5] = Wire.read (); } int temp = (rrënja [0] * 256) + rrënja [1]; // zhvendos MSB me 8 bit shtoni LSB float cTemp = -45.0 + (175.0 * temp /65535.0); noton fTemp = (cTemp * 1.8) + 32.0; // zhvendos MSB me 8 bit shtoni LSB në të ndarë me rezolucion të plotë dhe * 100 për përqindjen e lagështisë së notimit = (100.0 * ((rrënja [3] * 256.0) + rrënja [4])) /65535.0; tempC = cTemp; tempF = fTemp; i lagësht = lagështia; Serial.print ("Temperatura në C: / t"); Serial.println (String (cTemp, 1)); Serial.print ("Temperatura në F: / t"); Serial.println (String (fTemp, 1)); Serial.print ("Lagështia: / t"); Serial.println (String (lagështia, 1)); }
Hapi 5: Kodi për pritjen e një serveri në internet
Ne kemi pritur një server në internet nga pajisja jonë në një IP statike.
Biblioteka ESP8266WebServer përdoret për të pritur serverin në internet
- Së pari ne duhet të deklarojmë adresën IP, Gateway dhe maskën e nën -rrjetës për të krijuar IP -në tonë statike
- Tani deklaroni ssid dhe fjalëkalimin për pikën tuaj të hyrjes. Lidheni me pikën e hyrjes nga çdo pajisje STA
- strehoni serverin në portin 80 i cili është një portë e paracaktuar për protokollin e komunikimit në internet, Protokolli i Transferimit të Hipertekstit (HTTP) futni 192.168.1.4 në shfletuesin tuaj të internetit për hyrje në uebfaqe dhe 192.168.1.4/Vlera për leximin e sensorit në uebfaqe
// IP statike për APIPAddress ap_local_IP (192, 168, 1, 4); IPAddress ap_gateway (192, 168, 1, 254); Adresa IP_subnet (255, 255, 255, 0); // ssid dhe AP për WiFi lokal në modalitetin STA const char WiFissid = "*********"; const char WiFipass = "*********"; // ssid dhe pass për AP const char APssid = "********"; const char APpass = "********"; Serveri ESP8266WebServer (80); void setup {server.on ("/", onHandleDataRoot); server.on ("/Vlera", onHandleDataFeed); server.onNotFound (onHandleNotFound);} task voidAPCallback () {Serial.println ("taskAP filloi"); server.handleClient (); } void onHandleDataRoot () {server.send (200, "text/html", PAGE1); } void onHandleDataFeed () {server.send (200, "text/html", PAGE2); } void onHandleNotFound () {String message = "Skedari nuk u gjet / n / n"; mesazh += "URI:"; mesazh += server.uri (); mesazh += "\ nMetoda:"; mesazh += (server.metoda () == HTTP_GET)? "MERR": "POST"; mesazh += "\ nArgumentet:"; mesazh += server.args (); mesazh += "\ n"; server.send (404, "tekst/thjeshtë", mesazh); } rilidhje e pavlefshmeAPWiFi () {WiFi.mode (WIFI_AP_STA); vonesë (100); WiFi. Shkëputje (); statusi boolean = WiFi.softAPConfig (ap_local_IP, ap_gateway, ap_subnet); if (status == true) {Serial.print ("Setting soft-AP …"); boolean ap = WiFi.softAP (APssid, APpass); if (ap == true) {Serial.print ("lidhur me: / t"); // IPAdresa myIP = WiFi.softAPIP (); Serial.println (WiFi.softAPIP ()); } server.begin ();
}
Hapi 6: Konfigurimi i Thingspeak
ThingSpeak është një platformë IoT. ThingSpeak është një shërbim falas në internet që ju lejon të mblidhni dhe ruani të dhënat e sensorëve në cloud.
Në këtë hap, unë do t'ju jap një procedurë të shkurtër për të krijuar llogarinë tuaj Thing Speak
- Regjistrohuni për llogarinë e re të përdoruesit në ThingSpeak
- Krijoni një kanal të ri duke zgjedhur Kanalet, Kanalet e Mia dhe më pas Kanali i Ri
- Ndryshoni fushat tuaja
- Këto fusha përmbajnë të dhënat tuaja të sensorit
- Shënoni çelësin API të Shkrimit dhe ID -në e kanalit
- Në skicën tuaj Arduino, mund të përdorni bibliotekën ThingSpeak për Arduino ose mund t'i postoni drejtpërdrejt të dhënat në ThingSpeak API
- hapi tjetër përpunon rreth postimit të përmbajtjes në Thing Speak API
Hapi 7: Kodi për Postimin e të Dhënave në Gjë
Këtu po postojmë leximet e sensorit në Thing Speak. hapat e mëposhtëm janë të nevojshëm për të përfunduar këtë detyrë-
- Krijoni llogarinë tuaj në thing talk Krijoni kanale dhe fusha për të ruajtur të dhënat tuaja të sensorit
- ne mund të marrim dhe postojmë të dhënat nga ESP në thingSpeak dhe anasjelltas duke përdorur kërkesat GET dhe POST në api.
- ne mund t'i postojmë të dhënat tona në ThingSpeak si më poshtë
id taskWiFiCallback () {WiFiClient wifiClient; if (wifiClient.connect (hostId, 80)) {String postStr = apiKey; postStr += "& field1 ="; postStr += String (i lagësht); postStr += "& field2 ="; postStr += String (tempC); postStr += "& field3 ="; postStr += String (tempF); postStr += "\ r / n / r / n"; wifiClient.print ("POST /përditëso HTTP /1.1 / n"); wifiClient.print ("Pritësi: api.thingspeak.com / n"); wifiClient.print ("Lidhja: mbyll / n"); wifiClient.print ("X-THINGSPEAKAPIKEY:"+apiKey+"\ n"); wifiClient.print ("Lloji i përmbajtjes: aplikacioni/x-www-forma-urlencoded / n"); wifiClient.print ("Përmbajtja-Gjatësia:"); wifiClient.print (postStr.length ()); wifiClient.print ("\ n / n"); wifiClient.print (postStr); } wifiClient.stop (); }
Hapi 8: Kodi i përgjithshëm
Kodi i përgjithshëm është i disponueshëm në depon time GitHub
Hapi 9: Kredite
- Arduino JSON
- ESP826WebServer
- Programi i detyrave
- SHT 31
- Skanimi I2C
- Udhëzues udhëzues HIH6130 udhëzues
- Tela
- NCD.io
Recommended:
ESP8266 dhe Visuino: Temperatura dhe Lagështia Web Server DHT11: 12 hapa
ESP8266 dhe Visuino: DHT11 Temperatura dhe Lagështia Web Server: Modulet ESP8266 janë kontrollues të shkëlqyeshëm me kosto të ulët me Wi-Fi të integruar, dhe unë tashmë kam bërë një numër udhëzimesh rreth tyre. Temperatura e kombinuar DTH11/DTH21/DTH22 dhe AM2301 janë shumë të njohura dhe sensorë të lagështisë Arduino, dhe unë bëra një numër
ESP8266 Pika e hyrjes NodeMCU (AP) për Ueb -Server me Sensor Temperature DT11 dhe Temperatura dhe Lagështi Shtypi në Shfletues: 5 Hapa
ESP8266 NodeMCU Access Point (AP) për Web Server Me Sensor Temperature DT11 dhe Temperatura dhe Lagështi Shtypi në Shfletues: Përshëndetje djema në shumicën e projekteve ne përdorim ESP8266 dhe në shumicën e projekteve ne përdorim ESP8266 si një server në internet, kështu që të dhënat mund të arrihen në çdo pajisje mbi wifi duke hyrë në serverin e uebit të pritur nga ESP8266 por problemi i vetëm është se ne kemi nevojë për një ruter pune për
ThingSpeak, ESP32 dhe Temperatura dhe lagështia me valë me rreze të gjatë: 5 hapa
ThingSpeak, ESP32 dhe Temperatura dhe lagështia me valë me rreze të gjatë: Në këtë tutorial, ne do të masim të dhëna të ndryshme të temperaturës dhe lagështisë duke përdorur sensorin Temp dhe lagështi. Ju gjithashtu do të mësoni se si t'i dërgoni këto të dhëna në ThingSpeak. Kështu që ju mund ta analizoni atë nga kudo për aplikime të ndryshme
Stacioni i motit IoT duke përdorur Aplikimin Blynk: 5 hapa
Stacioni i motit IoT duke përdorur Aplikacionin Blynk: Ky projekt lidhet me hapat fillestarë në botën IoT, këtu do të ndërlidhim sensorin DHT11/DHT22 me NodeMCU ose bordin tjetër të bazuar në ESP8266 dhe do të marrim të dhëna në internet që do të përdorim aplikacionin Blynk, përdorni tutorialin e mëposhtëm link nese jeni
NJ CO FOLOLSOR PPR DISK TOP EVAPORATIVE: 8 hapa (me fotografi)
NJ CO FOLOLSOR PAPR EVAPORATIV: HYRJE: Disa javë më parë vajza ime kishte një të ftohtë dhe ajo nuk donte që unë të ndizja ftohësin kryesor avullues i cili është një pajisje relativisht e lirë dhe efektive për të ftohur shtëpitë në klimat e thata dhe të shkreta si Teherani, kështu që ndërsa ndihesha