In questo articolo, ti mostrerò come utilizzare il sensore di temperatura TMP36 con un microcontrollore ESP32.
Il TMP36 è un sensore di temperatura a basso costo e a bassa tensione. È già calibrato in gradi Celsius, il che rende facile gestire i dati del sensore.
Vedrai che la rilevazione della temperatura è una necessità primaria in molte applicazioni diverse.
I sensori di temperatura proteggono dispositivi elettronici come laptop e TV dal surriscaldamento. Oggi ogni batteria è dotata di un sensore di temperatura per evitare il surriscaldamento.
In questo articolo ti insegnerò tutte le informazioni essenziali che devi conoscere sul sensore di temperatura TMP36.
Ti mostrerò come usare un sensore TMP36 con ESP32. Avrai una guida alle connessioni, un esempio di codice ESP32 per TMP36 e risponderò anche ad alcune domande frequenti sul TMP36.
Iniziamo!
Componenti necessari per realizzare il progetto ESP32 e sensore TMP36
Componenti hardware
- Dupont wire x 1 set
- Micro USB Cable for ESP32 x 1
Software
Guida
Makerguides.com partecipa al Programma di affiliazione Amazon Services LLC Associates, un programma di pubblicità affiliata progettato per fornire ai siti un mezzo per guadagnare commissioni pubblicitarie promuovendo e collegandosi a prodotti su Amazon.com.
Fondamenti dei sensori TMP36
Comprendiamo le caratteristiche intrinseche del sensore di temperatura TMP36. Conoscere i dettagli ti aiuta a costruire il progetto con sicurezza e a decidere se il TMP36 è la scelta giusta.
Il TMP36 è disponibile sia in un package a tre pin che in un package SMD small outline.

Il circuito integrato TMP36 è semplice da usare. Non ci sono indirizzi IC, calcolo CRC o comunicazione seriale, ecc.
- Basta usare un ADC e leggere il valore analogico.
- Converti il valore analogico in tensione.
- Usa la tabella di riferimento qui sotto per convertire la tensione in temperatura.
Questo è tutto. Usare il sensore TMP36 è semplice e diretto.
Oltre al sensore TMP36, esistono anche TMP35 e TMP37, molto simili ma con differenze sottili, che ho riassunto nella tabella seguente:
| Sensore | Tensione a 25 ℃ | Intervallo di misura | Fattore di scala di uscita |
| TMP35 | 250 mV | 10 °C a 125 ℃ | 10 mV/℃ |
| TMP36 | 750 mV | −40 °C a +125 ℃ | 10 mV/℃ |
| TMP37 | 500 mV | 5 °C a 100 ℃ | 20 mV/℃ |
Caratteristiche del sensore TMP36
Ecco le caratteristiche principali del sensore TMP36 riassunte in una tabella:
| Parametro | Intervallo |
| Intervallo di temperatura operativa | -40 ℃ a 125 ℃ |
| Precisione della temperatura | ± 1 ℃ (tipica), ± 2 ℃ (massima) |
| Tensione di alimentazione | 2.7 V a 5.5 V |
| Uscita | 750 mV a 25 ℃ |
| Corrente di alimentazione | 50 uA |
| Corrente in standby | 0.5 uA |
| Stabilità a lungo termine | ± 0.4 ℃ |
| Intervallo di tensione di uscita | 100 mV a 2 V |
Definizione dei pin del sensore TMP36
Puoi usare il riferimento qui sotto per consultare rapidamente il pinout del sensore di temperatura TMP36:

| Numero pin | Pin | Descrizione |
| 1 | +Vs | Pin di alimentazione. (2.7 V a 5.5 V) |
| 2 | VOUT | Tensione analogica di uscita |
| 3 | GND | Connessione a massa |
Nella versione SMD, è presente un pin aggiuntivo chiamato shutdown. In queste versioni puoi risparmiare ulteriore energia mettendo il circuito integrato in modalità sleep usando il pin shutdown.
Il consumo di corrente scenderà a 500 nA (fantastico per un dispositivo alimentato a batteria!).
Come ricavare la temperatura da VOUT del TMP36?
Puoi usare il grafico qui sotto per convertire la tensione analogica letta in temperatura.

Come si vede dal grafico, la tensione a 25 gradi è 750 mV, e a 50 gradi è 1 V.
Ora, se hai letto una tensione di 1 V dall’ADC, devi consultare questo grafico e fare riferimento alla linea blu (che corrisponde al sensore TMP36).
Per convertire il valore ADC in tensione usa la seguente equazione.
ADC_volts_in_mV = (ADC_reading) * 3300 / 1024;
Per convertire la tensione ADC in temperatura, puoi usare la formula qui sotto.
temperature = (ADC_volts_in_mV – 500) / 10;
Funzione del pin SHUTDOWN del sensore TMP36
Tutte e tre le varianti, TMP35, TMP36 e TMP37, hanno la funzione shutdown. È un pin aggiuntivo nelle versioni SMD. Ti aiuta a ridurre il consumo di corrente a 0.5 uA.
Devi scegliere il package con attenzione. La versione a tre pin (TO-92) non ha questo pin shutdown.
Devi portare il pin shutdown a livello basso per mettere il circuito integrato in modalità shutdown. Se usi un GPIO, devi inviare un livello logico 0. Questo mette il circuito integrato in modalità sleep.
Il pin shutdown ha un pull-up interno verso il pin di alimentazione all’interno del TMP36. Quindi puoi anche pilotare il pin shutdown usando un pin open-drain.
Quando il TMP36 è in modalità shutdown, la tensione di uscita non è più valida.
Inoltre, quando metti il sensore in modalità shutdown, ci vuole un tempo finito per entrare in questa modalità. Il grafico qui sotto mostra il tempo previsto dopo il quale il circuito integrato si spegnerà.

A temperatura ambiente, il tempo di risposta è circa 265 us, variando in base alla temperatura ambiente. Devi considerare questo nel tuo codice quando usi la funzione shutdown.
Applicazioni del sensore TMP36
Il TMP36 è un sensore primario usato per la rilevazione della temperatura, con un ampio campo di utilizzo, tra cui:
- Sistemi HVAC – I sistemi di riscaldamento, ventilazione e condizionamento dipendono fortemente dalla temperatura ambiente per il loro funzionamento. Il TMP36 è una soluzione preziosa per questi sistemi.
- Processi alimentari – Serve un sistema di monitoraggio della temperatura per assicurarsi che il cibo non si rovini e sia cotto alla temperatura corretta. Puoi usare il TMP36 in queste applicazioni.
- Apparecchiature mediche – Puoi usare il sensore per monitorare la temperatura del paziente e assicurarti che le terapie intensive e altre aree critiche siano a temperature controllate per il comfort e la precisione delle procedure di recupero.
- Processi industriali: Diversi processi industriali dipendono dal sensore TMP36 per garantire che le parti siano prodotte alla temperatura corretta, assicurando la precisione della produzione.
La variazione di temperatura può causare cambiamenti dimensionali o di colore in specifici processi. Perciò è fondamentale monitorare la temperatura.
Per quale applicazione stai usando il sensore TMP36? Faccelo sapere nella sezione commenti qui sotto.
Collegare il modulo sensore TMP36 con ESP32
Ti mostrerò come realizzare un progetto usando ESP32 e il sensore di temperatura TMP36. Iniziamo con le connessioni hardware.
Passo 1: Completa le connessioni hardware

Il TMP36 è un circuito integrato a 3 pin. La semplicità della connessione è evidente dal diagramma qui presente.
Inizia con le connessioni a massa. Se devi usare altri pin, modifica il codice di conseguenza.
Alimenta l’intero sistema solo dopo aver completato tutte le connessioni.
Passo 2: Programma l’ESP32 con il codice qui sotto
Segui il passo successivo per capire l’implementazione del codice. Puoi usare il codice qui sotto per testare il modulo ESP32 e il sensore TMP36 collegato.
Se non hai mai usato un ESP32 con il tuo Arduino IDE, leggi il nostro tutorial Install ESP32 core in Arduino IDE.
const int tempPin = 2; //analog input pin constant
int tempVal; // temperature sensor raw readings
float volts; // variable for storing voltage
float temp; // actual temperature variable
void setup()
{
// start the serial port at 9600 baud
Serial.begin(9600);
}
void loop()
{
//read the temp sensor and store it in tempVal
tempVal = analogRead(tempPin);
volts = tempVal / 1023.0;
temp = (volts - 0.5) * 100 ;
Serial.print(" Temperature is: ");
Serial.print(temp); // in the same line print the temperature
Serial.println (" degrees C"); // still in the same line print degrees C, then go to next line.
delay(1000); // wait for 1 second or 1000 milliseconds before taking the next reading.
}
Passo 3: Analisi del codice
Analizziamo il codice. Questo esempio testa i sensori TMP36. Il codice legge la temperatura e la stampa sul terminale seriale.
const int tempPin = 2; //analog input pin constant
Per prima cosa definiamo una variabile intera costante tempPin a cui assegniamo il valore 2. Questo è il pin a cui abbiamo collegato il sensore di temperatura TMP36.
int tempVal; // temperature sensor raw readings float volts; // variable for storing voltage float temp; // actual temperature variable
La variabile tempVal è dichiarata come intera per memorizzare il valore analogico grezzo letto dal sensore di temperatura.
La variabile volts serve a memorizzare il valore di tensione calcolato da tempVal. La variabile temp serve a memorizzare il valore reale della temperatura.
Nella funzione setup() chiamiamo la funzione Serial.begin() per comunicare con una velocità di 9600 baud.
volts = tempVal / 1023.0;
La riga sopra serve a convertire il valore analogico letto in tensione.
temp = (volts - 0.5) * 100;
La riga sopra è la chiave di questo codice. Sottraiamo 500 mV dalla tensione letta.
Perché? Consulta la sezione basi di questo articolo per informazioni dettagliate.
Come sai, il sensore aggiunge un offset di 500 mV. Questo ti permette di leggere sia temperature negative che tensioni positive.
Infine, la temperatura viene mostrata sul terminale seriale. Spero che la spiegazione del codice ti sia stata utile. Spero che userai il TMP36 presto nei tuoi prossimi progetti.
Domande frequenti sui sensori TMP36
Ho incluso una lista delle domande più frequenti sui progetti realizzati con ESP32 e sensori TMP36.
Cos’è il TMP36?
Il TMP36 è un sensore di temperatura analogico a bassa tensione e precisione che può misurare temperature da -40°C a +125°C. Fornisce una tensione proporzionale linearmente alla temperatura in gradi centigradi.
Qual è la tensione di uscita del sensore TMP36?
La tensione di uscita del TMP36 varia linearmente con la temperatura e ha un fattore di scala di 10 mV/°C.
Esempio: se la temperatura è 25°C, la tensione di uscita sarà 0,25 V. Puoi consultare il grafico qui sotto per trovare la tensione di uscita prevista per la temperatura corrispondente. (grafico b).

Qual è l’intervallo di tensione operativa del TMP36?
L’intervallo di tensione operativa del TMP36 è da 2,7 V a 5,5 V.
Qual è la precisione del sensore TMP36?
La precisione tipica del TMP36 è ±1 °C a 25 °C. Il TMP36 ha un errore massimo di ±2 °C nell’intervallo di temperatura da -40°C a +125 °C.
Qual è la risoluzione del sensore di temperatura TMP36?
La risoluzione del sensore di temperatura TMP36 è di 0,1°C.
Come posso interfacciare il TMP36 con un microcontrollore?
Puoi collegare il TMP36 a qualsiasi MCU usando un pin di ingresso ADC, poiché il TMP36 fornisce una tensione analogica in uscita (corrispondente alla temperatura rilevata in gradi centigradi).
L’ESP32 ha un ADC integrato, così come Arduino UNO e la maggior parte degli MCU hanno ADC integrati.
Quali sono le applicazioni del TMP36?
Il TMP36 può essere usato in varie applicazioni, come la rilevazione della temperatura in dispositivi elettronici, stazioni meteorologiche, processi alimentari, logistica e sistemi HVAC.
Il TMP36 può essere usato per misurazioni ad alta temperatura?
Il TMP36 non è adatto per misurazioni ad alta temperatura poiché può misurare solo fino a +125 °C.
Se vuoi misurare temperature nell’intervallo di 200 o 400 gradi, dovresti considerare i termocoppie. Sono progettati appositamente per monitorare alte temperature.
Qual è il tipo di package del TMP36?
Il TMP36 è disponibile in vari package: 3-pin (TO-92), 5-pin IC (SOT23) e anche 8-pin IC (SOIC).
Consulta l’immagine qui sotto per capire le varie versioni di pin del TMP36 che puoi acquistare sul mercato. La mia preferita è la TO-92, la versione a tre pin.

Conclusione
Ho coperto tutte le informazioni essenziali sui sensori TMP36 in questo articolo. Ti ho fornito informazioni complete sul funzionamento del sensore di temperatura TMP36 e sui vantaggi di usarlo nei tuoi futuri progetti di rilevazione termica.
Lo schema di collegamento ESP32 e il codice di esempio ti hanno aiutato a testare le connessioni e a costruire il progetto più velocemente. Se hai altre domande sui sensori, scrivile nella sezione commenti.
Ho usato i sensori TMP36 durante lo studio delle prestazioni termiche di una scheda di prova. Ho usato 6 sensori TMP36 per monitorare la temperatura in diversi punti della scheda di prova.
Puoi utilizzare il TMP36 in molti progetti ESP32 diversi e collegarlo a vari display per mostrare i dati.
Faccelo sapere se c’è qualcos’altro che vorresti che trattassi in futuri articoli.


