Tutorial ESP32 DS18B20 | Sensor de temperatura DS18B20 con ESP32
En este tutorial, aprenderemos a conectar el DS18B20 a la placa de crecimiento ESP32 DevKit. Si quieres construir un sistema de monitorización de la temperatura basado principalmente en la web utilizando ESP32, el DS18B20 es una magnífica selección para el sensor de temperatura. Aprende cómo funciona la interfaz del sensor de temperatura DS18B20 de ESP32, configura el IDE de Arduino y muestra la temperatura en una pantalla LCD. Además, puedes crear un servidor web ESP32 fácil, que muestre repetidamente la temperatura.
Unas palabras temporales sobre el sensor de temperatura DS18B20
Hemos utilizado el sensor de temperatura DS18B20 en algunas iniciativas anteriores con Arduino, Raspberry Pi y ESP8266. El DS18B20 es un sensor de temperatura digital incorporado de Maxim, que puede medir temperaturas dentro del rango de -550C a +1250C.[ESP32 Projects for Beginners]
No como los diferentes sensores digitales, que a menudo hablan de mí2C o SPI, el sensor de temperatura DS18B20 utiliza la comunicación de 1 hilo para trabajar con un microcontrolador.
En caso de que no conozcas el bus de 1 hilo, se trata de un bus de comunicación desarrollado por Dallas Semiconductor, y como sugiere el título, sólo se necesita un hilo para hablar con un procesador (amablemente, 1 línea de información y 1 hilo GND).
Además, el sensor de temperatura DS18B20 puede obtener su energía del propio cable de información (a menudo llamado energía parásita), sin necesidad de ofrecer ninguna energía externa (a través de la VDD Pin).
Como el DS18B20 es un sensor de temperatura digital, la información sobre la temperatura se almacena en la EEPROM del chip. Entre las diferentes opciones esenciales del DS18B20 están:
- Decisión personal configurable entre 9 bits y 12 bits.
- Un código de serie de 64 bits que es único para todos los sensores DS18B20.
Diagrama de pines y descripción de pines del DS18B20
La siguiente imagen muestra el diagrama de pines y la siguiente tabla muestra la descripción de los pines del DS18B20.
Clavija DS18B20 | Descripción |
GND | Piso |
DQ | Información de entrada/salida. Debe ser tirado en alto. |
VDD | Fuente de alimentación |
Métodos completamente diferentes para Energy DS18B20
Ya lo mencioné en el tutorial de Arduino DS18B20. Hay varios métodos para alimentar el DS18B20:
- Enfoque regular (utilizando VDD)
- Energía parasitaria
Consulta el tutorial de Arduino DS18B20 para obtener más datos. Voy a encender el DS18B20 normalmente en este Tutorial de ESP32 DS18B20.
Interfaz ESP32 DS18B20
Ahora que hemos visto un poco sobre el DS18B20, permítenos continuar con la comprensión de los métodos para interconectar el DS18B20 con el ESP32. Lo primero que debes recordar es que el DS18B20 es un sensor digital. El siguiente factor esencial a tener en cuenta es que hace uso de la comunicación de 1 hilo.
¿Qué implica esto para el ESP32? Esto implica que utilizaremos cualquier pin digital GPIO del ESP32 para enviar y recibir información a/del DS18B20 y nos gustaría tener un solo cable para una correcta comunicación.
Piezas necesarias
- Consejo de crecimiento del DevKit ESP32
- Sensor de temperatura DS18B20
- lCD 16×2
- Módulo LCD PCF8574 I2C
- Bandeja para el pan
- Conexión de cables
- Cable micro USB
Diagrama del circuito
La siguiente imagen muestra las conexiones entre el ESP32 y el DS18B20. Para empezar, estoy alimentando el DS18B20 con energía normal. Entonces, el VDD del DS18B20 está vinculado al VIN de la placa ESP32.
NOTA: El rango de la fuente de alimentación del DS18B20 es de 3V a 5,5V. Así que puedes alimentar el DS18B20 con una alimentación de 3,3V desde la placa ESP32.
Posteriormente, el pin GND se conecta a cualquier pin GND del ESP32. Por último, el pin DQ. Para empezar, este pin tiene que estar en ALTO. Así que conecté una resistencia de 4,7 KΩ entre el pin DQ y los 3,3V.
NOTA: La tensión de pull-up puede estar entre 3 V y 5,5 V.
Ahora, el pin DQ está conectado al GPIO 16 del ESP32, que está etiquetado como RX2 en la placa ESP32 DevKit.
Preparar el IDE de Arduino
Hay algunas bibliotecas y es aconsejable conseguir una conversación correcta con el DS18B20. Primero le dices al bus de 1 hilo. Ve a Instrumentos -> Manejar Bibliotecas... en el IDE de Arduino.
Dentro de la barra de búsqueda, introduce "onewire". Desplázate por las opciones y crea la biblioteca "OneWire" de Jim Studt, Paul Stoffregan Et Al.
La siguiente biblioteca está relacionada con la propia máquina DS18B20. Busca "dallas" y crea "DallasTemperature" de Miles Burton Et Al.
Mostrar la temperatura en la pantalla de serie
Después de realizar las conexiones correctas y de colocar las librerías necesarias, tal y como hemos comentado anteriormente, vamos a ver ahora los métodos para conocer la información de la temperatura del DS18B20 utilizando el ESP32 y mostrar la consecuencia en el Monitor Serial.
Código
He escrito un código sencillo que es capaz de inicializar la comunicación 1-Wire en el GPIO 16, asignar esta comunicación 1-Wire al sensor DS18B20 y leer la información de temperatura.
Para ver la consecuencia, he utilizado sólo el monitor de serie para imprimir los valores de temperatura en grados Celsius.
La siguiente imagen muestra la captura de pantalla del Monitor Serial, que está imprimiendo repetidamente la temperatura a estudiar cada 3 segundos.
ESP32 DS18B20 con I2C LCD
La visualización de los valores de temperatura en el Monitor Serial sólo es útil para probar las conexiones y el propio código. Si necesitas una utilidad extra sensible del "Sistema Integrado", entonces utilizar un módulo de visualización de cualquier variedad (OLED, LCD de 16×2 caracteres, LCD de Nokia 5110, LCD gráfico, etc.) para ver el estudio de la temperatura es el único método.
Para facilitar el mantenimiento de las cuestiones, utilicé un módulo de pantalla LCD de 16×2 caracteres cada día junto con el módulo PCF8574 I2C LCD para mostrar las lecturas de temperatura de la interfaz ESP32 DS18B20.
Hice un tutorial dedicado a los métodos para utilizar un I2C LCD con ESP32. Prueba ese tutorial para obtener más datos en profundidad. Además, en ese tutorial mencioné las librerías necesarias que tienes que conseguir para conectar eficazmente la pantalla LCD I2C con el ESP32.
NOTA: Además, he definido métodos para obtener el cable esclavo de I2C en este tutorial. Este paso es esencial.
Diagrama del circuito
Los elementos adicionales que necesitas son una pantalla LCD de 16×2 y un módulo LCD I2C (basado principalmente en el PCF8574). Conecta el Módulo LCD I2C detrás de la pantalla LCD de 16×2. El Módulo LCD I2C sólo quiere 4 conexiones (dos de ellas son para la alimentación y dos para la información).
Todas las conexiones necesarias entre el ESP32 y el módulo LCD I2C, además de entre el ESP32 y el sensor de temperatura DS18B20, se demuestran en el siguiente diagrama del circuito.
Código
El código para la interfaz ESP32 DS18B20 con LCD I2C puede ser muy fácil. La inicialización de una parte del sensor es exactamente igual que el código anterior. Sólo se añade el código asociado al LCD.
Conclusión
Aquí se realiza un tutorial para principiantes sobre la interconexión del sensor de temperatura DS18B20 con el ESP32. Descubriste algunos detalles primarios sobre el DS18B20, cómo funciona la interfaz del ESP32 DS18B20, las bibliotecas obligatorias para hablar con el DS18B20, los métodos para mostrar la temperatura en la salida serie y también los métodos para unir la pantalla LCD I2C con el ESP32 y mostrar las lecturas de temperatura.
Como se trata de un sistema de monitorización de la temperatura basado principalmente en la web utilizando ESP32 y DS18B20, pronto sustituiré esta página web por el código del servidor de Internet.
Si quieres conocer otros artículos parecidos a Tutorial ESP32 DS18B20 | Sensor de temperatura DS18B20 con ESP32 puedes visitar la categoría Electricidad Básica.
Deja una respuesta
¡Más Contenido!