ESP8266-Arduino编程实例-BMP280+SI7021(GY-21P)组合模块驱动
BMP280+SI7021(GY-21P)组合模块驱动
1、GY-21P模块介绍
GY-21P模块结合了 BMP280 传感器和 SI7021 传感器。 板载 BMP280+SI7021 传感器可测量 30kPa 至 110kPa 的大气压力以及相对湿度和温度。

BMP280具有如下特性:
- 压力范围:300-1100 hPa(海拔9000米-500m)
- 相对精度(25°C 时 950 – 1050 hPa):± 0.12 hPa,当量。 至 ± 1 米
- 绝对精度(在 (950 – 1050 hPa, 0 – +40 °C)):± 0.12 hPa,相当于 ± 1 m
- 电源电压:1.8V – 3.6V
- 功耗:1Hz 读出速率时为 2.7µA
- 温度范围:-40 至 + 85°C
SI7021具有如下特性:
- 工作电压:3.3V
- I2C 和 SPI 通信接口
- 温度范围:-40C 至 85C
- 湿度范围:0 – 100% RH,=-3% 从 20-80%
- 压力范围:30,000Pa至110,000Pa,相对精度12Pa,绝对精度100Pa
- 海拔范围:0 到 30,000 英尺(9.2 公里),海平面相对精度为 3.3 英尺(1 m),30,000 英尺为 6.6(2 m)。
2、硬件准备
- ESP8266 NodeMCU开发板一块
- GY-21P传感器模块一个
- 面板板一个
- 杜邦线若干
- 数据线一条
硬件接线如下:
| 传感器引脚 |
ESP8266开发板引脚 |
| Vin |
5v |
| Gnd |
Gnd |
| SCL |
D1 |
| SDA |
D2 |
3、软件准备
- Arduino IDE或VSCode + PlatformIO
在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:
ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:
4、代码实现
本次实例使用的驱动库如下:
BMP280驱动库:
SI7021驱动库:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| include <Wire.h> #include <Adafruit\_Sensor.h> #include <Adafruit\_BMP280.h> #include "Adafruit\_Si7021.h" Adafruit_BMP280 bme; // I2C Adafruit_Si7021 sensor = Adafruit\_Si7021(); void setup() { Serial.begin(9600); Serial.println("BMP280 and SI7021 (GY-21p) test");
if (!bme.begin()) { Serial.println("Could not find a valid BMP280 sensor, check wiring!"); while (1); }
if (!sensor.begin()) { Serial.println("Did not find Si7021 sensor!"); while (true); } } void loop() { Serial.println("BMP280 results"); Serial.print("Temperature = "); Serial.print(bme.readTemperature()); Serial.println(" \*C"); Serial.print("Pressure = "); Serial.print(bme.readPressure()); Serial.println(" Pa"); Serial.print("Approx altitude = "); Serial.print(bme.readAltitude(1013.25)); // this should be adjusted to your local forcase Serial.println(" m"); Serial.println();
Serial.println("SI7021 results"); Serial.print("Humidity: "); Serial.println(sensor.readHumidity(), 2); Serial.print("Temperature: "); Serial.println(sensor.readTemperature(), 2); Serial.println(); delay(2000); }
|
文章来源: https://iotsmart.blog.csdn.net/article/details/126517450
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!