Uso De Sensor TMP36 Para Monitorar Temperatura De Sistema Hidropônico
by jroliveira in Circuits > Arduino
301 Views, 1 Favorites, 0 Comments
Uso De Sensor TMP36 Para Monitorar Temperatura De Sistema Hidropônico
Plantas são organismos muito sensíveis e sofrem a influência de diversos fatores. Para um bom cultivo, é necessário que haja monitoramento dos parâmetros de acordo com a cultura em questão. Em sistemas hidropônicos, onde o solo é substituído pela água, é de suma importância que a qualidade da água seja monitorada para garantir a produtividade. Um dos fatores que influencia na qualidade da água é a sua temperatura, sendo necessário um constante monitoramento. de O sensor de temperatura TMP36 opera de modo a captar a temperatura do meio e o transformá-la em um sinal elétrico
Conhecendo O Sensor De Temperatura TMP36
O Sensor de Temperatura TMP36 é um componente eletrônico digital. É composto por duas faces, uma plana e uma curva. Considerando a parte posicionada de frente para o operador, o primeiro terminal é por onde o sensor é alimentado pelo arduino com uma tensão de 5V, o mais à direita (GND) é o terra e o terminal do meio é responsável pela tensão de saída do sensor, relacionada à temperatura do ambiente. Esse sensor monitora temperatura nos mais diversos ambientes, em uma faixa entre -40°C e 125°C, com uma escala de 10mV/ºC e precisão de ±2ºC. A tensão de saída do TMP36 varia em uma faixa de 100 mV a 1,75V, onde 100mV corresponde a uma temperatura de -40°C e 1,75V corresponde a 125°C. A partir disso, surge a relação entre a tensão de saída (Vsensor) e a Temperatura:
Temp=(Vsensor-0,5)*100
Componentes Necessários
Para a montagem desse circuito será necessário:
- Protoboard
- Arduino UNO
- Leds (vermelho, verde e azul)
- Sensor TMP36
Montagem Do Circuito
A montagem do circuito deve ser feita como apresentada na figura. É importante lembrar que a temperatura será uma entrada analógica por ter valores que transitam dentro de uma faixa, diferentemente do que ocorre com as entradas digitais que alternam entre 0 e 1, ou seja, ligado ou desligado. Nesse caso, o multímetro é adaptado para voltímetro e serve somente para a verificação da precisão do circuito.
Código Do Circuito
const int LEDVR=4; // Define o pino do LED Vermelho
const int LEDAM=3; // Define o pino do LED Amarelo
const int LEDVD=2; // Define o pino do LED Verde
const int PinSensor=A5; // Define conexão do pino com o sensor TMP
int LeituraSensor; // Inicia a variável temperatura
float Temperatura, VoltagemSensor=0; // Define temperatura e voltagem como float
void setup()
{
pinMode(LEDVR, OUTPUT); // Define pino do LED vermelho como saída
pinMode(LEDAM, OUTPUT); // Define pino do LED amarelo como saída
pinMode(LEDVD, OUTPUT); // Define pino do LED verde como saída
pinMode(PinSensor, INPUT); // Define pino do sensor TMP como entrada analógica
Serial.begin(9600); // Inicia porto serial para encaminhar os dados
delay(100); // Tempo para iniciar o porto serial
}
void loop()
{
LeituraSensor=analogRead(PinSensor); // Leitura da temperatura e transforma em voltagem
VoltagemSensor=LeituraSensor*4.887;
Temperatura=((VoltagemSensor)-500)/10;
if (Temperatura<=15 && Temperatura>=32){ // Parâmetros de intervenção imediata para o LED vermelho acender
digitalWrite(LEDVR, HIGH);
digitalWrite(LEDAM, LOW);
digitalWrite(LEDVD, LOW);
}
if ((Temperatura>=15 && Temperatura<=23 )|| (Temperatura>27 && Temperatura<32)) { // Condições alarmantes para o LED amarelo acender
digitalWrite(LEDVR, LOW);
digitalWrite(LEDAM, HIGH);
digitalWrite(LEDVD, LOW);
}
if (Temperatura>=23 && Temperatura<=27) { // Faixa ótima acende LED verde
digitalWrite(LEDVR, LOW);
digitalWrite(LEDAM, LOW);
digitalWrite(LEDVD, HIGH);}
if (Temperatura>=23 && Temperatura<=27) { // Exibe temperatura no monitor serial
Serial.println("Temperatura atual:");
Serial.println(Temperatura);
delay(5000);}
else{
Serial.println("Temperatura atual:"); // Exibe a temperatura fora da faixa ótima em um intervalo de tempo menor
Serial.println(Temperatura);
delay(1000);}
}
}
Tudo Pronto!