A través de una comparación podemos saber qué sensores de temperatura nos brindan una mejor precisión a la hora de llevar a cabo una experiencia con Arduino o cualquier otro micro controlador.
Hola a todos. Los sensores de temperatura pueblan el mercado con una gran variedad de opciones, para esta experiencia he utilizado tres:
Esto nos lleva a la pregunta ¿cuál de los tres sensores de temperatura es más preciso a la hora de registrar las lecturas? Es por ello que luego de ponerlos a trabajar y empleando una gráfica comparativa, podremos apreciar a simple vista cuál ha sido el más preciso. Pero antes les dejo el código que utilicé para llevar esto a cabo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#include "DHT.h" #include <OneWire.h> #include <DallasTemperature.h> #define DHTPIN 2 //DHT al pin 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); #define Pin 3 //DS1B29 al pin 3 OneWire ourWire(Pin); DallasTemperature sensors(&ourWire); #define Pin A0//LM335 al pin A0 void setup() { Serial.begin(9600); dht.begin(); //Se inicia el DHT sensors.begin(); //Se inicia el DS18B20 } void loop() { float tDHT = dht.readTemperature(); //Lectura del DHT sensors.requestTemperatures(); //Prepara al DS18B20 para la lectura float tDS = sensors.getTempCByIndex(0); //Lectura del DS18B20 float t335 = (analogRead(A0) * 0.004882812 * 100)-273.15; //Lectura del LM335 //Se imprimen las temperaturas Serial.println(tDHT); Serial.println(tDS); Serial.println(t335); delay(2000); //Se espera 2 segundos para seguir leyendo datos } |
Nota: podemos tomar varios códigos y armar un sistema único. No es necesario tener un Arduino para cada tarea que quieras hacer. Se puede optimizar, teniendo especial cuidado en el orden de qué va primero y qué va después. Esto es el pilar fundamental para que la experiencia sea hecha con éxito.
Gráfica comparativa empleando los tres sensores a la vez:
Los resultados arrojaron que el sensor más preciso en lecturas es el DS18B20, ya que el DHT11 tiene como talón de Aquiles el empleo de solamente números enteros y el LM335 a pesar de poder dar lecturas con decimales… al final es algo que no se ve aprovechado al máximo.
A simple vista podemos observar el seguimiento minucioso que tiene el DS18B20 a la temperatura que existe en nuestro alrededor. No existen subidas o bajadas abruptas como ocurre con los otros dos sensores. Si bien, el LM335 no es tan drástico en este punto como el DHT11… pero como he dicho, sus decimales no brindan una aproximación tan cercana para brindar una lectura más detallada.
Ahora, se preguntarán, ¿qué sucede si no tengo la gráfica para guiarme y saber cuál es más preciso? Bien, lo que debemos hacer es sacar la media total de mis lecturas. Yo obtuve que era 32,39. Revisando todos los valores del intervalo de tiempo en que hice la experiencia, pude notar que los del DS18B20 fueron los que se acercaron más en los momentos finales.
Para ilustrar un poco les dejo la gráfica con la media:
Dejando de lado esto último, también a simple vista se puede ver que la cantidad mínima de números decimales que separaba a las lecturas distintas del DS18B20 eran 6 (caída o subida suave), mientras que en el LM335 la cantidad de números era alrededor de 49 (caída o subida abrupta).
Teniendo en cuenta todos estos puntos, les dejo los puestos que ocuparon los sensores al final de todo el análisis:
Espero que les haya sido útil esta comparación. Los tres son buenos sensores, pero si quieren una mejor precisión ya saben cuál escoger. Nos vemos en un próximo post, que pasen un excelente día. Hasta luego.
Saludos, como puedo crear ese gráfico amigo ?
JavaFX