BMP388 Barometric Pressure Sensor

来自Waveshare Wiki
Eng50讨论 | 贡献2022年8月11日 (四) 16:00的版本 (文本替换 - 替换“<h1>售后</h1>”为“<h1>技术支持</h1>”)
跳转至: 导航搜索
BMP388-Barometric-Pressure-Sensor
{{{name2}}}
{{{name3}}}
功能简介
特性 BMP388气压传感器
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 I2C SPI

说明

产品概述

这是一款 24 位高精度气压传感器,可实现精确的高度跟踪,检测大气压强、温度,支持 I2C/SPI 接口,兼容 3.3V/5V 电平。尺寸小,低功耗、低噪音,高精度,特别适用于无人机, 精密高度计、环境监测和物联网等应用场景。

特点

  • 支持 I2C/SPI 接口通信,默认为 I2C 接口
  • 板载电平转换电路,可兼容 3.3V/5V 的工作电平
  • 提供完善的配套资料手册(Raspberry/Arduino/STM32 示例程序和用户手册等)

产品参数

  • 工作电压: 5V/3.3V
  • 通信接口: I2C/SPI
  • 气压检测范围: 300~1250hPa
  • 气压绝对精度: 0~100%RH (分辨率 0.008%RH,±3% RH)
  • 气压相对精度: 300~1100 hPa (分辨率 0.18Pa,误差±1 hPa)
  • 温度漂移系数: ±0.75Pa/K (@700~1100hPa,-20~65℃)
  • 温度绝对精度: ±0.5℃ (0~65℃)
  • 支持分辨率: 0.016Pa (高精度模式下)
  • 支持采样率: 200Hz
  • 工作温度: -40~85℃
  • 产品尺寸: 32mm × 20mm
  • 过孔直径: 2.0mm

接口说明

  • 引脚功能
功能引脚 描述
功能引脚 描述
VCC 电源正
GND 电源地
SDA I2C 数据线
SCL I2C 时钟线
INT 中断输出引脚,可接 I/O 口

用于树莓派

需要安装必要的函数库,否则以下的示例程序可能无法正常工作。安装方法详见:
https://www.waveshare.net/wiki/Pioneer600_Datasheets

  • 在官网上找到对应产品,在产品资料打开下载路径,在 wiki 中下载示例程序:

BMP388 Barometric Pressure Sensor-1.jpg

  • 解压得到如下:

BMP388 Barometric Pressure Sensor-2.jpg

  • 将Raspberry文件夹拷贝至树莓派。
  • 或者使用命令
sudo wget http://www.waveshare.net/w/upload/0/09/BMP388_Barometric_Pressure_Sensor_Code.7z
7z x BMP388_Barometric_Pressure_Sensor_Code.7z -O./BMP388_Sensor_Code
cd BMP388_Sensor_Code/Raspberry/

前置工作

前置工作执行如下命令进行树莓派配置:

sudo raspi-config 

选择 Interfacing Options -> I2C -> yes 启动 I2C 内核驱动 ,保存退出后,重启树莓派:

sudo reboot 

将模块按照如下方式接到树莓派

模块 树莓派
VCC 3.3V
GND GND
SDA SDA
SCL SCL
INT 不接

BMP388-Raspberry-WS.jpg

Python 例程演示

成功将 BMP388 模块连接至树莓派后, 安装 smbus 库

sudo apt install python-smbus 
  • 进入到 python 目录下并运行程序运行:
sudo python bmp388Demo.py 
  • 将显示如下数据:

BMP388 Barometric Pressure Sensor-3.jpg
从左至右分别显示了 BMP388 测得的温度(摄氏度),大气压(百帕斯卡),相对高度。 若未成功显示数据,或数据显示不正常请检查连线,通信方式,以及器件地址是否有误。

WiringPi 例程演示

  • 安装 wiringpi 库
sudo apt install wiringpi 
  • 进入到 wiringpi 目录下编译并运行程序
  • 运行程序:
make 
sudo ./bmp388Demo 
  • 将显示如下数据:

BMP388 Barometric Pressure Sensor-4.jpg
等待一会可以得到稳定的数据。从左至右分别显示了 BME280 测得的大气压(百帕斯卡),相对高度,温度(摄氏度)。

用于Arduino

  • 按照如下方式将模块接到 arduino 开发板中。
模块 Arduino
VCC 5V
GND GND
SDA SDA
SCL SCL
INT 不接

BMP388-Arduino-WS.jpg

  • 在正确接线,确定通信方式以及器件地址之后,编译,下载到 Arduino
  • 打开:工具 -> 串口监视器,选择波特率为 115200,可得如下信息

BMP388 Barometric Pressure Sensor-5.jpg
等待一会可以得到稳定的数据。其中从左至右分别显示了 BMP388 传感器测得的大气压(百帕斯卡),相对高度(m),温度(摄氏度)。若未成功显示数据,或数据显示不正常请检查连线,通信方式,以及器件地址是否有误。

用于STM32

  • 将下载的示例程序的压缩包解压后,打开 STM32 文件夹下的 STM32-STM32_BME280->USR 路径下的工程文件:
  • 本程序采用的芯片是 STM32F103VET6,按照如下方式将模块接到 stm32 开发板。
模块 Arduino
VCC 5V
GND GND
SDA PB7
SCL PB6
INT 不接

BMP388-STM32-WS.jpg
  • 编译,下载,本次采用的芯片是 STM32F103RBT6,采用 USART2 输出获得的传感器数据。 打开串口调试助手,选择对应的 COM 口,设置波特率为 115200,数据位 8 位,停止位 1位,无奇偶校验位,可得如下数据:

BMP388 Barometric Pressure Sensor-6.jpg
等待一会可以得到稳定的数据。其中从左至右分别显示了 BMP388 传感器测得的大气压(百帕斯卡),相对高度(m),温度(摄氏度)。若未成功显示数据,或数据显示不正常请检查连线,通信方式,以及器件地址是否有误 。

FAQ


气压传感器计算得到的高度一般用在短周期内的相对值。比如坐垂直电梯,电梯启动前记录一个高度,电梯上升到3层,记录一个高度,两个高度的高度差是准确的。

如果需要用在绝对场合,可以输入当前位置的高度作为计算的初始值,然后运动观察高度变化就是准确的。不过如果时间长了,也会容易出现高度漂移的问题。

如果项目要求长时间获取准确高度值且频率要求高,就需要融合其他传感器进行处理,比如GPS。

技术支持


联系人:杨工
电话:0755-82726080
微信:扫下方二维码添加
Ywb.jpg

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证