ESP32 DHT11 Odczyty temperatury i wilgotności na wyświetlaczu OLED za pomocą Arduino IDE

Esp32 Dht11 Odczyty Temperatury I Wilgotnosci Na Wyswietlaczu Oled Za Pomoca Arduino Ide



ESP32 to zaawansowana płytka mikrokontrolera, która może uruchamiać wiele instrukcji w celu generowania danych wyjściowych. Ekran OLED służy do wyświetlania różnego rodzaju danych. Za pomocą ESP32 z czujnikiem DHT11 możemy dokonywać odczytów temperatury i wilgotności. Wszystkie te dane można przedstawić na wyświetlaczu OLED. Ten samouczek obejmuje wszystkie kroki potrzebne do połączenia tych czujników z ESP32.

Ten samouczek obejmuje następujące treści:







1: Wprowadzenie do czujnika DHT11



2: Pinout czujnika DHT11



2.1: 3-pinowy czujnik DHT11





2.2: 4-pinowy czujnik DHT11

3: moduł wyświetlacza OLED z ESP32



4: Instalowanie wymaganych bibliotek

4.1: Biblioteka Arduino dla czujnika DHT

4.2: Biblioteka Arduino dla wyświetlacza OLED

5: Połączenie ESP32 z czujnikiem DHT11

5.1: Schemat

5.2: Kod

5.3: Wyjście

1: Wprowadzenie do czujnika DHT11

DHT11 jest jednym z powszechnie używanych czujników do monitorowania temperatury i wilgotności w społeczności elektronicznej. Dokładniej podaje temperaturę i wilgotność względną. Wyprowadza skalibrowany sygnał cyfrowy, który wypluwa na dwa różne odczyty temperatury i wilgotności.

Wykorzystuje cyfrową technikę akwizycji sygnału, która zapewnia niezawodność i stabilność. Czujnik DHT11 zawiera element rezystancyjny do pomiaru wilgotności oraz element do pomiaru temperatury NTC. Oba są zintegrowane z 8-bitowym, wysoce wydajnym mikrokontrolerem, który oferuje szybką reakcję, zdolność przeciwzakłóceniową i opłacalność.

Oto kilka głównych specyfikacji technicznych DHT11:

    • Czujnik DHT11 pracuje przy napięciu od 5V do 5,5V.
    • Prąd roboczy podczas pomiaru wynosi 0,3mA, aw czasie czuwania 60uA.
    • Wyprowadza dane szeregowe w sygnale cyfrowym.
    • Zakres temperatur czujnika DHT11 od 0°C do 50°C.
    • Zakres wilgotności: od 20% do 90%.
    • Dokładność ±1°C dla pomiaru temperatury i ±1% dla odczytów wilgotności względnej.

Skoro już omówiliśmy podstawowe wprowadzenie do czujnika DHT11, przejdźmy teraz do układu pinów DHT11.

2: Pinout czujnika DHT11

W większości przypadków czujnik DHT11 występuje w dwóch różnych konfiguracjach pinów. Czujnik DHT11, który występuje w konfiguracji 4-pinowej, ma 3 piny niedziałające lub oznaczone jako brak połączenia.

3-stykowy moduł czujnika DHT11 jest dostępny z trzema stykami, które obejmują zasilanie, GND i pin danych.

2.1: 3-pinowy czujnik DHT11

Podany obraz przedstawia konfiguracje 3-pinowe czujnika DHT11.


Te trzy piny to:

1. Dane Wyjściowa temperatura i wilgotność w danych szeregowych
2. Vcc Moc wejściowa 3,5 V do 5,5 V
3. GND GND obwodu

2.2: 4-pinowy czujnik DHT11

Poniższy obraz ilustruje 4-pinowy moduł czujnika DHT11:


Te 4 piny obejmują:

1. Vcc Moc wejściowa 3,5 V do 5,5 V
2. Dane Wyjściowa temperatura i wilgotność w danych szeregowych
3. NC Brak połączenia lub nieużywany
cztery. GND GND obwodu

3: moduł wyświetlacza OLED z ESP32

Wyświetlacz OLED jest wyposażony głównie w dwa różne protokoły komunikacyjne. Dwa protokoły to I2C i SPI. Szeregowy interfejs urządzeń peryferyjnych (SPI) jest generalnie szybszy niż I2C, ale woleliśmy I2C niż protokół SPI, ponieważ wymagał mniejszej liczby pinów.

Poniższy obraz ilustruje schemat połączeń ESP32 z wyświetlaczem OLED 128×64 pikseli (0,96”).


Poniżej znajduje się tabela połączeń:


Po połączeniu ESP32 z wyświetlaczem OLED następnym krokiem na liście jest instalacja wszystkich wymaganych bibliotek do programowania ESP32 przy użyciu Arduino IDE.

4: Instalowanie wymaganych bibliotek

Tutaj zamierzamy połączyć dwa różne czujniki z ESP32, więc oba wymagają oddzielnych bibliotek do działania. Teraz zainstalujemy biblioteki dla wyświetlacza DHT11 i OLED.

4.1: Biblioteka Arduino dla czujnika DHT

Otwórz Arduino IDE, przejdź do: Szkic>Dołącz bibliotekę>Zarządzaj bibliotekami

Alternatywnie możemy również otworzyć menedżera bibliotek z bocznego przycisku na interfejsie Arduino IDE.

Wyszukaj bibliotekę DHT i zainstaluj najnowszą zaktualizowaną wersję. Biblioteka DHT pomoże w odczytaniu danych z czujnika.


Po zainstalowaniu biblioteki DHT następnie musimy zainstalować plik ujednolicona biblioteka czujników przez Adafruita.

4.2: Biblioteka Arduino dla wyświetlacza OLED

W Arduino IDE dostępnych jest wiele bibliotek do programowania ESP32 z wyświetlaczem OLED. Tutaj będziemy korzystać z dwóch bibliotek firmy Adafruit: SSD1306 i biblioteki GFX.

Otwórz IDE i kliknij Menedżer bibliotek i wyszukaj bibliotekę OLED SSD1306. Zainstaluj bibliotekę SSD1306 firmy Adafruit z paska wyszukiwania.

Alternatywnie można również przejść do: Szkic>Dołącz bibliotekę>Zarządzaj bibliotekami


Następną biblioteką, którą musimy zainstalować, jest GFX biblioteka firmy Adafruit.


Zainstalowaliśmy biblioteki zarówno dla wyświetlacza OLED, jak i czujnika DHT11. Teraz możemy łatwo połączyć oba z ESP32.

5: Połączenie ESP32 z czujnikiem DHT11 i OLED

Do połączenia ESP32 z czujnikiem DHT11 potrzebujemy cyfrowego pinu do odczytu danych z czujnika, a do zasilania czujnika DHT11 możemy użyć pinu 3V3 lub pinu Vin ESP32.

W przypadku wyświetlacza OLED zastosowane zostaną piny I2C SDA i SCL. Do zasilania możemy użyć pinu Vin lub 3V3 ESP32.

5.1: Schemat

Na podanym obrazku widać schemat ideowy ESP32 z DHT11, a do wyjścia wykorzystano ekran OLED. Ten obraz przedstawia 3-pinowy moduł czujnika współpracujący z ESP32. Pamiętaj o podłączeniu rezystora podciągającego 10kΩ.


Podobnie można podłączyć 4-pinowy DHT11, jedyną różnicą jest tutaj 3-pinowy, który jest bezużyteczny lub określany jako Brak połączenia. Styk danych znajduje się na styku 2 czujnika.

Wyświetlacz OLED jest podłączony za pomocą pinów I2C SDA i SCL odpowiednio w D21 i D22.

5.2: Kod

Połącz ESP32 z komputerem i otwórz Arduino IDE. Wgraj podany kod na płytkę ESP32.

#include             /*Dołącz bibliotekę komunikacji przewodowej*/
#include
#include /*biblioteka wyświetlaczy OLED*/
#include
#include             /*Biblioteka czujników temperatury i wilgotności*/
#define SCREEN_WIDTH 128    /*Szerokość ekranu OLED 128 pikseli*/
#define SCREEN_HEIGHT 64   /*Wysokość ekranu OLED 64 piksele*/
Wyświetlacz Adafruit_SSD1306 ( SCREEN_WIDTH, SCREEN_HEIGHT, & Drut, - 1 ) ; /* Inicjalizacja wyświetlacza SSD1306 I2C */
#define DHTPIN 4          /*Styk sygnałowy dla czujnika DHT11*/
#define DHTTYPE    DHT11
DHT dht ( DHTPIN, DHTTYPE ) ;
unieważnić konfigurację ( ) {
Serial.początek ( 115200 ) ;
dht.począć ( ) ;
jeśli ( ! wyświetl.rozpocznij ( SSD1306_SWITCHCAPVCC, 0x3C ) ) { /* Adres I2C pod adresem który OLED jest podłączony */
Serial.println ( F ( „Alokacja SSD1306 nie powiodła się” ) ) ;
dla ( ;; ) ;
}
opóźnienie ( 2000 ) ;
wyświetl.wyczyśćWyświetl ( ) ;
display.setTextColor ( BIAŁY ) ; /* Kolor tekstu wyjściowego biały */
}
pusta pętla ( ) {
opóźnienie ( 5000 ) ;
float t = dht.odczyttemperatury ( ) ; /* czytać temperatura */
float h = dht.readHumidity ( ) ; /* czytać wilgotność */
jeśli ( isan ( h ) || isan ( t ) ) {
Serial.println ( „Błąd odczytu z czujnika DHT!” ) ;
}
wyświetl.wyczyśćWyświetl ( ) ; /* jasny Wyświetlacz OLED przed wyświetleniem odczytu */
display.setTextSize ( 1 ) ; /* Czcionka tekstu OLED rozmiar */
display.setCursor ( 0 , 0 ) ;
wyświetl.drukuj ( 'Temperatura: ' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , 10 ) ;
wyświetl.drukuj ( t ) ; /* temperatura druku w Celsjusz */
wyświetl.drukuj ( ' ' ) ;
display.setTextSize ( 1 ) ;
wyświetlacz.cp437 ( prawdziwe ) ;
wyświetl.napisz ( 167 ) ;
display.setTextSize ( 2 ) ;
wyświetl.drukuj ( 'C' ) ;

display.setTextSize ( 1 ) ;
display.setCursor ( 0 , 35 ) ;
wyświetl.drukuj ( 'Wilgotność: ' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , Cztery pięć ) ;
wyświetl.wydrukuj ( h ) ; /* drukuje procent wilgotności */
wyświetl.drukuj ( '%' ) ;
wyświetlacz. wyświetlacz ( ) ;
}


Kod rozpoczął się od dołączenia niezbędnych bibliotek dla czujników OLED i DHT11. Następnie definiowane są wymiary wyświetlacza OLED. Następnie określany jest typ czujnika DHT w przypadku, gdy używasz DHT22, wymień go odpowiednio.

W części ustawień inicjalizowany jest czujnik DHT i wyświetlacz OLED. Ekran OLED jest podłączony pod adresem I2C 0x3C. W przypadku, gdy ktoś chce sprawdzić adres I2C, wgraj podany w tym kod artykuł .

Wartości temperatury i wilgotności są przechowywane wewnątrz zmiennej typu float t oraz h odpowiednio. Następnie obie te wartości są drukowane na wyświetlaczu OLED.

5.3: Wyjście

Na wyjściu możemy zobaczyć mierzoną w czasie rzeczywistym temperaturę i wilgotność wyświetlaną na ekranie OLED.




Pomyślnie zakończyliśmy interfejs ESP32 z czujnikiem DHT11 i ekranem OLED.

Wniosek

Wyświetlacze OLED z ESP32 mogą wyświetlać wiele danych odczytywanych za pomocą zewnętrznych czujników. W tym artykule opisano wszystkie kroki, aby połączyć ESP32 z czujnikiem DHT11 w celu pomiaru temperatury i wilgotności w pomieszczeniu. Następnie wszystkie odczytane dane są wyświetlane na module wyświetlacza I2C OLED.