Dziś pokażę jak za pomocą czujnika DHT11, odczytać temperaturę i wilgotność, panującą w otoczeniu czujnika, i wyświetlić ją na LCD zgodnym z HD44780, zawartym w module uruchomieniowym Gotronik.
Co będziemy potrzebować :
- moduł uruchomieniowy Gotronik
- Programator USBasp
- Środowisko programistyczne Eclipse
- Przewody połączeniowe żeńsko – żeńskie
- Moduł czujnika DHT11: 1 lub 2
- Biblioteki obsługujące czujnik DHT11
Czujnik DHT11 jest zarówno czujnikiem temperatury, jak i wilgotności. Moduły czujników dostępne w sklepie Gotronik są gotowe do użycia. Oczywiście, można byłoby użyć samego czujnika DHT11, nie w formie modułu. Należy wtedy pamiętać, aby między 1 a 2 pin czujnika, dołączyć rezystor 4,7k Ω.
Pamiętajmy również, że zakres napięć pracy czujnika wynosi 3,5V – 5,5V, zatem musimy użyć programatora, który zasili nam zestaw napięciem 5V.
Pin 1 – VCC
Pin 2 – DATA
Pin 3 – Nieużywany
Pin 4 – GND
Ja użyłem gotowego modułu, do którego link podałem wyżej.
Podłączenie czujnika do płytki przedstawia się następująco:
DAT -> PC5
VCC -> VCC
GND -> GND
Biblioteki do obsługi czujnika, wypakowujemy do katalogu C:\WinAVR-20100110\avr\include\dht11
Jeśli podłączyliśmy czujnik tak jak opisałem powyżej, nie jest konieczne wprowadzanie żadnych zmian w pliku nagłówkowym dht11.h.
Czas na kod źródłowy programu, który wklejam poniżej:
/* * DHT11.c * * Created on: 3 sie 2015 * Author: Gotronik_1 */ #include <avr/io.h> #include <util/delay.h> #include <hd44780/hd44780.c> #include <dht11/dht11.c> int main (void){ LCD_Initalize(); uint8_t temperatura=0; uint8_t wilgotnosc=0; char bufor[100]; while(1){ LCD_GoTo(0,0); LCD_WriteText("Temp:"); temperatura=dht11_gettemperature(); // funkcja pobiera temperaturę z czujnika i przypisuje ją do zmiennej itoa(temperatura,bufor,10); //funkcja zamieniajaca typ integer na char LCD_GoTo(6,0); LCD_WriteText(bufor); LCD_GoTo(8,0); LCD_WriteData(223); //instrukcja wyświetlająca znak stopnia LCD_GoTo(9,0); LCD_WriteText("C"); LCD_GoTo(0,1); LCD_WriteText("Wilg:"); wilgotnosc=dht11_gethumidity(); itoa(wilgotnosc,bufor,10); LCD_GoTo(6,1); LCD_WriteText(bufor); LCD_GoTo(8,1); LCD_WriteText("%"); } }
Jeżeli wszystko zrobiliśmy poprawnie, naszym oczom powinien ukazać się widok taki, jak na poniższym zdjęciu:
Dodaj komentarz
Musisz się zalogować, aby móc dodać komentarz.