Orodha ya maudhui:
- Hatua ya 1: Vifaa vya vifaa vinahitajika
- Hatua ya 2: Uunganisho wa vifaa
- Hatua ya 3: Nambari ya Kupanga Kazi
- Hatua ya 4: Nambari ya Kusoma Joto na Thamani za Unyevu
- Hatua ya 5: Nambari ya Kukaribisha Webserver
- Hatua ya 6: Nambari ya Kutuma Takwimu kwa Jambo Ongea
- Hatua ya 7: Kanuni ya Jumla
Video: Hali ya Hewa Mtandao App Kutumia Esp8266: 7 Hatua
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
SHT 31 ni sensorer ya joto na unyevu iliyotengenezwa na Sensirion. SHT31 hutoa kiwango cha juu cha usahihi karibu ± 2% RH. Aina yake ya Unyevu ni kati ya 0 hadi 100% na kiwango cha Joto ni kati ya -40 hadi 125 ° C. Inaaminika zaidi na haraka na sekunde 8 za wakati wa kujibu Sensorer. Utendaji wake ni pamoja na usindikaji wa ishara iliyoimarishwa na utangamano wa I2C. Ina njia tofauti za operesheni ambayo inafanya ufanisi wa nishati.
Katika mafunzo haya, tumeingiliana SHT 31 na bodi ya Adafruit Huzzah. Kwa kusoma viwango vya Joto na Unyevu tumetumia ngao ya ESP8266 I2C. Adapta hii hufanya pini zote zipatikane kwa mtumiaji na inatoa mazingira rafiki ya I2C.
Hatua ya 1: Vifaa vya vifaa vinahitajika
Vifaa vilivyotumika kumaliza kazi hii:
1. SHT31
2. Adafruit Huzzah ESP8266
3. EAP8266 I2C adapta
Cable ya I2C
Hatua ya 2: Uunganisho wa vifaa
Hatua hii ni pamoja na mwongozo wa kuunganisha vifaa. Sehemu hii inaelezea kimsingi uhusiano wa wiring unaohitajika kati ya sensa na ESP8266. Viunganisho ni kama ifuatavyo.
- SHT31 inafanya kazi juu ya I2C. Picha hapo juu inaonyesha uhusiano kati ya moduli ya ESP8266 na SHT31. Tunatumia kebo ya I2C kwa hiyo tunaweza kutumia waya wa 4 F hadi F jumper.
- waya moja hutumiwa kwa Vcc, waya wa pili kwa GND na nyingine mbili kwa SDA na SCL mtawaliwa.
- Kulingana na pin2 ya adapta ya I2C na pini 14 ya bodi ya ESP8266 hutumiwa kama SDA na SCL mtawaliwa.
Hatua ya 3: Nambari ya Kupanga Kazi
Katika mafunzo haya, tunafanya shughuli tatu
- Soma data kutoka SHT11 ukitumia itifaki ya I2C
- mwenyeji wa seva ya wavuti na chapisha kusoma kwa sensa kwenye ukurasa wa wavuti
- tuma usomaji wa sensa kwa API ya ThingSpeak
Ili kufanikisha hili tunatumia maktaba ya TaskScheduler. Tumepanga majukumu matatu tofauti yakimaanisha shughuli tatu tofauti za kudhibiti. hii imefanywa kama ifuatavyo
- Kazi 1 ni kusoma thamani ya sensa kazi hii inaendesha kwa sekunde 1 hadi itakapofikia muda wa sekunde 10.
- Task1 inapofikia muda wake wa kumaliza Task 2 imewezeshwa na Task1 imezimwa.
- Tunaunganisha na AP katika upigaji simu huu, vigeuzi viwili vya boolea vinachukuliwa kutunza ubadilishaji kati ya STA na AP
- Katika Task 2 tunashikilia seva ya wavuti mnamo 192.168.1.4. Kazi hii inaendeshwa kwa kila sekunde 5 hadi itakapofika muda wake ambao ni sekunde 50
- Wakati Task 2 inapofikia muda wa kumaliza Task 3 imewezeshwa na Task2 imezimwa.
- Tunaunganisha kwa STA (IP ya ndani) katika upigaji simu huu
- Katika Task 3 tunatuma usomaji wa sensorer kwa ThingSpeak API
- Kazi 3 inaendeshwa kwa kila sekunde tano hadi itakapofikia wakati wake, sekunde 50
- Task3 inapofikia muda wake wa kumaliza Task 1 imewezeshwa tena na Task3 imezimwa.
- Wakati hakuna kurudi tena kutaitwa au kifaa hakikai huenda kwa Nuru Kulala na hivyo kuokoa nguvu.
Mratibu ts;
// Kazi za i2c, kukaribisha seva ya wavuti na kuchapisha kwenye mazungumzo
Kazi tI2C (1 * TASK_SECOND, TASK_FOREVER, & taskI2CCbackback, & ts, uwongo, NULL, & taskI2CDisable); Bomba la kazi (5 * TASK_SECOND, TASK_FOREVER, & taskAPCallback, & ts, uongo, NULL, & taskAPDisable); Kazi tWiFi (5 * TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, uwongo, NULL, & taskWiFiDisable); // muda wa kumaliza kazi tI2C.setTimeout (10 * TASK_SECOND); TAP.setTimeout (50 * TASK_SECOND); tWiFi.setTimeout (50 * TASK_SECOND); // kuwezesha kazi ya I2C tI2C kuwezeshwa ();
Hatua ya 4: Nambari ya Kusoma Joto na Thamani za Unyevu
Tunatumia maktaba ya Wire.h kusoma viwango vya joto na unyevu. Maktaba hii inawezesha mawasiliano ya i2c kati ya sensa na kifaa kikuu. 0x44 ni anwani ya I2C ya SHT31.
SHT31 inafanya kazi kwa njia tofauti ya utendaji. Unaweza kutaja data ya data kwa hiyo.
Tunatumia 0x2C na 0x06 kama MSB na LSB mtawaliwa kwa operesheni moja ya risasi.
// Kazi ya kupuuza kazi ya I2C I2CCallback ()
{Serial.println ("taskI2CStarted"); mzizi usiowekwa saini [6]; // kuanza maambukizi kutoka 0x44; Uwasilishaji wa waya (Addr); // kwa transmisstion moja ya risasi na kurudia juu tunatumia 0x2C (MSB) na 0x06 (LSB) Wire.write (0x2C); Andika waya (0x06); // mwisho wa kupitisha Waya.endUsambazaji (); // ombi ka kutoka 0x44 Wire.beginTransmission (Addr); Uwasilishaji wa waya (); Ombi la Wire. Toka (Addr, 6); ikiwa (Wire.available () == 6) {// data [0] na data [1] ina joto 16. mzizi [0] = soma ya waya (); mzizi [1] = soma ya waya (); // data [2] ina 8 ya mizizi ya CRC [2] = Wire.read (); // data [3] na data [4] ina 16 ya mizizi ya unyevu [3] = Wire.read (); mzizi [4] = soma ya waya (); // data [5] ina mizizi 8 ya CRC [5] = Wire.read (); } int temp = (mzizi [0] * 256) + mzizi [1]; // kuhama MSB kwa bits 8 ongeza kuelea kwa LSB cTemp = -45.0 + (175.0 * temp / 65535.0); kuelea fTemp = (cTemp * 1.8) + 32.0; // songa MSB kwa bits 8 ongeza LSB ili iwe na azimio kamili na * 100 kwa unyevu wa kuelea kwa asilimia = (100.0 * ((mzizi [3] * 256.0) + mzizi [4])) / 65535.0;
tempC = cTemp;
tempF = fTemp; unyevu = unyevu; Serial.print ("Joto katika C: / t"); Serial.println (Kamba (cTemp, 1)); Serial.print ("Joto katika F: / t"); Serial.println (Kamba (fTemp, 1)); Printa ya serial ("Unyevu: / t"); Serial.println (Kamba (unyevu, 1)); }
Hatua ya 5: Nambari ya Kukaribisha Webserver
Tumeandaa seva ya wavuti kutoka kwa kifaa chetu kwenye IP tuli.
- Maktaba ya ESP8266WebServer hutumiwa kukaribisha seva ya wavuti
- Kwanza tunahitaji kutangaza anwani ya IP, Gateway na kinyago cha subnet kuunda IP yetu tuli
- Sasa tangaza ssid na nywila kwa eneo lako la Ufikiaji.
- unganisha kwenye Kituo cha Ufikiaji kutoka kwa kifaa chochote cha STA
- mwenyeji wa seva kwenye bandari 80 ambayo ni bandari chaguo-msingi ya itifaki ya mawasiliano ya mtandao, Itifaki ya Uhamisho wa Hypertext (HTTP)
- ingiza 192.168.1.4 kwenye kivinjari chako cha wavuti kwa ukurasa wa wavuti wa intro na 192.168.1.4/ Thamani ya kusoma ukurasa wa wavuti
// tuli Ip kwa AP
Anwani ya IP ap_local_IP (192, 168, 1, 4);
Anwani ya IP ap_gateway (192, 168, 1, 254);
//Address ap_subnet (255, 255, 255, 0); // ssid na AP kwa WiFi ya ndani katika hali ya STA
const char WiFissid = "*********";
const char WiFipass = "*********";
// ssid na kupitisha AP
const char APssid = "********";
const char APpass = "********";
Seva ya ESP8266WebServer (80);
usanidi batili {
seva.on ("/", onHandleDataRoot);
seva.on ("/ Thamani", onHandleDataFeed);
server.onNotFound (onHandleNotFound);
}
kazi tupuAPCallback () {
Serial.println ("taskAP imeanza");
seva.handleClient ();
}
batili onHandleDataRoot () {server.send (200, "text / html", PAGE1); }
batili kwenyeHandleDataFeed () {
tuma seva (200, "maandishi / html", PAGE2); }
batili kwenyeHandleNotFound () {
Ujumbe wa kamba = "Faili Haikupatikana / n / n";
ujumbe + = "URI:";
ujumbe + = server.uri ();
ujumbe + = "\ nNjia:";
ujumbe + = (server.method () == HTTP_GET)? "PATA": "POST";
message + = "\ n Hoja:";
ujumbe + = server.args ();
ujumbe + = "\ n";
tuma seva (404, "maandishi / wazi", ujumbe);}
unganisha tenaAPWiFi () {
Njia ya WiFi (WIFI_AP_STA);
kuchelewesha (100);
Kuondoa WiFi ();
hali ya boolean = WiFi.softAPConfig (ap_local_IP, ap_gateway, ap_subnet);
ikiwa (status == kweli) {
Serial.print ("Kuweka laini-AP…");
boolean ap = WiFi.softAP (APssid, APpass);
ikiwa (ap == kweli) {
Serial.print ("imeunganishwa na: / t");
// IPAdressress myIP = WiFi.softAPIP ();
Serial.println (WiFi.softAPIP ());
}
anza ();
}
}
Hatua ya 6: Nambari ya Kutuma Takwimu kwa Jambo Ongea
Hapa tunachapisha usomaji wa sensa kwa Jambo La Ongea. hatua zifuatazo zinahitajika ili kukamilisha kazi hii-
- Unda akaunti yako katika kitu cha kusema
- Unda njia na sehemu za kuhifadhi data yako ya kitambuzi
- tunaweza kupata na kutuma data kutoka ESP hadi kituSpeak na kinyume chake kutumia maombi ya GET na POST kwa api.
- tunaweza kutuma data yetu kwa ThingSpeak kama ifuatavyo
kazi tupuWiFiCallback () {
WifiMteja wa WiFiMteja; ikiwa (wifiClient.connect (hostId, 80)) {String postStr = apiKey; postStr + = "& uwanja1 ="; postStr + = Kamba (unyevu); postStr + = "& uwanja2 ="; postStr + = Kamba (tempC); postStr + = "& uwanja3 ="; postStr + = Kamba (tempF); postStr + = "\ r / n / r / n"; wifiClient.print ("POST / sasisha HTTP / 1.1 / n"); wifiClient.print ("Jeshi: api.thingspeak.com / n"); wifiClient.print ("Uunganisho: funga / n"); wifiClient.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); wifiClient.print ("Aina ya Maudhui: matumizi / x-www-form-urlencoded / n"); wifiClient.print ("Urefu wa Maudhui:"); wifiClient.print (postStr.length ()); wifiClient.print ("\ n / n"); wifiClient.print (postStr); } WifiMteja. simama (); }
Hatua ya 7: Kanuni ya Jumla
Nambari ya jumla inapatikana katika duka langu la github
Mikopo:
- Arduino JSON: ArduinoJson
- Mtandao wa ESP826
- Mratibu wa Kazi
- SHT 31
- Scan ya I2C
- Mafunzo ya kufundisha ya HIH6130
- Waya Arduino
- NCD.io
Ilipendekeza:
Sensorer ya hali ya hewa ya hali ya hewa na Kiunga cha data cha GPRS (SIM Card): Hatua 4
Sensor ya hali ya hewa ya hali ya hewa na GPRS (SIM Card) Kiunga cha Takwimu: Muhtasari wa MradiHii ni sensorer ya hali ya hewa inayotumia betri kulingana na joto la BME280 la joto / shinikizo / unyevu na ATMega328P MCU. Inatumika kwa betri mbili za 3.6 V lithiamu thionyl AA. Inayo matumizi ya chini ya kulala ya 6 µA. Inatuma data
Onyesho rahisi la hali ya hewa kwa kutumia Raspberry PI na hali ya hewa ya CyntechHAT: Hatua 4
Onyesho rahisi la hali ya hewa kwa kutumia Raspberry PI na Cyntech WeatherHAT: * Mnamo 2019 Yahoo ilibadilisha API, na hii iliacha kufanya kazi. Sikujua mabadiliko hayo. Mnamo Septemba ya 2020 mradi huu umesasishwa kutumia OPENWEATHERMAP API Angalia sehemu iliyosasishwa hapa chini, habari hii iliyobaki bado ni nzuri
Kituo cha Hali ya Hewa cha NaTaLia: Kituo cha Hali ya Hewa ya Arduino Inayotumiwa Imefanywa kwa Njia Sahihi: Hatua 8 (na Picha)
Kituo cha Hali ya Hewa cha NaTaLia: Kituo cha Hali ya Hewa ya Arduino Inayotumiwa Imefanywa kwa Njia Sawa: Baada ya mwaka 1 wa kufanikiwa katika maeneo 2 tofauti ninashiriki mipango yangu ya mradi wa kituo cha hali ya hewa na kuelezea jinsi ilibadilika kuwa mfumo ambao unaweza kuishi kwa muda mrefu vipindi kutoka kwa nguvu ya jua. Ukifuata
Mshumaa wa Hali ya Hewa - Hali ya hewa na Joto kwa haraka: 8 Hatua
Mshumaa wa Hali ya Hewa - Hali ya Hewa na Joto kwa haraka: Kutumia mshumaa huu wa kichawi, unaweza kujua hali ya joto na hali ya sasa nje mara moja
Acurite 5 katika Kituo cha hali ya hewa 1 Kutumia Raspberry Pi na Weewx (Vituo vingine vya hali ya hewa vinaendana): Hatua 5 (na Picha)
Acurite 5 katika Kituo cha hali ya hewa 1 Kutumia Raspberry Pi na Weewx (Vituo vingine vya hali ya hewa vinaendana): Wakati nilikuwa nimenunua Acurite 5 katika kituo cha hali ya hewa cha 1 nilitaka kuweza kuangalia hali ya hewa nyumbani kwangu nilipokuwa mbali. Nilipofika nyumbani na kuitengeneza niligundua kuwa lazima ningepaswa kuwa na onyesho lililounganishwa na kompyuta au kununua kitovu chao cha busara,