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:
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
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#include
#include
#include
#include
#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.