Algunas partes de este sitio web aún no están disponibles en su idioma. Estamos trabajando para solucionar esto y nos disculpamos por cualquier inconveniente.
Tutorial ESP32 25/55 - Medición de temperatura utilizando NTC y LCD | Kit de aprendizaje IoT ESP32 de SunFounder
En este tutorial, aprenderemos cómo medir la temperatura utilizando un termistor de Coeficiente de Temperatura Negativo (NTC) y mostrar las lecturas en una pantalla LCD utilizando el microcontrolador ESP32. El proyecto implicará conectar un termistor NTC al ESP32 y usar una LCD para mostrar las lecturas de temperatura tanto en Celsius como en Fahrenheit. Esta es una excelente manera de comenzar con las técnicas de detección y visualización de temperatura utilizando la plataforma ESP32.
ESP32-25-NTC_termómetroLCD
Estaremos utilizando la placa de expansión ESP32 de SunFounder, que mejora las capacidades del ESP32 con Wi-Fi y Bluetooth integrados. Esta placa se puede integrar fácilmente con varios sensores y pantallas, lo que la hace ideal para proyectos de IoT. El termistor NTC proporcionará lecturas de temperatura en función de su resistencia, que varía inversamente con la temperatura. Para más aclaraciones sobre la configuración y el código, asegúrate de consultar el video (en el video a las 00:00).
Hardware Explicado
Los componentes principales utilizados en este proyecto incluyen el microcontrolador ESP32, un termistor NTC, una resistencia y una pantalla LCD. El ESP32 funciona como la unidad central de procesamiento, manejando datos del termistor y controlando la pantalla LCD. El termistor NTC cambia su resistencia de acuerdo con la temperatura, lo que nos permite calcular la temperatura en función de la configuración del divisor de voltaje con una resistencia fija.
NTC_termistor
La pantalla LCD mostrará las lecturas de temperatura tanto en Celsius como en Fahrenheit. Utilizaremos el protocolo I2C para comunicarnos con la LCD, lo que simplifica el cableado al reducir el número de pines necesarios. El termistor NTC tiene una característica donde su resistencia disminuye con un aumento de temperatura, lo cual es crucial para nuestros cálculos.
Detalles de la hoja de datos
Fabricante
SunFounder
Número de parte
Termistor NTC
Resistencia nominal
10 kΩ
Valor Beta
3950 K
Rango de temperatura
-40°C a 125°C
Paquete
Axial
Asegúrese de que el termistor esté clasificado para el rango de temperatura esperado.
Utiliza una resistencia de 10 kΩ para el divisor de voltaje; de lo contrario, las lecturas serán inexactas.
Verifique las conexiones para evitar cortocircuitos.
Mantén la dirección I2C del LCD correcta (típicamente 0x27).
Utilice niveles de alimentación apropiados para el ESP32 y los periféricos.
Verifica que la tasa de baudios del monitor serie coincida con la configuración del código (115200).
Para cablear los componentes, comienza conectando el termistor NTC al ESP32. El termistor no tiene polaridad, por lo que se puede conectar en cualquier dirección. Conecta un terminal del termistor al pin de tierra (GND) en el ESP32. El otro terminal se conecta a una resistencia de 10 kΩ, que luego se conecta al pin de 3.3V en el ESP32. La unión entre el termistor y la resistencia se conectará al pin.35en el ESP32, que leerá el voltaje para los cálculos de temperatura.
Para el LCD, conecta el pin de tierra (típicamente el segundo pin desde la parte superior) a GND en el ESP32. Luego, conecta el VCC (a menudo el primer pin) al pin de 5V en el ESP32. El pin SDA (usualmente el tercer pin) debe conectarse al pin21en el ESP32, y el pin SCL (a menudo el cuarto pin) debería conectarse al pin22Asegúrese de que todas las conexiones estén seguras y verifique nuevamente los números de pin para evitar errores.
Ejemplos de código y guía paso a paso
El código comienza definiendo las constantes para el termistor, incluyendo el número de pin, el voltaje de referencia y los valores de resistencia. La función de configuración inicializa la comunicación serial y establece el pin del termistor como una entrada.
const int thermistorPin = 35; // Pin connected to the thermistor
const float referenceVoltage = 3.3;
const float referenceResistor = 10000; // the 'other' resistor
El bucle principal lee el valor analógico del pin del termistor, calcula la resistencia y luego computa la temperatura en Celsius y Fahrenheit utilizando la ecuación del parámetro Beta. Los valores calculados se imprimen en el monitor serial.
int adcValue = analogRead(thermistorPin); // Read ADC value
float voltage = (adcValue * referenceVoltage) / 4095.0; // Calculate voltage
float resistance = (voltage * referenceResistor) / (referenceVoltage - voltage); // Calculate thermistor resistance
Finalmente, la temperatura se muestra en la pantalla LCD. Lalcd.print()La función se utiliza para mostrar los valores de temperatura, junto con el símbolo de grado.
Este código actualiza efectivamente la LCD cada 300 milisegundos con las últimas lecturas de temperatura, lo que permite un monitoreo en tiempo real.
Demostración / Qué Esperar
Al ejecutar el código y completar el cableado, deberías ver las lecturas de temperatura mostradas en el LCD tanto en Celsius como en Fahrenheit. Si sostienes el termistor en tu mano, deberías notar que la temperatura aumenta a medida que la resistencia disminuye. Ten cuidado con la polaridad invertida y asegúrate de que las conexiones estén seguras, ya que un cableado incorrecto puede llevar a lecturas inexactas (en el video a las 04:50).
Marcas de tiempo del video
00:00 Comenzar
1:50 introducción al proyecto
5:32 cableado explicado
Código NTC de Arduino para ESP32 explicado
13:38 Seleccionando la placa ESP32 y el puerto COM en Arduino IDE