En este tutorial vas a usar una pantalla OLED para mostrar la temperatura ambiente en tiempo real. Vas a aprender a conectar un sensor analógico y a procesar sus datos para visualizarlos de forma clara con tu ESP32.
Información General
En esta guía, vas a utilizar un display OLED para mostrar la temperatura capturada por el sensor.
Componentes Requeridos
(1) x Elegoo ESP32, (1) x Pantalla OLED, (1) x Resistencia de 10k ohm, (1) x Termistor, (2) x Protoboard de 400 puntos, (6) x Cables puente M-M (Macho a Macho).
Introducción de los Componentes
Un termistor es una resistencia térmica, o sea, una resistencia que cambia su valor según la temperatura. Técnicamente, todas las resistencias son termistores porque su valor varía un poco con el calor, pero el cambio suele ser mínimo y difícil de medir. Los termistores están fabricados para que esa resistencia cambie drásticamente, pudiendo variar 100 Ohms o más por cada grado de cambio.
Existen dos tipos: NTC (coeficiente de temperatura negativo) y PTC (coeficiente de temperatura positivo). Por lo general, vas a ver sensores NTC para medir temperatura. Los PTC se suelen usar como fusibles rearmables: al subir la temperatura aumenta la resistencia, lo que hace que a medida que pasa más corriente, se calienten y "frenen" el flujo, algo muy útil para proteger circuitos.
Esquema de Conexión
Seguí el esquema para realizar las conexiones eléctricas entre el ESP32, el termistor y la pantalla.
Diagrama de Cableado
Fijate bien en la disposición de los cables en la protoboard para evitar errores en la lectura analógica.
Código
Podés hacer clic en el enlace de texto azul para bajar el archivo del programa a tu equipo; después dale doble clic para abrirlo. Importante: antes de abrir el archivo, asegurate de tener instalado el IDE de Arduino y los paquetes de soporte para la placa ESP32. Si tenés dudas, revisá la parte 1 del documento.
Con este código, el ESP32 lee la temperatura de un termistor NTC, aplica un filtrado de ruido, calcula el valor usando la ecuación de Steinhart-Hart y lo muestra en la pantalla OLED, actualizándolo cada segundo. No te olvides de abrir el monitor serie (ajustado a 115200 baudios) para ver los mensajes de diagnóstico.
Librerías incluidas: Wire.h se usa para la comunicación I2C con el display. Adafruit_GFX.h y Adafruit_SSD1306.h son necesarias para manejar los gráficos y el controlador de la pantalla OLED.
Definición de pines: Se define el pin 35 (canal ADC1 del ESP32) como la entrada analógica para el termistor. También se configura el ancho (128) y alto (64) de la pantalla, asignando el valor -1 al pin de reset ya que no se usa en este caso.
Resistencia en serie: Se define una constante de 10000.0 (10kΩ) para la resistencia que forma el divisor de tensión con el termistor.
Función Setup: Acá se inicia la comunicación serie y el protocolo I2C en los pines SDA=21 y SCL=22. Se intenta inicializar la pantalla con la dirección 0x3C; si falla, el programa se detiene y te avisa por el monitor serie. Finalmente, se limpia la pantalla y se configura el tamaño y color del texto.
Solución de Problemas
Si no ves nada en la pantalla, verificá que los pines SDA y SCL estén bien conectados. Si los valores de temperatura parecen locos, revisá que la resistencia de 10k sea la correcta y esté bien firme en la protoboard.
Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.