Drėgmė ir temperatūra yra labai dažni parametrai matuojant daugelyje vietų, pavyzdžiui, ūkyje, šiltnamyje, medicinos, pramonės namuose ir biuruose. Mes jau apžvelgėme drėgmės ir temperatūros matavimą naudodami „Arduino“ ir rodėme duomenis LCD.
Šiame IoT projekte mes ketiname stebėti drėgmę ir temperatūrą internete naudodami „ThingSpeak“, kur mes parodysime dabartinius drėgmės ir temperatūros duomenis internete naudodamiesi „ThingSpeak“ serveriu. Tai pasiekiama duomenų ryšiu tarp „ Arduino“, DHT11 jutiklio modulio, ESP8266 WIFI modulio ir LCD. Celsijaus skalės termometras ir procentinė skalės drėgmės matuoklė per LCD ekraną rodo aplinkos temperatūrą ir drėgmę, taip pat siunčia ją į „ ThingSpeak“ serverį tiesioginiam stebėjimui iš bet kurios pasaulio vietos.
Darbas ir „ThingSpeak“ sąranka:
Šis IoT pagrįstas projektas, turintis keturis skyrius, visų pirma, drėgmės ir temperatūros jutiklis DHT11 nustato drėgmės ir temperatūros duomenis . Antra, „ Arduino Uno“ išskiria DHT11 jutiklio duomenis kaip tinkamą skaičių procentais ir Celsijaus skalę ir siunčia juos į „Wi-Fi“ modulį. Trečia, „ Wi-Fi“ modulis ESP8266 siunčia duomenis „ThingSpeak“ „Sever“. Galiausiai „ ThingSpeak“ analizuoja duomenis ir rodo juos „Graph“ forma. Pasirenkamas LCD taip pat naudojamas temperatūrai ir drėgmei rodyti.
„ThingSpeak“ suteikia labai gerą įrankį daiktais pagrįstais „Arduino“ projektais. Naudodamiesi „ThingSpeak“ svetaine, mes galime stebėti savo duomenis internetu iš bet kurios vietos, taip pat galime valdyti savo sistemą internete, naudodami „ThingSpeak“ teikiamus kanalus ir tinklalapius. „ThingSpeak “ renka duomenis iš jutiklių, „analizuoja ir vizualizuoja“ duomenis ir „veiksmus“, sukeldamas reakciją. Čia mes paaiškiname, kaip siųsti duomenis į „ThingSpeak“ serverį naudojant ESP8266 WIFI modulį:
1. Visų pirma, vartotojas turi susikurti paskyrą ThingSpeak.com, tada prisijungti ir spustelėkite Pradėti.
2. Dabar eikite į meniu „Kanalai“ ir tame pačiame puslapyje spustelėkite parinktį Naujas kanalas, kad galėtumėte tęsti procesą.
3. Dabar pamatysite kanalo kūrimo formą, užpildykite pavadinimą ir aprašą pagal savo pasirinkimą. Tada 1 ir 2 laukų etiketėse užpildykite „Drėgmė“ ir „Temperatūra“, pažymėkite abiejų laukų žymimuosius laukelius. Taip pat pažymėkite formos žymimąjį laukelį „Padaryti viešą“ ir galiausiai išsaugokite kanalą. Dabar jūsų naujas kanalas buvo sukurtas.
4. Dabar spustelėkite „API raktų“ skirtuką ir išsaugokite „Write and Read“ API raktus, čia mes naudojame tik „Write key“. Turite nukopijuoti šį raktą „ char * api_key “ kode.
5. Po to spustelėkite „Duomenų importavimas / eksportavimas“ ir nukopijuokite atnaujinimo kanalo kanalo GET užklausos URL, kuris yra:
api.thingspeak.com/update?api_key=SIWOYBX26OXQ1WMS&field1=0
6. Dabar vartotojas turi atidaryti "api.thingspeak.com" naudojant httpGet funkciją su postUrl kaip "atnaujinimo? Api_key = SIWOYBX26OXQ1WMS & 1laukas = 0" ir tada siųsti duomenis naudojant duomenų kanalą arba atnaujinti prašymo adresą.
Prieš siųsdamas duomenis, vartotojas turi redaguoti šią užklausos eilutę arba „ postUrl“ su temperatūros ir drėgmės duomenų laukais, kaip parodyta žemiau. Čia mes pridėjome abu parametrus eilutėje, kurią turime išsiųsti naudodami GET užklausą į serverį, po to mes naudojome „ httpGet “ duomenims siųsti į serverį. Patikrinkite visą žemiau esantį kodą.
Sprintf (postUrl, "atnaujinti? Api_key =% s & field1 =% s & field2 =% s", api_key, humidStr, tempStr); httpGet („api.thingspeak.com“, postUrl, 80);
Visas procesas parodytas skyriuje Vaizdo įrašas, šio straipsnio pabaigoje.
Šis projektas yra pagrįstas viengubu laidiniu nuosekliu ryšiu, norint gauti duomenis iš DHT11. Pirmiausia „Arduino“ siunčia starto signalą į DHT modulį, o tada DHT pateikia atsako signalą su duomenimis. „Arduino“ renka ir išskiria duomenis iš dviejų dalių, pirmiausia drėgmės, antroje - temperatūros, tada siunčia juos į 16x2 LCD ir „ThingSpeak“ serverį. „ThingSpeak“ rodo duomenis grafiko pavidalu, kaip nurodyta toliau:
Čia galite sužinoti daugiau apie DHT11 jutiklį ir jo sąsają su „Arduino“.
Grandinės aprašymas:
Šio „ ThingSpeak“ temperatūros ir drėgmės stebėjimo projekto jungtys yra labai paprastos. Čia skystųjų kristalų ekranas naudojamas temperatūrai ir drėgmei rodyti, kuris yra tiesiogiai prijungtas prie „Arduino“ 4 bitų režimu. LCD, būtent RS, EN, D4, D5, D6 ir D7, kaiščiai yra prijungti prie „Arduino“ skaitmeninių kaiščių numerių 14, 15, 16, 17, 18 ir 19. Šis skystųjų kristalų ekranas yra neprivalomas.
DHT11 jutiklio modulis yra prijungtas prie „Arduino“ skaitmeninio kaiščio 12. „Wi-Fi“ modulio ESP8266 „Vcc“ ir „GND“ kaiščiai yra tiesiogiai prijungti prie 3,3 V, „Arduino“ GND ir „CH_PD“ taip pat prijungti prie 3,3 V. ESP8266 Tx ir Rx kaiščiai yra tiesiogiai prijungti prie „Arduino“ 2 ir 3 kaiščių. Programinės įrangos nuoseklioji biblioteka taip pat naudojama čia, kad būtų galima nuosekliai bendrauti „Arduino“ 2 ir 3 kaiščiuose. Mes jau išsamiai aptarėme „Wi-Fi“ modulio ESP8266 sąsają su „Arduino“.
Programavimo dalis:
Programinė šio projekto dalis vaidina labai svarbų vaidmenį atliekant visas operacijas. Pirmiausia įtraukiame reikalingas bibliotekas ir inicijuojame kintamuosius.
#include "dht.h" // Įskaitant dht #include biblioteką
Po to įveskite savo rašymo API raktą ir paimkite keletą eilučių.
char * api_key = "SIWOYBX26OXQ1WMS"; // Įveskite savo rašymo API raktą iš „ThingSpeak“ statinio simbolio char postUrl; int humi, tem; void httpGet (String ip, String path, int port = 80);
Be void kilpa () funkcija, mes skaito temperatūrą ir drėgmę, o tada parodyti tuos parodymus apie LCD.
funkcija void send2server () naudojama duomenims siųsti į serverį. „Send2server“ funkcija - tai laikmačio pertraukimo tarnyba, skambinant kas 20 sekundžių. Kai iškviečiame atnaujinimo funkciją, iškviečiama laikmačio pertraukimo paslaugos rutina.
void send2server () {char tempStr; char humidStr; dtostrf (tem, 5, 3, tempStr); dtostrf (humi, 5, 3, humidStr); sprintf (postUrl, "atnaujinti? api_key =% s & field1 =% s & field2 =% s", api_key, humidStr, tempStr); httpGet („api.thingspeak.com“, postUrl, 80); }