Grove - 气压传感器 (BMP180)
这是一个 Grove 模块,基于 Bosch BMP180 高精度、低功耗数字气压计。BMP180 提供 300 至 1100 hPa 的压力测量范围,在高级分辨率模式下精度可达 0.02 hPa。它基于压阻技术,具有高精度、耐用性和长期稳定性。芯片仅接受 1.8V 至 3.6V 的输入电压。然而,添加外部电路后,该模块可兼容 3.3V 和 5V。因此,它可以在 Arduino/Seeeduino 或 Seeeduino Stalker 上直接使用,无需修改。它设计为通过 I2C 总线直接连接到微控制器。
特性
- 数字双线 (I2C) 接口
- 宽气压测量范围
- 灵活的供电电压范围
- 超低功耗
- 低噪声测量
- 工厂校准
- -40 至 +85°C 工作范围,±2°C 温度精度
- I2C 地址:0x77
如果您想使用多个 I2C 设备,请参考 软件 I2C。
更多关于 Grove 模块的详细信息,请参考 Grove 系统。
应用场景
- GPS 导航增强
- 室内和室外导航
- 休闲和运动
- 天气预报
- 垂直速度指示(上升/下降速度)
规格
项目 | 最小值 | 典型值 | 最大值 | 单位 |
---|---|---|---|---|
电压 | 3 | 5 | 5.5 | VDC |
电流 | 1.1 | / | 20 | uA |
压力范围 | 300 | / | 1100 | hPa |
更快的 I2C 数据传输 | / | / | 3.4 | MHZ |
尺寸 | 40.120.29.7 | mm |
支持的平台
Arduino | Raspberry Pi |
---|---|
上述提到的支持平台仅表示模块的软件或理论兼容性。在大多数情况下,我们仅为 Arduino 平台提供软件库或代码示例。不可能为所有可能的 MCU 平台提供软件库或演示代码。因此,用户需要自行编写软件库。
入门指南
使用 Arduino
硬件
- 步骤 1. 准备以下物品:
Seeeduino V4.2 | Base Shield | Grove-Barometer_Sensor-BMP180 |
---|---|---|
立即购买 | 立即购买 | 立即购买 |
- 步骤 2. 将 Grove-Barometer_Sensor-BMP180 连接到 Grove-Base Shield 的 I2C 端口。
- 步骤 3. 将 Grove-Base Shield 插入 Seeeduino。
- 步骤 4. 使用 USB 数据线将 Seeeduino 连接到电脑。
如果没有 Grove Base Shield,也可以直接将此模块连接到 Seeeduino,如下所示。
Seeeduino_v4 | Grove-Barometer_Sensor-BMP180 |
---|---|
5V | VCC |
GND | GND |
SDA | SDA |
SCL | SCL |
软件
步骤 1. 从 Github 下载 库文件。
步骤 2. 参考 如何安装库文件 为 Arduino 安装库文件。
步骤 3. 创建一个新的 Arduino 草图,并将以下代码粘贴到其中,或者通过路径直接打开代码:File -> Example -> Barometer_Sensor -> Barometer_Sensor。
以下是代码:
#include "Barometer.h"
#include <Wire.h>
float temperature;
float pressure;
float atm;
float altitude;
Barometer myBarometer;
void setup(){
Serial.begin(9600);
myBarometer.init();
}
void loop()
{
temperature = myBarometer.bmp085GetTemperature(myBarometer.bmp085ReadUT()); // 获取温度,必须先调用 bmp085ReadUT
pressure = myBarometer.bmp085GetPressure(myBarometer.bmp085ReadUP()); // 获取气压
altitude = myBarometer.calcAltitude(pressure); // 未补偿的计算 - 单位:米
atm = pressure / 101325;
Serial.print("Temperature: ");
Serial.print(temperature, 2); // 显示两位小数
Serial.println("deg C");
Serial.print("Pressure: ");
Serial.print(pressure, 0); // 仅显示整数
Serial.println(" Pa");
Serial.print("Ralated Atmosphere: ");
Serial.println(atm, 4); // 显示四位小数
Serial.print("Altitude: ");
Serial.print(altitude, 2); // 显示两位小数
Serial.println(" m");
Serial.println();
delay(1000); // 等待一秒后再次获取值
}
步骤 4. 打开串口监视器以接收传感器数据,包括温度、大气压力值、相对气压和海拔高度。
使用 Raspberry Pi
硬件
- 步骤 1. 准备以下物品:
Raspberry Pi | GrovePi_Plus | Grove-Barometer_Sensor-BMP180 |
---|---|---|
立即购买 | 立即购买 | 立即购买 |
- 步骤 2. 将 GrovePi_Plus 插入 Raspberry Pi。
- 步骤 3. 将 Grove-Barometer_Sensor-BMP180 连接到 GrovePi_Plus 的 I2C 端口。
- 步骤 4. 使用 USB 数据线将 Raspberry Pi 连接到电脑。
软件
- 步骤 1. 按照 设置软件 配置开发环境。
- 步骤 2. Git 克隆 Github 仓库。
cd ~
git clone https://github.com/DexterInd/GrovePi.git
- 步骤 3. 执行以下命令以使用此传感器:
cd ~/GrovePi/Software/Python/grove_barometer_sensors/barometric_sensor_bmp180
python grove_i2c_barometic_sensor_example.py
以下是代码:
#!/usr/bin/python
import time
import smbus
import RPi.GPIO as GPIO
#import grovepi
from grove_i2c_barometic_sensor_BMP180 import BMP085
# ===========================================================================
# 示例代码
# ===========================================================================
# 初始化 BMP085 并使用标准模式(默认值)
# bmp = BMP085(0x77, debug=True)
bmp = BMP085(0x77, 1)
# 要指定不同的操作模式,请取消以下一行的注释:
# bmp = BMP085(0x77, 0) # 超低功耗模式
# bmp = BMP085(0x77, 1) # 标准模式
# bmp = BMP085(0x77, 2) # 高分辨率模式
# bmp = BMP085(0x77, 3) # 超高分辨率模式
rev = GPIO.RPI_REVISION
if rev == 2 or rev == 3:
bus = smbus.SMBus(1)
else:
bus = smbus.SMBus(0)
while True :
temp = bmp.readTemperature()
# 读取当前气压值
pressure = bmp.readPressure()
# 根据估算的平均海平面气压(1013.25 hPa)计算海拔高度
# 但这不会非常准确
# altitude = bmp.readAltitude()
# 要指定更准确的海拔高度,请输入正确的平均海平面气压值。
# 例如,如果当前气压值为 1023.50 hPa,请输入 102350,因为我们在整数值中包含两位小数。
altitude = bmp.readAltitude(101560)
print("Temperature: %.2f C" % temp)
print("Pressure: %.2f hPa" % (pressure / 100.0))
print("Altitude: %.2f m" % altitude)
time.sleep(.1)
- 步骤 4. 以下是结果:
在线原理图查看器
资源
- [Eagle] Grove - 气压传感器(BMP180) Eagle 文件
- [Library] 气压传感器库
- [Datasheet] BMP180 数据手册
- [Altitude Vs. Pressure] 以下是海拔高度与气压关系的参考图。
项目
使用 Blynk 的天气和安全站:通过 Blynk 和 CC32000 LaunchPad 远程监控天气和安全!
技术支持与产品讨论
可升级为工业传感器
通过 SenseCAP S2110 控制器 和 S2100 数据记录仪,您可以轻松将 Grove 转换为 LoRaWAN® 传感器。Seeed 不仅帮助您进行原型设计,还为您提供使用 SenseCAP 系列坚固的工业传感器扩展项目的可能性。
IP66 外壳、蓝牙配置、与全球 LoRaWAN® 网络的兼容性、内置 19 Ah 电池以及来自 APP 的强大支持,使 SenseCAP S210x 成为工业应用的最佳选择。该系列包括土壤湿度、空气温度和湿度、光强度、CO2、电导率以及 8 合 1 气象站传感器。尝试最新的 SenseCAP S210x,助力您的下一个成功工业项目。