Serwisy partnerskie:
Close icon
Serwisy partnerskie

Zastosowanie czujnika DHT11 z Raspberry Pi do pomiaru temperatury i wilgotności

Article Image
Elmax
Pomiar temperatury i wilgotności to przydatne funkcje wykonywane przez różne czujniki. Jednym z popularnych czujników jest DHT11, który nie tylko oferuje dokładność, ale także szeroki zakres. Możemy łatwo połączyć DHT11 z naszymi mikroprocesorami/mikrokontrolerami. W tym artykule nauczymy Cię, jak połączyć czujnik DHT11 z Raspberry Pi, który będzie wyświetlał odczyty na ekranie LCD 16×2.

Czujnik DHT11

DHT11 jest podstawowym, niedrogim, cyfrowym czujnikiem wilgotności i temperatury. Mierzy on temperaturę w zakresie 0-50°C z dokładnością ±2°C. Mierzy również wilgotność w zakresie 20-90% RH z dokładnością ±5%. Dostępny jest w formie modułu i czujnika. W tym tutorialu będziemy używać formy modułowej. Obie formy różnią się tym, że czujnik posiada kondensator filtrujący oraz rezystor podciągający dołączony do pinu wyjściowego czujnika.

Działanie czujnika DHT11

Czujnik dostarczany jest w niebieskiej lub białej obudowie, w której znajdują się dwa ważne elementy. Jeden z nich to para elektrod; opór elektryczny pomiędzy tymi dwoma elektrodami jest kontrolowany przez podłoże utrzymujące wilgoć, tzn. mierzony opór jest odwrotnie proporcjonalny do wilgotności względnej otoczenia. Należy pamiętać, że jest to wilgotność względna, a nie rzeczywista, więc mierzy ona zawartość wody w powietrzu w stosunku do temperatury w powietrzu. Drugim elementem jest montowany powierzchniowo termistor NTC (Negative Temperature Coefficient). Wraz ze wzrostem temperatury wartość rezystancji będzie się zmniejszać.

Schemat budowy modułu do pomiaru temperatury i wilgotności DHT11

Wymagania wstępne dla tego projektu

Twoje Raspberry Pi powinno być sprzężone z systemem operacyjnym i powinno łączyć się z internetem. Powinieneś także mieć dostęp do Raspberry Pi albo przez terminal windows lub przez inną aplikację, dzięki której możesz pisać i wykonywać programy python i używać terminal windows.

Okno terminala po połączeniu się z Raspberry Pi

Zainstalowanie biblioteki Adafruit LCD na Twoim Raspberry Pi

Dane z czujników będą wyświetlane na wyświetlaczu LCD 16×2. Będziemy używać biblioteki Adafruit do łatwej obsługi tego wyświetlacza LCD w trybie 4-bitowym, więc zainstalujemy ją w naszym Raspberry Pi. W tym celu postępuj zgodnie z poniższymi krokami:

Krok 1: Po pierwsze, użyj poniższego linka, aby zainstalować go na swoim Raspberry Pi. To pozwoli nam sklonować nasz plik projektu na Github, więc musimy zainstalować Git w celu pobrania biblioteki.

apt-get install git

Krok 2: Podany link jest do strony Github, gdzie nasza biblioteka jest obecna, wykonaj tę linię i plik projektu zostanie sklonowany w katalogu domowym Pi.

git clone git://github.com/adafruit/Adafruit_Python_CharLCD

Krok 3: Następnie użyj podanego polecenia, aby zmienić linię katalogów i otworzyć plik projektu, który właśnie pobraliśmy.

cd Adafruit_Python_CharLCD

Krok 4: Zobaczysz plik setup.py w katalogu, będziemy musieli go zainstalować, aby zainstalować bibliotekę. Użyj poniższego kodu, aby zainstalować bibliotekę.

sudo python setup.py install

Teraz twoja biblioteka powinna być zainstalowana pomyślnie.

Instalacja biblioteki Adafruit DHT11 na Twoim Raspberry Pi

Czujnik DHT11 działa poprzez wykrywanie temperatury i wilgotności, a następnie przesyłanie danych przez pin wyjściowy jako dane szeregowe. Możemy odczytać te dane poprzez pin I/O na mikroprocesorze/mikrokontrolerze. Aby odczytać wartości, musiałbyś zapoznać się z datasheetem czujnika DHT11, ale na razie, aby utrzymać wszystko w prostocie, użyjemy biblioteki do rozmowy z czujnikiem DHT11. Do zainstalowania biblioteki DHT11 użyjemy tej samej procedury, co w przypadku biblioteki LCD. Zmienimy tylko link do strony Github. Aby zainstalować bibliotekę DHT, użyj poniższych poleceń jedno po drugim.

git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo apt-get install build-essential python-dev
sudo python setup.py install

Teraz powinieneś mieć zainstalowane obie biblioteki na swoim Raspberry Pi.

Schemat układu

Aby zbudować układ wykonaj następujące połączenia. Podłącz LCD i czujnik DHT11 do pinów 5V na Raspberry Pi. W przypadku gdy używasz modułu nie musisz dołączać rezystora na pinie wyjściowym czujnika DHT11. Jeśli nie, to użyj rezystora podciągającego 1k. Potencjometr trymera o wartości 10k jest dołączony do pinu VEE wyświetlacza LCD. Pin wyjściowy czujnika jest podłączony do GPIO17 (11) w Raspberry Pi.

Schemat połączeń czujnika i wyświetlacza z Raspberry Pi

Następnie kolejne połączenia są dość podstawowe, ale zwróć uwagę na to, których pinów GPIO używasz do podłączenia pinów, które będą nam potrzebne w naszym programie. Połączenia wykonaj zgodnie z załączonym schematem. Ponieważ my użyliśmy modułu DHT11, podłączyliśmy go bezpośrednio do naszego Raspberry Pi.

40-pinowe złącze GPIO Raspberry Pi
  • DHT11 Sensor Output Pin GPIO17 (11)
  • lcd_rs 7 #RS wyświetlacza LCD jest podłączony do GPIO 7 (26) na Pi
  • lcd_en 8 #EN wyświetlacza LCD jest podłączony do GPIO 8 (24) na Pi
  • lcd_d4 25 #D4 wyświetlacza LCD jest podłączony do GPIO 25 (22) na Pi
  • lcd_d5 24 #D5 LCD jest podłączony do GPIO 24 (18) na Pi
  • lcd_d6 23 #D6 LCD jest podłączony do GPIO 23 (16) na Pi
  • lcd_d7 18 #D7 LCD jest podłączony do GPIO 18 (12) na Pi
  • lcd_backlight 0 #LED nie jest podłączony, więc przypisujemy mu wartość 0

Pomiar wilgotności i temperatury za pomocą Raspberry Pi

Po wykonaniu wszystkich niezbędnych połączeń i zainstalowaniu wymienionych bibliotek, uruchamiasz program pythonowy podany na końcu tego projektu.

Jak tylko otworzysz IDLE, powinieneś dostać okno z Python Shell, na IDE, jak pokazano na poniższym obrazku.

Twój wyświetlacz LCD wyświetli komunikat wprowadzający, a następnie poda Ci aktualne wartości temperatury i wilgotności. W przypadku braku wyświetlania sprawdź, czy w oknie powłoki Pythona nie ma błędów, sprawdź połączenia, a także wyreguluj potencjometr. Teraz ukończyłeś ten projekt!

Kod źródłowy

#Program to read the values of Temp and Hum from the DHT11 sensor and display them on the LCD

import time #import time for creating delay 
import Adafruit_CharLCD as LCD #Import LCD library 
import Adafruit_DHT #Import DHT Library for sensor

sensor_name = Adafruit_DHT.DHT11 #we are using the DHT11 sensor
sensor_pin = 17 #The sensor is connected to GPIO17 on Pi

lcd_rs        = 7  #RS of LCD is connected to GPIO 7 on PI
lcd_en        = 8  #EN of LCD is connected to GPIO 8 on PI 
lcd_d4        = 25 #D4 of LCD is connected to GPIO 25 on PI
lcd_d5        = 24 #D5 of LCD is connected to GPIO 24 on PI
lcd_d6        = 23 #D6 of LCD is connected to GPIO 23 on PI
lcd_d7        = 18 #D7 of LCD is connected to GPIO 18 on PI
lcd_backlight =  0  #LED is not connected so we assign to 0

lcd_columns = 16 #for 16*2 LCD
lcd_rows    = 2 #for 16*2 LCD

lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, 
                           lcd_columns, lcd_rows, lcd_backlight)   #Send all the pin details to library 

lcd.message('DHT11 with Pi \n -CircuitDigest') #Give a intro message

time.sleep(2) #wait for 2 secs

while 1: #Infinite Loop
    
    humidity, temperature = Adafruit_DHT.read_retry(sensor_name, sensor_pin) #read from sensor and save respective values in temperature and humidity varibale  
    lcd.clear() #Clear the LCD screen
    lcd.message ('Temp = %.1f C' % temperature) # Display the value of temperature
    lcd.message ('\nHum = %.1f %%' % humidity)  #Display the value of Humidity 

    time.sleep(2) #Wait for 2 sec then update the values

Projekt i zdjęcie dzięki uprzejmości © circuitdigest.com

Artykuł Using the DHT11 sensor with Raspberry Pi to measure temperature and Humidity opracowano w wersji polskiej na podstawie współpracy z portalem www.electronicslovers.com.

Firma:
Tematyka materiału: DHT11, Raspberry Pi, sensory, pomiary i testy
AUTOR
Źródło
www.electronicslovers.com
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Edukacja
1/10 Jak działa rezystor LDR?
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"