(SKU:SEN0236)BME280 Environmental Sensor

来自DFRobot Product Wiki
跳转至: 导航搜索
BME280 (SKU: DFR0236)

目录

简介

BME280将压力、湿度、温度测量融为一体,具有高精度、多功能和MEMS小封装尺寸。DFRobot的BME280传感器采用Gravity-I2C接口设计,及预留的SPI接口,为快速搭建物联网环境测试带来便利。BME280压力测量在整个温区是非常稳定的:低温度系数1.5Pa/K转化为12.6cm/K的高度随温度变化的测量稳定性。这种精密性连同其多功能性和紧凑性,使得BME280不仅适合新的应用而且提高了现有应用的精确性。比如,该传感器可以用于实现室内气候控制应用的智能手机,它可集成到体育运动中进行高度分析,以实现更好的培训绩效监控等。作为物联网的一个连接传感器,BME280在家庭自动化、智能能源、智能交通、老人护理中得到进一步应用。

产品参数

  • 工作电压:3V3
  • 温度范围:-40-85℃ 分辨率0.1℃ 误差±0.5℃
  • 湿度范围:0-100%RH 分辨率0.1%RH 误差±2%RH
  • 压力范围:300-1100hPa
  • 湿度测量响应时间:1s
  • 接口方式:Gravity
  • 模块尺寸:22 x 25mm

使用教程

下载Arduino库文件,点击下载

示例中提供了I2C和SPI接口方式,根据不同的连线方式,选择不同的串行接口,示例如下:

I2C连接图

请务必注意线序,VCC接电源,GND接地
BME280 I2C连线图

样例代码

#include <DFRobot_BME280.h>

#define SEA_LEVEL_PRESSURE	1013.25f
#define BME_CS 10

DFRobot_BME280 bme; //I2C
//DFRobot_BME280 bme(BME_CS); //SPI

float temp, pa, hum, alt;

void setup() {
    Serial.begin(115200);
    
    // I2c default address is 0x77, if the need to change please modify bme.begin(Addr)
    if (!bme.begin()) {
        Serial.println("No sensor device found, check line or address!");
        while (1);
    }
    
    Serial.println("-- BME280 DEMO --");
}


void loop() { 
	temp = bme.temperatureValue();
	pa = bme.pressureValue();
	hum = bme.altitudeValue(SEA_LEVEL_PRESSURE);
	alt = bme.humidityValue();
	
	Serial.print("Temp:");
	Serial.print(temp);
	Serial.println(" ℃");
	
	Serial.print("Pa:");
	Serial.print(pa);
	Serial.println(" Pa");
	
	Serial.print("Hum:");
	Serial.print(hum);
	Serial.println(" m");
	
	Serial.print("Alt:");
	Serial.print(alt);
	Serial.println(" %");
	
	Serial.println("------END------");
	
	delay(1000);
}
Warning yellow.png

注:示例中DFRobot_BME280 bme; //I2C语句是初始化I2C驱动

下载程序到Firebeetle主板(这里采用的是FireBeetle Board-ESP32),打印信息如下:

I2C调试信息

SPI连接图

请务必注意线序,VCC接电源,GND接地
BME280 SPI连线图

样例代码

/*!
 * @file bmp280test.ino
 * @brief DFRobot's Temperature、Pressure、Humidity and Approx altitude
 * @n [Get the module here]
 * @n This example read the Temperature、Pressure、Humidity and Altitude from BME280, and then print them
 * @n [Connection and Diagram]
 *
 * @copyright	[DFRobot](http://www.dfrobot.com), 2016
 * @copyright	GNU Lesser General Public License
 *
 * @author [yangyang]
 * @version  V1.0
 * @date  2017-4-18
 */

#include <DFRobot_BME280.h>

#define SEA_LEVEL_PRESSURE	1013.25f
#define BME_CS 10

//DFRobot_BME280 bme; //I2C
DFRobot_BME280 bme(BME_CS); //SPI

float temp, pa, hum, alt;

void setup() {
    Serial.begin(115200);
    
    // I2c default address is 0x77, if the need to change please modify bme.begin(Addr)
    if (!bme.begin()) {
        Serial.println("No sensor device found, check line or address!");
        while (1);
    }
    
    Serial.println("-- BME280 DEMO --");
}


void loop() { 
	temp = bme.temperatureValue();
	pa = bme.pressureValue();
	hum = bme.altitudeValue(SEA_LEVEL_PRESSURE);
	alt = bme.humidityValue();
	
	Serial.print("Temp:");
	Serial.print(temp);
	Serial.println(" ℃");
	
	Serial.print("Pa:");
	Serial.print(pa);
	Serial.println(" Pa");
	
	Serial.print("Hum:");
	Serial.print(hum);
	Serial.println(" m");
	
	Serial.print("Alt:");
	Serial.print(alt);
	Serial.println(" %");
	
	Serial.println("------END------");
	
	delay(1000);
}



Warning yellow.png

注:示例中DFRobot_BME280 bme; //I2C 语句注释掉,并出示SPI驱动,打印效果和示例一一样

个人工具
名字空间

变换
操作
导航
工具箱