Grove - 气压传感器
此 Grove - 气压传感器采用 Bosch BMP085 高精度芯片,用于检测气压和温度。它可以广泛测量从 300hPa 到 1100hPa 的压力范围,即海拔 +9000m 到 -500m,超高精度为 0.03hPa(0.25m)在超高分辨率模式下。该芯片仅接受 1.8V 至 3.6V 的输入电压。然而,添加外部电路后,该模块变得兼容 3.3V 和 5V。因此,它可以在 Arduino/#Seeeduino 或 Seeeduino Stalker 上使用,无需修改。它设计为通过 I2C 总线直接连接到微控制器。
特点
- 数字双线 (I2C) 接口
- 宽气压范围
- 灵活的供电电压范围
- 超低功耗
- 低噪声测量
- 完全校准
- 包含温度测量
更多关于 Grove 模块的详细信息,请参考 Grove 系统
应用场景
- GPS 导航增强
- 室内和室外导航
- 休闲和运动
- 天气预报
- 垂直速度指示(上升/下降速度)
规格
项目 | 最小值 | 典型值 | 最大值 | 单位 |
---|---|---|---|---|
电压 | 3 | 5 | 5.5 | VDC |
电流 | 89 | / | 130 | uA |
压力范围 | 300 | / | 1100 | hPa |
更快的 I2C 数据传输 | / | / | 3.4 | MHZ |
尺寸 | 20.424.39.7 | mm | ||
重量 | 2 | g |
使用方法
使用 Arduino
气压条件是预测天气变化和推算海拔高度的标准之一。以下是一个演示,展示如何从此 Grove - 气压传感器读取气压数据。
- 使用 Grove 电缆将其连接到 Seeeduino 或 Grove - 基础扩展板的 IIC 端口,并通过 USB 电缆将 Arduino 连接到 PC。
-
下载库文件 Barometer_Sensor Library;将其解压到 Arduino IDE 的库文件路径:..\arduino-1.0.1\libraries。
-
创建一个新的 Arduino 草图并将以下代码粘贴到其中,或者通过路径直接打开代码:File -> Example -> Barometer_Sensor -> Barometer_Sensor。
/* Barometer demo V1.0
* 基于 Jim Lindblom 的代码
* 获取压力、海拔和温度数据。
* 以 9600 波特率通过串口监视器输出。
*
* By:https://www.seeedstudio.com
*/
#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); //等待一秒后再次获取数据
}
- 打开串口监视器以接收传感器的数据,包括温度、气压值、相对气压和海拔高度。
以下是一个参考图,绘制了海拔高度与气压之间的关系。
使用 Raspberry Pi
-
您需要准备一个 Raspberry Pi 和一个 GrovePi 或 GrovePi+。
-
您需要完成开发环境的配置,否则请参考 这里。
-
连接
- 将气压传感器插入 GrovePi 的 i2c 插座。
4.进入示例代码目录:
cd yourpath/GrovePi/Software/Python/grove_barometer/adafruit/
- 查看代码
nano grove_i2c_barometic_sensor_example.py # 按 "Ctrl+x" 退出 #
#!/usr/bin/python
import smbus
import RPi.GPIO as GPIO
#import grovepi from grove_i2c_barometic_sensor 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)
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
5.运行示例代码。
sudo python grove_i2c_barometic_sensor_example.py
6.结果
在线原理图查看器
资源
技术支持与产品讨论
感谢您选择我们的产品!我们致力于为您提供多种支持,以确保您使用我们的产品时体验顺畅。我们提供了多种沟通渠道,以满足不同的偏好和需求。