Vlaga i temperatura vrlo su uobičajeni parametri za mjerenje na mnogim mjestima kao što su farme, staklenici, medicina, kuće u industriji i uredi. Već smo pokrili mjerenje vlage i temperature pomoću Arduina i prikazali podatke na LCD-u.
U ovom IoT projektu nadgledat ćemo vlagu i temperaturu putem Interneta pomoću ThingSpeak-a, gdje ćemo prikazati trenutne podatke o vlažnosti i temperaturi putem Interneta pomoću ThingSpeak poslužitelja. To se postiže podatkovnom komunikacijom između Arduina, senzorskog modula DHT11, WSPI modula ESP8266 i LCD-a. Termometar i mjerač vlažnosti Celzijusa na skali Celzijusa prikazuje temperaturu i vlažnost okoline putem LCD zaslona i također ih šalje poslužitelju ThingSpeak za praćenje uživo s bilo kojeg mjesta na svijetu.

Postavljanje rada i ThingSpeak:
Ovaj IoT projekt zasnovan na četiri dijela, prvo senzor vlage i temperature DHT11, osjeti podatke o vlažnosti i temperaturi . Kao drugo, Arduino Uno izvlači podatke senzora DHT11 kao prikladan broj u postocima i Celzijevoj skali i šalje ih Wi-Fi modulu. Treće, Wi-Fi modul ESP8266 šalje podatke ThingSpeakovom Severu. I na kraju ThingSpeak analizira podatke i prikazuje ih u obliku grafikona. Dodatni LCD također se koristi za prikaz temperature i vlažnosti.

ThingSpeak pruža vrlo dobar alat za projekte temeljene na IoT-u za Arduino. Korištenjem ThingSpeak web stranice možemo pratiti podatke putem Interneta s bilo kojeg mjesta, a također možemo kontrolirati svoj sustav putem Interneta, koristeći kanale i web stranice koje pruža ThingSpeak. ThingSpeak "prikuplja" podatke od senzora, "analizira i vizualizira" podatke i "djeluje" pokretanjem reakcije. Ovdje objašnjavamo kako poslati podatke na ThingSpeak poslužitelj pomoću ESP8266 WIFI modula:
1. Prije svega, korisnik treba stvoriti račun na ThingSpeak.com, zatim se prijaviti i kliknuti na Get Started.

2. Sada idite na izbornik 'Kanali' i kliknite opciju Novi kanal na istoj stranici za daljnji postupak.

3. Sada ćete vidjeti obrazac za stvaranje kanala, popunite Ime i Opis prema vašem izboru. Zatim ispunite 'Vlažnost' i 'Temperatura' u oznake polja 1 i polja 2, označite potvrdne okvire za oba polja. Također označite potvrdni okvir za opciju "Objavi javno" ispod u obrascu i na kraju Spremi kanal. Sada je stvoren vaš novi kanal.

4. Sada kliknite karticu "API ključevi" i spremite API ključeve Write and Read API, ovdje koristimo samo tipku Write. Ovaj ključ morate kopirati u char * api_key u kodu.

5. Nakon toga kliknite na "Uvoz / izvoz podataka" i kopirajte URL ažuriranja GET zahtjeva za feed kanala, a to je:
api.thingspeak.com/update?api_key=SIWOYBX26OXQ1WMS&field1=0

6. Sada korisnik mora otvoriti “api.thingspeak.com” pomoću funkcije httpGet s postUrl kao “update? Api_key = SIWOYBX26OXQ1WMS & field1 = 0”, a zatim poslati podatke pomoću feeda podataka ili adrese zahtjeva za ažuriranje.
Prije slanja podataka, korisnik mora urediti ovaj niz upita ili postUrl s poljima podataka o temperaturi i vlažnosti, kao što je prikazano dolje. Ovdje smo dodali oba parametra u niz koji moramo poslati putem GET zahtjeva na poslužitelj, nakon čega smo koristili httpGet za slanje podataka na poslužitelj. Potpuno provjerite donji kod.
Sprintf (postUrl, "update? Api_key =% s & field1 =% s & field2 =% s", api_key, humidStr, tempStr); httpGet ("api.thingspeak.com", postUrl, 80);
Cijeli postupak prikazan je u odjeljku Video, na kraju ovog članka.
Rad ovog projekta temelji se na jednožičnoj serijskoj komunikaciji za dohvaćanje podataka s DHT11. Prvo Arduino šalje signal za pokretanje DHT modulu, a zatim DHT daje signal odziva koji sadrži podatke. Arduino prikuplja i izdvaja podatke u dva dijela, prvi je vlaga, a drugi temperatura, a zatim ih šalje na LCD 16x2 i ThingSpeak poslužitelj. ThingSpeak prikazuje podatke u obliku grafikona kao dolje:

Ovdje možete saznati više o DHT11 senzoru i njegovom povezivanju s Arduinom.
Opis kruga:
Veze za ovaj ThingSpeak projekt praćenja temperature i vlažnosti vrlo su jednostavne. Ovdje se za prikaz temperature i vlažnosti koristi zaslon s tekućim kristalima, koji je izravno povezan s Arduinom u 4-bitnom načinu rada. Pribadače LCD-a, naime RS, EN, D4, D5, D6 i D7, spojeni su na Arduino digitalni pin broj 14, 15, 16, 17, 18 i 19. Ovaj LCD nije dodatni.

DHT11 senzorski modul spojen je na digitalni pin 12 Arduina. Vcc i GND pinovi Wi-Fi modula ESP8266 izravno su povezani s 3,3 V, a GND Arduina, a CH_PD je također povezan s 3,3 V. Tx i Rx pinovi ESP8266 izravno su povezani s pinovima 2 i 3 Arduina. Ovdje se koristi i softverska serijska biblioteka koja omogućuje serijsku komunikaciju na pinovima 2 i 3 Arduina. Već smo detaljno obradili povezivanje Wi-Fi modula ESP8266 s Arduinom.
Programski dio:
Programski dio ovog projekta igra vrlo važnu ulogu za izvođenje svih operacija. Prije svega uključujemo potrebne knjižnice i inicijaliziramo varijable.
#include "dht.h" // Uključujući biblioteku za dht #include
Nakon toga unesite svoj API API ključ i uzmite neke žice.
char * api_key = "SIWOYBX26OXQ1WMS"; // Unesite svoj API API ključ iz ThingSpeak static char postUrl; int humi, tem; void httpGet (String ip, Put niza, int port = 80);
U funkciji void loop () očitamo temperaturu i vlažnost, a zatim prikazujemo ta očitanja na LCD-u.
void send2server () funkcija koristi se za slanje podataka na poslužitelj. Send2server funkcija je rutinska usluga prekida prekidača, koja se poziva svakih 20 sekundi. Kada pozovemo funkciju ažuriranja, poziva se rutina usluge prekida timera.
poništi 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); }
