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