Skip to Content

Interligar ESP32 e Sensor de Temperatura TMP36

Interligar ESP32 e Sensor de Temperatura TMP36

Neste artigo, vou mostrar como usar o sensor de temperatura TMP36 com um microcontrolador ESP32. 

O TMP36 é um sensor de temperatura de baixo custo e baixa tensão. Já está calibrado em Celsius, o que facilita o manuseio dos dados do sensor.

Verá que a medição de temperatura é uma necessidade fundamental em muitas aplicações diferentes. 

Sensores de temperatura protegem dispositivos eletrónicos como portáteis e TVs contra sobreaquecimento. Atualmente, todas as baterias também vêm com um sensor de temperatura para evitar o sobreaquecimento. 

Neste artigo, vou ensinar-lhe todas as informações essenciais que precisa de saber sobre o sensor de temperatura TMP36. 

Vou mostrar como usar um sensor TMP36 com ESP32. Terá um guia de ligação, código de exemplo para ESP32 com TMP36, e também responderei a algumas perguntas frequentes sobre o TMP36. 

Vamos começar!

Componentes Necessários Para Construir o Projeto ESP32 e Sensor TMP36

Componentes de Hardware

Software

Guia

Makerguides.com participa no Programa de Associados Amazon Services LLC, um programa de publicidade afiliada concebido para fornecer meios para sites ganharem comissões ao anunciar e ligar a produtos na Amazon.com.


Fundamentos dos Sensores TMP36

Vamos entender as características intrínsecas do sensor de temperatura TMP36. Conhecer os detalhes ajuda a construir o projeto com confiança e a decidir se o TMP36 é a escolha certa. 

O TMP36 está disponível tanto em pacote de três pinos como em pacote SMD de pequeno formato.

TMP36 comes in both a three pin package
Pinagem do TMP36

O CI TMP36 é simples de usar. Não há endereços de CI, cálculo de CRC, ou comunicação serial, etc. 

  1. Basta usar um ADC e ler o valor analógico. 
  2. Converter o valor analógico em tensão. 
  3. Usar a tabela de referência abaixo para converter a tensão em temperatura. 

É isso. É simples e direto usar o sensor TMP36.

Além do sensor TMP36, existem também o TMP35 e TMP37, que são muito semelhantes mas têm diferenças subtis, que resumi na tabela abaixo:

Sensor Tensão a 25 ℃ Intervalo de medição Fator de escala de saída
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/℃

Características do Sensor TMP36

Aqui estão as principais características do sensor TMP36 resumidas numa tabela:

Parâmetro Intervalo
Intervalo de temperatura de funcionamento -40 ℃ a 125 ℃ 
Precisão da temperatura ± 1 ℃ (típico), ± 2 ℃ (máximo) 
Tensão de alimentação  2.7 V a 5.5 V
Saída 750 mV a 25 ℃
Corrente de alimentação 50 uA
Corrente em espera 0.5 uA
Estabilidade a longo prazo ± 0.4 ℃
Intervalo de tensão de saída 100 mV a 2 V

Definição dos Pinos do Sensor TMP36

Pode usar a referência abaixo para consultar rapidamente a pinagem do CI do sensor de temperatura TMP36:

Pin Definition of the TMP36 Sensor
Pinagem do TMP36
Número do Pino Pino Descrição
1 +Vs Pino de alimentação. (2.7 V a 5.5 V)
2 VOUT Tensão analógica de saída
3 GND Ligação à terra

Na versão SMD, existe um pino adicional chamado shutdown. Nestas versões, pode poupar ainda mais energia colocando o CI em modo de suspensão usando o pino shutdown.

O consumo de corrente desce para 500 nA (o que é fantástico para um dispositivo alimentado por bateria!).

Como Derivar a Temperatura a partir do VOUT do TMP36?

Pode usar o gráfico abaixo para converter a tensão analógica lida em temperatura.

Characteristics of TMP36
Características do TMP36

Como pode ver no gráfico, a tensão a 25 graus é 750 mV, e a 50 graus é 1 V.

Agora, se leu uma tensão de 1 V no ADC, deve consultar este gráfico e referir-se à linha azul (que corresponde ao sensor TMP36). 

Para converter o valor do ADC em tensão, use a equação abaixo.

  ADC_volts_in_mV = (ADC_reading) * 3300 / 1024;

Para converter a tensão do ADC em temperatura, pode usar a fórmula abaixo.

  temperature = (ADC_volts_in_mV – 500) / 10;

Função do pino SHUTDOWN do sensor TMP36

As três variantes, TMP35, TMP36 e TMP37, têm a função shutdown. É um pino adicional nas versões SMD. Ajuda a reduzir o consumo de corrente para 0.5 uA. 

Deve escolher o pacote com cuidado. A versão de três pinos (TO-92) não tem este pino shutdown. 

Deve colocar o pino shutdown em nível baixo para colocar o CI em modo shutdown. Se usar um GPIO, deve enviar um nível lógico 0. Isso coloca o CI em modo de suspensão. 

O pino shutdown tem um pull-up interno para o pino de alimentação dentro do TMP36. Portanto, também pode controlar o pino shutdown usando um pino open-drain. 

Quando o TMP36 está em modo shutdown, a tensão de saída deixa de ser válida. 

Além disso, ao colocar o sensor em modo shutdown, demora algum tempo finito até entrar nesse modo. O gráfico abaixo mostra o tempo esperado até o CI desligar.

Vout response time for shutdown Pin

À temperatura ambiente, o tempo de resposta é cerca de 265 us, variando conforme a temperatura ambiente. Deve considerar isto no seu código ao usar a função shutdown.

Aplicações do sensor TMP36

O TMP36 é um sensor primário usado para medição de temperatura, com uma ampla gama de usos, incluindo: 

  1. Sistemas HVAC – Sistemas de Aquecimento, Ventilação e Ar condicionado dependem fortemente da temperatura ambiente para o seu funcionamento. O TMP36 é uma solução valiosa para esses sistemas 
  1. Processamento de alimentos – Precisa de um sistema de monitorização de temperatura para garantir que os alimentos não estraguem e sejam cozinhados à temperatura correta. Pode usar o TMP36 nestas aplicações. 
  1. Equipamento médico – Pode usar o sensor para monitorizar a temperatura do paciente e garantir que a UCI e outras áreas críticas têm temperaturas controladas para o conforto e precisão do procedimento de recuperação.
  1. Processos industriais: Vários processos industriais dependem do sensor TMP36 para garantir que as peças são produzidas à temperatura correta, assegurando a precisão da produção. 

A variação de temperatura pode causar alterações dimensionais ou de cor em processos específicos. Por isso, é crucial monitorizar a temperatura.

Para que aplicação está a usar o sensor TMP36? Conte-nos na secção de comentários abaixo.

Ligação do Módulo Sensor TMP36 ao ESP32

Vou mostrar como construir um projeto usando ESP32 e o sensor de temperatura TMP36. Vamos começar pelas ligações de hardware.

Passo 1: Complete as ligações de hardware

Connecting TMP36 to ESP36
Ligação do TMP36 ao ESP32

O TMP36 é um CI de apenas 3 pinos. A simplicidade da ligação é óbvia no diagrama aqui.

Comece pelas ligações à terra. Se precisar usar outros pinos, edite o código em conformidade.

Alimente todo o sistema apenas depois de completar todas as ligações. 

Passo 2: Programe o ESP32 com o código abaixo

Siga o próximo passo para entender a implementação do código. Pode usar o código abaixo para testar o módulo ESP32 e o sensor TMP36 ligado.
Se nunca usou um ESP32 com o seu Arduino IDE, leia o nosso 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: Análise do Código

Vamos analisar o código. Este exemplo testa sensores TMP36. O código é usado para ler a temperatura e imprimir no terminal serial.

const int tempPin = 2;     //analog input pin constant

Primeiro, definimos uma variável inteira constante tempPin que recebe o valor 2. Este é o pino ao qual ligámos o sensor de temperatura TMP36.

int tempVal;    // temperature sensor raw readings
float volts;    // variable for storing voltage
float temp;     // actual temperature variable

A variável tempVal é declarada como inteira para armazenar o valor analógico bruto lido do sensor de temperatura.

A variável volts é usada para armazenar o valor da tensão calculada a partir do tempVal. A variável temp é para armazenar o valor real da temperatura.

Na função setup(), chamamos a função Serial.begin() para comunicar com uma taxa de 9600 baud.

  volts = tempVal / 1023.0;

A linha acima converte o valor analógico lido em tensão.

  temp = (volts - 0.5) * 100;

A linha acima é a chave neste código. Subtraímos 500 mV da tensão lida. 

Porquê? Consulte a secção de fundamentos deste artigo para mais informações detalhadas. 

Como sabe, o sensor adiciona um offset de 500 mV. Isso ajuda a ler a faixa de temperatura negativa assim como a tensão positiva. 

Finalmente, a temperatura é mostrada no terminal serial. Espero que a explicação do código tenha ajudado. Espero que use o TMP36 em breve nos seus próximos projetos.

Perguntas Frequentes Sobre os Sensores TMP36

Incluí uma lista das perguntas mais frequentes sobre projetos construídos usando ESP32 e sensores TMP36.

O que é o TMP36?

O TMP36 é um sensor de temperatura analógico de baixa tensão e precisão que pode medir temperaturas entre -40°C e +125°C. Fornece uma tensão linearmente proporcional à temperatura em graus centígrados. 

Qual é a tensão de saída do sensor TMP36?

A tensão de saída do TMP36 varia linearmente com a temperatura e tem um fator de escala de 10 mV/°C. 

Exemplo: Se a temperatura for 25°C, a tensão de saída será 0,25 V. Pode consultar o gráfico abaixo para encontrar a tensão de saída esperada para a temperatura correspondente. (gráfico b).

Characteristics of TMP36
Características do TMP36

Qual é o intervalo de tensão de funcionamento do TMP36?

O intervalo de tensão de funcionamento do TMP36 é de 2,7 V a 5,5 V.

Qual é a precisão do CI sensor TMP36?

A precisão do TMP36 é tipicamente ±1 °C a 25 °C. O TMP36 tem um erro máximo de ±2 °C no intervalo de temperatura de -40°C a +125 °C.

Qual é a resolução do sensor de temperatura TMP36?

A resolução do sensor de temperatura TMP36 é 0,1°C.

Como posso ligar o TMP36 a um microcontrolador?

Pode ligar o TMP36 a qualquer MCU usando um pino de entrada ADC, pois o TMP36 fornece uma tensão analógica de saída (correspondente à temperatura medida em graus centígrados).

O ESP32 tem ADC incorporado, assim como o Arduino UNO> A maioria dos MCUs tem ADCs incorporados. 

Quais são as aplicações do TMP36?

O TMP36 pode ser usado em várias aplicações, como medição de temperatura em dispositivos eletrónicos, estações meteorológicas, processamento de alimentos, logística e sistemas HVAC.

O TMP36 pode ser usado para medições de alta temperatura?

O TMP36 não é adequado para medições de alta temperatura, pois só pode medir até +125 °C.

Se quiser medir temperaturas na faixa de 200 ou 400 graus, deve procurar termopares. Eles são projetados para monitorizar altas temperaturas. 

Qual é o tipo de pacote do TMP36?

O TMP36 está disponível em vários pacotes: 3 pinos (TO-92), CI de 5 pinos (SOT23) e até CI de 8 pinos (SOIC).

Consulte a imagem abaixo para entender as várias versões de pinos do TMP36 que pode comprar no mercado. A minha favorita é a TO-92, que é a versão de três pinos. 

pin versions of TMP36

Conclusão

Cobri todas as informações essenciais sobre os sensores TMP36 neste artigo. Dei-lhe informações completas sobre o funcionamento do sensor de temperatura TMP36 e as vantagens de usar este sensor nos seus futuros projetos de medição térmica. 

O diagrama de ligação do ESP32 e o código de exemplo ajudaram-no a testar as suas ligações e a construir o projeto mais rapidamente. Se tiver mais perguntas sobre os sensores, por favor coloque-as na secção de comentários. 

Usei sensores TMP36 enquanto estudava o desempenho térmico de uma PCB de teste. Usei 6 sensores TMP36 para monitorizar a temperatura em diferentes pontos da PCB de teste. 

Pode utilizar o TMP36 em muitos projetos diferentes com ESP32 e ligá-lo a várias unidades de visualização para mostrar os dados.

Diga-nos se há algo mais que gostaria que eu abordasse em futuros artigos.