Lectures de temperatura i humitat ESP32 DHT11 a la pantalla OLED mitjançant Arduino IDE

Lectures De Temperatura I Humitat Esp32 Dht11 A La Pantalla Oled Mitjancant Arduino Ide



ESP32 és una placa de microcontrolador avançada que pot executar diverses instruccions per generar sortides. Una pantalla OLED s'utilitza per mostrar diferents tipus de dades. Utilitzant ESP32 amb sensor DHT11 podem prendre lectures de temperatura i humitat. Totes aquestes dades es poden representar en una pantalla OLED. Aquest tutorial cobreix tots els passos necessaris per connectar aquests sensors amb ESP32.

Aquest tutorial cobreix el contingut següent:







1: Introducció al sensor DHT11



2: Pinout del sensor DHT11



2.1: Sensor DHT11 de 3 pins





2.2: Sensor DHT11 de 4 pins

3: Mòdul de pantalla OLED amb ESP32



4: Instal·lació de les biblioteques necessàries

4.1: Biblioteca Arduino per al sensor DHT

4.2: Biblioteca Arduino per a pantalla OLED

5: Interfície ESP32 amb sensor DHT11

5.1: Esquema

5.2: Codi

5.3: Sortida

1: Introducció al sensor DHT11

DHT11 és un dels sensors de control de temperatura i humitat que s'utilitzen habitualment a la comunitat electrònica. És més precís en donar temperatura i humitat relativa. Emet un senyal digital calibrat que escopeix en dues lectures diferents de temperatura i humitat.

Utilitza la tècnica d'adquisició de senyal digital que dóna fiabilitat i estabilitat. El sensor DHT11 conté un component de mesura de la humitat de tipus resistiu i inclou un component de mesura de temperatura NTC. Tots dos estan integrats en un microcontrolador de 8 bits altament eficient que ofereix una resposta ràpida, capacitat anti-interferències i rendibilitat.

Aquestes són algunes de les especificacions tècniques principals de DHT11:

    • El sensor DHT11 funciona a una tensió de 5V a 5,5V.
    • El corrent de funcionament durant la mesura és de 0,3 mA i durant el temps d'espera és de 60 uA.
    • Emet dades en sèrie en senyal digital.
    • La temperatura del sensor DHT11 va de 0 °C a 50 °C.
    • Interval d'humitat: 20% a 90%.
    • Precisió de ±1°C per a la mesura de la temperatura i ±1% per a les lectures d'humitat relativa.

Com que hem cobert una introducció bàsica al sensor DHT11, ara anem cap al pinout de DHT11.

2: Pinout del sensor DHT11

La majoria de les vegades, el sensor DHT11 es presenta en dues configuracions de pins diferents. El sensor DHT11 que ve en configuració de 4 pins té 3 pins que no funcionen o s'etiqueten com a sense connexió.

El mòdul de sensor DHT11 de 3 pins es presenta en tres pins que inclouen potència, GND i pin de dades.

2.1: Sensor DHT11 de 3 pins

La imatge mostrada mostra configuracions de 3 pins del sensor DHT11.


Aquests tres pins són:

1. Dades Temperatura i humitat de sortida en dades en sèrie
2. Vcc Potència d'entrada de 3,5 V a 5,5 V
3. GND GND del circuit

2.2: Sensor DHT11 de 4 pins

La imatge següent il·lustra el mòdul de sensor DHT11 de 4 pins:


Aquests 4 pins inclouen:

1. Vcc Potència d'entrada de 3,5 V a 5,5 V
2. Dades Temperatura i humitat de sortida en dades en sèrie
3. NC Sense connexió o no s'utilitza
4. GND GND del circuit

3: Mòdul de pantalla OLED amb ESP32

La pantalla OLED inclou principalment dos protocols de comunicació diferents. Els dos protocols són I2C i SPI. La interfície perifèrica sèrie (SPI) és generalment més ràpida que I2C, però hem preferit el protocol I2C sobre SPI, ja que requeria un nombre menor de pins.

La imatge següent il·lustra el diagrama de connexió de l'ESP32 amb una pantalla OLED de 128 × 64 píxels (0,96').


A continuació es mostra la taula de connexions:


Una vegada que l'ESP32 s'enllaça amb una pantalla OLED, el següent pas de la llista és instal·lar totes les biblioteques necessàries per a la programació d'ESP32 mitjançant Arduino IDE.

4: Instal·lació de les biblioteques necessàries

Aquí connectarem dos sensors diferents amb ESP32, de manera que tots dos requereixen biblioteques separades per funcionar. Ara instal·larem biblioteques per a la pantalla DHT11 i OLED.

4.1: Biblioteca Arduino per al sensor DHT

Obriu l'IDE Arduino, aneu a: Esbós>Inclou la biblioteca>Gestiona les biblioteques

Alternativament, també podem obrir el gestor de biblioteques des del botó lateral de la interfície IDE d'Arduino.

Cerqueu la biblioteca DHT i instal·leu la darrera versió actualitzada. La biblioteca DHT ajudarà a llegir les dades del sensor.


Després d'instal·lar la biblioteca DHT a continuació, hem d'instal·lar un biblioteca de sensors unificada per Adafruit.

4.2: Biblioteca Arduino per a pantalla OLED

Hi ha diverses biblioteques disponibles a Arduino IDE per programar ESP32 amb una pantalla OLED. Aquí utilitzarem dues biblioteques d'Adafruit: SSD1306 i biblioteca GFX.

Obriu IDE i feu clic a Gestor de biblioteques i cerqueu la biblioteca OLED SSD1306. Instal·leu la biblioteca SSD1306 d'Adafruit des de la barra de cerca.

Alternativament, també es pot anar a: Esbós>Inclou la biblioteca>Gestiona les biblioteques


La següent biblioteca que hem d'instal·lar és la GFX biblioteca d'Adafruit.


Hem instal·lat biblioteques tant per a la pantalla OLED com per al sensor DHT11. Ara podem connectar fàcilment ambdós amb ESP32.

5: Interfície ESP32 amb sensor DHT11 i OLED

Per connectar l'ESP32 amb el sensor DHT11 necessitem un pin digital per llegir les dades del sensor i per alimentar el sensor DHT11 podem utilitzar el pin 3V3 o el pin Vin de l'ESP32.

Per a la pantalla OLED, s'utilitzaran els pins I2C SDA i SCL. Per alimentar podem utilitzar Vin o un pin 3V3 d'ESP32.

5.1: Esquema

A la imatge donada podem veure el diagrama esquemàtic de l'ESP32 amb DHT11 i per a la sortida s'utilitza una pantalla OLED. Aquesta imatge representa el mòdul del sensor de 3 pins que es connecta amb ESP32. Recordeu connectar una resistència pull up de 10 kΩ.


De la mateixa manera, també es pot connectar el DHT11 de 4 pins, l'única diferència aquí és el pin de 3 que no serveix de res o s'anomena sense connexió. El pin de dades es troba al pin 2 del sensor.

La pantalla OLED es connecta mitjançant els pins I2C SDA i SCL a D21 i D22 respectivament.

5.2: Codi

Connecteu l'ESP32 amb l'ordinador i obriu l'IDE Arduino. Carregueu el codi donat a la placa ESP32.

#include             /*Inclou la biblioteca de comunicació per cable*/
#include
#include /*Biblioteca de visualitzacions OLED*/
#include
#include             /*Biblioteca de sensors de temperatura i humitat*/
#define SCREEN_WIDTH 128    /*Ample de pantalla OLED 128 píxels*/
#define SCREEN_HEIGHT 64   /*Alçada de la pantalla OLED 64 píxels*/
Pantalla Adafruit_SSD1306 ( SCREEN_WIDTH, SCREEN_HEIGHT, & Filferro, - 1 ) ; /* SSD1306 I2C Inicialització de la pantalla */
#define DHTPIN 4          /*Pin de senyal per al sensor DHT11*/
#define DHTTYPE    DHT11
DHT dht ( DHTPIN, DHTTYPE ) ;
configuració de buit ( ) {
Serial.begin ( 115200 ) ;
dht.begin ( ) ;
si ( ! mostrar.iniciar ( SSD1306_SWITCHCAPVCC, 0x3C ) ) { /* Adreça I2C a quin OLED està connectat */
Serial.println ( F ( 'Ha fallat l'assignació de SSD1306' ) ) ;
per ( ;; ) ;
}
retard ( 2000 ) ;
display.clearDisplay ( ) ;
display.setTextColor ( BLANC ) ; /* Text de sortida de color blanc */
}
bucle buit ( ) {
retard ( 5000 ) ;
float t = dht.readTemperature ( ) ; /* llegir temperatura */
float h = dht.readHumidity ( ) ; /* llegir humitat */
si ( és un ( h ) || és un ( t ) ) {
Serial.println ( 'No s'ha pogut llegir des del sensor DHT!' ) ;
}
display.clearDisplay ( ) ; /* clar Pantalla OLED abans de mostrar la lectura */
display.setTextSize ( 1 ) ; /* Tipus de lletra de text OLED mida */
display.setCursor ( 0 , 0 ) ;
mostrar.imprimir ( 'Temperatura: ' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , 10 ) ;
mostrar.imprimir ( t ) ; /* temperatura d'impressió en Celsius */
mostrar.imprimir ( ' ' ) ;
display.setTextSize ( 1 ) ;
display.cp437 ( veritat ) ;
mostrar.escriure ( 167 ) ;
display.setTextSize ( 2 ) ;
mostrar.imprimir ( 'C' ) ;

display.setTextSize ( 1 ) ;
display.setCursor ( 0 , 35 ) ;
mostrar.imprimir ( 'Humitat:' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , 45 ) ;
mostrar.imprimir ( h ) ; /* imprimeix el percentatge d'humitat */
mostrar.imprimir ( ' %' ) ;
pantalla.visualització ( ) ;
}


El codi va començar incloent les biblioteques necessàries per als sensors OLED i DHT11. Després d'això, es defineixen les dimensions de la pantalla OLED. A continuació, es defineix el tipus de sensor DHT en cas que si utilitzeu DHT22 substituïu-lo en conseqüència.

A la part de configuració, s'inicialitza el sensor DHT i la pantalla OLED. La pantalla OLED està connectada a una adreça I2C de 0x3C. En cas que es vulgui comprovar l'adreça I2C, carregueu el codi que hi ha article .

Els valors de temperatura i humitat s'emmagatzemen dins de la variable flotador t i h respectivament. Després d'això, aquests dos valors s'imprimeixen en una pantalla OLED.

5.3: Sortida

A la sortida podem veure la temperatura i la humitat mesurades en temps real que es mostren a la pantalla OLED.




Hem completat amb èxit la interfície d'ESP32 amb sensor DHT11 i pantalla OLED.

Conclusió

Les pantalles OLED amb ESP32 poden mostrar múltiples dades que es llegeixen mitjançant sensors externs. Aquí aquest article cobreix tots els passos per connectar l'ESP32 amb el sensor DHT11 per mesurar la temperatura i la humitat d'una habitació. Després d'això, totes les dades llegides es mostren al mòdul de pantalla OLED I2C.