ESP32 es una placa de microcontrolador avanzada que puede ejecutar múltiples instrucciones para generar salidas. Se utiliza una pantalla OLED para mostrar diferentes tipos de datos. Usando ESP32 con el sensor DHT11 podemos tomar lecturas de temperatura y humedad. Todos estos datos se pueden representar a través de una pantalla OLED. Este tutorial cubre todos los pasos necesarios para interactuar estos sensores con ESP32.
Este tutorial cubre el siguiente contenido:
1: Introducción al sensor DHT11
2: DHT11 Sensor Pinout
2.Sensor DHT11 de 1: 3 pines
2.2: 4 pin sensor DHT11
3: Módulo de pantalla OLED con ESP32
4: Instalación de las bibliotecas requeridas
4.1: Biblioteca Arduino para el sensor DHT
4.2: Biblioteca Arduino para pantalla OLED
5: Interfaño ESP32 con sensor DHT11
5.1: esquema
5.2: código
5.3: salida
1: Introducción al sensor DHT11
DHT11 es uno de los sensores de monitoreo de temperatura y humedad utilizados en la comunidad electrónica. Es más preciso para dar temperatura y humedad relativa. Emite una señal digital calibrada que se escupe en dos lecturas diferentes de temperatura y humedad.
Utiliza la técnica de adquisición de señal digital que brinda confiabilidad y estabilidad. El sensor DHT11 contiene un componente de medición de humedad de tipo resistivo y presenta un componente de medición de temperatura NTC. Ambos se integran a un microcontrolador altamente eficiente de 8 bits que ofrece una respuesta rápida, capacidad anti-interferencia y rentabilidad.
Aquí hay algunas especificaciones técnicas principales de DHT11:
Como hemos cubierto una introducción básica al sensor DHT11, ahora avancemos hacia el pinout de DHT11.
2: DHT11 Sensor Pinout
La mayoría de las veces el sensor DHT11 viene en dos configuraciones de pin diferentes. El sensor DHT11 que viene en la configuración de 4 pines tiene 3 pines que no funcionan o etiquetado como sin conexión.
El módulo del sensor DHT11 de 3 pin viene en tres pines que incluyen potencia, GND y pin de datos.
Sensor DHT11 de 1: 3 pines
La imagen dada muestra 3 configuraciones de pin del sensor DHT11.
Estos tres pines son:
1. | Datos | Temperatura de salida y humedad en datos en serie |
2. | VCC | Potencia de entrada 3.5V a 5.5V |
3. | Gnd | GND de circuito |
2: 4 pin sensor DHT11
La siguiente imagen ilustra el módulo sensor de 4 pin DHT11:
Estos 4 pines incluyen:
1. | VCC | Potencia de entrada 3.5V a 5.5V |
2. | Datos | Temperatura de salida y humedad en datos en serie |
3. | CAROLINA DEL NORTE | Sin conexión o no se usa |
4. | Gnd | GND de circuito |
3: Módulo de pantalla OLED con ESP32
La pantalla OLED viene principalmente con dos protocolos de comunicación diferentes. Los dos protocolos son I2C y SPI. La interfaz periférica en serie (SPI) es generalmente más rápida que I2C, pero preferimos I2C sobre el protocolo SPI, ya que requirió un número menor de pines.
La siguiente imagen ilustra el diagrama de conexión ESP32 con 128 × 64 píxeles (0.96 ") Pantalla OLED.
A continuación se muestra la tabla de conexión:
Una vez que ESP32 está interactuado con una pantalla OLED, el siguiente paso en la lista es instalar todas las bibliotecas requeridas para la programación ESP32 utilizando Arduino IDE.
4: Instalación de las bibliotecas requeridas
Aquí vamos a interactuar dos sensores diferentes con ESP32, por lo que ambos requieren bibliotecas separadas para operar. Ahora instalaremos bibliotecas para la pantalla DHT11 y OLED.
1: Biblioteca Arduino para el sensor DHT
Abra Arduino IDE, ve a: Sketch> incluir biblioteca> Administrar bibliotecas
Alternativamente, también podemos abrir el Administrador de la biblioteca desde el botón lateral en la interfaz Arduino IDE.
Busque la biblioteca DHT e instale la última versión actualizada. La biblioteca DHT ayudará a leer los datos del sensor.
Después de instalar la biblioteca DHT a continuación, tenemos que instalar un biblioteca de sensores unificados por Adafruit.
2: Biblioteca Arduino para pantalla OLED
Múltiples bibliotecas están disponibles en Arduino IDE para programar ESP32 con una pantalla OLED. Aquí usaremos dos bibliotecas de AdaFruit: SSD1306 y GFX Library.
Abra IDE y haga clic en Biblioteca Manager y busque la biblioteca OLED SSD1306. Instale la biblioteca SSD1306 por Adafruit desde la barra de búsqueda.
Alternativamente, uno también puede ir a: Sketch> incluir biblioteca> Administrar bibliotecas
La próxima biblioteca que necesitamos instalar es el Gfx Biblioteca de Adafruit.
Hemos instalado bibliotecas tanto para la pantalla OLED como para el sensor DHT11. Ahora podemos interactuar fácilmente con ESP32.
5: Interfaño ESP32 con sensor DHT11 y OLED
Para la interfaz de ESP32 con el sensor DHT11 necesitamos un PIN digital para leer datos del sensor y para alimentar el sensor DHT11 podemos usar el pin 3V3 o el pin de Vin de ESP32.
Para Pins I2C Pins I2C OLED SDA y SCL se utilizarán. Para alimentar podemos usar VIN o un pin 3V3 de ESP32.
1: esquema
En la imagen dada podemos ver el diagrama esquemático de ESP32 con DHT11 y para la salida se utiliza una pantalla OLED. Esta imagen representa el módulo de sensor de 3 pines que interface con ESP32. Recuerde conectar una resistencia de extracción de 10kΩ.
Del mismo modo, 4 pin DHT11 también se puede conectar, la única diferencia aquí es el 3 pin que no sirve o no se llama conexión. El pin de datos está en el pin 2 del sensor.
La pantalla OLED está conectada con los pines I2C SDA y SCL en D21 y D22 respectivamente.
2: código
Conecte ESP32 con PC y abra Arduino IDE. Cargue el código dado a la placa ESP32.
#Include /*Incluya la biblioteca de comunicación de cables* /
#incluir
#Include /*OLED Display Library* /
#incluir
#InClude /*Biblioteca de sensores de temperatura y humedad* /
#define screen_width 128 /*OLED PANTAL ANCHO 128 PIXELS* /
#define screen_height 64 /*OLED PANTAL SUTIGHT 64 PIXELS* /
AdaFruit_SSD1306 Display (Screen_Width, Screen_height, & Wire, -1); /*SSD1306 I2C Inicialización de visualización*/
#define el pin de señal Dhtpin 4 /*para el sensor DHT11* /
#Define DHTTYPE DHT11
Dht dht (dhtpin, dhttype);
setup () void
De serie.comenzar (115200);
DHT.comenzar();
si(!mostrar.begin (SSD1306_SWITCHCAPVCC, 0x3c)) /*I2C Dirección en la que OLED está conectado* /
De serie.println (f ("fallado de asignación SSD1306"));
para(;;);
retraso (2000);
mostrar.ClearDisplay ();
mostrar.setTextColor (blanco); / *Color de texto de salida White */
bucle void ()
retraso (5000);
flotante t = dht.readTemperature (); /*Leer temperatura*/
flotante h = dht.readHumidity (); /*leer humedad*/
if (isnan (h) || isnan (t))
De serie.println ("No se pudo leer del sensor DHT!");
mostrar.ClearDisplay (); /*Clare la pantalla OLED antes de mostrar la lectura*/
mostrar.setTextSize (1); /*Tamaño de fuente de texto OLED*/
mostrar.setCursor (0,0);
mostrar.imprimir ("temperatura:");
mostrar.setTextSize (2);
mostrar.setCursor (0,10);
mostrar.imprimir (t); /*Temperatura de impresión en Celsius*/
mostrar.imprimir(" ");
mostrar.setTextSize (1);
mostrar.CP437 (verdadero);
mostrar.escribir (167);
mostrar.setTextSize (2);
mostrar.imprimir ("C");
mostrar.setTextSize (1);
mostrar.setCursor (0, 35);
mostrar.imprimir ("Humedad:");
mostrar.setTextSize (2);
mostrar.setCursor (0, 45);
mostrar.imprimir (h); /*Imprime porcentaje de humedad*/
mostrar.imprimir(" %");
mostrar.mostrar();
Código iniciado al incluir las bibliotecas necesarias para los sensores OLED y DHT11. Después de que se definen las dimensiones de la pantalla OLED. A continuación, el tipo de sensor DHT se define en caso de que esté utilizando DHT22, reemplácelo en consecuencia.
En la parte de configuración, se inicializa el sensor DHT y la pantalla OLED. La pantalla OLED está conectada a una dirección I2C de 0x3c. En caso de que uno desee verificar la dirección I2C, cargue el código dado en este artículo.
Los valores de temperatura y humedad se almacenan dentro de la variable flotante T y H respectivamente. Después de eso, ambos valores se imprimen en una pantalla OLED.
3: salida
En la salida podemos ver la temperatura y humedad medidas en tiempo real que se muestran en la pantalla OLED.
Hemos completado con éxito la interfaz de ESP32 con el sensor DHT11 y la pantalla OLED.
Conclusión
Las pantallas OLED con ESP32 pueden mostrar múltiples datos que se leen utilizando los sensores externos. Aquí este artículo cubre todos los pasos para interactuar ESP32 con el sensor DHT11 para medir la temperatura y la humedad de una habitación. Después de eso, todos los datos de lectura se muestran en el módulo de pantalla OLED I2C.