来这里发现更多拿来即用的传感器

HaaS开发框架HaaS积木方案,赋能生态开发者,让您快速找到自己需要的解决方案,硬件主板与外设,以及各种应用组件。https://haas.iot.aliyun.com/solution/hardware

一、产品简介

BMP280是博世出品的气压传感器,它集成了压电压力传感单元、信号处理电路及模数转换器,气压值可以通过SPI或I2C读出,在室内导航、无人机、气象站等场景有广泛应用。

引脚定义

  • VCC: 3.3V
  • GND: GND
  • SCL: IIC时钟
  • SDA: IIC数据
  • CSB: 3.3V
  • SDO: GND

二、技术参数

  • 供电电压:1.9~3.6V
  • 可以采用I2C或SPI通信协议(HaaS Python实现了IIC接口驱动),I2C最高传输速率可到3.4MHz,SPI最高传输速率可达10MHz,当CSB管脚接VCC时选择为IIC接口,当CSB管脚接GND时选择为SPI接口,I2C地址可配置0X76或者0x77,取决于SDO,SDO接GND时I2C地址维0x76,SDO接VCC时I2C地址为0x77
  • 气压测量范围: 300hPa至1100hPa,最大误差为±12hPa
  • 封装:8-pin LGA metal-lid,2.0mm * 2.5mm, height: 0.95mm
  • 工作温度范围: -40摄氏度 - +85摄氏度

三、软件接口

BMP280气压传感器HaaS Python驱动:下载地址

BMP280(i2cObj) - 创建BMP280驱动对象

  • 函数原型:

bmpObj = BMP280(i2cObj)

  • 参数说明:
参数 类型 必选参数? 说明
i2cObj I2C 调用此函数前需确保i2cObj对象已经处于open状态
  • 返回值: BMP280对象成功,返回BMP280对象;BMP280对象创建失败,抛出Exception
  • 示例代码:
from driver import I2C               # 驱动库
import bmp280                        # BMP280温湿度传感器驱动库
# 初始化I2C类型的设备
i2cObj = I2C()
i2cObj.open("bmp280")                # 按照board.json中名为"bmp280"的设备节点的配置参数(主设备I2C端口号,从设备地址,总线频率等)初始化I2C类型设备对象
print("bmp280 inited!")
baroDev = bmp280.BMP280(i2cObj)  # 初始化BMP280传感器
  • 输出:
bmp280 inited!

getPressure - 测量气压

  • 函数功能: 量测气压值并返回测量结果
  • 函数原型:

BMP280.getPressure()

  • 参数说明: 无
  • 返回值: 成功返回温度测量结果(数据类型:浮点型;单位:Pa);失败抛出Exception
  • 示例:
from driver import I2C               # 驱动库
import bmp280                        # BMP280温湿度传感器驱动库
# 初始化I2C类型的设备
i2cObj = I2C()
i2cObj.open("bmp280")                # 按照board.json中名为"bmp280"的设备节点的配置参数(主设备I2C端口号,从设备地址,总线频率等)初始化I2C类型设备对象
baroDev = bmp280.BMP280(i2cObj)  # 初始化BMP280传感器
pressure = baroDev.getPressure()
print("pressure is ", pressure, "Pa")
  • 输出:
pressure is 103000Pa

四、接口案例

此使用实例在board.json中定义了名为bmp280的I2C类型的对象。在Python脚本中周期性的获取温湿度测量结果并打印在日志中。

  • 代码:
# board.json配置:
{"name": "board-name","version": "1.0.0","io": {"bmp280": {"type": "I2C","port": 0,"addrWidth": 7,"freq": 400000,"mode": "master","devAddr": 118}},"debugLevel": "ERROR","repl": "disable"
}
# Python代码
import utime                         # 延时API所在组件
from driver import I2C               # 驱动库
import bmp280                        # BMP280温湿度传感器驱动库
# 初始化I2C类型的设备
i2cObj = I2C()
i2cObj.open("bmp280")                # 按照board.json中名为"bmp280"的设备节点的配置参数(主设备I2C端口号,从设备地址,总线频率等)初始化I2C类型设备对象
baroDev = bmp280.BMP280(i2cObj)  # 初始化BMP280传感器
# 通过温湿度传感器读取温湿度信息
def get_pressure():pressure = baroDev.getPressure()         # 获取大气压测量结果print("The pressure is: %.1f" % pressure)return pressure                        # 返回读取到的大气压值
if __name__ == '__main__':while True:data = get_pressure()                          # 读取温度信息和相对湿度信息utime.sleep(1)                                  # 每隔1秒钟进行一次温湿度信息测量和打印i2cObj.close()                                      # 关闭I2C设备对象
  • 输出:
...
The pressure is 103000Pa
...

五、通信协议

主控芯片和 BMP280 传感器之间通信所用命令字如下表所示:

序号 命令字 功能说明 命令字宏定义
1 0x88 读T1校准参数 CMD_READ_DIG_T1
2 0x82 读T2校准参数 CMD_READ_DIG_T2
3 0x8c 读T3校准参数 CMD_READ_DIG_T3
4 0x8e 读P1校准参数 CMD_READ_DIG_P1
5 0x90 读P2校准参数 CMD_READ_DIG_P2
6 0x92 读P3校准参数 CMD_READ_DIG_P3
7 0x94 读P4校准参数 CMD_READ_DIG_P4
8 0x96 读P5校准参数 CMD_READ_DIG_P5
9 0x98 读P6校准参数 CMD_READ_DIG_P6
10 0x9a 读P7校准参数 CMD_READ_DIG_P7
11 0x9c 读P8校准参数 CMD_READ_DIG_P8
12 0xFA 读取温度 CMD_READ_TEMPERATURE
13 0xF7 读取大气压 CMD_READ_PRESSURE

实际控制此传感器的流程可参考如下描述。

  • 一次获取数据
通过 IIC 发送CMD_READ_DIG_T1-CMD_READ_DIG_T3获取温度校准参数并且发送CMD_READ_DIG_P1-CMD_READ_DIG_P8获取气压校准参数;
通过 IIC 发送CMD_READ_TEMPERATURE获取温度RAW数据,通过温度校准参数计算
得到实际摄氏度温度;
通过 IIC 发送CMD_READ_PRESSURE获取气压RAW数据, 通过气压校准参数和温度校准
参数数计算得到实际气压Pa;

六、工作原理

从下图可以看到bmp280内部集成了压力传感单元,通过ADC采样输入到校正储存器。通过数字接口IIC或SPI读取数据。

引脚分布如下,3和4号脚是IIC总线接口的SCL和SDA管脚。

典型电路如下,由于SCL和SDA为开漏输出,驱动能力不足,需要接上拉电阻。要通过IIC总线访问bmp280,CSB需要接到VDDIO。

参考文献及购买链接

[1] BMP280气压传感器

[2] 购买链接

【HaaS Python 硬件积木】 BMP280气压传感器相关推荐

  1. 【HaaS Python硬件积木】HCSR04超声波测距传感器

    来这里发现更多拿来即用的传感器 HaaS开发框架HaaS积木方案,赋能生态开发者,让您快速找到自己需要的解决方案,硬件主板与外设,以及各种应用组件.https://haas.iot.aliyun.co ...

  2. 【HaaS Python硬件积木】土壤湿度传感器

    来这里发现更多拿来即用的传感器 HaaS开发框架HaaS积木方案,赋能生态开发者,让您快速找到自己需要的解决方案,硬件主板与外设,以及各种应用组件.https://haas.iot.aliyun.co ...

  3. 【HaaS Python 硬件积木】INA219电压电流计

    一.产品简介 INA219电压电流计可用于测量负载的电压.电流.功率等参数,可以用于服务器.电脑笔记本.电源.电池管理等电子电路设备提供电流电压值监测提供解决方案. 引脚定义 VCC:3.3V GND ...

  4. 【HaaS Python硬件积木】甲醛传感器

    一.产品简介 甲醛(化学式HCHO或CH2O)是一种有特殊刺激气味的气体,对人的眼睛和鼻子有强烈的刺激作用.若空气中甲醛浓度过高,比如新装修的房子.新买的汽车等,可引起中毒反应,严重的可致癌.甲醛是空 ...

  5. 【HaaS Python硬件积木】水位监测传感器

    一.产品简介    水位监测传感器主要用于测量水位深度的传感器,该传感器测量范围在0cm-4cm,通过使用一系列五个连接到系统接地的裸露走线来工作.在每两个接地迹线之间交错插入一个感测迹线,五个接地迹 ...

  6. 【HaaS Python 硬件积木】粉尘传感器

    一.产品简介    GP2Y10粉尘传感器用于检测非常细的空气漂浮颗粒物,主要用于空气净化系统中,传感器外观引脚如下图所示. 引脚定义 GND:地 VCC:5V LED:输入信号 OUT:模拟信号输出 ...

  7. 【HaaS Python硬件积木】空气质量检测模块 - CCS811

    空气质量检测模块 - CCS811 来这里发现更多拿来即用的硬件积木 https://haas.iot.aliyun.com/solution/detail/hardware 一.产品简介 通过CCS ...

  8. 【HaaS Python硬件积木】AS608指纹识别模块 打造指纹门禁 开门有手就行

    一.产品简介 ATK-AS608指纹识别模块是ALIENTEK推出的一款高性能的光学指纹识别模块.它采用的是指纹识别芯片公司杭州晟元芯片技术有限公司生产的AS608指纹识别芯片.该芯片内置DSP运算单 ...

  9. 【HaaS Python硬件积木】乙醇传感器

    一.传感器简介 MQ3是汉威电子出品的乙醇传感器,它有快速相应.高敏感度.稳定.寿命长以及外围电路简单等多个优点,常用于酒精监测.呼吸分析仪等场景. 引脚定义 VCC: 5V A0: host ADC ...

最新文章

  1. Redis系列(七):缓存只是读写回种这么简单吗?如果是,那么请你一定看看这篇文章!...
  2. python xml字符串和dict字典互转
  3. 计算机与英语专业结合的案例,文科生可以申请加拿大计算机专业吗?让这个真实案例给你肯定的答案!...
  4. win10 mysql my.cnf_MySQL配置文件无法修改的解决方法(Win10)
  5. VC++2010配置使用MySQL5.6
  6. Luhn校验原理与实现【转载】
  7. python小程序设计4s店_python自写的车牌识别小程序,完全自主实现。图片处理
  8. 第二届世界智能大会,看大咖眼中的智能时代
  9. 对于初步搭建好的SSH框架进行简化(注解的使用)
  10. 快逸报表研究-冻结表头
  11. 学生简单个人博客网页DW模板 简单HTML静态网页设计个人主页制作 大学生个人网站模板下载 网页作业个人主页制作
  12. ESET NOD32 最新更新有效的升级ID用户名和密码
  13. 1一10到时的英文单词_1到10的英语单词
  14. PageAdmin网站建设教程:仿58同城站群实现不同地区Ip跳转不同分站
  15. plc通过无线通讯连接服务器,PLC无线通讯
  16. C语言中fopen函数使用举例及打开方式列表
  17. python查重算法_用Python实现通过哈希算法检测图片重复的教程
  18. python 给QQ好友发信息
  19. 位与:一个数1的结果
  20. development 和 production 模式的区别

热门文章

  1. CAD地形图!DWG格式的等高线地形图下载教程
  2. 网上买保险靠谱吗?线上保险和线下保险的区别在哪?
  3. 如何快速提升单片机编程水平?
  4. c语言程序中计算圆的面积,C代码:使用概率的方法计算圆的面积
  5. c语言函数指针 的定义方法,C语言 函数指针一(函数指针的定义)
  6. python中seaborn库_[Python学习笔记(四)] Seaborn库基础学习——01
  7. AAC编解码原理概述
  8. python海龟绘图-奥运五环
  9. 音频处理 windows10下python三方库librosa安装
  10. 创业团队产品如何战胜大公司的抄袭 腾讯抄你肿么办?