INFORMACIÓN
¿Qué es? El TMP36 es un sensor de temperatura que en su salida los proporciona una lectura en grados centígrados de precisión y de bajo voltaje.
¿Para qué sirve? Se utilizan el sensor TMP36 para medir la temperatura de los sistemas de control ambiental, protección térmica, control de procesos industriales, alarmas contra incendios, monitores de sistemas de potencia y gestión térmica de la CPU.
¿Cómo funciona? El TMP36 los proporciona a la salida un voltaje linealmente proporcional a la temperatura que registre el sensor. Cuenta con una precisión de ± 1 °C a +25 °C y ± 2 °C por encima del rango de temperatura de -40 °C a +125 °C. El voltaje de salida se puede convertir a temperatura fácilmente usando el factor de escala de 10mV / °C.
ESPECIFICACIONES TÉCNICAS Y CARACTERÍSTICAS
- Voltaje de funcionamiento: 2.7 @ 5.5 Volts
- Consumo de corriente en reposo: 0.5 uA máx
- Calibración directamente: °C
- Factor de escala: 10 mV / °C
- Precisión de ±2 °C sobre temperatura
- Linealidad de ±0.5 °C
- Rango de temperatura: -40 °C a +125 °C
- Estable con grandes cargas capacitivas
- Bajo auto calentamiento
- Calificado para aplicaciones automotrices
- Dimension: longitud 18.5 mm
TUTORIALES
DOCUMENTACIÓN Y RECURSOS
INFORMACIÓN ADICIONAL
¿Qué es un sensor de temperatura?
Es un componente electrónico que convierten los cambios de temperatura en corriente eléctrica (mv) que son luego acondicionados por equipos eléctricos o electrónicos. Existen muchos de tipos de sensores, pero los más conocidos son los termistores NTC y PTC, termopar y los RTD.
¿Qué es un termistor NTC?
Es un sensor de temperatura de coeficiente de temperatura negativa, eso significa que conforme detecte un cambio de temperatura su resistencia cambiara también. Por lo cual al aumentar la temperatura la resistencia disminuye y cuando la temperatura disminuye la resistencia aumenta.
¿Cómo conectarlo?
El sensor TMP36 cuenta con solo tres pines. Por lo cual la conexión es muy sencilla ya que solo se necesita conectarlo a tierra y a una fuente de voltaje y se podrán realizar mediciones a la salida del sensor.
TUTORIAL
La finalidad de este tutorial es realizar la captación de datos a través de un sensor y posteriormente visualizarlo en un panel de control, utilizando como interfaz de comunicación Adafruit IO.
¿Qué es adafruit IO? Es una plataforma diseñada para visualizar, responder e interactuar con los datos de su proyecto. A demás se mantienen los datos privados (los feeds de datos son privados de forma predeterminada) y seguros. Lo grandioso de adafruit IO es que cuenta con un servidor en la nube y para poder usarlo solo debes tener internet y tendrás acceso a él.
Está destinado principalmente para almacenar y luego recuperar datos. A demás puedes construir tableros que te permitan visualizar los datos.
Algunas funciones que puedes hacer con adafruit IO son:
- Muestra tus datos en tiempo real y en línea
- Controle motores, lea datos de sensores conectado a Internet
- Conecte sus proyectos a servicios web como Twitter, canales RSS, servicios meteorológicos, etc.
- Conecte su proyecto a otros dispositivos con acceso a Internet
La mejor parte es que Adafruit IO es gratuito.
A continuación, se mostrará el diagrama de bloques del sistema de control de temperatura.

El controlador que vamos a utilizar es un ESP32 DevkitV1 de 30 pines, el actuador es el elemento que se va a encargar de ejecutar la acción para mantener la temperatura mayor a 20 grados y menor a 30. El sensor que vamos a utilizar para este sistema es un TMP 36 y para programarlo utilizaremos lenguaje C.
Para iniciar lo primero que tendrás que hacer es entrar a la página oficial de Adafruit IO y crear una cuenta si no estás registrado.
Después deberás crear dos Feeds, con los nombres pot1 y pot2 respectivamente.
Continuaremos en crear el panel donde podrás visualizar la temperatura en grados centígrados y fahrenheit.
Datos a modificar:
Nombre de la red y contraseña
#define WLAN_SSID “Nombre_de_tu_Internet”
#define WLAN_PASS “Password”
Nombre del usuario y key
El nombre de usuario y key lo puedes encontrar dando Click en “Adafruit IO Key” en la parte superior derecha de la página.
#define AIO_USERNAME “Reemplácelo con tu nombre de usuario”
#define AIO_KEY “Reemplace con su Clave de autenticación del proyecto”
CÓDIGO DE PRUEBA
// Este código pretende mostrar en el panel de adafruit IO la temperatura que detecta el sensor TMP 36 #include "Adafruit_MQTT.h" #include "Adafruit_MQTT_Client.h" #include <WiFi.h> /*************************Variables *********************************/ #define pots 36 // VP #define led1 27 // GPIO27 #define led2 21 // GPIO 21 #define led3 22 // GPIO 22 float valor,RV,Res,Vin,TGC,TGF; /****************************************************************************/ #define WLAN_SSID "Nombre_de_tu_Internet" #define WLAN_PASS "Password" unsigned long previousMillis = 0; /************************* Adafruit.io Setup *********************************/ #define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883 // use 8883 for SSL #define AIO_USERNAME "Reemplácelo_con_tu_nombre_de_usuario" #define AIO_KEY "Reemplace_con_su_Clave_de_autenticación_del_proyecto" /************Estado global (¡no necesita cambiar esto!) ******************/ //Cree una clase ESP8266 WiFiClient para conectarse al servidor MQTT. WiFiClient client; // o ... use WiFiFlientSecure para SSL //WiFiClientSecure client; // Configure la clase de cliente MQTT pasando el cliente WiFi y el servidor MQTT y los detalles de inicio de sesión. Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY); /****************************** Feeds ***************************************/ // Configure un feed llamado 'onoff' para suscribirse a los cambios. Adafruit_MQTT_Publish dato1= Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME"/feeds/pot1"); // FeedName Adafruit_MQTT_Publish dato2= Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME"/feeds/pot2"); // FeedName void MQTT_connect(); void setup(){ analogReadResolution(11); // Rango de 1 - 12 bits pinMode(pots, INPUT); pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); Serial.begin(115200); delay(10); // Conéctese al punto de acceso WiFi. Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(WLAN_SSID); WiFi.begin(WLAN_SSID, WLAN_PASS); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void loop() { MQTT_connect(); valor=analogRead(pots); RV=(3.3-2.16)/2047; // 11 bits Vin=(valor*RV)+RV; TGC=Vin/0.01; TGF=(1.8*TGC)+32; if(! dato1.publish(TGC)) { Serial.println(F("Failed")); } else{ Serial.print(TGC); Serial.print("°C"); Serial.print("\t"); } delay(2000); if (! dato2.publish(TGF)) { Serial.println(F("Failed")); } else { Serial.print(TGF); Serial.print("°F"); } delay(2000); if(TGC>30){ // Temperatura máxima digitalWrite(led1,HIGH); Serial.print("\t"); Serial.println("Temperatura máxima"); }else{ digitalWrite(led1,LOW); } if(TGC<20){ digitalWrite(led2,HIGH); // Temperatura menor Serial.print("\t"); Serial.println("Temperatura menor"); }else{ digitalWrite(led2,LOW); } if(TGC<30 && TGC>20){ digitalWrite(led3,HIGH); // Temperatura requerida Serial.print("\t"); Serial.println("Temperatura requerida "); }else digitalWrite(led3,LOW); } void MQTT_connect() { int8_t ret; // Detener si ya está conectada. if (mqtt.connected()) { return; } Serial.print("Connecting to MQTT... "); uint8_t retries = 3; while ((ret = mqtt.connect()) != 0) { // conectar devolverá 0 para conectad Serial.println(mqtt.connectErrorString(ret)); Serial.println("Retrying MQTT connection in 5 seconds..."); mqtt.disconnect(); delay(10000); // esperar 5 segundos reintentos if (retries == 0){ // básicamente muere y espera a que WDT me reinicie while (1); } } Serial.println("MQTT Connected!"); }
Interpretación
En el panel deberás visualizar la temperatura que está detectando en ese mismo instante, el indicador de temperatura requerida prenderá cuando la temperatura sea mayor a 20 grados y menor a 30 grados.
Cuando la temperatura es menor a los 20 grados centígrados, el indicador de temperatura mínima se prenderá.
Sí la temperatura supera los 30 grados centígrados, el indicador de temperatura máxima se prenderá.
El sensor va estar constantemente monitoreando la temperatura que se le someta. La temperatura que se muestra en el panel está en grados centígrados y fahrenheit.
Valoraciones
No hay valoraciones aún.