BMP390 Barometric Pressure Sensor

来自Waveshare Wiki
跳转至: 导航搜索
BMP390-Barometric-Pressure-Sensor
{{{name2}}}
{{{name3}}}
功能简介
特性 BMP390气压传感器
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 I2C SPI

说明

产品概述

BMP390是一款非常小、低功耗、低噪声的24位绝对气压传感器,数字高性能传感器非常适合各种高度跟踪应用,模块支持I2C/SPI 接口,兼容 3.3V/5V 电平。可以轻松地集成到GPS模块、可穿戴设备、可听设备和无人机等项目,适用于精密高度计、环境监测和物联网等应用场景。

特点

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

产品参数

  • 工作电压: 5V/3.3V
  • 通信接口: I2C/SPI
  • 平均工作电流: 3.2μA(1Hz)
  • 气压检测范围: 300~1250hPa
  • 气压绝对精度: ±0.50hPa(P=300 ...1100 hPa T=0 ... 65 °C)
  • 气压相对精度: ±0.03hPa (P=700…1100 hPa T=25…40°C)
  • 温度漂移系数: ±0.6Pa/K (25°…40°C at 900 hPa)
  • 温度绝对精度: ±1.5℃ (0…65℃)
  • 支持分辨率: 0.016Pa (高精度模式下)
  • 支持采样率: 200Hz
  • 工作温度: -40~85℃
  • 产品尺寸: 32mm × 20mm
  • 过孔直径: 2.0mm

接口说明

  • 引脚功能
功能引脚 描述
VCC 电源正
GND 电源地
SDA I2C 数据线
SCL I2C 时钟线
INT 中断输出引脚,可接 I/O 口
SDO SPI 数据线接主机MISO
SDI SPI 数据线接主机MOSI
CS 片选信号输入,接 I/O 口

可通过ADDR焊盘配置I2C地址,默认不焊0Ω电阻,I2C地址为0x77,焊上后为0x76。(使用SPI模式时请勿焊接该0Ω电阻)

用于树莓派

函数库安装

  • 安装wiringPi
sudo apt-get install wiringpi
#对于树莓派4B可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行gpio -v会出现2.52版本,如果没有出现说明安装出错

前置工作

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

sudo raspi-config 

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

sudo reboot 

重启后检查SPI是否正常启动:

ls /dev/spi*

BMP390 RaspberryPi C SPIinit.png

WiringPi 例程演示

下载例程并解压:

sudo apt-get update
sudo apt-get unzip
wget https://www.waveshare.net/w/upload/b/bf/BMP390_Barometric_Pressure_Sensor_code.zip
unzip BMP390_Barometric_Pressure_Sensor_code.zip

I2C

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

  • 检查连接:
i2cdetect -y 1

BMP390 RaspberryPi C I2Cinit.png
模块默认I2C地址为0x77,可通过修改焊盘改变地址,修改硬件地址后要对应修改程序中的I2C地址; BMP390 RaspberryPi C I2C Addr1.png
BMP390 RaspberryPi C I2C Addr2.png

BMP3_ADDR_I2C_PRIM=0x76
BMP3_ADDR_I2C_SEC=0x77
  • 进入到 I2C 目录下编译程序 :
cd
cd BMP390_Barometric_Pressure_Sensor_code/RaspberryPi/I2C
make clean
make
  • 运行程序:
sudo ./bmp3 
  • 将显示如下数据:

BMP390 RaspberryPi C I2C.png
等待一会可以得到稳定的数据。从左至右分别显示了 BMP390 测得的温度(摄氏度),大气压(帕斯卡)。

SPI

模块 树莓派
VCC 3.3V
GND GND
SDO MISO
SDI MOSI
SCK SCLK
CS 27(wiringPi编码)

  • 进入到 SPI 目录下编译程序 :
cd
cd BMP390_Barometric_Pressure_Sensor_code/RaspberryPi/SPI
make clean
make
  • 运行程序:
sudo ./bmp3 
  • 将显示如下数据:

BMP390 RaspberryPi C SPI.png
等待一会可以得到稳定的数据。从左至右分别显示了 BMP390 测得的温度(摄氏度),大气压(帕斯卡)。

用于Arduino

I2C

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

BMP390 Arduino connect.jpg

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

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

SPI

  • 按照如下方式将模块接到 arduino 开发板中。
模块 Arduino
VCC 5V
GND GND
SDO 12
SDI 11
SCK 13
CS 10(SS)

Bmp390 Arduino SPI connect.png

  • 在正确接线,确定通信方式(如下图确认宏定义USE_IIC为0时使用SPI模式)以及器件地址之后,编译,下载到 Arduino
  • 打开:工具 -> 串口监视器,选择波特率为 115200,可得如下信息

Bmp390 Arduino test SPI.png
等待一会可以得到稳定的数据。其中从左至右分别显示了 BMP390 传感器测得的大气压(帕斯卡),温度(摄氏度)。若未成功显示数据,或数据显示不正常请检查连线,通信方式,以及器件地址是否有误。

用于ESP32

本示例使用ESP32-S3-DEV-KIT-N8R8开发板

I2C

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

(ESP32的I2C总线可以映射到大部分外接引脚上,可以根据需要自行配置)
BMP390 ESP32 connect I2C.png

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

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

SPI

  • 按照如下方式将模块接到 ESP32 开发板中。
模块 ESP32
VCC 5V
GND GND
SDO 10
SDI 11
SCK 9
CS 12(SS)

(ESP32的SPI总线可以映射到大部分外接引脚上,可以根据需要自行配置)
BMP390 ESP32 connect SPi.png

  • 在正确接线,确定通信方式(如下图确认宏定义USE_IIC为0时使用SPI模式)以及器件地址之后,编译,下载到 Arduino
  • 打开:工具 -> 串口监视器,选择波特率为 115200,可得如下信息

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

用于Raspberry Pi Pico

软件准备

安装Thonny

烧录Micropython固件

  • 软件在线安装方法:最新版的Thonny自带安装固件的功能。
  1. 首先需要按住Pico的boot按键同时将Pico使用USB数据线与PC连接;
  2. 之后打开Thonny依次点击Tool->Options...->Interpretere->INstall or update MicroPython;
  3. 在弹出的窗口中选择对应开发板和MicorPython版本,并点击安装,之后等待安装完毕即可。

企业微信截图 16826472081409.png
若出现软件安装MicroPython窗口中一直提示downloading variants info...且长时间无变化,考虑为网络原因,可以选择使用代理或改为使用下面的离线安装方法。

  • 离线安装方法:
  1. 下载固件,得到一个.uf2文件;
  2. 按住Pico的boot按键同时将Pico使用USB数据线与PC连接,之后电脑会弹出一个USB储存设备;
  3. 打开该设备文件夹,将.uf2文件直接拖入文件夹中,之后该储存设备自动弹出,开发板重启,此时代表安装完成,可以打开Thonny查看是否成功识别的Pico的micropython环境。更多细节参考Pico官网

硬件连接

模块 Pico
VCC 5V
GND GND
SDA GP2
SCL GP3
INT 不接

Bmp390 pico connect.png

例程使用

步骤如图:

  1. 确认已连接写入了micropython固件的Raspberry Pi Pico开发板;
  2. 在左上角文件界面打开解压后的示例程序文件夹并打开Pico文件夹;
  3. 选中两个.py文件,右键选择上传;
  4. 上传后在左下的片内文件界面双击打开示例程序get_temp_press.py;
  5. 点击上方按钮运行。

Bmp390 pico test.png

资料

文档

程序

软件

相关资料

FAQ


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

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

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

BMP390 是通过测气压来判断高度的,相对精度为±3帕斯卡,相当于±0.25米的高度;实际受外界复杂环境影响,可能误差会偏大,更多参数如下:Bmp390.png
{{{4}}}

{{{5}}}



售后


联系人:黄工
EMAIL:3005423122@qq.com
电话:0755-83040712
QQ:3005763927
微信:扫下方二维码添加
Hkx-wx.jpg

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