sábado, 10 de diciembre de 2016

Avance dentro de los prototipos

Dentro de este proyecto se han ido generando varios prototipos que evolucionaron hasta el prototipo funcional con el que contamos actualmente, y en este post queríamos mostrar las distintas versiones de la estación de monitoreo que se han ido construyendo.



En primera instancia se midió temperatura y humedad ambiental a modo de prueba, y luego mostrando estos datos por pantalla. Se midió humedad ambiental con el sensor HS101 y temperatura con el TMP36.





Luego añadimos un sensor para medir radiación UV, el GUVAS12SD y alimentamos nuestro Arduino con una batería externa para poder realizar mediciones en el exterior.






Cuando pudimos obtener los datos necesarios el siguiente paso fue reducir el tamaño de nuestra estación de monitoreo, resultando de esto un cambio como el siguiente:

   


 Midiendo exactamente los mismos datos, resultó una estación que resultó ser menos de una octava parte de lo que comprendía en cuanto a espacio con respecto al prototipo anterior de esta estación.





Luego de lograr optimizar el espacio utilizado por la estación el siguiente paso fue el cambio de tecnología en términos de los sensores que estábamos utilizando, tal como lo mencionamos en el post anterior, se veló por sensores igual o más precisos a la hora de medir y que tuvieran un soporte mas grande por parte de la comunidad en cuanto a librerías para facilitar su uso. También agregamos un sensor barométrico (BMP180) y un módulo de tarjetas MicroSD para poder almacenar los datos que se fueran obteniendo a lo largo de nuestras pruebas. El resultado es la estación actual con la que contamos y la cual sin duda también evolucionará a su siguiente forma.







jueves, 1 de diciembre de 2016

Obteniendo datos en nuestro Arduino

Obtener datos en Arduino puede variar en dificultad dependiendo de los sensores que se vayan a utilizar. Hay sensores los cuales hay que calibrar y para obtener un dato en alguna unidad de medida específica se debe recurrir a ecuaciones y procesos un tanto largos. Por oro lado, existen sensores que cuentan con librerías hechas por la comunidad y que hacen que el proceso de obtener datos sea mucho menos tedioso y complicado.

En este proyecto usamos tanto sensores los cuales ya cuentan con librerías hechas, como sensores los cuales hemos tenido que calibrar por nuestra cuenta. A lo largo del proyecto hemos ido cambiando algunos sensores por otros que efectivamente tuvieran una librería creada y así facilitar el proceso de obtener datos atmosféricos.

Un ejemplo es la obtención que llevamos a cabo actualmente de temperatura y humedad atmosférica.
En un comienzo del proyecto se obtendrían estos datos mediante 2 sensores distintos: TMP36 para la temperatura y HS1101 para la humedad atmosférica. Estos sensores se debían calibrar cada uno para poder entregar en ºC y % respectivamente. Actualmente estos 2 datos se obtienen mediante un solo sensor el cual es el DHT22, este sensor además de poder obtener varios tipos de datos, cuenta con un sinfín de librerías para poder medir tanto con el módulo en su versión pre-calibrada como en su versión mas estándar.

A continuación mostraremos la diferencia en términos de código para obtener la temperatura mediante el TMP36 y el DHT22:

Tmp36:

 int temp_pin = A0;
 byte pin, analogPin;
 float volt = 0, temp = 0;
 volt = (analogRead(temp_pin) * 5.0) / 1024;
 temp = (volt * 100) - 50;


DHT22:

#include <cactus_io_DHT22.h>
DHT22 dht(2);

dht.begin();  //Esto dentro de setup();
temperatura = dht.temperature_C     //esto dentro de nuestro loop


Como pueden observar, con el sensor DHT22 basta con una simple función para poder leer ya en ºC a diferencia del TMP36 en el cual se ha tenido que transformar el valor análogo leído a voltaje y luego este voltaje a temperatura.