Conectar un sensor BME280 a ESPEasy

Última modificación el 25 febrero, 2021

Vamos a ver, paso a paso, como podemos añadir un sensor de temperatura, humedad y presión atmosférica, BME280, a nuestro proyecto ESP8266 con NodeMCU o Wemos D1 Mini y ESPEasy.

Se trata de un proyecto muy sencillo, ideal para iniciarse, pero que ha sido muy solicitado por los lectores habituales del blog, por lo que aquí te lo dejo, esperando que sea útil también para ti.

Hay muchos sensores de temperatura, bastantes de humedad, algunos de presión atmosférica y menos que combinen los tres y que además lo hagan con cierta calidad en sus medidas. El BME280 es un ejemplo de este último tipo.

Teniendo en cuenta lo que ofrece, y lo bien que lo hace, el BME280 es un sensor muy económico y altamente recomendable cuando queremos obtener estas tres medidas ambientales.

Este artículo está en construcción, pero había algunos usuarios que lo necesitaban, de manera que he decidido publicarlo aunque esté incompleto. Vuelve en unos días para encontrarlo más avanzado. Gracias.

En qué consiste el proyecto

Se trata de un proyecto que nos permite obtener medidas, con una precisión bastante elevada, de temperatura ambiental, humedad relativa, y presión atmosférica y visualizarlas en una página web, hacer gráficos, enviarlas a cualquier sistema mediante MQTT, HTTP y otros.

El proyecto está compuesto de solo dos componentes:

  • Un sensor BME280, fabricado por Bosch.
  • Una placa ESP8266 como puede ser NodeMCU, Wemos D1 Mini o cualquier otra

En el lado del firmware, utilizaremos ESP Easy, que nos permitirá hacer un sinfín de cosas sin necesidad de programar.

Una de las ventajas de ESP Easy (y mi favorita, sin duda), es que nos permite conectar a nuestro proyecto muchos accesorios diferentes sin tener que programar ni complicarnos la vida con modificaciones o adaptaciones de firmware.

El sensor BME280

El sensor BME280, tal y como lo vamos a utilizar nosotros, se presenta en una minúscula plaquita de circuito impreso de menos de un centímetro cuadrado.

Este sensor nos permite la medida de temperatura, en un rango de -40 a + 85 °C con una precisión de ±1 °C y resolución 0,01 °C

Su rango como barómetro es de 300hPa a 1110 hPa, equivalente a una altitud de -500m a 9000m sobre el nivel del mar (también lo puedes utilizar como altímetro). Con una precisión absoluta de ±1.0C y de 1.0 hPa, y la presión relativa de 0.12 hPa, equivalente a una precisión de aproximadamente ±1m.

Como higrómetro, el BME280 tiene un rango de medición de humedad relativa de 0 a 100%, con una precisión de ±3% Pa y una resolución de 0.008%.

El bajísimo consumo del sensor, de solo 3.6 µA para mediciones a 1Hz (una vez por segundo) hace que el sensor pueda funcionar durante años y años con una pila o batería por pequeña que sea. En el modo deep sleep solamente consume 0.1 µA, por lo que podría estar alimentado decenas de años de una sola pila de botón.

El módulo puede comunicarse a través de I2C (hasta 3,4 MHz) o SPI (hasta 10 MHz), por lo que es muy sencillo conectarlo a un microprocesador como el ESP8266, ESP32, Arduino y otros.

En nuestro caso vamos a comunicarnos con él mediante I2C, que tiene como ventaja adicional el utilizar solamente dos pines del ESP8266 (que además podemos utilizar a la vez para comunicarnos con otros dispositivos I2C, todos conectados en paralelo), dejando libre muchos pines del ESP8266 para otros usos.

El voltaje de alimentación del sensor es de 1.8 a 3.6V, pero está disponible tanto en módulos de 3.3V como en módulos de 5V, como el que vamos a utilizar en este tutorial, que ya incorporan la adaptación de nivel necesaria. Podrías utilizar uno de 3.3V simplemente conectando la alimentación al pin 3V3 del NodeMCU o Wemos D1 Mini.

Existe un sensor idéntico físicamente, llamado BMP280, que no incluye medida de presión atmosférica a cambio de ser más barato.

Estas son las características principales del sensor BME280:

ParámetroDatos técnicos
Rango de operaciónPresión: 300…1100 hPa
Temperatura: -40…85°C
Voltaje de alimentación VDDIO
Voltaje de alimentación VDD
1.2 … 3.6 V
1.71 … 3.6 V
InterfaceI²C and SPI
Consumo medio de corriente (typ.) (refresco de datos de 1Hz)1.8 μA @ 1 Hz (H, T)
2.8 μA @ 1 Hz (P, T)
3.6 μA @ 1 Hz (H, P, T)
T = temperatura
Consumo medio de corriente en sleep mode0.1 μA
Sensor de Humedad
Tiempo de respuesta (τ63%)
Precisión
Hysteresis

1 s
±3% humedad relativa
≤2% humedad relativa
Sensor de Presión
Ruido RMS
Error de sensibilidad

Offset de coeficiente de temperatura

0.2Pa (equiv. to 1.7cm)
±0.25% (equiv. to 1m at 400m cambio altitud)

±1.5Pa/K (equiv. a ±12.6cm a 1 °C cambio de temperatura)
RoHS compliant, halogen-free, MSL1
Dimensiones del sensor8-Pin LGA con metal
2.5 x 2.5 x 0.93 mm³
Datos técnicos del BME280

Conexión del BME280 al NodeMCU

La conexión no puede ser más fácil. Tenemos que hacer cuatro conexiones. Dos para la alimentación y dos para los datos.

Solamente tenemos que conectar:

  • VDD de BME280 a Vin de NodeMCU
  • GND de BME280 a GND de NodeMCU
  • SCL de BME280 a D2 de NodeMCU
  • SDA de BME280 a D1 de NodeMCU

Pincha en la imagen para verla más grande.

Ten cuidado porque la serigrafía de muchas placas NodeMCU están mal y pone D2 en vez de D1 (hay dos D1).

Obviamente D1 es la que aparece marcada erróneamente como D2 entre D0 y “la otra” D2.

IMPORTANTE: No te fíes del orden de las conexiones y compruébalas dos veces en tu placa. Algunas veces diferentes fabricantes hacen cambios de ese tipo que nos pueden amargar el día, si no tenemos cuidado.

Conexión del BME280 a Wemos D1 Mini

Te dejo también el diagrama con una placa Wemos D1 Mini, por si prefieres hacerlo con ella.

Otras placas serán muy similares y probablemente no tengas problema para adaptarlo tú mismo.

Si tienes dudas, puedes preguntar abajo, en los comentarios.

Pincha en la imagen para verla más grande.

Conexión del BME280 a otros microcontroladores

La conexión a otra placa, diferente al NodeMCU o al Wemos D1 Mini, basada en ESP8266, u otra basada en ESP32, será muy parecida. Solamente tendremos que estar atentos al cambio en las conexiones.

Precio del BME280 y dónde comprarlo

El sensor BME280 es bastante económico (sobre todo para lo que ofrece).

Hay varias versiones del sensor, muy parecidas físicamente, pero con algunas diferencias: diferente forma de comunicación, voltaje, etc. de manera que asegurarte de comprar el mismo sensor, o tendrás que adaptar el tutorial al sensor que hayas recibido.

Si te quieres asegurar de comprar exactamente el mismo que he utilizado yo en el tutorial, lo he comprado aquí:

Si prefieres comprarlo en Amazon y tenerlo en casa rápidamente, aunque cueste algo más, puedes hacerlo aquí:

AZDelivery GY-BME280 Sensor de temperatura, humedad y presion atmosferica compatible con Arduino y Raspberry Pi con E-Book incluido!
  • ✔️️ ¿Busca un sensor pequeño, preciso y de consumo de energía bajo para temperatura, humedad y presión atmosférica para implementar su SmartHome o proyecto de construcción de modelos? ¡Entonces ha venido al lugar correcto!
  • ✔️️ El módulo sensor BME280 de AZ-Delivery para Arduino y Raspberry Pi utiliza I2C y funciona perfectamente con microcontroladores de 3.3 V y 5 V. Con su alta resolución y consumo de energía bajo, estos módulos de sensores son ideales para todos los Makers.
  • ✔️️ La aplicación es cómoda gracias a la interfaz universal y las bibliotecas amplias de Arduino, Raspberry, y otros microcontroladores. Se utiliza para la determinación de la altitud para el GPS, en la construcción de modelos o como estación meteorológica.
  • ✔️️ Los sensores vienen calibrados de fábrica. Están disponibles modos de funcionamiento diferentes, desde consumo ultra bajo hasta resolución ultra alta. Con el eBook 📖 gratuito de AZDelivery, usted puede comenzar su proyecto directamente sin tener que dedicar mucho tiempo a configurar el producto.
  • ✔️ ¡Bienvenido a la familia AZDelivery! Aquí encontrará productos de alta calidad para sus proyectos con Arduino y Raspberry Pi. Nos complace ofrecerle una serie de ejemplos de aplicación, guías completas de instalación, E-Books, bibliotecas y asistencia personalizada. ⭐️⭐️⭐️⭐️⭐️ ¡AZDelivery: ¡Su Experto en Microelectrónica!

Configuración

Aquí te enseñaré a configurar ESPEasy para utilizar el sensor (utiliza de momento el video, está bien explicado).

Instrucciones paso a paso en video

Aunque el proceso es sencillo, y no debería dar demasiados quebraderos de cabeza a nadie, he grabado un video con las instrucciones paso a paso para conectar el BME280 al NodeMCU y configurar ESPEasy.

Aún más opciones

Estoy trabajando en esta parte.

En breve encontrarás aquí instrucciones para crear gráficas, reglas, enviar los datos por HTTP y MQTT, etc.

Integración con el Medidor de CO2 casero

Aquí te enseñaré como integrarlo con el Medidor de CO2 casero que publiqué previamente.

Deja un comentario