Wiele różnych badań pokazało, że temperatura i wilgotność wewnątrz pomieszczeń ma znaczący wpływ na komfort pracy i produktywność. Pierwszym krokiem mającym na celu zoptymalizowanie tych parametrów jest ich wiarygodny pomiar. Niniejszy projekt omawia pomiar temperatury i wilgotności z użyciem niedrogiego czujnika DHT11. Sercem układu jest procesor PIC16F628A, dane wyświetlane są na alfanumerycznym LCD 16x2.
Czujnik DHT11 jest najtańszym tego typu układem dostępnym na rynku, który cechuje się w pełni skalibrowanym, cyfrowym pomiarem parametrów. Dostępny jest w „stojącej” obudowie z 4-ma wyprowadzeniami i może być zasilany napięciem 3,5-5,5V. Może on mierzyć temperaturę z zakresu 0-50°C z dokł. ±2°C i wilgotność względną z zakresu 20-95%RH z dokł. ±5%, co czyni go dobrym rozwiązaniem do pomiaru tych parametrów wewnątrz pomieszczeń. Czujnik komunikuje się z mikroprocesorem poprzez własny protokół 1-wire.
Powyższy diagram pokazuje sposób komunikacji DHT11 z procesorem.
Transmisję rozpoczyna mikroprocesor poprzez wysłanie sygnału „start” – najpierw podanie 0V na linię danych przez min. 18 ms, a następnie podciągnięcie jej do napięcia zasilania na 20-40 µs. Czujnik odpowiada na sygnał startu, poprzez podanie 0V, a następnie napięcia zasilania na linię przez każdorazowo 80 µs. Następnie następuje transmisja danych (5 bajtów):
Dane = część całkowita RH% (bajt) + część dziesiętna RH% (bajt) + część całkowita T (bajt) + część dziesiętna T (bajt) + bajt sumy kontrolnej.
W przypadku sensora DHT11 drugi i czwarty bajt danych jest zawsze zerowy. Bajt pierwszy i trzeci zawiera dane dotyczące zmierzonej wilgotności względnej (w %RH) i temperatury (w oC). Suma kontrolna musi być równa 8 bitom sumy pierwszych czterech transmitowanych bajtów danych.
Sensor DHT11 przekazuje dane poprzez podanie 0V na 50 µs i następnie podciągnięcie linii danych do plusa zasilania na 26-28 µs, co odpowiada logicznemu „0” – lub na 70 µS, co odpowiada logicznej „1” – więc szerokość dodatniego impulsu stanowi rozróżnienie pomiędzy „0” a „1”. Na koniec transmisji sensor przyłącza linię danych do 0V na 50 µs i następnie zwalnia ją, w oczekiwaniu na kolejny sygnał startu.
Układ składa się z czujnika DHT11, wyświetlacza zgodnego z HD44780 i procesora PIC16F628A, taktowanego kwarcem 4 MHz. Użycie takiego rezonatora sprawia, że jeden cykl procesora zajmuje 1 µs, co sprawia, że obliczanie długości odbieranego impulsu jest bardzo proste.
Program procesora został napisany w C i skompilowany w mikroC for PIC f-my mikroElektronika. Timer2 odpowiada za mierzenie czasu trwania odbieranego impulsu. Ponieważ jeden cykl procesora trwa 1 µs, wartość rejestru Timer2 zawiera wprost długość trwania impulsu w µs. Kiedy wykrywane jest zbocze rosnące, rejestr timera jest czyszczony. Przed wyświetleniem danych na LCD sprawdzana jest każdorazowo suma kontrolna.
Źródło
Fajne? Ranking DIY
