Estación meteorológica con Arduino MKR1000

Hace unos meses me topé con un proyecto divertido: quería publicar en la Web información del clima de Huigra Viejo Camping –un sitio para hacer camping ubicado en los Andes del Ecuador. La idea era que el turista interesado pudiera consultar las condiciones climáticas en tiempo real, a través del sitio www.huigra.com, y de paso, como una característica extra, consultar el pronóstico del tiempo para los días que tenía planeado reservar su estadía.

El problema fue que todos los proveedores de pronósticos de tiempo como weather.com o forecast.io me proporcionaban datos alejados de la verdad. La razón: aparentemente el gradiente de temperatura en la zona es muy abrupto y el clima varía mucho de una ubicación a otra muy cercana (a menos de 1 km de distancia), dificultando extrapolar los datos de las estaciones de monitoreo cercanas o información de satélite… y bueno, el sitio de camping precisamente se encuentra en la ladera escarpada de una montaña.

Weather Station {focus_keyword} Estación meteorológica con Arduino MKR1000 14525044 10210188711170877 6975906271751415556 o

La solución? Tomar la temperatura in-situ con algún hardware y luego reportarlo de algún modo en el sitio Web en cuestión. Una oportunidad ideal para jugar con el Arduino MKR1000, pues gracias a su soporte WIFI, nos permitirá transmitir data hacia el Internet, a través de algún router inalámbrico.

Haremos el proyecto muy sencillo, sólo con 2 sensores (de hecho así es como está instalado), que nos permitirán reportar 3 parámetros: temperatura, humedad y presión barométrica. La conexión es bastante simple como vemos en la siguiente figura.

Fritzing {focus_keyword} Estación meteorológica con Arduino MKR1000 Screen Shot 2017 07 16 at 7

BMP180

Lo encontramos en la parte de arriba de la imagen anterior. Este sensor es básicamente un sensor de presión barométrica muy fácil de usar, pues nos permite conexión con el MKR1000 a través de I2C.  El soporte I2C en Arduino es maravilloso, pues nos permite encadenar varios dispositivos (como sensores) al mismo cableado I2C. En este caso sólo usaremos UN dispositivo (el BMP180), pero podríamos añadir más con poca modificación. En todo caso lo único que necesitamos conectar es dos cables de data, marcados como SCL (el reloj) y SDA (la data), además de la referencia de GROUND. El SCL en el MKR1000 es el pin D12 y el SDA corresponde al pin D11.

DHT11 (o DHT22)

Un sensor de temperatura y humedad. Económico y fácil de usar. En la figura anterior lo encontramos en la parte inferior.

Weather Underground (wunderground.com)

Weather Underground es una plataforma comunitaria de reporte del clima, disponible online, que nos permitirá reportar las condiciones climáticas a la nube. Actualmente cuenta con más de 250,000 estaciones conectadas… una locura!… También nos provee un API, llamado PWS, que hace posible que existan plugins para sitios Web, así como apps para tablets o smartphones.

La documentación del API que usaremos en este proyecto lo encontramos acá http://wiki.wunderground.com/index.php/PWS_-_Upload_Protocol

Para usar esta plataforma debemos registrar un usuario (es grátis) y crear una estación meteorológica para comenzar a reportar. Se nos asignará un identificador de la estación meteorológica creada, así como una clave, para usar desde las invocaciones al API.

Weather Underground {focus_keyword} Estación meteorológica con Arduino MKR1000 Screen Shot 2017 07 16 at 8

El código Arduino

Para facilitar la cosa he creado un repositorio en GitHub. http://www.github.com/elandivar/huigra

No voy a explicar todo el código porque es bastante simple, pero hay unas líneas a las que les dedicaré una corta explicación y es la función sendSample del archivo https://github.com/elandivar/huigra/blob/master/huigrastation.ino

{focus_keyword} Estación meteorológica con Arduino MKR1000 Screen Shot 2017 07 21 at 1

P.D. Mención especial a AsiriLabs, que nos proporcionó los componentes necesarios para la construcción de este prototipo.

Comments

comments

Deja un comentario