Hello guys, I'm new to Arduino and I wanted you to check if my project that I've made to check a person's temperature is accurate.
I've used 3 leds to indicate how the temperature is growing and used a monitor serial comunication to check exactly the person's temperature. The project is: "flaviobabos.com.br/sensor-de-temperatura-arduino/". I used a tmp36 sensor, is it the most accurate in the market? Or, could I buy a better one for measuring the temperature?
The code is:
const int sensorTMP = A0; //declare a variável de leitura do sensor
const float tempPadrao = 20.0; //declare a temperatura ambiente do lugar em que estiver
void setup() {
Serial.begin (9600); //inicializa a comunicação serial
for (int leds = 2; leds<5; leds++){ //este for lê as portas em que todos os leds estão conectados
pinMode(leds, OUTPUT); //declara os leds como output
digitalWrite(leds, LOW); //deixa os leds apagados por enquanto
}
}
void loop() {
int valorSensor = analogRead(sensorTMP); //variável que faz a leitura do sensor
Serial.print("Valor do sensor: "); //mostra no monitor serial o valor lido
Serial. print(valorSensor);
float tensao = (valorSensor/1024.0)*5.0; //conversao da leitura do sensor em tensão V
Serial.print(", Tensao (V): "); //mostra no monitor serial a tensão lida
Serial.print(tensao);
Serial.print(", graus Celsius: "); //mostra no monitor serial os graus lidos
float temperatura = (tensao)*100; //variável que faz a conversão para graus celsius
Serial.println(temperatura);
if(temperatura < tempPadrao){ //se a temperatura lida for inferior a 20 °C
digitalWrite(2, LOW); //apaga led da porta 2
digitalWrite(3, LOW); //apaga led da porta 3
digitalWrite(4, LOW); //apaga led da porta 4
}else if(temperatura >= tempPadrao+2 && temperatura < tempPadrao+4){ //se a temperatura lida estiver entre 22 ºC e 17 ºC
digitalWrite(2, HIGH); //acende led da porta 2
digitalWrite(3, LOW); //apaga led da porta 3
digitalWrite(4, LOW); //apaga led da porta 4
}else if(temperatura >= tempPadrao+4 && temperatura < tempPadrao+6){ //se a temperatura lida estiver entre 24 ºC e 15 ºC
digitalWrite(2, HIGH); //acende led da porta 2
digitalWrite(3, HIGH); //acende led da porta 3
digitalWrite(4, LOW); //apaga led da porta 4
}else if(temperatura >= tempPadrao+6){ //se a temperatura lida for maior do que 26 ºC
digitalWrite(2, HIGH); //acende led da porta 2
digitalWrite(3, HIGH); //acende led da porta 3
digitalWrite(4, HIGH); //acende led da porta 4
}
delay(1);
}