Planteamiento, diseño, construcción y programación de una estación meteorológica con la capacidad de poder medir la calidad de aire

En este post se presenta el proyecto final de telemetría en el cual debíamos implementar realizar una innovación en cualquier campo pero que este tuviera unos lineamientos claros con respecto a lo visto dentro del curso de telemetría.
- Poseer por lo menos un protocolo de comunicación inalámbrica.
- Medir por lo menos una variable.
- Tener una HMI [Human Machine Interface] (Interfaz hombre-máquina).
- Poseer la capacidad de enviar la información a través de la red (Internet).
- Presentación en PCB
Por esto Iniciamos con una lluvia de ideas para definir la estructura del proyecto y las variables que pudiéramos medir, ante esto y del dato curioso de que la ciudad de Pereira actualmente no posee ningún tipo de estación o dispositivo que midiera los datos ambientales al interior de la ciudad decidimos aprovechar esta oportunidad para innovar y generar un sistema que permitiera cubrir esta necesidad (Estación de medición de variables ambientales).
La siguiente pregunta fue. De todas las posibles variables que se pueden medir dentro de una ciudad ¿Cuáles son las más significativas y que sus dispositivos sean asequibles y comerciales en nuestra región?
Al confrontar la situación de esta manera se optó por las más comunes tales como:
- Temperatura.
- Presión Atmosférica.
- Humedad.
- Densidad de polvo en el aire.
- TVOC [Total Volatile Organic Components] (Componentes Orgánicos Volátiles Totales).
- CO2 En el ambiente.
- Intensidad Lumínica {LUX}.
- Nivel de Batería.
- Posición.
De las anteriores Es fácil reconocer algunas de ellas, pero algunas como lo son TVOC no tanto, Los TVOC (Componentes Orgánicos Volátiles Totales son la cantidad total de cualquier gas emitido por toxinas y químicos presentes en el ambiente.
¿Por qué es Importante conocer esta variable?, porque pueden causar varios cambios en la salud desde algo tan mínimo como desde una irritación menor en los ojos, nariz y garganta hasta daños en el hígado y cáncer, dependiendo de el nivel de exposición.
La posición también es un dato importante debido a que si una de las posibles estaciones presentara algún fallo es posible identificarla rápidamente para su pronta reposición.
El nivel de la batería también debería quedar claro. Como es un equipo que está en la intemperie y a veces no ha de haber corriente eléctrica entonces cada estación debe de contar con una batería para aquellos momentos y que el sistema tenga el menor número de interrupciones.
Escogimos los siguientes sensores debido a que poseían las prestaciones que deseábamos además de que era posible utilizar módulos que ya poseían una comunicación interna de I2C a excepción del sensor de polvo que es análogo/digital.
- sharp gp2y1010[Sensor de Polvo].
- BME280 [temperatura, humedad, presión].
- SGP30 [eCO2 (CO2 en el Ambiente), TVOC, etanol y H2]
- TLS2591 [sensor de Luz de alta sensibilidad]
Con el fin de tener una idea básica de que íbamos a hacer utilizamos el siguiente diagrama; durante las pruebas y después de ellas nos dimos cuenta de que este diagrama se podía mejorar por lo que este va evolucionando a lo largo de este Post.

- SHARP GP2Y1010: este sensor nos permite detectar micro partículas en el aire a través de una tecnología óptica infrarroja (láser) y un fototransistor que están organizados diagonalmente.


La configuración en sus conexiones recomendada por el fabricante es la siguiente.

- BME280: Este sensor nos permite Leer las variables de Temperatura, Presión y Humedad utilizando principios de detección probados (Ósea que utiliza principios físicos y/o matemáticos que ya han sido comprobados y funcionan correctamente en la mayoría de los campos aplicados).
Este sensor provee sus mediciones a través del protocolo de comunicación de I2C y SPI; para nuestra aplicación utilizamos una versión incrustada en una PCB lista para su conexión.

- SGP30: Es un sensor digital multi-pixel que mide las variables de Gases CO2, TVOC, etanol y H2, Este sensor también cuenta con una versión incrustada la cual nos facilita la conexión a cualquier sistema que cuente con el protocolo de comunicación I2C.

- TLS 2591: Es un sensor de alta sensibilidad a los diferentes espectros de luz el cual posee para comunicarse el protocolo de comunicación I2C, este sensor cuenta con la capacidad de convertir que recibe desde pequeños rangos hasta grandes cantidades de luz dependiendo las necesidades que uno requiera estas intensidades de luz son convertidas a un valor digital.
Utilizamos la versión incrustada en un pcb la cual se muestra en la siguiente imagen.

Una vez tuvimos definidas las variables que deseábamos medir y seleccionado los dispositivos que realizarian esta tarea continuamos con el siguiente ítem que correspondiente a las exigencias del proyecto la cual era realizar una comunicación inalámbrica, buscamos entre los archivos e información proveniente de el instructor además de unas asesorías sobre el proyecto, optamos por utilizar conexión a WIFI para el envío, almacenamiento y registro de los datos y para la HMI (Interfaz hombre-máquina) una conexión mas sencilla a través de RF (Radio Frecuencia).
Para la conexión WIFI usamos el módulo ESP12E junto con un HUB de conexión que se diseñó y se mandó a fabricar de forma previa, este diseño se le dio el nombre de " ESP-12E Proto-Mod" para facilitar el montaje del circuito.

Es un módulo en miniatura que permite conectarse a una red wifi con el protocolo 802.11 b/g/n a 2.4 GHz, y para su control y comunicación tan solo es hacer la conexión en sus pines (TX/RX) correspondientes a su puerto de comunicación UART.
Para la conexión RF usamos dispositivo comercial llamado HC-12. este pequeño módulo nos permite una comunicación inalámbrica a través de Radio frecuencia con una frecuencia de transmisión de entre 433.4 - 473.0 MHz con una potencia máxima de transmisión de 20 dBm con una distancia máxima ideal de 1800 m.

una vez aclarado todos nuestros sistemas de medición y comunicación nos vimos en la necesidad de escoger cual sería nuestro cerebro principal, cuál sería nuestro dispositivo de dirigir todos estos dispositivos, nuestra elección fue usar un dispositivo que fuese comercial el cual contase con una buena documentación y comunidad sobre el desarrollo de proyectos y que fuese fácil de usar y programar además que todos nuestros dispositivos fuesen compatibles para ello escogimos la plataforma de desarrollo arduino e implementamos una de sus placas más conocidas el arduino nano con el chip atmega 328p.

Debido a que algunos de nuestros dispositivos funcionan a diferentes tensiones o requieren algunas etapas de acondicionamiento y que además deseamos implementar un sistema de alimentación auxiliar una batería, para ello fue necesario la implementación de una electrónica extra en nuestro sistema:
- Las baterías que decidimos implementar fueron recicladas de un portátil siendo estas en el formato llamado 18650 que cuentan con una capacidad de aproximadamente 2500mAh y un atencion nominal de 3.7v. se implementaron 4 de estas baterías para contar con una gran autonomía del sistema de emergencia.

para poder cargar las baterías de implemento el tp4056 un pequeño circuito de carga con protección a sobre y subtensión de las baterías que las protegera y alargará su vida útil.

como habíamos mencionado antes nuestro circuito requiere de diferentes tensiones para funcionar. nuestro sistema requiere con tensión principal 5v para cubrir esta necesidad decidimos usar un regulador tipo Step-Up/Step-Down Voltage Regulator el que implementamos es el modelo pololu S9V11F5 que otorga una salida constante de 5v cuando su entrada oscila entre los 2.5v a los 16v

para la tensión secundaria de nuestro sistema la cual es de 3.3v decidimos implementar algo sencillo y económico un regulador lineal de 3.3v el asm1117 de 3.3v de montaje superficial

Como dentro de nuestro sistema se esta realizando una comunicación UART ademas de unas funciones entre el modulo wifi ESP-12E siendo este un dispositivo que opera a 3.3v y el arduino nano que opera a 5v es necesario la implementación de una electrónica que nivele los voltajes de los pines entre los cuales se comunica para evitar quemar los dispositivos para ello se implementó un conversor de niveles con transistores mosfet BSS138 de 4 canales bidireccional de 5V a 3.3V.

ya que nuestro sistema cuenta con un ventilador tipo fan para nuestro sensor de polvo fue necesaria la creación de un pequeño circuito de potencia para que el arduino nano pueda usar este dispositivo sin ningún inconveniente.
para esto se implementaron 3 componentes tipo smd
-transistor bjt 2n3904 mmbt
-diodo suf 4007
-resistencia 470 ohms en formato 0805

Lo último que se implementó fueron una serie de condensadores para que el sistema mantuviese una tensión estable en caso de que alguno de los dispositivos de comunicación inalámbrica tuviesen un pico de corriente al realizar la transmisión de los datos .
se realizó un esquema a mano de como estaría todo interconectado antes de poder realizar un diseño en algu programa para realizar circuitos impresos.

Con este nuevo esquema en el cual se muestran las diferentes conexiones presentes en el diseño final. con el ventilador realizando un mejor el flujo de aire que pasa a través del sensor de polvo, humedad y temperatura para disminuir las posibilidades de errores de mediciones o re-mediciones (que se mide el mismo parámetro de manera redundante debido a que se estanca el flujo de aire)
posteriormente realizamos el diseño de un circuito impreso en el software de autodesk eagle obteniendo el siguiente resultado

el diagrama esquemático o pictórico el cual nos indica como están realizadas las conexiones dentro del circuito.

el board es la muestra gráfica de como queda el circuito o como debe quedar el circuito al momento de realizarse.
se continuó con la fase de construcción del prototipo creando la pcb el método empleado fue a través de una fresadora cnc y después todos los componentes fueron soldados a mano ya que este proceso deja expuesto el cobre de la placa tiende a oxidarse muy rápido ocasionando que el circuito se deteriore para ello la solución más práctica y económica fue pintar la pcb en su cara de cobre con pintura en aerosol.
antes de realizar cualquier prueba se realizaron las debidas pruebas de continuidad con el fin de verificar que toda la placa estuviera bien y no hubieran cortos entre las pistas del circuito.
los resultados obtenidos fueron los siguientes:





ya con nuestra planta física terminada la programación fue nuestro siguiente paso
ya que todos nuestros módulos son compatibles con la ID de arduino con esto quiero decir que ya existen librerias y demas para poder implementar los sensores de una forma más sencilla con nuestro arduino nano.
nuestra programación consta de dos códigos.
El primero el cual va sobre el módulo wifi ESP-12e que gracias a una gran comunidad en internet es posible usarlo como un microcontrolador, se implementó un código el cual cumple la tarea de recibir los datos del arduino nano proveniente de los sensores y realizar la respectiva conexión a internet y al servidor donde se almacenarán, visualizarán y graficaron los datos y posteriormente notificar al arduino nano que el envío de datos a la red fue exitoso .
El segundo código el cual va sobre el arduino nano se encarga de leer los 4 sensores, de monitorear los voltajes del sistema, enviar y recibir los datos del módulo de radiofrecuencia, enviar los datos al módulo wifi y esperar su respectiva respuesta, monitorear las tensiones del sistema, verificar que la comunicación entre los sensores y el estado de los sensores sea el correcto
El código de este microcontrolador es el más pesado y más complicado de todo el sistema por tal razón se decidió que todos los códigos de este sistema no serian compartidos por cuestiones personales ya que tomó más de 3 meses realizar toda la programación y hacer que todos los sistemas cooperan de forma estable.
En la parte de la página web y el servidor que se encarga de almacenar los datos en la nube nos encontramos con el servicio de ThingSpeak siendo un servicio totalmente gratuito y fácil de usar para los proyectos con enfoque de iot y/o análisis de datos basados en la nube e internet como en el caso de nuestro sistema.
El resultado obtenido después de haber configurado la página y haber enlazado todo el sistema físico con los servicios en la red los resultados fueron los siguientes:
El link donde se reportan los datos del sistema es el siguiente: https://thingspeak.com/channels/884877





VIDEO DE FUNCIONAMIENTO
BIBLIOGRÁFICA
- TVOC / Consultado 6-12-2019
- sharp Sensor / Consultado 6-12-2019
- BME280 Sensor / Consultado 6-12-2019
·https://learn.adafruit.com/adafruit-bme280-humidity-barometric-pressure-temperature-sensor-breakout
- SGP30 Sensor / Consultado 6-12-2019
- TSL2591 Sensor / Consultado 6-12-2019
- WIFI Module esp12e / Consultado 6-12-2019
- HC 12
- Arduino nano
- Arduino IDE
- Pololu S9V11F5
Asm 1117 de 3.3v
- Conversor de niveles BSS138 de 4 canales bidireccional 5V a 3.3V
- thingspeak
· https://thingspeak.com/
Comments