Mitrums un temperatūra ir ļoti izplatīti parametri mērījumiem daudzās vietās, piemēram, saimniecībā, siltumnīcā, medicīnas, rūpniecības mājās un birojos. Mēs jau esam apskatījuši mitruma un temperatūras mērīšanu, izmantojot Arduino, un parādījuši datus LCD.
Šajā IoT projektā mēs internetā izmantosim mitruma un temperatūras monitoringu, izmantojot ThingSpeak, kur mēs parādīsim pašreizējos mitruma un temperatūras datus internetā, izmantojot ThingSpeak serveri. To nodrošina datu pārraide starp Arduino, DHT11 sensora moduli, ESP8266 WIFI moduli un LCD. Celsija skalas termometrs un procentuālais mitruma mērītājs, izmantojot LCD displeju, parāda apkārtējās vides temperatūru un mitrumu, kā arī nosūta tos uz ThingSpeak serveri tiešraides uzraudzībai no jebkuras vietas pasaulē.
Darbs un ThingSpeak iestatīšana:
Šis IoT balstītais projekts, kuram ir četras sadaļas, pirmkārt, mitruma un temperatūras sensors DHT11 uztver mitruma un temperatūras datus . Otrkārt, Arduino Uno iegūst DHT11 sensora datus kā piemērotu skaitli procentos un pēc Celsija skalas un nosūta tos Wi-Fi modulim. Treškārt, Wi-Fi modulis ESP8266 nosūta datus ThingSpeak Sever. Visbeidzot, ThingSpeak analizē datus un parāda tos Grafika formā. Papildu LCD tiek izmantots arī temperatūras un mitruma rādīšanai.
ThingSpeak nodrošina ļoti labu rīku Arduino IoT balstītiem projektiem. Izmantojot ThingSpeak vietni, mēs varam uzraudzīt savus datus internetā no jebkuras vietas, kā arī mēs varam kontrolēt savu sistēmu internetā, izmantojot ThingSpeak nodrošinātos kanālus un tīmekļa lapas. ThingSpeak “apkopo” datus no sensoriem, “analizē un vizualizē” datus un “darbojas”, izraisot reakciju. Šeit mēs paskaidrojam par to, kā nosūtīt datus uz ThingSpeak serveri, izmantojot ESP8266 WIFI moduli:
1. Pirmkārt, lietotājam ir jāizveido konts vietnē ThingSpeak.com, pēc tam jāpierakstās un noklikšķiniet uz Sākt.
2. Tagad dodieties uz izvēlni “Kanāli” un tajā pašā lapā noklikšķiniet uz opcijas Jauns kanāls, lai turpinātu procesu.
3. Tagad jūs redzēsiet veidlapu kanāla izveidei, aizpildiet nosaukumu un aprakstu atbilstoši savai izvēlei. Pēc tam 1. un 2. lauka etiķetēs aizpildiet “Mitrums” un “Temperatūra”, atzīmējiet abu lauku izvēles rūtiņas. Veidlapā atzīmējiet arī izvēles rūtiņu “Padarīt publisku” un visbeidzot saglabājiet kanālu. Tagad jūsu jaunais kanāls ir izveidots.
4. Tagad noklikšķiniet uz cilnes “API atslēgas” un saglabājiet API rakstīšanas un lasīšanas atslēgas, šeit mēs izmantojam tikai rakstīšanas atslēgu. Šī atslēga ir jākopē kodā char * api_key .
5. Pēc tam noklikšķiniet uz “Datu importēšana / eksportēšana” un nokopējiet kanāla plūsmas atjaunināšanas GET pieprasījuma URL, kas ir:
api.thingspeak.com/update?api_key=SIWOYBX26OXQ1WMS&field1=0
6. Tagad lietotājam ir jāatver “api.thingspeak.com”, izmantojot funkciju httpGet ar postUrl kā “update? Api_key = SIWOYBX26OXQ1WMS & field1 = 0” un pēc tam jānosūta dati, izmantojot datu plūsmu vai atjaunināšanas pieprasījuma adresi.
Pirms datu nosūtīšanas lietotājam ir jārediģē šī vaicājuma virkne vai postUrl ar temperatūras un mitruma datu laukiem, kā parādīts zemāk. Šeit mēs esam pievienojuši abus parametrus virknē, kas mums jānosūta, izmantojot GET pieprasījumu serverim, pēc tam mēs esam izmantojuši httpGet datu nosūtīšanai uz serveri. Pārbaudiet pilnu kodu zemāk.
Sprintf (postUrl, "update? Api_key =% s & field1 =% s & field2 =% s", api_key, humidStr, tempStr); httpGet ("api.thingspeak.com", postUrl, 80);
Viss process ir parādīts sadaļā Video šī raksta beigās.
Šī projekta darbība ir balstīta uz vienas stieples seriālo komunikāciju datu iegūšanai no DHT11. Vispirms Arduino nosūta sākuma signālu DHT modulim, un pēc tam DHT dod atbildes signālu ar datiem. Arduino apkopo un izvelk datus divās daļās: vispirms mitrums, otrajā - temperatūra, un pēc tam nosūta tos uz 16x2 LCD un ThingSpeak serveri. ThingSpeak parāda datus diagrammas veidā, kā norādīts zemāk:
Šeit varat uzzināt vairāk par DHT11 sensoru un tā saskarni ar Arduino.
Ķēdes apraksts:
Savienojumi šim ThingSpeak temperatūras un mitruma uzraudzības projektam ir ļoti vienkārši. Šeit temperatūras un mitruma attēlošanai tiek izmantots šķidro kristālu displejs, kas ir tieši savienots ar Arduino 4 bitu režīmā. LCD, proti, RS, EN, D4, D5, D6 un D7, tapas ir savienotas ar Arduino digitālo tapu numuriem 14, 15, 16, 17, 18 un 19. Šis LCD nav obligāts.
DHT11 sensora modulis ir savienots ar Arduino digitālo tapu 12. Wi-Fi moduļa ESP8266 Vcc un GND tapas ir tieši savienotas ar 3.3V un Arduino GND, un CH_PD ir savienotas arī ar 3.3V. ESP8266 Tx un Rx tapas ir tieši savienotas ar Arduino 2. un 3. tapu. Šeit tiek izmantota arī programmatūras sērijas bibliotēka, lai atļautu sērijveida saziņu Arduino 2. un 3. tapā. Mēs jau detalizēti aplūkojām Wi-Fi moduļa ESP8266 saskarni ar Arduino.
Programmēšanas daļa:
Šī projekta programmēšanai ir ļoti svarīga loma visu darbību veikšanā. Vispirms mēs iekļaujam nepieciešamās bibliotēkas un inicializējam mainīgos.
#include "dht.h" // Ieskaitot bibliotēku dht #include
Pēc tam ievadiet rakstīšanas API atslēgu un paņemiet virknes.
char * api_key = "SIWOYBX26OXQ1WMS"; // Ievadiet rakstīšanas API atslēgu no ThingSpeak static char postUrl; int humi, tem; void httpGet (String ip, String path, int ports = 80);
Funkcijā void loop () mēs nolasām temperatūru un mitrumu un pēc tam parādām LCD rādījumus.
funkcija void send2server () tiek izmantota datu nosūtīšanai uz serveri. Send2server funkcija ir taimera pārtraukuma pakalpojuma rutīna, kas zvana ik pēc 20 sekundēm. Kad mēs izsaucam atjaunināšanas funkciju, tiek izsaukta taimera pārtraukuma pakalpojumu kārtība.
void send2server () {char tempStr; char humidStr; dtostrf (tem, 5, 3, tempStr); dtostrf (humi, 5, 3, humidStr); sprintf (postUrl, "update? api_key =% s & field1 =% s & field2 =% s", api_key, humidStr, tempStr); httpGet ("api.thingspeak.com", postUrl, 80); }