ESP32 DHT11 Hőmérséklet és páratartalom leolvasások OLED kijelzőn Arduino IDE használatával

Esp32 Dht11 Homerseklet Es Paratartalom Leolvasasok Oled Kijelzon Arduino Ide Hasznalataval



Az ESP32 egy fejlett mikrovezérlő kártya, amely több utasítás futtatására képes a kimenetek generálására. Az OLED képernyő különféle típusú adatok megjelenítésére szolgál. Az ESP32 és a DHT11 érzékelő használatával hőmérséklet és páratartalom méréseket végezhetünk. Mindezek az adatok OLED kijelzőn jeleníthetők meg. Ez az oktatóanyag az összes olyan lépést lefedi, amely ezeknek az érzékelőknek az ESP32-vel való összekapcsolásához szükséges.

Ez az oktatóanyag a következő tartalmakat fedi le:







1: A DHT11 érzékelő bemutatása



2: DHT11 érzékelő kivezetés



2.1: 3 tűs DHT11 érzékelő





2.2: 4 tűs DHT11 érzékelő

3: OLED kijelző modul ESP32-vel



4: A szükséges könyvtárak telepítése

4.1: Arduino könyvtár a DHT-érzékelőhöz

4.2: Arduino Library OLED kijelzőhöz

5: ESP32 interfész a DHT11 érzékelővel

5.1: Sematikus

5.2: Kód

5.3: Kimenet

1: A DHT11 érzékelő bemutatása

A DHT11 az egyik leggyakrabban használt hőmérséklet- és páratartalom-figyelő érzékelő az elektronikai közösségben. Pontosabban adja meg a hőmérsékletet és a relatív páratartalmat. Kalibrált digitális jelet ad ki, amely két különböző hőmérséklet- és páratartalom-értéket ad ki.

A digitális jelgyűjtési technikát használja, amely megbízhatóságot és stabilitást biztosít. A DHT11 érzékelő rezisztív típusú páratartalom mérő komponenst és NTC hőmérsékletmérő komponenst tartalmaz. Mindkettő egy 8 bites, rendkívül hatékony mikrokontrollerbe van integrálva, amely gyors választ, interferencia-mentességet és költséghatékonyságot kínál.

Íme a DHT11 főbb műszaki jellemzői:

    • A DHT11 érzékelő 5 V és 5,5 V közötti feszültségen működik.
    • Az üzemi áram mérés közben 0,3 mA, készenléti idő alatt pedig 60 uA.
    • Soros adatokat ad ki digitális jelben.
    • A DHT11 érzékelő hőmérséklete 0°C és 50°C között van.
    • Páratartalom: 20-90%.
    • ±1°C pontosság a hőmérséklet mérésére és ±1% a relatív páratartalom mérésére.

Ahogy a DHT11 érzékelő alapszintű bemutatásával foglalkoztunk, most haladjunk a DHT11 kivezetése felé.

2: DHT11 érzékelő kivezetés

A DHT11 érzékelő legtöbbször két különböző tűkonfigurációban kapható. A 4 érintkezős konfigurációban kapható DHT11 érzékelő 3 érintkezőjével nem működik, vagy nincs kapcsolatként címkézve.

A 3 tűs DHT11 szenzormodul három érintkezővel érkezik, amelyek tápellátást, GND-t és adattűket tartalmaznak.

2.1: 3 tűs DHT11 érzékelő

Az adott képen a DHT11 érzékelő 3 tűs konfigurációja látható.


Ez a három tű a következő:

1. Adat Kimeneti hőmérséklet és páratartalom a soros adatokban
2. Vcc Bemeneti teljesítmény 3,5 V és 5,5 V között
3. GND Az áramkör GND-je

2.2: 4 tűs DHT11 érzékelő

Az alábbi képen a 4 tűs DHT11 érzékelő modul látható:


Ez a 4 tű a következőket tartalmazza:

1. Vcc Bemeneti teljesítmény 3,5 V és 5,5 V között
2. Adat Kimeneti hőmérséklet és páratartalom a soros adatokban
3. NC Nincs kapcsolat vagy nincs használatban
Négy. GND Az áramkör GND-je

3: OLED kijelző modul ESP32-vel

Az OLED kijelző alapvetően két különböző kommunikációs protokollt tartalmaz. A két protokoll az I2C és az SPI. A soros periféria interfész (SPI) általában gyorsabb, mint az I2C, de mi inkább az I2C-t részesítettük előnyben az SPI protokollal szemben, mivel kisebb számú érintkezőt igényelt.

A következő kép az ESP32 csatlakozási rajzát mutatja 128×64 pixeles (0,96 hüvelykes) OLED kijelzővel.


Alább látható a csatlakozási táblázat:


Miután az ESP32-t OLED-kijelzővel illesztettük, a lista következő lépése az összes szükséges könyvtár telepítése az ESP32 programozásához Arduino IDE használatával.

4: A szükséges könyvtárak telepítése

Itt két különböző érzékelőt fogunk összekapcsolni az ESP32-vel, így mindkettő működéséhez külön könyvtárra van szükség. Most könyvtárakat fogunk telepíteni a DHT11 és az OLED kijelzőhöz.

4.1: Arduino könyvtár a DHT-érzékelőhöz

Nyissa meg az Arduino IDE-t, lépjen a következő helyre: Vázlat>Könyvtár hozzáadása>Könyvtárak kezelése

Alternatív megoldásként a könyvtárkezelőt az Arduino IDE felület oldalsó gombjáról is megnyithatjuk.

Keresse meg a DHT könyvtárat, és telepítse a legújabb frissített verziót. A DHT-könyvtár segít az érzékelőadatok kiolvasásában.


A DHT könyvtár telepítése után telepítenünk kell a egységes szenzorkönyvtár az Adafruit által.

4.2: Arduino Library OLED kijelzőhöz

Az Arduino IDE-ben több könyvtár is elérhető az ESP32 programozásához OLED kijelzővel. Itt két Adafruit könyvtárat fogunk használni: SSD1306 és GFX könyvtárat.

Nyissa meg az IDE-t, kattintson a Library Manager elemre, és keresse meg az OLED SSD1306 könyvtárat. Telepítse az Adafruit SSD1306 könyvtárát a keresősávból.

Alternatív megoldásként a következőkre is eljuthat: Vázlat>Könyvtár hozzáadása>Könyvtárak kezelése


A következő könyvtár, amelyet telepítenünk kell, a GFX Adafruit könyvtára.


Mind az OLED-kijelzőhöz, mind a DHT11 érzékelőhöz könyvtárakat telepítettünk. Mostantól mindkettőt egyszerűen csatlakoztathatjuk az ESP32-vel.

5: ESP32 interfész DHT11 érzékelővel és OLED-del

Az ESP32 DHT11 érzékelővel való összekapcsolásához digitális tűre van szükségünk az érzékelő adatainak olvasásához, a DHT11 érzékelő táplálásához pedig használhatjuk az ESP32 3V3 tűjét vagy Vin pinjét.

Az OLED-kijelzőhöz az SDA és az SCL érintkezőit használjuk. A tápellátáshoz használhatunk Vin vagy ESP32 3V3 tűt.

5.1: Sematikus

Az adott képen az ESP32 vázlatos diagramja látható DHT11-el és a kimenethez OLED képernyőt használunk. Ez a kép az ESP32-vel érintkező 3 tűs érzékelőmodult ábrázolja. Ne felejtsen el egy 10 kΩ-os felhúzó ellenállást csatlakoztatni.


Hasonlóképpen, a 4 tűs DHT11 is csatlakoztatható, az egyetlen különbség itt a 3 tűs, ami nem használ, vagy a Nincs kapcsolat. Az adattű az érzékelő 2. érintkezőjénél van.

Az OLED-kijelző az I2C SDA- és SCL-tűkkel csatlakozik a D21-es, illetve a D22-es pontokhoz.

5.2: Kód

Csatlakoztassa az ESP32-t a számítógéphez, és nyissa meg az Arduino IDE-t. Töltse fel a megadott kódot az ESP32 kártyára.

#include             /*Include vezetékes kommunikációs könyvtár*/
#include
#include /*OLED kijelzőkönyvtár*/
#include
#include             /*Hőmérséklet- és páratartalom-érzékelő könyvtár*/
#define SCREEN_WIDTH 128    /*OLED képernyő szélessége 128 pixel*/
#define SCREEN_HEIGHT 64   /*OLED képernyő magassága 64 képpont*/
Adafruit_SSD1306 kijelző ( SCREEN_WIDTH, SCREEN_HEIGHT, & Drót, - 1 ) ; /* SSD1306 I2C Kijelző inicializálása */
#define DHTPIN 4          /*Jelér a DHT11 érzékelőhöz*/
#define DHTTYPE    DHT11
DHT dht ( DHTPIN, DHTTYPE ) ;
üres beállítás ( ) {
Serial.begin ( 115200 ) ;
dht.begin ( ) ;
ha ( ! display.begin ( SSD1306_SWITCHCAPVCC, 0x3C ) ) { /* I2C cím: melyik OLED csatlakoztatva van */
Serial.println ( F ( 'SSD1306 allokáció sikertelen' ) ) ;
számára ( ;; ) ;
}
késleltetés ( 2000 ) ;
display.clearDisplay ( ) ;
display.setTextColor ( FEHÉR ) ; /* Kimeneti szöveg színe fehér */
}
üres hurok ( ) {
késleltetés ( 5000 ) ;
float t = dht.readTemperature ( ) ; /* olvas hőfok */
úszó h = dht.readHumidity ( ) ; /* olvas páratartalom */
ha ( egy ( h ) || egy ( t ) ) {
Serial.println ( 'Nem sikerült leolvasni a DHT-érzékelőről!' ) ;
}
display.clearDisplay ( ) ; /* egyértelmű OLED kijelző az olvasás megjelenítése előtt */
display.setTextSize ( 1 ) ; /* OLED szöveg betűtípus méret */
display.setCursor ( 0 , 0 ) ;
display.print ( 'Hőfok: ' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , 10 ) ;
display.print ( t ) ; /* nyomtatási hőmérséklet ban ben Celsius */
display.print ( ' ' ) ;
display.setTextSize ( 1 ) ;
display.cp437 ( igaz ) ;
display.write ( 167 ) ;
display.setTextSize ( 2 ) ;
display.print ( 'C' ) ;

display.setTextSize ( 1 ) ;
display.setCursor ( 0 , 35 ) ;
display.print ( 'Páratartalom: ' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , Négy öt ) ;
display.print ( h ) ; /* páratartalom százalékot nyomtat */
display.print ( '%' ) ;
display.display ( ) ;
}


A kód az OLED és DHT11 érzékelőkhöz szükséges könyvtárak felvételével kezdődött. Ezt követően meg kell határozni az OLED kijelző méreteit. Ezután a DHT érzékelő típusát határozzuk meg abban az esetben, ha DHT22-t használunk, ennek megfelelően cseréljük ki.

A beállítási részben a DHT-érzékelő és az OLED-kijelző inicializálódik. Az OLED képernyő 0x3C I2C címre van csatlakoztatva. Ha valaki ellenőrizni szeretné az I2C címet, töltse fel az itt megadott kódot cikk .

A hőmérséklet és páratartalom értékek az úszó változóban tárolódnak t és h illetőleg. Ezt követően mindkét érték megjelenik egy OLED kijelzőn.

5.3: Kimenet

A kimeneten a valós időben mért hőmérséklet és páratartalom látható az OLED képernyőn.




Sikeresen befejeztük az ESP32 interfészét DHT11 érzékelővel és OLED képernyővel.

Következtetés

Az ESP32-vel ellátott OLED-kijelzők több adatot is megjeleníthetnek, amelyeket a külső érzékelők olvasnak be. Ez a cikk leírja az ESP32 és a DHT11 érzékelő összekapcsolásának lépéseit a helyiség hőmérsékletének és páratartalmának mérésére. Ezt követően az összes olvasott adat megjelenik az I2C OLED kijelzőmodulon.