ESP32 - Sensor de temperatura

Este tutorial te enseña cómo usar el ESP32 para leer la temperatura del sensor DS18B20 e imprimirla en el Monitor Serial.

Hardware Requerido

1×Módulo de Desarrollo ESP32 ESP-WROOM-32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Sensor de Temperatura DS18B20 (con Adaptador)
1×Sensor de Temperatura DS18B20 (sin Adaptador)
1×Protoboard
1×Cables Puente
1×(Opcional) Conector de Alimentación DC
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP32
1×(Recomendado) Breakout Expansion Board for ESP32
1×(Recomendado) Divisor de Alimentación para ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Buy Note: Many DS18B20 sensors available in the market are unreliable. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.

Acerca del sensor de temperatura One Wire - DS18B20

Esquema de pines del sensor de temperatura DS18B20

El sensor de temperatura DS18B20 tiene tres pines:

  • Pin GND: conecta este pin a GND (0V)
  • Pin VCC: conecta este pin a VCC (5V o 3.3V)
  • Pin DATA: es el bus de datos 1-Wire. Debe conectarse a un pin digital en ESP32.

El sensor DS18B20 tiene dos formas:

  • Paquete TO-92 (se parece a un transistor)
  • Sonda impermeable. Usamos esta forma en este tutorial.
Diagrama de pines del sensor de temperatura DS18B20

Conectar un sensor de temperatura DS18B20 con un Arduino a menudo requiere una resistencia de pull-up, lo que puede ser un engorro. Sin embargo, algunos fabricantes han hecho que el proceso sea más sencillo al ofrecer un adaptador de cableado con una resistencia de pull-up integrada y un bloque de terminales con tornillos para una conexión fácil.

Diagrama de cableado entre el sensor de temperatura DS18B20 y el ESP32

  • Cómo conectar el ESP32 y el sensor de temperatura DS18B20 usando placa de pruebas.
Diagrama de cableado del sensor de temperatura ESP32

This image is created using Fritzing. Click to enlarge image

Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.

  • Cómo conectar el ESP32 y el sensor de temperatura DS18B20 utilizando placa de pruebas y un adaptador.
Diagrama de cableado ESP32 DS18B20

This image is created using Fritzing. Click to enlarge image

Cómo conectar el ESP32 y un sensor de temperatura
  • Diagrama de cableado real con adaptador
Diagrama de cableado del adaptador ESP32-DS18B20

This image is created using Fritzing. Click to enlarge image

Para facilitar la conexión, es recomendable adquirir un sensor DS18B20 que viene con un adaptador de cableado equipado con una resistencia integrada, lo que elimina la necesidad de una resistencia adicional en el cableado.

Código ESP32

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN 17 // ESP32 pin GPIO17 connected to DS18B20 sensor's DATA pin OneWire oneWire(SENSOR_PIN); DallasTemperature DS18B20(&oneWire); float tempC; // temperature in Celsius float tempF; // temperature in Fahrenheit void setup() { Serial.begin(9600); // initialize serial DS18B20.begin(); // initialize the DS18B20 sensor } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures tempC = DS18B20.getTempCByIndex(0); // read temperature in °C tempF = tempC * 9 / 5 + 32; // convert °C to °F Serial.print("Temperature: "); Serial.print(tempC); // print the temperature in °C Serial.print("°C"); Serial.print(" ~ "); // separator between °C and °F Serial.print(tempF); // print the temperature in °F Serial.println("°F"); delay(500); }

Pasos R\u00e1pidos

  • Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
  • Realiza el cableado tal como se muestra en la imagen anterior.
  • Conecta la placa ESP32 a tu PC mediante un cable micro USB.
  • Abre el IDE de Arduino en tu PC.
  • Selecciona la placa ESP32 correcta (p. ej. ESP32 Dev Module) y el puerto COM.
  • Haz clic en el ícono de Libraries en la barra izquierda del IDE de Arduino.
  • Busca “DallasTemperature” en la caja de búsqueda y luego busca la biblioteca DallasTemperature de Miles Burton.
  • Haz clic en el botón Install para instalar la biblioteca DallasTemperature.
Biblioteca Dallas Temperature para ESP32
  • Se le pedirá que instale la dependencia. Haga clic en el botón Instalar Todo para instalar la biblioteca OneWire.
Biblioteca OneWire para ESP32
  • Copia el código anterior y pégalo en el IDE de Arduino.
  • Compila y sube el código a la placa ESP32 haciendo clic en el botón Subir en el IDE de Arduino
  • Haz que el sensor esté más caliente o más frío sujetándolo con la mano, o incrustándolo en agua caliente y fría.
  • Ve el resultado en el Monitor Serial. Se ve como a continuación:.
COM6
Send
Temperature: 26.31°C ~ 79.36°F Temperature: 26.44°C ~ 79.59°F Temperature: 26.50°C ~ 79.70°F Temperature: 26.56°C ~ 79.81°F Temperature: 27.06°C ~ 80.71°F Temperature: 27.75°C ~ 81.95°F Temperature: 28.37°C ~ 83.07°F Temperature: 29.00°C ~ 84.20°F Temperature: 29.56°C ~ 85.21°F Temperature: 30.00°C ~ 86.00°F Temperature: 30.31°C ~ 86.56°F Temperature: 30.62°C ~ 87.12°F Temperature: 30.87°C ~ 87.57°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!