Instituto Polit�cnico Nacional
Instituto Politécnico Nacional
"La Técnica al Servicio de la Patria"

Boletín No. 74
1o. de Septiembre de 2019




ARDUINO: MONITOREO DE VARIABLES CLIMÁTICAS HACIENDO USO DE LOS SENSORES BMP-180, DHT-22 Y NEO-6M

 

Ing. Esther Viridiana Vázquez Carmona
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Ing. Rodrigo Vázquez López
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Dr. Juan Carlos Herrera Lozada
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

Instituto Politécnico Nacional
Centro de Innovación y Desarrollo Tecnológico en Cómputo

 

Resumen

Hoy en día, el monitoreo y el control de variables, como la temperatura, la humedad y la presión, se han convertido en una parte fundamental en los sistemas embebidos puesto que juegan un papel muy importante en el sector ambiental, la agricultura y ganadería (Bermúdez, 2014), ya que pueden anticipar diversos problemas, tales como heladas, lluvias, golpes de calor u otros que afecten directamente al entorno. También resultan ser de buena calidad y de menor costo. Este documento presenta el diseño de un prototipo integrado por sensores de humedad, presión barométrica, que funcionan en conjunto con un sensor GPS, esto para conocer la ubicación del sitio en la que se realiza la adquisición de datos, dicha toma de datos se realiza mediante la implementación de los sensores DHT-22, BMP-180 y NEO-6M, así como el uso de la placa Arduino, su propio IDE (Arduino, 2019) y lenguaje C++, utilizando las bibliotecas de libre acceso de cada uno de los sensores para facilitar su implementación y con la cuales se obtienen las magnitudes de cada uno de los sensores mostrándolos en el monitor serie del IDE Arduino.

 

 

1. Introducción

 

Actualmente existen dos fenómenos muy importantes que afligen al planeta Tierra, los cuales son el calentamiento global y el cambio climático (Gobierno de Aragón, 2019) que han provocado con el tiempo extinciones en ecosistemas, migración excesiva, fusión de los polos entre otros problemas. Para conocer las condiciones en las que se encuentra el planeta Tierra existen ramas de estudio que se dedican a la investigación de estos sucesos naturales.

En particular la climatología se encarga del estudio de las condiciones de la atmósfera, de aquí se desprende el estado de la atmósfera o estado del tiempo en el que se consideran la presión, la temperatura, humedad atmosférica, precipitación, la temperatura entre otros factores. (Gob.mx. Climatología, 2019)

 

1.1 Arduino y los sistemas embebidos

 

A través del tiempo, con los avances en cuestiones tecnológicos se ha logrado minimizar el costo, el tiempo y tamaño de los sistemas integrados o sistemas embebidos en los que influyen el hardware y el software, los cuales trabajan a través de un microcontrolador o microprocesador que son la parte central del sistema.

Como se mencionó anteriormente se requiere de un microprocesador o microcontrolador para el desarrollo de un sistema embebido, como una pequeña alarma hasta un sistema de monitoreo, existen varias marcas en el mercado tales como: Atmel, ARM, Microchip entre otros. Para evaluar el diseño del prototipo se requiere además de una placa de desarrollo entre las que oscilan: Arduino, Samsung ARTIK 710, SensorTile, Jetson TX2, Raspberry Pi entre otros. Por otra parte, el software es una parte muy importante, existen varios compiladores, la mayoría de estos se basa en lenguaje C.

Arduino es una placa, integrada por el microcontrolador ATmega, puertos analógicos y digitales de entrada y salida además cuenta con su propia interfaz para programarla. El lenguaje utilizado por el compilador es C++. La ventaja de utilizar dicha placa es el costo, la documentación, es OpenSource, cuenta con una gran familia de modelos de placas y un zócalo desmontable. Una de sus desventajas es que el microcontrolador no es suficiente para desarrollos de grandes dimensiones.

 

1.2 Sensores

 

Un sensor es un dispositivo que puede detectar acciones o estímulos que responde a estímulos externos, transformando estos estímulos en magnitudes químicas, físicas y eléctricas. Existen distintos tipos de sensores que detectan velocidad, fuego, temperatura, gases, alcohol. Por el momento este documento se centrará en los sensores de temperatura, presión, humedad y GPS.

El sensor DHT-22 es un sensor digital de temperatura y humedad relativa de bajo costo, que muestra los datos a través de una señal digital. La temperatura soportada es de -40°C hasta los 80°C con una precisión de +/-0.5°C, la precisión de la humedad se encuentra entre el 0 al 100%.

El sensor BMP-180 es un sensor diseñado para leer la presión atmosférica, de esta manera se puede estimar a su vez la altura sobre el nivel del mar. Este módulo trabaja con regulador de voltaje de 5V a 3.3V.

Por otra parte, el sensor GPS (sistema de posicionamiento global) NEO-6M, este receptor de GPS cuenta con una antena que recibe las señales de los satélites que están alrededor de la Tierra. Es necesario que al menos reciba señal de 4 satélites para dar un posicionamiento preciso.

 

2. Desarrollo

 

Se desarrolló un prototipo para la adquisición de datos de variables climáticas, integrado por sensores de humedad, presión barométrica que funcionan en conjunto con un sensor GPS para conocer la ubicación a través de la implementación logrando mostrar los datos en el monitor serie del propio IDE. El desarrollo se dividió en 2 etapas: Diseño del hardware y diseño de software.

 

2.1 Diseño del hardware

 

Para el diseño de hardware se hizo uso de una placa de pruebas en la que se implementaron los sensores de humedad, presión y GPS. Dicha placa se conectó hacía la placa nano de Arduino para la comunicación entre la tarjeta y los sensores. El sensor de humedad (DHT-22) se conectó desde el pin 2 (contando de izquierda a derecha), hacía el pin digital D2 de la placa Arduino, lo cual pudo haberse hecho en cualquier pin digital desocupado de la placa, los pines restantes del sensor corresponden a la alimentación.

Los pines 3 y 4 del sensor de presión (BMP-180) se conectaron respectivamente hacía dos de las entradas analógicas, A4 y A5 de la tarjeta Arduino ya que corresponden a las entradas I2C, el bus denominado SCL, es una línea encargada de los pulsos de reloj que sincronizan el sistema, la segunda línea es SDA, es un bus encargado del envío de datos. Los pines restantes del sensor corresponden a la alimentación de este.

Los primeros dos pines del GPS (NEO-6M) corresponden a la alimentación de dicho sensor, el tercer pin corresponde a la transmisión de datos TXD, el cual se conecta a un pin digital, en este caso se conectó al pin digital D4 de la placa Arduino, el pin correspondiente a la transmisión de datos. El pin para la recepción de datos RXD se conectó de hacía un pin digital de la placa en este caso a D3. Cabe destacar que la conexión de cada pin para los diferentes sensores está en base a la hoja de datos correspondiente a cada uno de ellos.

En la figura 1 se puede observar el esquema que representa la conexión entre el protoboard, los sensores y la placa Arduino.

 

Figura 1. Esquema del prototipo para el monitoreo de variables climáticas.

 

2.2 Diseño de Software

 

Como se mencionó anteriormente esta etapa corresponde a la comunicación entre los sensores y la placa Arduino, ya que por el momento solo se tiene la implementación del hardware.

La comunicación de los sensores a la tarjeta Arduino se lleva a acabo a través de la programación en lenguaje C++, que mostrará los datos que se han adquirido por cada uno de los sensores en el monitor serie del mismo IDE. Cabe destacar que los datos obtenidos por los sensores pasan a través del puerto serial de la PC para ser desplegados a través de dicho monitor.

 

3. Resultados

 

El prototipo de monitoreo de variables climáticas se puede observar en la figura 2 en el cual se observan los sensores DHT-22, BMP-180 y NEO-6M. Nótese que la placa Arduino Nano se encuentra a la izquierda del prototipo.

 

Figura 2. Implementación en tarjeta de desarrollo de los sensores de variables del climáticas.

 

El resultado de la implementación de estos se puede observar en la figura 3. El código que corresponde al programa realizado para la adquisición de datos se puede consultar en el anexo que se incluye al final de este documento.

 

Figura 3. Datos adquiridos por los sensores de humedad, presión y GPS en monitor serie.

 

Haga clic para ver el código

 

Conclusiones

 

Se realizó una etapa preliminar para la construcción de un prototipo, que se encargará de monitorear 3 de 5 variables del estado del tiempo, por el momento sólo solo obtiene datos de los sensores de: presión, temperatura, humedad, así como la localización de dicho prototipo a través de la altitud, longitud y latitud, en el que se incluye la hora y fecha de cada toma. Para dicho prototipo se utilizó una serie de sensores implementados en una tarjeta de desarrollo. La comunicación se hizo a través del desarrollo de un programa utilizando las librerías de uso libre que se encuentran en la red. En trabajos futuros se pretende visualizar los datos obtenidos en un archivo de texto y visualizar el comportamiento el de los datos en gráficas.

 

Referencias

 

  1. Arduino. Arduino IDE. Recuperado(2019, 4 de junio) https://www.arduino.cc/en/Main/Software

  2. Bermúdez Alegre, D.(2014) Riego de huerta automatizado por Arduino.

  3. [3] Duquea, S. I. O.(2017) Monitoreo y control de variables ambientales mediante una red inalámbrica para agricultura de precisión en invernaderos.

  4. Gob.mx. Climatología. Recuperado (2019, 4 junio) from: https://smn.cna.gob.mx/es/climatologia

  5. Gobierno de Aragón. Departamento de desarrollo rural y sostenibilidad. Recuperado (2019, 4 junio)) https://www.aragon.es/DepartamentosOrganismosPublicos/Departamentos/DesarrolloRuralSostenibilidad/AreasTematicas/MA_CambioClimatico/ci.CAMBIO_CLIMATICO..detalleDepartamento?channelSelected=afc736552883a210VgnVCM100000450a15acRCRD

  6. Naylamp Mechatronics SAC. Naylampmechatronics. Recuperado(2019, 4 junio) https://naylampmechatronics.com/blog/40_Tutorial-sensor-de-temperatura-y-humedad-DHT1.html

  7. Naylamp Mechatronics SAC. Naylampmechatronics. Recuperado (2019, 4 junio) https://naylampmechatronics.com/blog/43_Tutorial-sensor-de-presión-barométrica-BMP180.html

  8. Naylamp Mechatronics SAC. Naylampmechatronics.Recuperado(2019, 4 junio) https://naylampmechatronics.com/blog/18_Tutorial-Módulo-GPS-con-Arduino.html

  9. Lajara vizcaíno,José Rafael (2014) Sistemas Integrados con Arduino. (1er. Ed) Alfaomega, Páginas. 320 texto restante

  10. Ortega, F. J. R., Torres, M. E. R., Murillo, K. E., Casiano, J. L. I., & Borrego, A. M. (2016) DISEÑO E IMPLEMENTACIÓN DE SOFTWARE Y HARDWARE PARA EL TELECONTROL DE BIOESPACIOS CON ARDUINO. Pistas Educativas, 38(122).

  11. Prieto, J. P. (2017) PROTOTIPO DE UN SISTEMA DE AUTOMATIZACIÓN DE INVERNADERO BASADO EN ARDUINO Y SENSORES CON CONTROL DE COMANDO WEB. Tecnología e Innovación, 3(1).

  12.