ESP32 DHT11 Odečet teploty a vlhkosti na OLED displeji pomocí Arduino IDE

Esp32 Dht11 Odecet Teploty A Vlhkosti Na Oled Displeji Pomoci Arduino Ide



ESP32 je pokročilá deska mikrokontroléru, která může spouštět více instrukcí pro generování výstupů. Pro zobrazení různých druhů dat se používá obrazovka OLED. Pomocí ESP32 se senzorem DHT11 můžeme měřit teplotu a vlhkost. Všechna tato data lze zobrazit na OLED displeji. Tento tutoriál obsahuje všechny kroky potřebné k propojení těchto senzorů s ESP32.

Tento tutoriál pokrývá následující obsah:







1: Úvod do senzoru DHT11



2: Pinout snímače DHT11



2.1: 3pinový snímač DHT11





2.2: 4pinový snímač DHT11

3: Modul displeje OLED s ESP32



4: Instalace požadovaných knihoven

4.1: Arduino Library for DHT Sensor

4.2: Arduino Library pro OLED displej

5: Propojení ESP32 se senzorem DHT11

5.1: Schéma

5.2: Kód

5.3: Výstup

1: Úvod do senzoru DHT11

DHT11 je jedním z běžně používaných snímačů teploty a vlhkosti v elektronické komunitě. Je přesnější v udání teploty a relativní vlhkosti. Vydává kalibrovaný digitální signál, který se rozdělí na dvě různé hodnoty teploty a vlhkosti.

Využívá techniku ​​získávání digitálního signálu, která poskytuje spolehlivost a stabilitu. Snímač DHT11 obsahuje komponent pro měření vlhkosti odporového typu a obsahuje komponent pro měření teploty NTC. Oba jsou integrovány do 8bitového vysoce účinného mikrokontroléru, který nabízí rychlou odezvu, schopnost odolávat rušení a hospodárnost.

Zde jsou některé hlavní technické specifikace DHT11:

    • Senzor DHT11 pracuje při napětí 5V až 5,5V.
    • Provozní proud při měření je 0,3 mA a v pohotovostním režimu je 60 uA.
    • Vydává sériová data v digitálním signálu.
    • Rozsah teplot senzoru DHT11 od 0°C do 50°C.
    • Rozsah vlhkosti: 20% až 90%.
    • Přesnost ±1°C pro měření teploty a ±1% pro měření relativní vlhkosti.

Když jsme probrali základní úvod k senzoru DHT11, pojďme se nyní přesunout k pinoutu DHT11.

2: Pinout snímače DHT11

Senzor DHT11 se většinou dodává ve dvou různých konfiguracích kolíků. Senzor DHT11, který se dodává v konfiguraci se 4 kolíky, má 3 kolíky nefunkční nebo označené jako žádné připojení.

3kolíkový senzorový modul DHT11 je dodáván se třemi kolíky, které zahrnují napájení, GND a datový kolík.

2.1: 3pinový snímač DHT11

Daný obrázek ukazuje 3 pinové konfigurace snímače DHT11.


Tyto tři piny jsou:

1. Data Výstupní teplota a vlhkost v sériových datech
2. Vcc Vstupní napětí 3,5V až 5,5V
3. GND GND obvodu

2.2: 4pinový snímač DHT11

Následující obrázek ilustruje 4pinový senzorový modul DHT11:


Tyto 4 kolíky zahrnují:

1. Vcc Vstupní napětí 3,5V až 5,5V
2. Data Výstupní teplota a vlhkost v sériových datech
3. NC Žádné připojení nebo nepoužíváno
Čtyři. GND GND obvodu

3: Modul displeje OLED s ESP32

OLED displej přichází především se dvěma různými komunikačními protokoly. Tyto dva protokoly jsou I2C a SPI. Sériové periferní rozhraní (SPI) je obecně rychlejší než I2C, ale preferovali jsme I2C před protokolem SPI, protože vyžadoval menší počet pinů.

Následující obrázek ukazuje schéma zapojení ESP32 s OLED displejem 128×64 pixelů (0,96'').


Níže je tabulka připojení:


Jakmile je ESP32 propojeno s OLED displejem, dalším krokem v seznamu je instalace všech požadovaných knihoven pro programování ESP32 pomocí Arduino IDE.

4: Instalace požadovaných knihoven

Zde propojíme dva různé senzory s ESP32, takže oba vyžadují samostatné knihovny, aby fungovaly. Nyní nainstalujeme knihovny pro DHT11 a OLED displej.

4.1: Arduino Library for DHT Sensor

Otevřete Arduino IDE, přejděte na: Skica>Zahrnout knihovnu>Spravovat knihovny

Alternativně můžeme také otevřít správce knihovny z bočního tlačítka na rozhraní Arduino IDE.

Vyhledejte knihovnu DHT a nainstalujte nejnovější aktualizovanou verzi. Knihovna DHT pomůže číst data senzoru.


Po instalaci knihovny DHT dále musíme nainstalovat a jednotná knihovna senzorů od Adafruit.

4.2: Arduino Library pro OLED displej

V Arduino IDE je k dispozici několik knihoven pro programování ESP32 s OLED displejem. Zde budeme používat dvě knihovny od Adafruit: SSD1306 a GFX library.

Otevřete IDE a klikněte na Správce knihoven a vyhledejte knihovnu OLED SSD1306. Nainstalujte knihovnu SSD1306 od Adafruit z vyhledávacího panelu.

Případně lze také přejít na: Skica>Zahrnout knihovnu>Spravovat knihovny


Další knihovna, kterou musíme nainstalovat, je GFX knihovna od Adafruit.


Nainstalovali jsme knihovny jak pro OLED displej, tak pro senzor DHT11. Nyní můžeme oba snadno propojit s ESP32.

5: Propojení ESP32 se senzorem DHT11 a OLED

Pro propojení ESP32 se senzorem DHT11 potřebujeme digitální pin pro čtení dat senzoru a k napájení senzoru DHT11 můžeme použít pin 3V3 nebo Vin pin ESP32.

Pro OLED displej budou použity I2C piny SDA a SCL. Pro napájení můžeme použít Vin nebo 3V3 pin ESP32.

5.1: Schéma

Na daném obrázku vidíme schéma ESP32 s DHT11 a pro výstup je použita OLED obrazovka. Tento obrázek představuje 3pinový senzorový modul propojený s ESP32. Nezapomeňte připojit pull up odpor 10kΩ.


Podobně lze připojit i 4pinový DHT11, jediný rozdíl je zde 3pinový, který je k ničemu nebo se označuje jako Bez připojení. Datový kolík je na kolíku 2 snímače.

OLED displej je připojen pomocí pinů I2C SDA a SCL na D21 a D22.

5.2: Kód

Připojte ESP32 k PC a otevřete Arduino IDE. Nahrajte daný kód na desku ESP32.

#include             /*Zahrnout knihovnu drátové komunikace*/
#include
#include /*Knihovna zobrazení OLED*/
#include
#include             /*Knihovna snímačů teploty a vlhkosti*/
#define SCREEN_WIDTH 128    /*Šířka OLED obrazovky 128 pixelů*/
#define SCREEN_HEIGHT 64   /*Výška OLED obrazovky 64 pixelů*/
Displej Adafruit_SSD1306 ( SCREEN_WIDTH, SCREEN_HEIGHT, & Drát, - 1 ) ; /* Inicializace displeje SSD1306 I2C */
#define DHTPIN 4          /*Signální pin pro senzor DHT11*/
#define DHTTYPE    DHT11
DHT dht ( DHTPIN, DHTTYPE ) ;
neplatné nastavení ( ) {
Serial.begin ( 115200 ) ;
dht.begin ( ) ;
-li ( ! zobrazit.začátek ( SSD1306_SWITCHCAPVCC, 0x3C ) ) { /* Adresa I2C na který OLED je připojen */
Serial.println ( F ( 'Přidělení SSD1306 se nezdařilo' ) ) ;
pro ( ;; ) ;
}
zpoždění ( 2000 ) ;
display.clearDisplay ( ) ;
display.setTextColor ( BÍLÝ ) ; /* Barva výstupního textu bílá */
}
prázdná smyčka ( ) {
zpoždění ( 5000 ) ;
float t = dht.readTemperature ( ) ; /* číst teplota */
plovák h = dht.readVlhkost ( ) ; /* číst vlhkost vzduchu */
-li ( je ( h ) || je ( t ) ) {
Serial.println ( 'Nepodařilo se přečíst ze senzoru DHT!' ) ;
}
display.clearDisplay ( ) ; /* Průhledná OLED displej před zobrazením čtení */
display.setTextSize ( 1 ) ; /* OLED textové písmo velikost */
display.setCursor ( 0 , 0 ) ;
zobrazit.tisk ( 'Teplota:' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , 10 ) ;
zobrazit.tisk ( t ) ; /* teplota tisku v Celsia */
zobrazit.tisk ( '' ) ;
display.setTextSize ( 1 ) ;
display.cp437 ( skutečný ) ;
zobrazit.zapsat ( 167 ) ;
display.setTextSize ( 2 ) ;
zobrazit.tisk ( 'C' ) ;

display.setTextSize ( 1 ) ;
display.setCursor ( 0 , 35 ) ;
zobrazit.tisk ( 'Vlhkost vzduchu: ' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , Čtyři pět ) ;
zobrazit.tisk ( h ) ; /* vytiskne procento vlhkosti */
zobrazit.tisk ( '%' ) ;
zobrazit.zobrazit ( ) ;
}


Kód začal zahrnutím nezbytných knihoven pro senzory OLED a DHT11. Poté jsou definovány rozměry OLED displeje. Dále je definován typ snímače DHT v případě, že používáte DHT22, vyměňte jej odpovídajícím způsobem.

V části nastavení se inicializuje DHT senzor a OLED displej. Obrazovka OLED je připojena na I2C adrese 0x3C. V případě, že chcete zkontrolovat adresu I2C, nahrajte kód uvedený v tomto článek .

Hodnoty teploty a vlhkosti jsou uloženy uvnitř plovákové proměnné t a h respektive. Poté jsou obě tyto hodnoty vytištěny na OLED displeji.

5.3: Výstup

Na výstupu můžeme vidět v reálném čase naměřenou teplotu a vlhkost zobrazenou na OLED obrazovce.




Úspěšně jsme dokončili propojení ESP32 se senzorem DHT11 a OLED obrazovkou.

Závěr

OLED displeje s ESP32 mohou zobrazovat více dat, která jsou čtena pomocí externích senzorů. Tento článek popisuje všechny kroky k propojení ESP32 se senzorem DHT11 pro měření teploty a vlhkosti v místnosti. Poté se všechna načtená data zobrazí na I2C OLED zobrazovacím modulu.