NTC10K Sensor de temperatura com ESP32 – Curso ESP32 básico

Olá, entusiastas da eletrônica e inovação! Nesta aula, vamos explorar o NTC 10k, um sensor sensível à temperatura. Abordaremos suas aplicações e a criação de projetos simples com ele, explorando suas características fundamentais e compreendendo seu uso na monitorização e controle de temperatura em diversos contextos. Além disso, aprenderemos sobre as portas digitais e analógicas do ESP32. Esteja preparado para descobrir como o NTC 10k pode se tornar uma ferramenta valiosa em seus projetos. 

Lembre-se que esse tutorial faz parte do Curso Esp32 que compõe nosso Kit IoT ESP32 – para Professores e Makers iniciantes

kit robotica educacional com Arduino ESP ou Microbit

Conhecendo o NTC10K

O NTC 10k é um termistor cuja resistência varia em resposta às mudanças de temperatura. Com uma resistência nominal de 10.000 ohms a 25°C, esse componente é amplamente empregado em projetos eletrônicos para medir e monitorar variações térmicas. Sua resposta não linear à temperatura o torna eficaz na detecção precisa de mudanças térmicas em diferentes ambientes

  • Curvas de Resposta: Cada sensor NTC possui uma curva de resposta de resistência em relação à temperatura única. Isso requer que você calibre seu sensor para obter leituras precisas em sua aplicação.
  • Precisão Surpreendente: Apesar da natureza não linear dos NTCs, eles podem oferecer alta precisão em uma faixa de temperatura específica, tornando-os ideais para muitas aplicações de medição de temperatura.
  • Compensação de Temperatura: Sensores NTC também são frequentemente usados para compensação de temperatura em circuitos eletrônicos, garantindo que os componentes funcionem corretamente em diferentes condições térmicas.
  • Termômetros Digitais: Os NTCs são frequentemente encontrados em termômetros digitais, termostatos residenciais e até mesmo em sistemas de controle de climatização de veículos.

Mergulhando na Prática

Vamos agora colocar a mão na massa! Então pegue o seu kit, pois estamos prestes a mostrar como utilizar o NTC10K, além de empregarmos novamente o LED como meio de alerta.

Componentes necessários
• ESP32
• Protoboard
Termistor NTC10K
• LED (qualquer cor)
• Resistor de 100 Ω
• Resistor de 10k Ω
• Jumper MXM

PROJETO 1

Neste projeto inicial, vamos efetuar a leitura do sensor NTC 10k e exibir os resultados de temperatura em graus Celsius no monitor serial.

 

//                                VIDA DE SILICIO
//                                    KIT ESP32
//                                      AULA 4 
//                            PROGRAMA 1 : LER SENSOR NTC10K 



int PinoNTC = 4; // PINO DO NTC10K
double Vs = 3.3; // TENSÃO DE SAIDA DO ESP32
double R1 = 10000; //RESISTOR UTILIZADO NO DIVISOR DE TENSÃO
double Beta = 3950; // VALOR DE BETA
double To=298.15; // VALOR EM KELVIN REFERENTE A 25° CELSIUS
double Ro=10000;
double adcMax = 4095.0;



void setup() {
  Serial.begin(9600); // INICIA O MONITOR SERIAL A UMA TAXA DE ATUALIZAÇÃO DE 9600
  pinMode(PINO_LEDVERDE, OUTPUT); // Configura o pino do LED verde
  pinMode(PINO_LEDAMARELO, OUTPUT); // Configura o pino do LED amarelo
} 
  
void loop() {
  //GARANTE QUE AS INFORMAÇÕES SERÃO RESETADAS APÓS CADA LEITURA
  double Vout, Rt = 0;
  double T, Tc, Tf, adc = 0;

  adc = analogRead(PinoNTC);// VARIÁVEL QUE RECEBE A LEITURA DO NTC10K

  //CALCULOS PARA CONVERSÃO DA LEITURA RECEBIDA PELO ESP32 EM TEMPERATURA EM °C
  Vout = adc * Vs/adcMax;
  Rt = R1 * Vout / (Vs - Vout);
  T = 1/(1/To + log(Rt/Ro)/Beta);
  Tc = T - 273.15;
  Tf = Tc * 9 / 5 + 32;
  //Imprime no monitor serial o texto e a temperatura lida pelo sensor
  Serial.print("Temperatura: ");
  Serial.print(Tc);
  Serial.println(" °C");
  }
  delay(2000); // atraso entre as leituras
}

//Serial.print: Utilizado para imprimir no monitor serial alguma informação, se estiver entre aspas será escrito o texto que estiver contido e caso não utilize as aspas é esperado alguma variavel para exibir a informação contida nela.
//Serial.println: Esse comando terminado em ln apenas define uma quebra de linha após o texto ser exibido.

 

PROJETO 2

Posteriormente, iremos incorporar dois LEDs ao projeto e estabelecer uma temperatura mínima na qual o sensor realizará a leitura, controlando os LEDs de acordo com essa temperatura.

 

//                                VIDA DE SILICIO
//                                    KIT ESP32
//                                      AULA 4 
//                            PROGRAMA 2 : PROJETO NTC10K COM ALERTA DE LED  



int PinoNTC = 4; // PINO DO NTC10K
double Vs = 3.3; // TENSÃO DE SAIDA DO ESP32
double R1 = 10000; //RESISTOR UTILIZADO NO DIVISOR DE TENSÃO
double Beta = 3950; // VALOR DE BETA
double To=298.15; // VALOR EM KELVIN REFERENTE A 25° CELSIUS
double Ro=10000;
double adcMax = 4095.0;

//ACRESCENTANDO OS LEDS
const int PINO_LEDAMARELO = 22; // Pino D22 conectado ao LED amarelo
const int PINO_LEDVERDE = 23; // Pino D23 conectado ao LED verde



void setup() {
  Serial.begin(9600); // INICIA O MONITOR SERIAL A UMA TAXA DE ATUALIZAÇÃO DE 9600
  pinMode(PINO_LEDVERDE, OUTPUT); // Configura o pino do LED verde
  pinMode(PINO_LEDAMARELO, OUTPUT); // Configura o pino do LED amarelo
} 
  
void loop() {
  //GARANTE QUE AS INFORMAÇÕES SERÃO RESETADAS APÓS CADA LEITURA
  double Vout, Rt = 0;
  double T, Tc, Tf, adc = 0;

  adc = analogRead(PinoNTC);// VARIÁVEL QUE RECEBE A LEITURA DO NTC10K

  //CALCULOS PARA CONVERSÃO DA LEITURA RECEBIDA PELO ESP32 EM TEMPERATURA EM °C
  Vout = adc * Vs/adcMax;
  Rt = R1 * Vout / (Vs - Vout);
  T = 1/(1/To + log(Rt/Ro)/Beta);
  Tc = T - 273.15;
  Tf = Tc * 9 / 5 + 32;
  Serial.print("Temperatura: ");
  Serial.println(Tc);
  Serial.println(" °C");
 //CONDIÇÃO PARA ALERTA DOS LEDS
 if (Tc < 30) { //Valor de temperatura editável para sua preferência
    digitalWrite(PINO_LEDVERDE, HIGH); // Acende o LED verde
    digitalWrite(PINO_LEDAMARELO, LOW);   // Desliga o LED amarelo
  } else {//caso maior que o valor de temperatura minimo, acenderá o amarelo.
    digitalWrite(PINO_LEDVERDE, LOW);  // Desliga o LED verde
    digitalWrite(PINO_LEDAMARELO, HIGH);  // Acende o LED amarelo
  }
  delay(2000); // atraso entre as leituras
}

 

ENTENDENDO A FUNDO

Arquitetura

Apesar da sua aparente simplicidade na arquitetura, o NTC 10k possui uma composição interna que permite uma resposta altamente sensível às variações de temperatura. Sua estrutura é baseada em materiais semicondutores, nos quais a
condutividade elétrica é significativamente influenciada pela temperatura.

Funcionamento

Para compreender o funcionamento do NTC10K, é fundamental reconhecer que se trata de um resistor. Os resistores são componentes que regulam o fluxo de corrente em um circuito. No caso do NTC10K, sua resistência é variável em função da temperatura. Em outras palavras, quando a temperatura ao redor do sensor se modifica, sua resistência também varia, possibilitando maior ou menor passagem de corrente elétrica. Essa informação é então enviada ao microcontrolador, como o ESP32, que, por meio de cálculos de conversão, interpreta a quantidade de corrente recebida, proporcionando a leitura da temperatura ambiente.

Portas Digitais e Analógicas

Até agora, havíamos utilizado exclusivamente a função digital das portas. Nesta aula, aprendemos a empregar a porta analógica. Vamos agora entender a diferença entre Portas Digitais e Analógicas para escolher qual é mais adequada para o nosso projeto:

Porta digital: caracteriza-se por possuir apenas dois níveis lógicos (0 ou 1; ligado ou desligado; 0 ou 3.3V). Isso implica que não é possível detectar variações no intervalo entre esses dois níveis.

Porta analógica: por outro lado, essa função consegue identificar todas as variações dentro do intervalo, possibilitando uma análise ou controle mais preciso de todas as nuances presentes entre esses níveis lógicos.

Conclusão

E assim finalizamos esta aula sobre o sensor NTC 10k. Exploramos a leitura de temperatura e como utilizar essa informação para controlar LEDs de maneira prática. O conhecimento adquirido abre portas para uma variedade de aplicações em que a detecção de temperatura é crucial.

Convidamos você a participar ativamente desta comunidade. Deixe seu like, inscreva-se no canal e compartilhe suas dúvidas, conquistas e ideias nos comentários. Sua interação é o que dá vida a este canal. Estamos aqui para aprender juntos e moldar o futuro da tecnologia DIY e IoT. Até a próxima aula!