Última modificación el 25 febrero, 2021
Contenidos
- 1 En qué consiste el proyecto
- 2 El sensor BME280
- 3 Conexión del BME280 al NodeMCU
- 4 Conexión del BME280 a Wemos D1 Mini
- 5 Conexión del BME280 a otros microcontroladores
- 6 Precio del BME280 y dónde comprarlo
- 7 Configuración
- 8 Instrucciones paso a paso en video
- 9 Aún más opciones
- 10 Integración con el Medidor de CO2 casero
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ámetro | Datos técnicos |
---|---|
Rango de operación | Presió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 |
Interface | I²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 mode | 0.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 sensor | 8-Pin LGA con metal 2.5 x 2.5 x 0.93 mm³ |
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í:
- ✔️️ ¿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.