Fuktighet og temperatur er veldig vanlige parametere for måling mange steder som gård, drivhus, medisinsk, industri og kontor. Vi har allerede dekket fuktighets- og temperaturmåling ved hjelp av Arduino og vist dataene på LCD.
I dette IoT-prosjektet skal vi overvåke fuktighet og temperatur over internett ved hjelp av ThingSpeak hvor vi vil vise gjeldende fuktighets- og temperaturdata over Internett ved hjelp av ThingSpeak-serveren. Det oppnås ved datakommunikasjonen mellom Arduino, DHT11 sensormodul, ESP8266 WIFI-modul og LCD. Celsius-skala termometer og prosentvis fuktighetsmåler viser omgivelsestemperatur og fuktighet gjennom en LCD-skjerm og sender den også til ThingSpeak-serveren for liveovervåking fra hvor som helst i verden.
Arbeid og ThingSpeak-oppsett:
Dette IoT-baserte prosjektet har fire seksjoner, for det første registrerer fuktighets- og temperaturføler DHT11 fuktighets- og temperaturdataene . For det andre trekker Arduino Uno ut DHT11-sensorens data som passende antall i prosent og Celsius-skala, og sender dem til Wi-Fi-modulen. For det tredje sender Wi-Fi-modul ESP8266 dataene til ThingSpeaks Sever. Og til slutt analyserer ThingSpeak dataene og viser dem i en grafform. Valgfri LCD brukes også til å vise temperatur og fuktighet.
ThingSpeak gir et veldig godt verktøy for IoT-baserte prosjekter for Arduino. Ved å bruke ThingSpeak-nettstedet kan vi overvåke dataene våre over Internett hvor som helst, og vi kan også kontrollere systemet vårt over Internett ved hjelp av kanalene og nettsidene som leveres av ThingSpeak. ThingSpeak 'samler' dataene fra sensorene, 'analyserer og visualiserer' dataene og 'handlinger' ved å utløse en reaksjon. Her forklarer vi hvordan du sender data til ThingSpeak-serveren ved hjelp av ESP8266 WIFI-modulen:
1. Først og fremst må brukeren opprette en konto på ThingSpeak.com, deretter logge på og klikke på Kom i gang.
2. Gå nå til 'Kanaler' -menyen og klikk på alternativet Ny kanal på samme side for videre prosess.
3. Nå vil du se et skjema for å opprette kanalen, fyll inn navnet og beskrivelsen etter eget valg. Fyll deretter 'Fuktighet' og 'Temperatur' i feltene 1 og felt 2, kryss av i begge feltene. Merk også av i avmerkingsboksen for "Gjør offentlig" -alternativet nedenfor i skjemaet og til slutt Lagre kanalen. Nå er den nye kanalen din opprettet.
4. Klikk nå på "API-nøkler" -fanen og lagre Skriv og les API-nøkler, her bruker vi bare skrivnøkkel. Du må kopiere denne nøkkelen i char * api_key i koden.
5. Etter det, klikker du på 'Dataimport / eksport' og kopier URL-en for GET Request for oppdatering av kanalfeed, som er:
api.thingspeak.com/update?api_key=SIWOYBX26OXQ1WMS&field1=0
6. Nå må brukeren åpne “api.thingspeak.com” ved hjelp av httpGet- funksjonen med postUrl som “update? Api_key = SIWOYBX26OXQ1WMS & field1 = 0” og deretter sende data ved hjelp av datafeed eller oppdateringsforespørselsadresse.
Før du sender dataene, må brukeren redigere denne spørringsstrengen eller postUrl med datafelter for temperatur og fuktighet, som vist nedenfor. Her har vi lagt til begge parametrene i strengen som vi trenger å sende via GET-forespørsel til serveren, etter at vi har brukt httpGet til å sende dataene til serveren. Sjekk hele koden nedenfor.
Sprintf (postUrl, "update? Api_key =% s & field1 =% s & field2 =% s", api_key, humidStr, tempStr); httpGet ("api.thingspeak.com", postUrl, 80);
Hele prosessen er demonstrert i Video- delen, på slutten av denne artikkelen.
Arbeidet med dette prosjektet er basert på enkeltleders seriell kommunikasjon for å hente data fra DHT11. Først sender Arduino et startsignal til DHT-modulen, og deretter gir DHT et svarsignal med inneholdende data. Arduino samler inn og trekker ut dataene i to deler, først er fuktighet og andre er temperatur, og sender dem deretter til 16x2 LCD og ThingSpeak-server. ThingSpeak viser dataene i form av graf som nedenfor:
Du kan lære mer om DHT11-sensoren og dens grensesnitt med Arduino her.
Kretsbeskrivelse:
Tilkoblinger for dette ThingSpeak temperatur- og fuktighetsovervåkningsprosjektet er veldig enkle. Her brukes en flytende krystallskjerm til å vise temperatur og fuktighet, som er direkte koblet til Arduino i 4-biters modus. Pins på LCD, nemlig RS, EN, D4, D5, D6 og D7, er koblet til Arduino digitale pin nummer 14, 15, 16, 17, 18 og 19. Denne LCD-skjermen er valgfri.
DHT11 sensormodul er koblet til digital pinne 12 på Arduino. Wi-Fi-modul ESP8266s Vcc- og GND-pinner er direkte koblet til 3,3V og GND av Arduino og CH_PD er også koblet til 3,3V. Tx- og Rx-pinner på ESP8266 er direkte koblet til pinne 2 og 3 på Arduino. Software Serial Library brukes også her for å tillate seriell kommunikasjon på pin 2 og 3 i Arduino. Vi har allerede dekket grensesnittet til ESP8266 Wi-Fi-modulen til Arduino i detalj.
Programmeringsdel:
Programmeringsdelen av dette prosjektet spiller en veldig viktig rolle for å utføre alle operasjonene. Først og fremst inkluderer vi nødvendige biblioteker og initialiserer variabler.
#include "dht.h" // Inkludert bibliotek for dht #include
Etter det, skriv inn din API-nøkkel og ta noen strenger.
char * api_key = "SIWOYBX26OXQ1WMS"; // Skriv inn din Skriv API-nøkkel fra ThingSpeak static char postUrl; int humi, tem; ugyldig httpGet (streng ip, streng bane, int port = 80);
I void loop () -funksjonen leser vi temperatur og fuktighet, og viser deretter avlesningene på LCD-skjermen.
void send2server () -funksjonen brukes til å sende dataene til serveren. Send2server-funksjonen er en tidsavbruddsrutin som ringer hvert 20. sekund. Når vi kaller oppdateringsfunksjon, kalles timeravbruddsrutiner.
ugyldig send2server () {char tempStr; røye 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); }