感知周围的环境 BMP280气压温度传感器 GY-BM E-P 280

引言

我用的模块是 GY-BM E/P 280,百度了一圈没有发现特别靠谱的教程,后来还是从 Adafruit 的网站上发现了它的 Arduino 库文件。它其实就是 BMP280 气压温度传感器的中国加工的板子,传感器用的是 BME280,最后的那个 E 其实就是英文环境“Environment”的首字母,它可以测量气压、温度和湿度。这样想想是不是以后就可以不用 NTC 热敏电阻和其他传感器来测环境参数了?(当然它们有它们的好处)


需要的材料和硬件连接

需要注意的是这块板子的额定电压是 3.3v,且同时支持两种连接方式: I²C 和 SPI ,其中 I²C 我并没有测试成功,所以下面的所有连接方式都是 SPI 的连接方式和程序。

左边的是 BMP280 的 6 个接口,右边是 Arduino 的 6 个接口,两者用杜邦线连接即可。将 USB 线缆连接到电脑,选择好合适的开发板以及端口,上传并打开串口监视器,查看数值变化。

GY-BM E/P 280Arduino UNO/nano/mega/leonardo etc
VCC3.3v
GNDgnd
SCL13
SDA11
CSB10
SDO12
![](/uploads/2018/02/2019-06-13-15_15_40-20180225161622404.jpg-‎-照片-1024x570.jpg)

测试程序

  1. 原始的库文件以及示例程序:adafruit/Adafruit_BMP280_Library https://github.com/adafruit/Adafruit_BMP280_Library 需要注意的是: 将 Adafruit_BMP280.h 文件中的 Line 37 改成 #define BMP280_ADDRESS (0x76)
  2. 改装过的
/*
需要 Adafruit_Sensor.h & Adafruit_BMP280.h
VCC---3.3v
GND---gnd
SCL---13
SDA---11
CSB---10
SDO---12
*/

#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>  //需要导入两个Adafruit的库,可以在github上搜索
#include <Adafruit_BMP280.h>

#define BMP_SCK 13  //硬件连接,不需要改动
#define BMP_MISO 12
#define BMP_MOSI 11 
#define BMP_CS 10

//Adafruit_BMP280 bmp; // I2C
//Adafruit_BMP280 bmp(BMP_CS); // hardware SPI
Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO,  BMP_SCK);  //选择此模式

void setup() {
  Serial.begin(9600);
  Serial.println(F("BMP280 测试"));

  if (!bmp.begin()) {  
    Serial.println(F("找不到对应的传感器"));
    while (1);
  }
}

void loop() {
    Serial.print(F("温度 = "));
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");

    Serial.print(F("气压 = "));
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");
    
    Serial.print(F("海拔 = "));
    Serial.print(bmp.readAltitude(1013.25)); // this should be adjusted to your local forcase
    Serial.println(" m");
    
    Serial.println();
    delay(2000);
}

参考资料

  1. adafruit/Adafruit_BMP280_Library https://github.com/adafruit/Adafruit_BMP280_Library
  2. https://learn.adafruit.com/adafruit-bmp280-barometric-pressure-plus-temperature-sensor-breakout/arduino-test
  3. http://www.electroschematics.com/13269/bmp280-diy-project-primer/
updatedupdated2020-05-272020-05-27

以上是自己提供的广告