Icono del sitio Home Assistant Fácil

BME680 sensor de calidad del aire para Home Assistant

bme680 sensor calidad del aire home assistant
Sensor de calidad de aire con Home Assistant BME680

El sensor BME680 es un sensor de calidad del aire para Home Assistant que te va a permitir medir a ese asesino invisible que se lleva a millones de vidas todos los años.

Porque gracias al sensor BME680 vas a poder medir el índice IAQ (del inglés Indoor Air Quality) que es un índice que nos permite saber cómo de bueno o malo es el aire que respiramos.

Aparte, este sensor también permite medir la temperatura, la humedad y la presión atmosférica.

Y en este tutorial puedes aprender cómo programarlo con ESPHome e integrarlo en Home Assistant.

Capítulos

Estos son los capítulos si quieres ir a tiro hecho.

00:00 Introducción

01:10 Qué ofrece el sensor BME680

01:41 Qué son los compuestos orgánicos volátiles o VOC

02:28 Índice de calidad del aire o IAQ

03:00 Módulos del sensor BME680

03:53 Protocolo de comunicación I2C

04:35 Esquema eléctrico de conexión BME680 y ESP8266

06:05 Programación BME680 con ESPHome

08:22 Integración del sensor BME680 en Home Assistant

09:28 Calibración del sensor BME680

11:49 Mini curso de Home Assistant gratuito https://programarfacil.com/

Sensor de calidad del aire BME680

El sensor de calidad del aire BME680 está compuesto por varios sensores capaces de medir:

Precisamente esta última característica, la de poder medir los compuestos orgánicos volátiles o COV es lo que hace que sea un sensor de calidad del aire.

Los compuestos orgánicos volátiles son todos aquellos hidrocarburos que se presentan en forma de gases. Se encuentran alrededor nuestros ya que están en muchos sitios donde se emplean disolventes orgánicos como materiales de construcción, impresoras, pinturas, gasolina y muchos productos domésticos.

Son los responsables de la mala calidad del aire que respiramos y una exposición a una alta densidad de estos compuestos puede ser muy perjudicial para la salud.

El BME680 incorpora un sensor resistivo del tipo MOX que nos permite obtener un valor en ohmios dependiendo de la concentración de compuestos orgánicos volátiles.

Esta relación es inversamente proporcional, es decir, a mayor concentración de compuestos orgánicos volátiles menor resistencia presentará el sensor MOX.

Pero ¿Cuál es el límite para saber si un valor es nocivo para la salud o no?

Aquí es donde entra en juego el Índice de Calidad de Aire (CAI) también conocido por sus siglas en inglés IAQ (Index Air Quality).

Es un rango que va de 0 a 500 donde 0 es la calidad del aire en un monte de Toledo y 500 en una discoteca al lado de Chernobyl y por el medio se encuentran los diferentes grados de calidad del aire.

Y esto es lo que nos ofrece Bosch, una librería (no es de código abierto) que nos proporciona este índice de calidad del aire.

Módulos BME680

Bosch es el fabricante del sensor BME680 y, cuando salió al mercado, algunas empresas como Adafruit, Sparkfun o BlueDot sacaron los módulos listos para usar con nuestras placas ESP8266 y ESP32.

Y luego vinieron los chinos y sacarlo su módulo CJMCU-680.

Una aclaración con todo esto. Una cosa son los módulos donde van integrados los sensores ya sea el BME680 o cualquier otro y otra cosa son los propios sensores.

Si miras detenidamente estos módulos verás que todos tienen el chip con sensor BME680. Luego cada uno hace el módulo con el factor forma que le da la gana y con más o menos pines pero todos deberían funcionar más o menos igual.

Aclarado esto, el sensor se comunica con la placa a través del protocolo I2C. No voy a entrar en detalle a explicar cómo funciona este protocolo porque no es el objeto de este tutorial.

De forma muy resumida, este protocolo es como un bus de comunicación donde se conectan los componentes y son capaces de comunicarse con el microcontrolador utilizando solo 2 pines. SDA es el pin por donde se transmiten los datos y SCL la señal de reloj.

Y esto es muy útil porque por eso dos pines puedes conectar varios componentes. En teoría se podrían conectar hasta 128. Para identificarlo dentro del bus cada dispositivo tiene un dirección asignada que debe ser única.

De hecho, podrías conectar una pantalla OLED junto al BME680 para poder tener un sensor de calidad de aire y una estación metereológica en Home Assistant.

Esquema eléctrico

El material que voy a utilizar para este proyecto es el siguiente:

La placa Wemos D1 mini basada en el ESP8266, mi favorita, pero puedes utilizar cualquier otra placa ya sea un ESP8266 o un ESP32.

Un sensor BME680 CJMCU-680 aunque puedes utilizar de cualquier otra marca.

Las conexiones son bastante sencillas y dependerán del microcontrolador que utilices. Si utilizas un ESP8266 tienes que conectar los pines SDA del sensor BME680 al pin D2 y el pin SCL al pin D1.

Importante. Si utilizas un ESP32 conecta el pin SDA del sensor BME680 al pin 21 y el SCL al pin 22.

El sensor BME680 se alimentan con 3,3V, conecta el pin VCC al pin 3V3 de la placa y el pin GND al pin GND de la placa.

Para ensamblar toda la electrónica puedes hacerlo de diferentes maneras como utilizando una protoboard o si quieres dejarlo más curioso puedes utilizar un shield de prototipado si utilizas cualquier versión compatible con los shields Wemos.

Aunque tengas que dar algunos puntos de soldadura, queda bastante más curioso. Sigamos porque ahora viene la programación.

Programación BME680 sensor de calidad de aire

Programar esto con un código de Arduino puede ser bastante tedioso y complicado, menos mal que tenemos ESPHome que es lo que vamos a utilizar.

Lo primero es crear el proyecto por defecto. Puedes hacerlo utilizando el asistente de ESPHome o directamente partir de un proyecto base. Ten en cuenta configurar el nombre del nodo, la placa y las credenciales de la red WiFi.

También debes añadir la api key en el componente api. Entra en la web oficial y copia el que te muestre de forma aleatoria.

Este sería mi código inicial con el que puedes empezar haciendo las modificaciones pertinentes.

El siguiente paso es añadir después del código anterior el código del BME680 del sensor de calidad del aire que puedes obtener en la web oficial de ESPHome. Te dejo el código donde he traducido los nombres de los diferentes sensores y textos.

Para probar este código tienes que tener conectado el sensor y cargar el código a la placa. En este punto pueden pasar dos cosas, que todo vaya como la seda o que salga un error como este en el log.

Si te sucede esto mira un poco más abajo en el log donde podrás ver que el componente i2c ha hecho un escanéo de los dispositivos conectados y donde puedes ver también la dirección I2C del BME680 sensor de calidad del aire.

Copia la dirección. En mi caso es 0x77 y tienes que añadir lo siguiente en la parte del componente bme680_bsec.

Vuelve a compilar y cargar el código. Ahora sí verás como el sensor empieza a dar resultados.

Sigamos porque el siguiente paso es integrar el sensor BME680 en Home Assistant.

Integración BME680 en Home Assistant

La integración, como podrás imaginarte, es bastante sencilla porque de forma automática habrá aparecido una notificación en Home Assistant que ha descubierto un nuevo dispositivo. Entra en las integraciones y verás en sensor de calidad del aire.

Haz clic en Configurar.

Te pedirá que pongas la api key que has puesto en el código y luego haz clic en Enviar.

Esto hará que aparezca un nuevo dispositivo en la integración ESPHome donde puedes entrar y ver los datos que envía el BME680 sensor de calidad del aire.

Por último vamos a ver cómo calibrar el sensor.

Calibración BME680 sensor de calidad de aire

La calibración del BME680 sensor de calidad del aire es fundamental para obtener unos datos correctos y el proceso es el siguiente:

  1. Dejar que el sensor se estabilice durante 5 minutos. Durante este tiempo el parámetro Precisión IAQ será Stabilizing.
  2. Una vez cambie a estado uncertain o calibrating exponer al sensor en un ambiente limpio durante unos segundos.
  3. Luego tienes que exponer el sensor en un ambiente contaminado durante unos segundos. Esto lo puedes hacer si lo acercas a tu boca y le echas el aliento durante unos segundos. Tienes que hacer que suban todos los niveles.
  4. Espera hasta que aparezca calibrated
  5. Una vez calibrado, el sensor empieza a funcionar con normalidar.

Importante. Una vez calibrado los datos serán totalmente fiables después de 48 horas.

Y poco más, mucho ojo con el aire que respiras.

Gracias a Depositphotos por ceder los derechos de algunas de las imágenes de este artículo.

Salir de la versión móvil