Sistema de Riego Monitoreado con Arduino
Este tablero de datos se creó con el paquete Flexdashboard de R. El objetivo es aplicar de manera conjunta algunas bondades del hardware y software libre como Arduino y R, para posteriormente integrar todo en una herramienta que permite visualizar los registros capturados con los sensores que fueron programados mediante la IDE de Arduino. Estos sensores miden algunas variables de una planta, como la temperatura ambiente, humedad del suelo, temperatura del suelo, humedad relativa del aire, índice de rayos UV y el nivel del tanque del agua que se implemeta para el riego de la planta.
Los datos son almacenados en un archivo csv con su respectiva marca temporal, son leídos posteriormente y procesados con R para obtener la información que se muestra en el tablero.
Arduino es una plataforma electrónica de código abierto basada en hardware y software fáciles de usar. Las placas Arduino pueden leer entradas (luz en un sensor, un dedo en un botón o un mensaje de Twitter) y convertirlo en una salida, activando un motor, encendiendo un LED, publicando algo en línea.
Puede decirle a su tablero qué hacer enviando un conjunto de instrucciones al microcontrolador en el tablero. Para hacerlo, utiliza el lenguaje de programación Arduino (basado en Wiring) y el Software Arduino (IDE), basado en Processing.
Arduino interactúa con el lenguaje R, a través de la IDE RStudio de
manera versátil. El paquete arduinor
permite la captura de
los datos obtenidos por los sensores y Arduino, facilitando su lectura
directamente en la consola, ó, de manera más pŕactica, en un archivo
CSV, para ejecutar el poder de R sobre los datos y así aplicar cualquier
cómputo numérico y crear visualizaciones.
Para este caso en particular, el objetivo es programar una placa de arduino para medir algunas variables (humedad, tempepratura, intensidad de la luz) de una planta, generar un archivo CSV y finalmente presentar la información en el tiempo, por medio de un tablero de datos.
Se adquirieron los sensores y la placa arduino (MEGA 2560), de acuerdo a las variables que se deseaba medir (humedad, temperatura, intesidad de luz, nivel de líquido). Los sensores que se usaron fueron los siguientes:
El software Arduino (IDE) de código abierto facilita la escritura de código y su carga en la placa. Este software se puede utilizar con cualquier placa Arduino.
La IDE posee cientos de librerías que pueden ser instaladas, y con las que se obtienen funciones específicas para diferentes sensores y placas.
La placa de Arduino se conecta mediante el puerto USB, y desde la IDE se carga el código que lleva las instrucciones que controlan el comportamiento de los sensores.
El paquete arduinor cuyo creador es Hao Zhu, brinda la posibilidad de enlazar la placa de Arduino través del puerto serie, ejecutando todo el proceso desde RStudio.
Entre sus funciones, se encuentra una que permite la conexión con el puerto serie, además de la función que trasmite los datos directamente en la consola de RStudio.
En este ejercicio, se usó el paquete para construir un archivo CSV con los datos capturados por los sensores, archivo que sirve de materia prima para el tablero de datos.
En este link, se
presenta una guía en español con un ejemplo práctico con arduino, para
el uso del paquete arduinor
.
La construcción del tablero de datos, se hizo con el paquete
flexdashboard
. El código R automatiza la actualización de
las variables, a medida que se agregan datos. Los paneles indicadores,
cambian su color y el ícono, según el valor obtenido por los sensores,
para que sirvan de alerta ante ciertos valores.
Monitor: presenta los datos de las últimas 24 horas y las últimas mediciones hechas.
Resumen semana: datos de los últimos 7 días, el acumulado de consumo de agua por día y el tratamiento usado para la planta en cuestión NPK.
Resumen mes: el reporte de las mediciones de los últimos 30 días.