El módulo ESP32 ha ganado popularidad debido a su pequeño tamaño, enormes posibilidades, comunicación inalámbrica y bajo precio. Le permite crear un número ilimitado de proyectos de IoT utilizando varios tipos de sensores y otros actuadores. ESP también se utiliza en sistemas domésticos inteligentes, donde es visible como nodo. Gracias a la comunicación WiFi, no es necesario tender cables adicionales al panel de control, ya que los datos se envían a través de una red inalámbrica. En esta guía, conectaremos el módulo ESP32 con el popular sensor de temperatura DS18B20 y mostraremos los datos del sensor en un monitor en serie y en un navegador web.

0. Componentes para la conexión con el sensor de temperatura DS18B20

Por el título, es fácil concluir que para crear el proyecto necesitaremos un módulo ESP32 y un sensor de temperatura DS18B20. 

Puede encontrar una lista completa de productos a continuación:

  • Módulo ESP32
  • Sensor DS18B20
  • Resistencia de 4,7 kΩ
  • Placa de pruebas - protoboard
  • Cables de conexión macho-macho
  • Cable microUSB

{Product:5215}{Product:515}
o
{Product:1300}

{Product:89}

{Product:287}

{Product:141}

{Product:1439}

1. Medición por Monitor Serie

I. Conexión del sensor DS18B20 con ESP32

El sensor se puede conectar a cualquier pin digital ESP32, lo conectaremos al pin D4 del  módulo ESP. Entre el sensor de temperatura digital de clavija (centro - DQ) y la fuente de alimentación se debe colocar una resistencia pull-up de 4,7 k Ω .

II. Preparación de Arduino IDE para módulo ESP32

El módulo ESP32 se puede programar fácilmente en el entorno Arduino IDE. Para hacer esto, necesita cargar el paquete de mosaicos apropiado. Para cargar placas ESP32, abra el IDE de Arduino, luego vaya a la  sección Archivo -> Preferencias y pegue el enlace en el campo URL adicionales en el administrador de la placa :

https://dl.espressif.com/dl/package_esp32_index.json

 y presione el botón OK.

El siguiente paso es instalar las placas ESP32. Vaya a  Herramientas -> Placa: -> Gestor de tarjetas... e ingrese "ESP32" en el campo y presione el botón Instalar.

A veces puede suceder que el sistema carezca de controladores para el chip convertidor CP210x USB - UART  . Luego, debe instalarlos manualmente en el administrador de dispositivos de Windows.

III. Instalación de bibliotecas Arduino apropiadas

El siguiente paso es instalar las bibliotecas adecuadas para el sensor DS18B20. El sensor utiliza las bibliotecas de temperatura OneWire de Paul Stoffregen y Dallas. Las bibliotecas deben instalarse de acuerdo con los siguientes pasos: 

1. Abra el IDE de Arduino y vaya a  Sketch -> Adjuntar biblioteca -> Administrar bibliotecas y escriba "onewire", luego busque las bibliotecas OneWire de Paul Stroffregen y haga clic en instalar.

2. Otra biblioteca requerida es DallasTemperature de Miles Burton. Ingrese "dallas" en el cuadro de búsqueda e instale la biblioteca de Dallas.

Después de instalar las bibliotecas, reinicie Arduino IDE.

IV. Programando el módulo ESP32

Después de instalar todas las bibliotecas necesarias, puede programar su ESP32. El siguiente código le permite leer fácilmente los valores de temperatura y mostrarlos en el monitor serial Arduino IDE.

//Incluir las bibliotecas OneWire y DallasTemperature

#include <OneWire.h>

#include <DallasTemperature.h>

//Selecciona el pin al que se conecta el sensor de temperatura

const int oneWireBus = 4;

//Comunicar que vamos a utilizar la interfaz oneWire

OneWire oneWire(oneWireBus);

//Indica que el sensor utilizará la interfaz OneWire

DallasTemperature sensors (&oneWire);

void setup() {

  //Ajustar la velocidad para el monitor serie

  Serial.begin(115200);

  sensors.begin();

}

void loop() {

  //Leer la temperatura

  Serial.print("Mandando comandos a los sensores ");

  sensors.requestTemperatures();

  //Lectura en grados celsius

  float temperatureC = sensors.getTempCByIndex(0);

 //Escribir los datos en el monitor de serie

   Serial.print("Temperatura sensor : ");

  Serial.print(temperatureC);

  Serial.println("°C");

  // Lectura de la temperatura cada 5 segundos

  delay(5000);

}

El código se puede copiar y pegar en el IDE de Arduino. Antes de cargar el código, seleccione la placa DOIT ESP32 DEVKIT V1 y el puerto serie apropiado. Luego presione el botón Subir.


Después de cargar correctamente el código en la placa, presione el botón del monitor en serie para ver los resultados de la medición de temperatura:

El resultado de las mediciones debe aparecer en el monitor en serie. La medición se realizará cada 5 segundos (5000 ms).

2. Lectura de temperatura usando un servidor web

El módulo ESP32 está equipado con un sistema WiFi, gracias al cual la temperatura se puede leer de forma remota mediante un navegador web. Para hacer esto, necesita instalar una biblioteca adicional: ESPAsyncWebServer, que le permite crear fácilmente un servidor web. 

I. Instalación de librerías

  1. Descargue la biblioteca  ESPAsyncWebServer .
  2. Sube la biblioteca yendo a Sketch -> Adjuntar biblioteca -> Adjuntar biblioteca .ZIP y busca el paquete ZIP descargado. Luego presione el botón Abrir.

Otra biblioteca necesaria es Async TCP Library. Instale la biblioteca de acuerdo con los siguientes pasos:

  1. Descargue la biblioteca Async TCP .
  2. Sube la biblioteca yendo a Sketch -> Adjuntar biblioteca -> Adjuntar biblioteca .ZIP y busca el paquete ZIP descargado. Luego presione el botón Abrir.

II. Código para el servidor web asíncrono DS18B20

Abra el código descargado o cópielo y péguelo en un nuevo sketch. El código debe incluir el SSID del enrutador WiFi doméstico y la contraseña.

DESCARGA EL CÓDIGO AQUÍ

Después de cargar el código, la dirección IP del módulo ESP32 debería aparecer en el monitor en serie, p. Ej. 192.168.1.108. La dirección debe pegarse en un navegador web donde se mostrarán los resultados de las mediciones del sensor de temperatura DS18B20.

¡Y ya está listo!