Vlhkosť a teplota sú bežné parametre na meranie podmienok prostredia. V tomto projekte založenom na Arduine budeme merať teplotu a vlhkosť okolia a zobrazovať ich na 16x2 LCD obrazovke. Kombinovaný snímač teploty a himidity DHT11 sa používa s Arduino uno na vývoj tohto projektu merania teploty v stupňoch Celzia a vlhkosti v percentách. V jednom z mojich predchádzajúcich projektov som vyvinul aj digitálny teplomer využívajúci teplotný senzor LM35.
Tento projekt sa skladá z troch častí - jedna sníma vlhkosť a teplotu pomocou snímača vlhkosti a teploty DHT11. Druhá časť číta výstup modulu DHTsensor a extrahuje hodnoty teploty a vlhkosti do vhodného počtu v percentách a v stupňoch Celzia. A tretia časť systému zobrazuje vlhkosť a teplotu na LCD displeji.
Práca na tomto projekte je založená na jednovodičovej sériovej komunikácii. Najskôr arduino pošle štartovací signál do modulu DHT a potom DHT dá signál odozvy obsahujúci údaje o teplote a vlhkosti. Arduino zhromažďuje a extrahuje z dvoch častí, jednej je vlhkosť a druhej je teplota a potom ich pošle na 16x2 LCD.
V tomto projekte sme použili senzorový modul, konkrétne DHT11. Tento modul obsahuje komplex vlhkosti a teploty s kalibrovaným digitálnym výstupom signálu. Znamená to, že modul snímača DHT11 je kombinovaný modul na snímanie vlhkosti a teploty, ktorý poskytuje kalibrovaný digitálny výstupný signál. DHT11 nám poskytuje veľmi presnú hodnotu vlhkosti a teploty a zaisťuje vysokú spoľahlivosť a dlhodobú stabilitu. Tento snímač má odporový komponent na meranie vlhkosti a komponent na meranie teploty NTC s 8-bitovým mikrokontrolérom, ktorý má rýchlu odozvu a je efektívny z hľadiska nákladov a je k dispozícii v 4-pólovom jednoradovom balení.
Modul DHT11 pracuje na sériovej komunikácii, tj jednodrátovej komunikácii. Tento modul odosiela údaje vo forme sledu impulzov konkrétneho časového obdobia. Pred odoslaním údajov na arduino je potrebný nejaký inicializačný príkaz s časovým oneskorením. Celý čas procesu je asi 4 ms. Kompletný dátový prenos je 40-bitový a dátový formát tohto procesu je uvedený nižšie:
8-bitové integrálne RH dáta + 8-bitové desatinné RH dáta + 8-bitové integrálne T dáta + 8-bitové desatinné dáta T + 8-bitový kontrolný súčet.
Kompletný proces
Najskôr arduino vyšle na DHT11 signál spustenia od najvyššieho po najnižší s oneskorením 18 µs, aby sa zabezpečila detekcia DHT. A potom Arduino vytiahne dátovú linku a počká na 20 - 40 µs na odpoveď DHT. Akonáhle DHT detekuje štartovací signál, vyšle signál odozvy nízkej úrovne napätia na arduino s časovým oneskorením asi 80µs. Potom regulátor DHT vytiahne dátovú linku a ponechá ju po dobu 80 µs na zabezpečenie odosielania údajov zo strany DHT.
Keď je dátová zbernica na nízkej úrovni napätia, znamená to, že DHT11 vysiela signál odpovede. Akonáhle je hotovo, DHT opäť pripraví dátovú linku na 80 µs na prípravu prenosu dát.
Dátový formát, ktorý odosiela DHT na server arduino pre každý bit, začína úrovňou nízkeho napätia 50 µs a dĺžka signálu úrovne vysokého napätia určuje, či je dátový bit „0“ alebo „1“.
Jednou z dôležitých vecí je zabezpečiť hodnotu pull-up rezistora, pretože ak umiestňujeme snímač DHT do vzdialenosti <20 metrov, odporúča sa odpor 5 k-pull. Ak umiestňujete DHT na dlhšiu vzdialenosť ako 20 metrov, použite odpor zodpovedajúci hodnote.
Schéma zapojenia a vysvetlenie
Na zobrazovanie teploty a vlhkosti sa používa displej z tekutých kryštálov, ktorý je priamo pripojený k arduino v 4-bitovom režime. Kolíky LCD, menovite RS, EN, D4, D5, D6 a D7, sú pripojené k digitálnemu kolíku arduino číslo 2, 3, 4, 5, 6 a 7. A senzorový modul DHT11 je tiež pripojený k digitálnemu kolíku 12 arduino pomocou 5k pull-up rezistor.
Popis programovania
Pri programovaní použijeme vopred pripravené knižnice pre senzor DHT11 a modul LCD displeja.
Potom sme vytvorili definované piny pre LCD a DHT senzor a inicializovali sme všetky veci v nastavení. Potom v slučke pomocou funkcie dht načíta snímač DHT a pomocou niektorých funkcií dht extrahujeme vlhkosť a teplotu a zobrazíme ich na LCD displeji.
Tu sa symbol stupňa vytvára pomocou vlastnej metódy znaku.