¡Aprende a utilizar el sensor BME280 con Arduino para medir presión, temperatura y humedad! En este artículo te proporcionamos las instrucciones paso a paso para sacarle el máximo provecho a este versátil dispositivo. Descubre cómo obtener lecturas precisas y útiles con tan solo unos cuantos pasos sencillos. ¡No te lo pierdas!
Esta guía muestra cómo medir la presión, la temperatura, la humedad y la altitud utilizando el módulo de sensor BME280 y Arduino. Le mostraremos cómo cablear el sensor, instalar las bibliotecas necesarias y escribir un boceto simple para mostrar los valores del sensor.
Quizás también quieras leer otras guías de BME280:
- ESP32 con sensor BME280 usando Arduino IDE
- Servidor web ESP32 con BME280 – estación meteorológica
- ESP8266 con BME280 usando Arduino IDE
- ESP32/ESP8266 con BME280 usando MicroPython
Introducción del módulo de sensor BME280
El Sensor BME280 El módulo mide la presión del aire, la temperatura y la humedad. Dado que la presión cambia con la altitud, también se puede estimar la altitud. Hay varias versiones de este módulo de sensor. El sensor BME280 utiliza el protocolo de comunicación I2C o SPI para intercambiar datos con un microcontrolador.
Usamos el módulo que se muestra en la siguiente figura.
Este sensor se comunica mediante el protocolo de comunicación I2C, por lo que el cableado es muy sencillo. Conecta el sensor BME280 a los pines Arduino Uno I2C como se muestra en la siguiente tabla:
BME280 | arduino |
vino | 5V |
Dimensiones | Dimensiones |
SCL | A5 |
ASD | A4 |
Existen otras versiones de este sensor que pueden usar protocolos de comunicación SPI o I2C, como el módulo que se muestra en la siguiente figura:
Si usa uno de estos sensores, use los siguientes pines para usar el protocolo de comunicación I2C:
BME280 | arduino |
SCK (pasador SCL) | A5 |
SDI (pin SDA) | A4 |
Si utiliza el protocolo de comunicación SPI, deberá utilizar los siguientes pines:
BME280 | arduino |
SCK (reloj SPI) | Pluma 13 |
SDO (MISO) | Pluma 12 |
IDE (MOSI) | Pluma 11 |
CS (selección de chips) | Pluma 10 |
Piezas requeridas
Para completar este tutorial necesitarás las siguientes partes:
- Módulo de sensores BME280
- arduino (leer Los mejores kits de inicio de Arduino)
- tablero de circuitos
- Cables de puente
Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!
Esquema
Conecte el sensor BME280 a su placa Arduino como se muestra en el siguiente esquema.
Instalación de la biblioteca BME280
Para obtener lecturas del módulo sensor BME280, utilice el Biblioteca Adafruit_BME280Siga los siguientes pasos para instalar la biblioteca en su IDE de Arduino:
Abra su IDE de Arduino y vaya a Bosquejo > incluir biblioteca > Administrar bibliotecas. El administrador de la biblioteca debería abrirse.
Buscar «Adafruit BME280 ”en el campo de búsqueda e instale la biblioteca.
Instalación de la biblioteca Adafruit_Sensor
Además, para utilizar la biblioteca BME280, debe tener la Biblioteca Adafruit_SensorSiga los siguientes pasos para instalar la biblioteca en su IDE de Arduino:
Ir a Bosquejo > incluir biblioteca > Administrar bibliotecas y escribe “Sensor unificado de Adafruit”en el campo de búsqueda. Desplácese hacia abajo para buscar e instalar la biblioteca.
Después de instalar las bibliotecas, reinicie su IDE de Arduino.
Lectura de presión, temperatura y humedad.
Para leer la presión, la temperatura y la humedad, utilizamos un ejemplo de boceto de la biblioteca.
Después de instalar la biblioteca BME280 y la biblioteca Adafruit_Sensor, abra el IDE de Arduino y vaya a archivo > Ejemplos > Biblioteca Adafruit BME280 > bme280 revisión.
/*
* Complete Project Details https://randomnerdtutorials.com
*/
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI
unsigned long delayTime;
void setup() {
Serial.begin(9600);
Serial.println(F("BME280 test"));
bool status;
// default settings
// (you can also pass in a Wire library object like &Wire2)
status = bme.begin();
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
Serial.println("-- Default Test --");
delayTime = 1000;
Serial.println();
}
void loop() {
printValues();
delay(delayTime);
}
void printValues() {
Serial.print("Temperature = ");
Serial.print(bme.readTemperature());
Serial.println(" *C");
// Convert temperature to Fahrenheit
/*Serial.print("Temperature = ");
Serial.print(1.8 * bme.readTemperature() + 32);
Serial.println(" *F");*/
Serial.print("Pressure = ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println(" hPa");
Serial.print("Approx. Altitude = ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(" m");
Serial.print("Humidity = ");
Serial.print(bme.readHumidity());
Serial.println(" %");
Serial.println();
}
Cómo funciona el código
Continúe leyendo esta sección para aprender cómo funciona el código o pase a la sección de demostración.
Bibliotecas
El código comienza con la integración de las bibliotecas requeridas: cable Biblioteca para usar I2C y el Adafruit_Sensor Y Adafruit_BME280 Bibliotecas para interactuar con el sensor BME280.
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
comunicación SPI
Dado que estamos utilizando comunicación I2C, se comentan las siguientes líneas que definen los pines SPI:
/*#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10*/
presión al nivel del mar
una variable llamada SEALEVELPRESSURE_HPA creado.
#define SEALEVELPRESSURE_HPA (1013.25)
Esta variable almacena la presión al nivel del mar en hectopascales (equivalente a milibares). Esta variable se utiliza para estimar la altitud para una presión determinada comparándola con la presión al nivel del mar. Este ejemplo utiliza el valor predeterminado. Sin embargo, para obtener resultados más precisos, reemplace el valor con la presión actual al nivel del mar en su ubicación.
I2C
Este ejemplo utiliza el protocolo de comunicación I2C de forma predeterminada. Como puedes ver, sólo necesitas uno. Adafruit_BME280 Objeto nombrado bme.
Adafruit_BME280 bme; // I2C
Para usar SPI, debe comentar esta línea anterior y descomentar una de las siguientes líneas.
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI
configuración()
En el configuración()iniciar la comunicación en serie:
Serial.begin(9600);
Y el sensor se inicializa:
status = bme.begin();
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
Nota: Si no obtiene lecturas del sensor al probarlo, es posible que necesite encontrar la dirección I2C de su sensor BME280. Con el BME280 conectado a tu Arduino, haz lo siguiente: este boceto del escáner I2C para verificar la dirección de su sensor. Luego pasa la dirección al comenzar() Método.
Imprimir valores
En el Cinta()El imprimirValores() La función lee los valores del BME280 e imprime los resultados en el monitor serie.
void loop() {
printValues();
delay(delayTime);
}
Leer la temperatura, la humedad, la presión y la altitud es fácil utilizando los siguientes métodos en el bme Objeto:
- bme.readTemperatura() – lee la temperatura en grados Celsius;
- bme.readHumedad() – lee la humedad absoluta;
- bme.readPresión() – muestra la presión en hPa (HectoPascal = milibares);
- bme.readAltitude(SEALEVELPRESSURE_HPA) – estima la altitud en metros basándose en la presión al nivel del mar.
demostración
Sube el código a tu placa Arduino.
Abra el monitor serie con una velocidad de 9600 baudios.
Deberías ver las lecturas en el monitor serie.
Envolver
El BME280 ofrece una forma sencilla y rentable de determinar los valores de presión, temperatura y humedad. El sensor se comunica mediante el protocolo de comunicación I2C, lo que significa que el cableado es muy sencillo. Todo lo que necesitas hacer es conectar el sensor a los pines Arduino I2C.
Escribir el código para recuperar los valores del sensor también es muy sencillo gracias a la biblioteca BME280_Adafruit. Sólo tienes que leer temperatura(), leerhumedad() Y leer imprimir() Métodos. También puede ajustar la altura usando el leer altura() Método.
Tenemos guías para otros sensores y módulos que utilizan Arduino que pueden resultarle útiles:
- Sensor de humedad y temperatura DHT11/DHT22 con Arduino
- Sensor de temperatura DS18B20 con Arduino
- Pantalla OLED I2C con Arduino
- Módulo de relé con Arduino
- Sensor ultrasónico HC-SR04 con Arduino
Si desea obtener más información sobre Arduino, consulte nuestros recursos:
- Curso de proyecto Arduino paso a paso.
- Proyectos y tutoriales gratuitos de Arduino
- mini curso de arduino
Gracias por leer.
<!DOCTYPE html>
Introducción al Sensor BME280
El sensor BME280 es un módulo que lee la presión barométrica, la temperatura y la humedad. Además, debido a que la presión cambia con la altitud, también puedes estimar la altitud. Existen varias versiones de este módulo de sensor, siendo la versión que utiliza el protocolo de comunicación I2C la más común.
¿Qué necesitas para utilizar el Sensor BME280 con Arduino?
- Sensor BME280
- Arduino
- Protoboard
- Cables jumper
Diagrama Esquemático
Para comenzar, debes cablear el sensor BME280 a tu placa Arduino de la siguiente manera:
Instalación de las Bibliotecas Necesarias
Para poder obtener lecturas del sensor BME280, es necesario instalar la biblioteca Adafruit_BME280 en tu IDE de Arduino. Sigue los siguientes pasos:
- Abre tu IDE de Arduino y ve a Sketch > Include Library > Manage Libraries.
- Busca «adafruit bme280» en la barra de búsqueda e instala la biblioteca.
Además, para utilizar la biblioteca BME280, también necesitas instalar la biblioteca Adafruit_Sensor. Sigue estos pasos:
- Ve a Sketch > Include Library > Manage Libraries e ingresa «Adafruit Unified Sensor» en la búsqueda.
- Desplázate hacia abajo para encontrar la biblioteca y procede a instalarla.
Lectura de Presión, Temperatura y Humedad
Para leer presión, temperatura y humedad, se puede utilizar un sketch de ejemplo proporcionado por la biblioteca. Asegúrate de tener todo correctamente conectado y sube el siguiente código a tu placa Arduino:
«`C++
#include
#include
#include
#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
unsigned long delayTime;
void setup() {
Serial.begin(9600);
Serial.println(F(«BME280 test»));
bool status;
status = bme.begin();
if (!status) {
Serial.println(«No se pudo encontrar un sensor BME280 válido, ¡verifica las conexiones!»);
while (1);
}
Serial.println(«– Prueba Predeterminada –«);
delayTime = 1000;
}
void loop() {
printValues();
delay(delayTime);
}
void printValues() {
Serial.print(«Temperatura = «);
Serial.print(bme.readTemperature());
Serial.println(» *C»);
Serial.print(«Presión = «);
Serial.print(bme.readPressure() / 100.0F);
Serial.println(» hPa»);
Serial.print(«Altitud Aproximada = «);
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(» m»);
Serial.print(«Humedad = «);
Serial.print(bme.readHumidity());
Serial.println(» %»);
Serial.println();
}
«`
Una vez subido el código, abre el Monitor Serial con una velocidad de 9600 baudios para ver las lecturas del sensor.
Conclusión
El sensor BME280 proporciona una forma fácil y económica de obtener lecturas de presión, temperatura y humedad. Además, la comunicación a través del protocolo I2C hace que la conexión con Arduino sea muy sencilla. ¡Experimenta con este sensor y descubre las posibilidades que te ofrece en tus proyectos!
¡Qué útil! Me será de gran ayuda para poder medir la presión, temperatura y humedad con mi Arduino. ¡Gracias por las instrucciones detalladas! ¡Sigue así!
¡Genial post! ¡Justo lo que necesitaba para empezar a trabajar con mi Sensor BME280 y Arduino! ¡Gracias por compartir!
¡Me encantó el post! Ahora sé exactamente cómo utilizar mi Sensor BME280 con Arduino para medir presión, temperatura y humedad. ¡Gracias por este gran tutorial! ¡Sigue así!
¡Excelente explicación! Ahora puedo sacarle el máximo provecho a mi Sensor BME280 con Arduino gracias a tus instrucciones detalladas. ¡Mil gracias por compartir tu conocimiento! ¡Sigue así!