Alguna vez pensó en monitorear la calidad del aire dentro o fuera de su hogar: ¿dónde vive y trabaja? Este proyecto, que hemos bautizado como
balenaSense , es una unidad para
medir la temperatura, la humedad, la presión barométrica y la calidad del aire, así como un panel de control al que puede acceder desde cualquier lugar para ver estadísticas resumidas y rastrear tendencias.

Contenido
Introduccion
Para controlar la calidad del aire y la estación meteorológica, se requieren muchos cables y varios sensores, pero la situación se hizo más fácil después de la aparición de sensores que combinan todas las lecturas en una buena placa pequeña, con lo cual es fácil comenzar.

Considere monitorear la temperatura, la humedad, la presión barométrica y la calidad del aire utilizando un sensor todo en uno que se conecta directamente a la Raspberry Pi sin componentes adicionales. No necesita ninguna experiencia en electrónica, pero un soldador sería bienvenido (aunque también es opcional). Este proyecto implementa una base de datos para almacenar lecturas históricas junto con una interfaz gráfica para ver las lecturas actuales e inmediatamente ver las tendencias.


Equipo necesario
Esto es lo que necesita comprar para este proyecto. Dependiendo de si desea utilizar un soldador o no, elegimos una placa de sensor: algunos funcionan de inmediato, otros requieren un poco de soldadura.

No quiero soldar
Si no desea soldar, necesitará:
Quiero soldar, ¡dame!
Si está contento de recoger un soldador, necesitará:
Otros sensores
Si ya tiene algún tipo de sensor, este proyecto es compatible con
Sense HAT con una ventaja adicional: ¡una carita sonriente en la matriz LED (dependiendo de la calidad del aire, por supuesto)!

Bosch BME680 con elevador se puede pedir a diferentes proveedores a diferentes precios.
Nota En el artículo usamos Pimoroni: esta placa tiene la ventaja adicional de que los contactos se rompen en el orden correcto para el GPIO Raspberry Pi. Al usar otras tarjetas, debe verificar que las clavijas de alimentación, tierra y bus I2C (SDA y SCL) coincidan, como se explica más adelante en el manual.
Software
Abrimos el proyecto
balena-sense en GitHub, que contiene todo el software, la configuración y el código que necesita para un sistema en funcionamiento. Vamos a implementar este proyecto en una cuenta gratuita de
balenaCloud para distribuir todo el software para Raspberry Pi, así como proporcionar acceso remoto. Por lo tanto, necesitará:
Montaje de equipos
Hay poco trabajo en el frente de hardware de este proyecto. Nuestro objetivo es conectar la placa del sensor al pin GPIO en la Raspberry Pi.
El BME680 se comunica con la Raspberry Pi a través de un bus llamado I2C (ojo cuadrado), que es un bus serie con dos cables. Estos dos cables se denominan línea de sincronización (SCK) y línea de datos (SDA). Además de los dos cables, es necesario suministrar energía al sensor (3.3V o 3V3) y conectarlo a tierra.
Si elige la opción sin soldar desde Pimoroni o Sparkfun o utilizando Sense HAT, simplemente conecte los nuevos componentes brillantes a la Raspberry Pi y todas las conexiones se realizarán por usted: ¡continúe con el siguiente paso!
Si decide conectar el sensor directamente a la Raspberry Pi utilizando Pimoroni u otro elevador, lo principal es garantizar la conexión correcta de los contactos descritos anteriormente (SDA, SCK, 3V3 y GND).
Un sitio útil para trabajar con GPIO en Raspberry Pi es
pinout.xyz ; muestra claramente que necesitamos los pines 1 (potencia 3V3), 3 (SDA), 5 (SCL) y 9 (tierra). Un GPIO de 40 pines es estándar en Pi 2 y versiones posteriores. Si utiliza una placa Pimoroni, los contactos están en el orden correcto para conectar las placas. Observe cómo la inscripción en el tablero coincide con el diagrama de pinout anterior.

Pero si conecta el sensor de esta manera, el calor del procesador Raspberry Pi afectará las lecturas. Para recopilar lecturas más precisas, debe quitar el sensor de la placa: hágalo
con los cables DuPont de madre a madre (o
Jumper Jerky ), como se muestra a continuación:

Del mismo modo, si usa otro sensor, donde los diagramas de pines no coinciden exactamente, puede conectar estas placas al Pi utilizando el mismo método. Lo principal es garantizar el cumplimiento de 3V3, SDA, SCL y GND. Si la placa tiene contactos para SDI, SDO, CS, puede ignorarlos, ya que se usan para una interfaz SPI alternativa, que no usamos en este proyecto.
En las fotos de arriba, tenemos la Raspberry Pi 3A +, pero Pi Zero también es adecuada como una solución más barata.
Configurar Raspberry Pi
Vamos a actualizar la tarjeta SD con el sistema operativo balenaOS, conectarla a la nube balenaCloud, agregar nuestro dispositivo allí y configurar el proyecto para que pueda actualizarse fácilmente más tarde.
Primero debe configurar una cuenta de balenaCloud. Esto significa registrarse, agregar una aplicación y agregar un dispositivo.
Paso 1. Regístrate en balenaCloud
Si ya tiene una cuenta de GitHub o Google, puede usarla para iniciar sesión sin pasar por el proceso de
registro .
Paso 2. Creando la aplicación
Agregue la aplicación seleccionando el tipo de dispositivo correcto y
Starter
como tipo de aplicación, luego haga clic en
Create New Application
. Este tipo admite todos los microservicios y es gratuito hasta diez dispositivos.
A continuación, se lo dirigirá al tablero de la aplicación recién creada, donde puede ir al siguiente paso y agregar el dispositivo. Puede darle a la aplicación un nombre arbitrario, pero lo necesitará más adelante en el manual cuando escribamos el código.
Paso 3. Agregue el dispositivo y arranque el SO
Después de crear la aplicación, puede agregar un dispositivo a esta aplicación haciendo clic en el botón verde
Agregar dispositivo . Al agregar un dispositivo, especifique el tipo de dispositivo correcto. Si se está conectando a una red inalámbrica, puede configurar su SSID y frase de contraseña de WiFI.
Nota: Raspberry Pi 3 se indica en la animación, ¡no olvide seleccionar el tipo correcto de su dispositivo!

Este proceso crea una imagen personalizada para la aplicación y el tipo de dispositivo, que incluye la configuración de red, si se especifica.
Nota: para empezar, es mejor elegir una imagen de desarrollo para realizar algunas pruebas y solucionar problemas. Para obtener más información sobre las diferencias entre las imágenes de desarrollo y producción, consulte
aquí . Si está seguro de que puede comenzar a implementar una imagen de producción en este momento, por favor.
Paso 4. Grabe la tarjeta SD y el dispositivo de arranque
Cuando se carga la imagen del sistema operativo, es hora de flashear la tarjeta SD. Puedes usar
balenaEtcher para esto.

Una vez completado el proceso, inserte la tarjeta SD en la Raspberry Pi y conecte la fuente de alimentación.

Cuando el dispositivo se inicia por primera vez, se conecta al panel de control de balenaCloud, después de lo cual puede verlo en la lista en línea y pasar al siguiente paso.
Solución de problemas: el dispositivo debería aparecer en el panel en unos minutos. Si no aparece, algo salió mal. La documentación tiene una extensa
guía de solución de problemas con mucha información sobre por qué esto podría suceder. Si la documentación no ayudó, comuníquese con los
foros .
Implementación de software
Cuando su Raspberry Pi esté preparada, descargada y conectada a balenaCloud, estará listo para instalar el código de la aplicación en el dispositivo.
Instalar herramientas CLI de balena en una estación de trabajo
BalenaCloud le permite transferir de forma remota el software / código de la aplicación a Raspberry Pi y otros dispositivos. Para que esto sea posible, su estación de trabajo (no la Raspberry Pi) debe cumplir con algunos requisitos mínimos de software.
Nota: Para implementar con éxito este proyecto, no necesita ejecutar ningún comando en el dispositivo, ya sea a través de SSH o desde el panel de control de balenaCloud. ¡Todo se hace de forma remota!
Si ya tiene (o puede configurar)
npm en su computadora, entonces esta es la forma más rápida de ejecutar las herramientas CLI. También hay
binarios para Windows, macOS y Linux .
Nota: si ya instaló estas herramientas para nuestros otros proyectos, puede omitir esta parte e ir directamente al siguiente paso.
La documentación de las herramientas CLI describe la instalación y configuración del paquete npm, así como los binarios.
Cuando la CLI está instalada y ejecutándose, el primer paso es iniciar sesión en balenaCloud ejecutando el comando de
balena login
:


Cuando hay una CLI en funcionamiento registrada en la cuenta, está listo para instalar programas en la Raspberry Pi.
Descargar un proyecto desde GitHub
El siguiente paso es
descargar el código para este proyecto desde GitHub .
El botón azul cargará el archivo zip del proyecto, pero si ya está familiarizado con Git, puede usar
git clone
manera habitual.
Instalar en Raspberry Pi
Como la CLI y el último código están instalados, puede ejecutar este código en balenaCloud con un solo comando. Allí, la imagen de Docker se recopila y configura, que se ejecutará en su dispositivo.
Desde el directorio del proyecto después de desempacarlo, ejecute el
balena push <appName>
, donde appName es el nombre de la aplicación especificada al comienzo del manual. Por ejemplo,
balena push balenaSense
.
Si todo se hace correctamente, después de unos minutos, la pantalla de información de su dispositivo en el panel de control debería mostrar los servicios en ejecución, uno para cada uno de los componentes del software, algo como esto:

La primera vez que la descarga puede tardar varios minutos (dependiendo de la velocidad de su conexión a Internet), pero solo se descargan los cambios en el contenedor, por lo que todo sucede mucho más rápido.
Nota: cuando la aplicación se inicia por primera vez (y usa BME680, no Sense HAT), el sensor realiza un 'quemado' durante aproximadamente cinco minutos. Durante este período, las lecturas
no serán tomadas e insertadas en la base de datos. La aplicación registrará la cuenta regresiva, que se muestra en el panel balenaCloud:

Cuando el recuento llegue a cero, verá el mensaje 'Bucle de inicio ...'. Después de eso, las lecturas se tomarán e insertarán en la base de datos cada 10 segundos.
Ver tablero de instrumentos
Espero que hayas flasheado el dispositivo, conectado a la red y comenzado sin ningún problema. Uno de los grandes beneficios de usar una cuenta gratuita de balenaCloud es la función
Public Device URL
.

Active este interruptor y haga clic en el icono de flecha azul para acceder al tablero. Puede compartir este enlace o marcarlo en su teléfono u otro dispositivo. Mientras el dispositivo balenaSense esté conectado y funcionando, ¡puede mirar el tablero desde cualquier lugar!

Si no desea habilitar el acceso público, aún puede ver el tablero desde su propia red local por dirección IP, como se puede ver en la captura de pantalla anterior. El tuyo será diferente, pero solo ingresa
http://<ip->
en el navegador, y aún tendrás acceso al tablero si estás en la misma red que el dispositivo. Por ejemplo, para acceder a mi dispositivo, ingresaría
http://10.1.231.36
.
Si desea iniciar sesión en Grafana y jugar con la configuración, las credenciales predeterminadas son
admin
y
admin
.
Como funciona
Este proyecto tiene tres componentes principales, tres servicios. Estos nombres están en el panel de balenaCloud:
- InfluxDB : una base de datos utilizada para almacenar lecturas de sensores
- Sensor: biblioteca de Python y código para acceder al sensor, tomar lecturas y guardarlas en la base de datos
- Grafana : se usa para crear un tablero con gráficos e informes
El sensor BME680 de Bosch detecta la temperatura, la humedad, la presión y la resistencia a los gases. Los sensores de temperatura, humedad y presión funcionan de inmediato, pero las lecturas de resistencia a los gases por sí solas no son muy útiles. Estos son indicadores de cambios en la composición del aire. Cuando se inicia el sensor, establece la base y luego monitorea los cambios. Los indicadores indicativos de la calidad del aire se dan en porcentaje y tienen en cuenta la influencia de la humedad y la resistencia a los gases.
Si usa Sense HAT, donde no hay un sensor de resistencia al gas, aproximamos las lecturas de calidad del aire en función de los valores de temperatura y humedad objetivo.
Que sigue
Espero que ahora haya lanzado completamente el proyecto, haya obtenido acceso al panel de control, haya tomado lecturas y haya comenzado a completar su base de datos. Menciona algunas cosas más importantes.
Cambiar contraseña
Si abre el dispositivo para acceso público, se recomienda cambiar la contraseña de Grafana.

Configuramos el sistema con el nombre de usuario y la contraseña predeterminada
admin
admin
. Para cambiarlos, inicie sesión en Grafana usando el botón en la esquina inferior izquierda del panel. Se le pedirá que cambie la contraseña la primera vez que inicie sesión.
Personalización
El programa Grafana para el tablero y los informes tiene muchos parámetros y configuraciones de configuración. Hemos creado un panel básico que muestra un cuadro y un gráfico para cada una de las cuatro opciones de medición.

Puede personalizar cada panel de Grafana al pasar el cursor sobre el título y pasar a la edición. Recomiendo jugar con la configuración: los cambios en el tablero no se guardan automáticamente, por lo que si comete un error, simplemente vuelva a cargar la página y todo volverá a su forma original. Si desea guardar los cambios, haga
clic en
Guardar en la parte superior del panel de control, y todas las configuraciones se guardarán en su dispositivo.

También puede configurar los sensores. Por ejemplo, en el diagrama del manómetro, configuramos varios rangos básicos y valores de texto en lugar de números. ¡Todo esto cambia a tu gusto!
Vivienda
Dichos sensores son ideales para colocarlos en una
cabina meteorológica , que protege a los sensores de la luz solar y el calor irradiado. Si controla el ambiente en la habitación, esto no es tan importante, pero si el sensor está instalado en el exterior, su posicionamiento y protección son importantes para obtener lecturas precisas.
Las cabinas meteorológicas
están a la venta , pero pueden ser bastante caras, así que considera las
opciones de bricolaje .
Thingiverse tiene varios
edificios BME680 y
cabinas meteorológicas .
Últimos pensamientos
Gracias por leer! Si decide construir su propia estación meteorológica con control de calidad del aire, díganos cómo fue todo, qué problemas surgieron. Las ideas para el desarrollo de nuestro proyecto se pueden expresar
en los foros .