ESP32 to zaawansowana płyta mikrokontrolera, która może uruchamiać wiele instrukcji w celu wygenerowania wyjść. Ekran OLED służy do wyświetlania różnych rodzajów danych. Używając ESP32 z czujnikiem DHT11, możemy przyjmować odczyty temperatury i wilgotności. Wszystkie te dane mogą być reprezentowane 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 PIN CENTOR DHT11
2.2: 4 PIN DHT11 czujnik
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: Interfejs ESP32 z czujnikiem DHT11
5.1: Schemat
5.2: Kod
5.3: Wyjście
1: Wprowadzenie do czujnika DHT11
DHT11 jest jednym z powszechnie stosowanych czujników monitorowania temperatury i wilgotności w społeczności elektronicznej. Jest to bardziej precyzyjne w dawaniu temperatury i wilgotności względnej. Wyświetla skalibrowany sygnał cyfrowy, który wypluwa na dwa różne odczyty temperatury i wilgotności.
Wykorzystuje technikę cyfrowego-sygnału, która zapewnia niezawodność i stabilność. Czujnik DHT11 zawiera komponent pomiaru wilgotności typu rezystancyjnego i ma komponent pomiarowy temperatury NTC. Oba są zintegrowane z 8-bitowym wysoce wydajnym mikrokontrolem, który oferuje szybką reakcję, zdolność przeciw interferencji i opłacalność.
Oto kilka głównych specyfikacji technicznych DHT11:
Ponieważ omówiliśmy podstawowe wprowadzenie do czujnika DHT11, przejdźmy teraz do pinout DHT11.
2: Pinout czujnika DHT11
Przez większość czasu czujnik DHT11 występuje w dwóch różnych konfiguracjach pinów. Czujnik DHT11, który występuje w konfiguracji 4 pinów, ma 3 piny, które nie działają lub oznaczone jako brak połączenia.
Moduł czujnika DHT11 3 PIN jest dostępny w trzech pinach, które obejmują moc, GND i pin z danych.
1: 3 PIN CENTOR DHT11
Podane zdjęcie pokazuje 3 konfiguracje pinu czujnika DHT11.
Te trzy szpilki to:
1. | Dane | Temperatura i wilgotność wyjściowa w danych szeregowych |
2. | VCC | Moc wejściowa 3.5v do 5.5v |
3. | GND | GND obwodu |
2: 4 PIN DHT11 czujnik
Następujący obraz ilustruje 4 pin DHT11 Moduł czujnika:
Te 4 piny obejmują:
1. | VCC | Moc wejściowa 3.5v do 5.5v |
2. | Dane | Temperatura i wilgotność wyjściowa w danych szeregowych |
3. | NC | Brak połączenia lub nie używane |
4. | GND | GND obwodu |
3: Moduł wyświetlacza OLED z ESP32
Wyświetlacz OLED ma głównie dwa różne protokoły komunikacji. Dwa protokoły to I2C i SPI. Szeregowy interfejs peryferyjny (SPI) jest ogólnie szybszy niż I2C, ale preferowaliśmy I2C niż protokół SPI, ponieważ wymagał mniejszej liczby pinów.
Następujący obraz ilustruje schemat połączenia ESP32 z 128 × 64 pikseli (0.96 ") wyświetlacz OLED.
Poniżej znajduje się tabela połączeń:
Po interfejsach ESP32 z wyświetlaczem OLED, następnym krokiem na liście jest zainstalowanie wszystkich wymaganych bibliotek dla programowania ESP32 za pomocą 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 DHT11 i OLED Display.
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 biblioteki z przycisku bocznego na interfejsie Arduino IDE.
Wyszukaj bibliotekę DHT i zainstaluj najnowszą zaktualizowaną wersję. Biblioteka DHT pomoże odczytać dane czujnika.
Po zainstalowaniu biblioteki DHT musimy zainstalować Ujednolicona biblioteka czujników przez Adafruit.
2: Biblioteka Arduino dla wyświetlacza OLED
Wiele bibliotek jest dostępnych w Arduino IDE do programu ESP32 z wyświetlaczem OLED. Tutaj będziemy używać dwóch bibliotek z Adafruit: SSD1306 i GFX Library.
Otwórz IDE i kliknij Menedżer biblioteki i wyszukaj bibliotekę OLED SSD1306. Zainstaluj bibliotekę SSD1306 według Adafruit ze paska wyszukiwania.
Alternatywnie można również przejść do: Szkic> Dołącz bibliotekę> Zarządzaj bibliotekami
Następna biblioteka musimy zainstalować GFX Biblioteka Adafruit.
Zainstalowaliśmy biblioteki zarówno dla OLED wyświetlacza, jak i czujnika DHT11. Teraz możemy łatwo interfejs zarówno z ESP32.
5: Interfejs ESP32 z czujnikiem DHT11 i OLED
Do interfejsu ESP32 z czujnikiem DHT11 potrzebujemy cyfrowego styku do odczytu danych czujnika i zasilania czujnika DHT11, możemy użyć pin 3v3 lub pin VIN ESP32.
Do wyświetlania OLED i2C Pins SDA i SCL będą używane. Do zasilania możemy użyć VIN lub pin 3v3 ESP32.
1: Schemat
Na danym obrazie możemy zobaczyć schemat ESP32 z DHT11 i do wyjścia używana jest ekran OLED. Ten obraz reprezentuje 3-pinowe moduł czujnika interfejsem z ESP32. Pamiętaj, aby podłączyć rezystor podciągający 10 kΩ.
Podobnie można również podłączyć 4 -pinowy DHT11, jedyną różnicą jest 3 -pin, który nie jest użyteczny ani nie określany jako żadne połączenie. Pinek danych znajduje się na styku 2 czujnika.
Wyświetlacz OLED jest podłączony przy użyciu pinów I2C SDA i SCL odpowiednio w D21 i D22.
2: Kod
Podłącz ESP32 z komputerem i otwórz Arduino IDE. Prześlij dany kod na płytę ESP32.
#include /*zawiera bibliotekę komunikacji przewodowej* /
#włączać
#Include /*OLED Display Library* /
#włączać
#include /*biblioteka czujników temperatury i wilgotności* /
#Define Screen_Width 128 /*OLED Szerokość ekranu 128 pikseli* /
#Define Screen_Height 64 /*OLED Wysokość ekranu 64 pikseli* /
ADAFRUT_SSD1306 Wyświetlacz (Screen_Width, Screen_Height i Wire, -1); /*SSD1306 I2C Inicjalizacja wyświetlania*/
#Define DHTPin 4 /*Pin sygnałowy dla czujnika DHT11* /
#Define Dhttype DHT11
DHT DHT (DHTPIN, DHTTYPE);
void setup ()
Seryjny.rozpocząć (115200);
DHT.zaczynać();
Jeśli(!wyświetlacz.Rozpocznij (SSD1306_SWITCHCAPVCC, 0x3C)) /*I2C Adres, pod którym OLED jest podłączony* /
Seryjny.println (f („alokacja ssd1306 nie powiodła się”));
Do(;;);
Opóźnienie (2000);
wyświetlacz.clearDisplay ();
wyświetlacz.setTextColor (biały); / *Tekst wyjściowy kolor biały */
void Loop ()
opóźnienie (5000);
float t = dht.readTemperature (); /*Odczyt temperatura*/
float h = dht.ReadHumididge (); /*czytaj wilgotność*/
if (isnan (h) || isnan (t))
Seryjny.println („nie odczytał się z czujnika DHT!");
wyświetlacz.clearDisplay (); /*Wyczyść wyświetlacz OLED przed wyświetleniem odczytu*/
wyświetlacz.setTextSize (1); /*Rozmiar czcionki czcionki OLED*/
wyświetlacz.setCursor (0,0);
wyświetlacz.Drukuj („Temperatura:”);
wyświetlacz.setTextSize (2);
wyświetlacz.setCursor (0,10);
wyświetlacz.druk (t); /*Temperatura drukowania w Celsjusza*/
wyświetlacz.druk („”);
wyświetlacz.setTextSize (1);
wyświetlacz.CP437 (prawda);
wyświetlacz.Napisz (167);
wyświetlacz.setTextSize (2);
wyświetlacz.druk („c”);
wyświetlacz.setTextSize (1);
wyświetlacz.setCursor (0, 35);
wyświetlacz.Drukuj („wilgotność:”);
wyświetlacz.setTextSize (2);
wyświetlacz.setCursor (0, 45);
wyświetlacz.wydruku (h); /*drukuje procent wilgotności*/
wyświetlacz.druk („ %”);
wyświetlacz.wyświetlacz();
Kod rozpoczął się od włączenia niezbędnych bibliotek dla czujników OLED i DHT11. Po tym zdefiniowane są wymiary wyświetlania OLED. Następnie typ czujnika DHT jest zdefiniowany w przypadku, gdy używasz DHT22, wymień go odpowiednio.
W części konfiguracji czujnik DHT i wyświetlacz OLED jest inicjowany. Ekran OLED jest podłączony pod adresem I2C 0x3c. Na wypadek, gdyby można sprawdzić adres i2c Prześlij kod podany w tym artykule.
Wartości temperatury i wilgotności są przechowywane w zmiennej zmiennoprzecinkowej T I H odpowiednio. Następnie obie te wartości są drukowane na wyświetlaczu OLED.
3: Wyjście
W wyjściu możemy zobaczyć zmierzoną temperaturę i wilgotność w czasie rzeczywistym wyświetlanym 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, które są odczytywane za pomocą czujników zewnętrznych. Tutaj ten artykuł obejmuje wszystkie kroki do interfejsu ESP32 z czujnikiem DHT11 w celu pomiaru temperatury i wilgotności pomieszczenia. Następnie wszystkie dane odczytu są wyświetlane na module wyświetlania OLED I2C.