Fuktighet og temperatur er vanlige parametere for å måle miljøforhold. I dette Arduino-baserte prosjektet skal vi måle omgivelsestemperatur og fuktighet og vise det på en 16x2 LCD-skjerm. En kombinert temperatur- og fuktighetssensor DHT11 brukes med Arduino uno for å utvikle dette Celsius-skalaen termometer og prosentvise målingsprosjekt for fuktighet. I et av mine forrige prosjekter har jeg også utviklet et digitalt termometer ved bruk av temperatursensor LM35.
Dette prosjektet består av tre seksjoner - en registrerer fuktighet og temperatur ved å bruke fuktighets- og temperatursensor DHT11. Den andre seksjonen leser DHTsensor-modulens utgang og trekker ut temperatur- og fuktighetsverdier til et passende tall i prosent og Celsius-skala. Og den tredje delen av systemet viser fuktighet og temperatur på LCD-skjermen.
Arbeidet med dette prosjektet er basert på seriell kommunikasjon med en ledning. Først sender arduino et startsignal til DHT-modulen, og deretter gir DHT et svarsignal som inneholder temperatur- og fuktighetsdata. Arduino samler og trekker ut i to deler, den ene er fuktighet og den andre er temperaturen, og send dem deretter til 16x2 LCD.
Her i dette prosjektet har vi brukt en sensormodul nemlig DHT11. Denne modulen har et fuktighets- og temperaturkompleks med et kalibrert digitalt signalutgang, noe som betyr at DHT11-sensormodulen er en kombinert modul for å registrere fuktighet og temperatur som gir et kalibrert digitalt utgangssignal. DHT11 gir oss veldig nøyaktig verdi av fuktighet og temperatur og sørger for høy pålitelighet og langvarig stabilitet. Denne sensoren har en resistiv type fuktighetsmålingskomponent og temperaturmålingskomponent av NTC-typen med en innebygd 8-biters mikrokontroller som har rask respons og er kostnadseffektiv og tilgjengelig i 4-pinners enkelradepakke.
DHT11-modulen fungerer på seriell kommunikasjon, dvs. enkeltkablet kommunikasjon. Denne modulen sender data i form av pulstog med spesifikk tidsperiode. Før du sender data til arduino, trenger den en initialiseringskommando med en tidsforsinkelse. Og hele prosesstiden er omtrent 4 ms. En fullstendig dataoverføring er på 40-biters, og dataformatet for denne prosessen er gitt nedenfor:
8-bits integrerte RH-data + 8-bit desimal RH-data + 8-bit integrerte T-data + 8-bit desimal T-data + 8-bits sjekksum.
Fullstendig prosess
Først og fremst sender arduino et høyt til lavt startsignal til DHT11 med 18 µs forsinkelse for å sikre DHTs deteksjon. Og så trekker arduino datalinjen og venter på 20-40µs for DHTs svar. Når DHT oppdager startsignalet, vil det sende et lavspenningsnivårespons signal til arduino med tidsforsinkelse på ca. 80 µs. Og så trekker DHT-kontrolleren datalinjen og holder den i 80 µs for DHTs ordning med sending av data.
Når databussen er på lavspenningsnivå, betyr det at DHT11 sender svarsignal. Når det er gjort, lager DHT igjen datalinjeoppsamling i 80 µs for å forberede dataoverføring.
Dataformat som sendes med DHT til arduino for hver bit begynner med 50 µs lavspenningsnivå og lengden på høyspenningsnivåsignalet bestemmer om databiten er “0” eller “1”.
En viktig ting er å sørge for at motstandsverdien trekkes opp, for hvis vi plasserer DHT-sensoren på <20 meters avstand, anbefales 5k opptrekksmotstand. Hvis du plasserer DHT lenger enn 20 meter, må du bruke passende opptrekksmotstand.
Kretsdiagram og forklaring
En flytende krystallskjerm brukes 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 digital pin nummer 2, 3, 4, 5, 6 og 7. Og en DHT11 sensormodul er også koblet til digital pin 12 i arduino med en 5k pull-up motstand.
Programmeringsbeskrivelse
I programmeringen skal vi bruke forhåndsbygde biblioteker for DHT11-sensor og LCD-skjermmodul.
Så fikk vi definerte pinner for LCD- og DHT-sensor og initialiserte alle tingene i oppsettet. Så i en sløyfe ved å bruke dht-funksjonen leser DHT-sensoren og deretter bruker vi noen dht-funksjoner, trekker vi ut fuktighet og temperatur og viser dem på LCD.
Her opprettes gradssymbolet ved å bruke tilpasset tegnmetode.