ESP32 - Sensor de temperatura TMP36

En esta guía, vamos a aprender a programar el ESP32 para leer la temperatura del sensor TMP36.

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×TMP36 Temperature Sensor
1×Protoboard
1×Cables Puente
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.

Acerca del sensor de temperatura TMP36

Diagrama de pines

El sensor de temperatura TMP36 tiene tres pines:

  • Pin GND: debe conectarse a GND (0V)
  • Pin VCC: debe conectarse a VCC (5V)
  • Pin +Vs: es la fuente de alimentación para el sensor, que puede variar entre 2,7 V y 5,5 V.
  • Pin Vout: la señal de salida que es linealmente proporcional a la temperatura, debe conectarse a un pin analógico en el ESP32.
Pinout del sensor de temperatura TMP36

Cómo funciona

La salida del TMP36 es un voltaje linealmente proporcional a la temperatura en grados Celsius. El factor de escala de salida del TMP36 es de 10 mV/°C. Esto significa que la temperatura se calcula dividiendo el voltaje de salida (en mV) entre 10.

Diagrama de Cableado

Diagrama de cableado del sensor de temperatura TMP36 para 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 programar para el sensor de temperatura TMP36

  • Obtén el valor ADC del sensor de temperatura usando la función analogRead().
int adcVal = analogRead(PIN_TMP36);
  • Convertir el valor del ADC a voltaje.
float voltage = adcVal * (3.3 / 4095.0);
  • Convierte el voltaje a la temperatura en grados Celsius
float tempC = (voltage - 0.5) * 100;
  • (Opcional) Convertir de grados Celsius a Fahrenheit
float tempF = tempC * 9 / 5 + 32;

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-tmp36-temperature-sensor */ #define ADC_VREF 3.3 // 3.3V #define ADC_RESOLUTION 4095.0 #define PIN_TMP36 36 // ESP32 pin GPIO36 (ADC0) connected to LM35 void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { // get the ADC value from the TMP36 temperature sensor int adcVal = analogRead(PIN_TMP36); // convert the ADC value to voltage float voltage = adcVal * (ADC_VREF / ADC_RESOLUTION); // convert the voltage to the temperature in Celsius float tempC = (voltage - 0.5) * 100; // convert the Celsius to Fahrenheit float tempF = tempC * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("TMP36 Temperature: "); Serial.print(tempC); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempF); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Pasos R\u00e1pidos

  • Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
  • Conecta el cableado 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.
  • Copia el código anterior y ábrelo con el IDE de Arduino.
  • Haz clic en el botón Upload del IDE de Arduino para cargar el código en el ESP32.
  • Sujeta el sensor con la mano.
  • Ver el resultado en el Monitor Serial.
COM6
Send
TMP36 Temperature: 26.31°C ~ 79.36°F TMP36 Temperature: 26.44°C ~ 79.59°F TMP36 Temperature: 26.50°C ~ 79.70°F TMP36 Temperature: 26.56°C ~ 79.81°F TMP36 Temperature: 27.06°C ~ 80.71°F TMP36 Temperature: 27.75°C ~ 81.95°F TMP36 Temperature: 28.37°C ~ 83.07°F TMP36 Temperature: 29.00°C ~ 84.20°F TMP36 Temperature: 29.56°C ~ 85.21°F TMP36 Temperature: 30.00°C ~ 86.00°F TMP36 Temperature: 30.31°C ~ 86.56°F TMP36 Temperature: 30.62°C ~ 87.12°F TMP36 Temperature: 30.87°C ~ 87.57°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Nota:

Este tutorial utiliza la función analogRead() para leer valores de un ADC (Convertidor Analógico-Digital) conectado a un sensor TMP36. El ADC del ESP32 es adecuado para proyectos que NO requieren alta precisión. Sin embargo, para proyectos que necesiten mediciones precisas, tenga en cuenta lo siguiente:

  • El ADC del ESP32 no es perfectamente preciso y podría necesitar calibración para obtener resultados correctos. Cada placa ESP32 puede ser un poco diferente, por lo que debes calibrar el ADC para cada placa individual.
  • La calibración puede ser difícil, especialmente para principiantes, y podría no siempre dar los resultados exactos que deseas.

Para proyectos que necesitan alta precisión, considere usar un ADC externo (p. ej. ADS1115) con el ESP32 o usar un Arduino, que tiene un ADC más fiable. Si aún desea calibrar el ADC del ESP32, consulte ESP32 ADC Calibration Driver

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.

Referencias de funciones

※ 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!