Opis produktu
Szczegóły
Poziom trudności: ★★★
Szacowany czas: 30min
Wymagane elementy:
- płytka Arduino, np. Arduino UNO R3
- płytka stykowa z przewodami połączeniowymi
- wyświetlacz LCD 2x16
- potencjometr 10kΩ
- cyfrowy czujnik DHT11
- rezystor 4.7kΩ
Wstęp
Celem poradnika jest pomiar temperatury i wilgotności za pomocą czujnika DHT11. Otrzymane wyniki zostaną przedstawione na wyświetlaczu znakowych 2x16.
Omawiany czujnik może być zasilany napięciem z przedziały 3.5-5.5V. Zakres mierzonych temperatur 0-50ºC, zakres wilgotności 20-95%. Więcej informacji możemy znaleźć w nocie katalogowej. http://www.mikrokontroler.pl/system/files/dht11.pdf
Do nóżki pierwszej podłączamy zasilanie (+5V), do trzeciej masę, natomiast nóżkę drugą łączymy przez rezystor 4.7kΩ do zasilania i pinu cyfrowego Arduino.
Schemat układu przedstawia poniższy rysunek
Połączenia:
- łączymy wyświetlacz LCD identycznie jak w poprzednich poradnikach
- pierwszą nóżkę czujnika łączymy z zasilaniem (+5V)
- drugą nóżkę łączymy poprzez rezystor 4.7kΩ do zasilania i pinu cyfrowego nr 8
- czwartą nóżkę łączymy z masą
- wyprowadzenie trzecie DHT11 zostawiamy bez żadnego połączenia
Tworzymy kod
Na początku musimy pobrać bibliotekę służącą do obsługi naszego czujnika. Mamy kilka wariantów. W poradniku skorzystamy z kodu autorstwa adafriut dostępnego na stronie: https://github.com/adafruit/DHT-sensor-library. Następnie w programie klikamy Szkic->Include Library->Add .ZIP Library… i wskazujemy miejsce, w którym znajduje się pobrany plik.
Dalej dodajemy ściągniętą wcześniej bibliotekę. (linia 1)
Definiujemy pin oraz typ czujnika. (linie 5-6)
Tworzymy zmienne pozwalające przechowywać liczny zmiennoprzecinkowe. (linie 8-9)
W funkcji loop odczytujemy aktualna temperaturę i wilgotność. (linie 26-27)
Jak widać obsługa czujnika jest bardzo prosta. Teraz wystarczy wyświetlić na wcześniej podłączonym wyświetlaczu LCD uzyskane pomiary.
Kod programu:
#include "DHT.h" //Biblioteka służąca do obsługi czujnika DHT11
#include "LiquidCrystal.h" //Biblioteka służąca do obsługi wyświetlacza
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Definicja pinów do których podłaczamy wyprowadzenia ekranu
#define DHTPIN 8 //Czujnik podłączony do cyfrowego pinu 8
#define DHTTYPE DHT11 //Definicja typu czujnika
float wilgotnosc; //Zmienna przechowująca wilgotność
float temperatura; //Zmienna przechowująca temperaturę
DHT dht(DHTPIN, DHTTYPE); //Definicja czujnika, typ i numer pinu
void setup()
{
Serial.begin(9600); //Prędkość transmisji w porcie szeregowym
lcd.begin(16, 2); //Wybór rodzaju wyświetlacza
dht.begin(); //Inicjalizacja pracy czujnika
lcd.setCursor(0,0); //Ustawienie kursora w 0 kolumnie i 0 wierszu
lcd.print("TEMP: ");
lcd.setCursor(0,1); //Ustawienie kursora w 0 kolumnie i 0 wierszu
lcd.print("WILG: ");
}
void loop()
{
temperatura = dht.readTemperature();
wilgotnosc = dht.readHumidity();
lcd.setCursor(8,0); //Ustawienie kursora w 8 kolumnie i 0 wierszu
lcd.print(temperatura); //Wyświetlenie temperatury
lcd.print("*C ");
lcd.setCursor(8,1);
lcd.print(wilgotnosc);
lcd.println("%");
//Dodatkowe wyświetlenie temperatury i wilgotności w serial port
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println("*C");
Serial.print("Temperatura: ");
Serial.print(wilgotnosc);
Serial.println("%");
delay(1000);
}
Informacje dodatkowe
Informacje dodatkowe
Kraj pochodzenia |
---|
Recenzje
Napisz własną recenzję
Tylko zarejestrowani kiienci mogą pisać opinie. Prosimy zalogować się lub zarejestrować