ESP32 DHT11 Očitavanje temperature i vlažnosti na OLED zaslonu pomoću Arduino IDE

Esp32 Dht11 Ocitavanje Temperature I Vlaznosti Na Oled Zaslonu Pomocu Arduino Ide



ESP32 je napredna mikrokontrolerska ploča koja može pokretati višestruke instrukcije za generiranje izlaza. Za prikaz različitih vrsta podataka koristi se OLED zaslon. Pomoću ESP32 sa senzorom DHT11 možemo očitati temperaturu i vlažnost. Svi ti podaci mogu se prikazati na OLED zaslonu. Ovaj vodič pokriva sve korake potrebne za povezivanje ovih senzora s ESP32.

Ovaj vodič pokriva sljedeći sadržaj:







1: Uvod u DHT11 senzor



2: Pinout senzora DHT11



2.1: 3 pinski DHT11 senzor





2.2: 4-pinski DHT11 senzor

3: OLED zaslonski modul s ESP32



4: Instaliranje potrebnih biblioteka

4.1: Arduino biblioteka za DHT senzor

4.2: Arduino knjižnica za OLED zaslon

5: Povezivanje ESP32 sa DHT11 senzorom

5.1: Shema

5.2: Kod

5.3: Izlaz

1: Uvod u DHT11 senzor

DHT11 jedan je od najčešće korištenih senzora za praćenje temperature i vlažnosti u elektroničkoj zajednici. Precizniji je u davanju temperature i relativne vlažnosti. On daje kalibrirani digitalni signal koji se pretvara u dva različita očitanja temperature i vlažnosti.

Koristi tehniku ​​prikupljanja digitalnog signala koja daje pouzdanost i stabilnost. Senzor DHT11 sadrži komponentu otpornog tipa za mjerenje vlažnosti i ima NTC komponentu za mjerenje temperature. Oba su integrirana u 8-bitni visoko učinkovit mikrokontroler koji nudi brzi odziv, sposobnost zaštite od smetnji i ekonomičnost.

Evo nekoliko glavnih tehničkih specifikacija DHT11:

    • DHT11 senzor radi na naponu od 5V do 5,5V.
    • Radna struja tijekom mjerenja je 0.3mA, a tijekom vremena mirovanja je 60uA.
    • Izvodi serijske podatke u digitalnom signalu.
    • Raspon temperature senzora DHT11 od 0°C do 50°C.
    • Raspon vlažnosti: 20% do 90%.
    • Točnost od ±1°C za mjerenje temperature i ±1% za očitavanje relativne vlažnosti.

Kako smo pokrili osnovni uvod u DHT11 senzor, idemo sada prema pinoutu DHT11.

2: Pinout senzora DHT11

Većinu vremena DHT11 senzor dolazi u dvije različite konfiguracije pinova. Senzor DHT11 koji dolazi u konfiguraciji s 4 pina ima 3 pina koji ne rade ili su označeni kao nepovezani.

3-pinski DHT11 modul senzora dolazi u tri pina koji uključuju napajanje, GND i podatkovni pin.

2.1: 3 pinski DHT11 senzor

Dana slika prikazuje 3 pinske konfiguracije DHT11 senzora.


Ova tri pina su:

1. Podaci Izlazna temperatura i vlažnost u serijskim podacima
2. Vcc Ulazna snaga 3,5V do 5,5V
3. GND GND kruga

2.2: 4-pinski DHT11 senzor

Sljedeća slika ilustrira 4-pinski DHT11 senzorski modul:


Ove 4 igle uključuju:

1. Vcc Ulazna snaga 3,5V do 5,5V
2. Podaci Izlazna temperatura i vlažnost u serijskim podacima
3. NC Nema veze ili se ne koristi
četiri. GND GND kruga

3: OLED zaslonski modul s ESP32

OLED zaslon uglavnom dolazi s dva različita komunikacijska protokola. Dva protokola su I2C i SPI. Serijsko periferno sučelje (SPI) općenito je brže od I2C, ali mi smo preferirali I2C u odnosu na SPI protokol jer je zahtijevao manji broj pinova.

Sljedeća slika ilustrira dijagram povezivanja ESP32 s OLED zaslonom od 128×64 piksela (0,96’’).


Ispod je tablica povezivanja:


Nakon što se ESP32 poveže s OLED zaslonom, sljedeći korak na popisu je instaliranje svih potrebnih biblioteka za programiranje ESP32 pomoću Arduino IDE.

4: Instaliranje potrebnih biblioteka

Ovdje ćemo spojiti dva različita senzora s ESP32 tako da oba zahtijevaju zasebne biblioteke za rad. Sada ćemo instalirati biblioteke za DHT11 i OLED zaslon.

4.1: Arduino biblioteka za DHT senzor

Otvorite Arduino IDE, idite na: Skica>Uključi biblioteku>Upravljanje bibliotekama

Alternativno, također možemo otvoriti upravitelj knjižnice s bočne tipke na Arduino IDE sučelju.

Potražite DHT knjižnicu i instalirajte najnoviju ažuriranu verziju. DHT biblioteka pomoći će u čitanju podataka senzora.


Nakon instaliranja DHT knjižnice, moramo instalirati a jedinstvena biblioteka senzora od strane Adafruita.

4.2: Arduino knjižnica za OLED zaslon

Višestruke biblioteke dostupne su u Arduino IDE za programiranje ESP32 s OLED zaslonom. Ovdje ćemo koristiti dvije biblioteke iz Adafruita: SSD1306 i GFX biblioteku.

Otvorite IDE i kliknite Library Manager i potražite OLED SSD1306 biblioteku. Instalirajte SSD1306 biblioteku Adafruita iz trake za pretraživanje.

Alternativno, možete ići na: Skica>Uključi biblioteku>Upravljanje bibliotekama


Sljedeća biblioteka koju trebamo instalirati je GFX biblioteka Adafruita.


Instalirali smo biblioteke i za OLED zaslon i za DHT11 senzor. Sada možemo jednostavno spojiti oba s ESP32.

5: Povezivanje ESP32 s DHT11 senzorom i OLED-om

Za povezivanje ESP32 sa DHT11 senzorom potreban nam je digitalni pin za čitanje podataka senzora, a za napajanje DHT11 senzora možemo koristiti 3V3 pin ili Vin pin ESP32.

Za OLED zaslon koristit će se I2C pinovi SDA i SCL. Za napajanje možemo koristiti Vin ili 3V3 pin ESP32.

5.1: Shema

Na danoj slici možemo vidjeti shematski dijagram ESP32 s DHT11, a za izlaz se koristi OLED zaslon. Ova slika predstavlja 3-pinski modul senzora koji je povezan s ESP32. Ne zaboravite spojiti pull-up otpornik od 10 kΩ.


Slično, 4-pinski DHT11 također se može spojiti, jedina razlika ovdje je 3-pinski koji je beskoristan ili se naziva Bez veze. Podatkovni pin je na pin 2 senzora.

OLED zaslon je povezan pomoću I2C SDA i SCL pinova na D21 odnosno D22.

5.2: Kod

Povežite ESP32 s računalom i otvorite Arduino IDE. Učitajte dani kod na ESP32 ploču.

#include             /*Uključi knjižnicu žične komunikacije*/
#include
#include /*OLED biblioteka zaslona*/
#include
#include             /*Biblioteka senzora temperature i vlažnosti*/
#define SCREEN_WIDTH 128    /*OLED širina zaslona 128 piksela*/
#define SCREEN_HEIGHT 64   /*visina OLED zaslona 64 piksela*/
Adafruit_SSD1306 zaslon ( SCREEN_WIDTH, SCREEN_HEIGHT, i Žica, - 1 ) ; /* SSD1306 I2C Inicijalizacija zaslona */
#define DHTPIN 4          /*Signalni pin za DHT11 senzor*/
#define DHTTYPE    DHT11
DHT dht ( DHTPIN, DHTTYPE ) ;
void setup ( ) {
Serijski.početi ( 115200 ) ;
dht.početi ( ) ;
ako ( ! prikazati.početi ( SSD1306_SWITCHCAPVCC, 0x3C ) ) { /* I2C adresa na koji OLED je spojen */
Serijski.println ( F ( 'Dodjela SSD1306 nije uspjela' ) ) ;
za ( ;; ) ;
}
odgoditi ( 2000. godine ) ;
prikaz.clearDisplay ( ) ;
display.setTextColor ( BIJELA ) ; /* Boja izlaznog teksta bijela */
}
void petlja ( ) {
odgoditi ( 5000 ) ;
float t = dht.readTemperature ( ) ; /* čitati temperatura */
float h = dht.readHumidity ( ) ; /* čitati vlažnost */
ako ( je ( h ) || je ( t ) ) {
Serijski.println ( 'Neuspješno očitavanje DHT senzora!' ) ;
}
prikaz.clearDisplay ( ) ; /* čisto OLED zaslon prije prikazivanja očitanja */
display.setTextSize ( 1 ) ; /* OLED font teksta veličina */
display.setCursor ( 0 , 0 ) ;
prikazati.ispisati ( 'Temperatura: ' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , 10 ) ;
prikazati.ispisati ( t ) ; /* temperatura ispisa u Celzija */
prikazati.ispisati ( ' ' ) ;
display.setTextSize ( 1 ) ;
prikaz.cp437 ( pravi ) ;
prikazati.pisati ( 167 ) ;
display.setTextSize ( 2 ) ;
prikazati.ispisati ( 'C' ) ;

display.setTextSize ( 1 ) ;
display.setCursor ( 0 , 35 ) ;
prikazati.ispisati ( 'Vlažnost: ' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , Četiri pet ) ;
prikazati.ispisati ( h ) ; /* ispisuje postotak vlažnosti */
prikazati.ispisati ( '%' ) ;
prikaz.prikaz ( ) ;
}


Kod je započeo uključivanjem potrebnih biblioteka za OLED i DHT11 senzore. Nakon toga definiraju se dimenzije OLED zaslona. Zatim je definirana vrsta DHT senzora u slučaju da koristite DHT22, zamijenite ga u skladu s tim.

U dijelu za postavljanje inicijalizira se DHT senzor i OLED zaslon. OLED ekran je povezan na I2C adresu 0x3C. U slučaju da želite provjeriti I2C adresu, učitajte kod naveden u ovome članak .

Vrijednosti temperature i vlažnosti pohranjene su unutar varijable float t i h odnosno. Nakon toga se obje ove vrijednosti ispisuju na OLED zaslonu.

5.3: Izlaz

U izlazu možemo vidjeti izmjerenu temperaturu i vlažnost u stvarnom vremenu prikazanu na OLED ekranu.




Uspješno smo dovršili povezivanje ESP32 s DHT11 senzorom i OLED zaslonom.

Zaključak

OLED zasloni s ESP32 mogu prikazivati ​​više podataka koji se očitavaju pomoću vanjskih senzora. Ovdje ovaj članak pokriva sve korake za povezivanje ESP32 sa DHT11 senzorom za mjerenje temperature i vlažnosti u prostoriji. Nakon toga se svi očitani podaci prikazuju na I2C OLED modulu zaslona.