Vlažnost in temperatura sta pogosta parametra za merjenje okoljskih razmer. V tem projektu, ki temelji na Arduinu, bomo izmerili temperaturo in vlažnost okolice ter jih prikazali na LCD zaslonu 16x2. Kombiniran senzor temperature in vlažnosti DHT11 se uporablja z Arduino uno za razvoj tega merilnika stopnje Celzija in merjenja vlažnosti v odstotkih. V enem od svojih prejšnjih projektov sem razvil tudi digitalni termometer z uporabo temperaturnega senzorja LM35.
Ta projekt je sestavljen iz treh delov - eden zazna vlago in temperaturo s pomočjo senzorja vlažnosti in temperature DHT11. Drugi odsek bere izhodne podatke modula DHTsensor in izvleče vrednosti temperature in vlažnosti v primerno število v odstotkih in stopinjah Celzija. Tretji del sistema na LCD-prikazovalniku prikazuje vlažnost in temperaturo.
Delo tega projekta temelji na enožični serijski komunikaciji. Arduino najprej pošlje signal za zagon modulu DHT, nato pa DHT odda odzivni signal, ki vsebuje podatke o temperaturi in vlažnosti. Arduino zbira in ekstrahira v dveh delih, eden je vlažnost, drugi pa temperatura, nato pa jih pošlje na LCD 16x2.
V tem projektu smo uporabili senzorski modul, in sicer DHT11. Ta modul vsebuje kompleks vlage in temperature s kalibriranim digitalnim izhodnim signalom, kar pomeni, da je senzorski modul DHT11 kombinirani modul za zaznavanje vlažnosti in temperature, ki daje kalibriran digitalni izhodni signal. DHT11 nam daje zelo natančno vrednost vlažnosti in temperature ter zagotavlja visoko zanesljivost in dolgoročno stabilnost. Ta senzor ima uporovno komponento za merjenje vlažnosti in NTC komponento za merjenje temperature z vgrajenim 8-bitnim mikrokrmilnikom, ki ima hiter odziv in stroškovno učinkovit ter na voljo v 4-polnem enovrstnem paketu.
Modul DHT11 deluje na serijski komunikaciji, tj. Enožični komunikaciji. Ta modul pošilja podatke v obliki impulznega sevanja določenega časovnega obdobja. Pred pošiljanjem podatkov v arduino potrebuje nekaj ukaza za inicializacijo s časovno zamudo. In celoten čas postopka je približno 4 ms. Popoln prenos podatkov je 40-biten, v nadaljevanju pa je podana oblika zapisa tega postopka:
8-bitni integralni podatki RH + 8-bitni decimalni podatki RH + 8-bitni integralni podatki T + 8-bitni decimalni podatki T + 8-bitna kontrolna vsota.
Dokončajte postopek
Najprej arduino pošlje signal DHT11 od visokega do nizkega zagona z zakasnitvijo 18µs, da zagotovi zaznavanje DHT. Nato arduino povleče podatkovno vrstico in počaka 20-40µs, da se odzove DHT. Ko DHT zazna signal za zagon, bo poslal signal odziva nizke napetosti na arduino s časovno zakasnitvijo približno 80µs. Nato krmilnik DHT povleče podatkovno vrstico in jo hrani 80µs za DHT-jevo pošiljanje podatkov.
Ko je podatkovno vodilo na nizki napetosti, to pomeni, da DHT11 pošilja odzivni signal. Ko konča, DHT znova naredi povlečenje podatkovne linije za 80µs za pripravo prenosa podatkov.
Podatkovni format, ki ga DHT pošlje v arduino za vsak bit, se začne s 50 µs nizko napetostjo, dolžina signala visoke napetosti pa določa, ali je podatkovni bit »0« ali »1«.
Pomembno je zagotoviti, da je vrednost uporov navzgor, ker če postavljamo senzor DHT na razdaljo manj kot 20 metrov, priporočamo 5k upor. Če postavljate DHT na daljše od 20 metrov, uporabite uporovni upor ustrezne vrednosti.
Shema vezja in razlaga
Zaslon s tekočimi kristali se uporablja za prikaz temperature in vlažnosti, ki je neposredno povezan z arduinom v 4-bitnem načinu. Zatiči LCD, in sicer RS, EN, D4, D5, D6 in D7, so povezani z arduino digitalnimi številkami 2, 3, 4, 5, 6 in 7. In senzorski modul DHT11 je prav tako povezan z digitalnim zatičem 12 arduina z 5k vlečni upor.
Opis programiranja
Pri programiranju bomo uporabili že vgrajene knjižnice za senzor DHT11 in modul LCD zaslona.
Nato smo definirali nožice za LCD in DHT senzor ter inicializirali vse stvari v nastavitvi. Nato v zanki s funkcijo dht bere senzor DHT in nato z nekaterimi funkcijami dht izvlečemo vlago in temperaturo ter jih prikažemo na LCD-prikazovalniku.
Tu se simbol stopnje ustvari z uporabo metode znakov po meri.