物联网AI MicroPython传感器学习 之 BMP280气压传感器

这篇具有很好参考价值的文章主要介绍了物联网AI MicroPython传感器学习 之 BMP280气压传感器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学物联网,来万物简单IoT物联网!!bmp280,物联网传感器,物联网,人工智能,嵌入式硬件,学习,python

一、产品简介

BMP280是博世出品的气压传感器,它集成了压电压力传感单元、信号处理电路及模数转换器,气压值可以通过SPI或I2C读出,在室内导航、无人机、气象站等场景有广泛应用。
本文档使用I2C通信接口作为本教学文档输出。
bmp280,物联网传感器,物联网,人工智能,嵌入式硬件,学习,python

引脚定义

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

二、技术参数

  • 供电电压:1.9~3.6V
  • 通信方式:可以采用I2C或SPI通信协议
  • 气压测量范围: 300hPa至1100hPa,最大误差为±12hPa
  • 工作温度范围: -40摄氏度 - +85摄氏度
  • 封装尺寸: 2.0mm * 2.5mm* 0.95mm

三、软件接口

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

  • 函数原型:

bmpObj = BMP280(i2cObj)

  • 参数说明:
参数 类型 必选参数? 说明
i2cObj I2C 传入I2C对象
  • 返回值:
    BMP280对象成功,返回BMP280对象;BMP280对象创建失败,抛出Exception
  • 示例代码:
from machine import I2C,Pin          # 驱动库
import bmp280                        # BMP280温湿度传感器驱动库

# 初始化I2C类型的设备
i2cObj = I2C(1, scl=Pin(22), sda=Pin(21), freq=400000)
print("bmp280 inited!")
bmpObj = bmp280.BMP280(i2cObj)  # 初始化创建BMP280传感器
  • 输出:
bmp280 inited!

getPressure - 测量气压

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

BMP280.getPressure()

  • 参数说明:
  • 返回值:
    成功返回温度测量结果(数据类型:浮点型;单位:Pa);失败抛出Exception
  • 示例:
from machine import I2C,Pin          # 驱动库
import bmp280                        # BMP280温湿度传感器驱动库

# 初始化I2C类型的设备
i2cObj = I2C(1, scl=Pin(22), sda=Pin(21), freq=400000)
print("bmp280 inited!")
bmpObj = bmp280.BMP280(i2cObj)  # 初始化创建BMP280传感器

pressure = bmpObj.getPressure()
print("pressure is ", pressure, "Pa")
  • 输出:
pressure is 103000Pa

四、接口案例

# Python代码
import utime                         # 延时API所在组件
from machine import I2C,Pin          # 驱动库
import bmp280                        # BMP280温湿度传感器驱动库

# 初始化I2C类型的设备
i2cObj = I2C(1, scl=Pin(22), sda=Pin(21), freq=400000)
print("bmp280 inited!")
bmpObj = bmp280.BMP280(i2cObj)  # 初始化创建BMP280传感器

def get_pressure():
    pressure = bmp280.getPressure()         # 获取大气压测量结果
    print("The pressure is: %.1f" % pressure)

    return pressure                        # 返回读取到的大气压值

if __name__ == '__main__':
    while True:
        data = get_pressure()                          # 读取温度信息和相对湿度信息
        utime.sleep(1)                                  # 每隔1秒钟进行一次温湿度信息测量和打印
  • 输出:
...
bmp280 inited!
The pressure is 103000Pa
...

五、通信协议

I2C最高传输速率可到3.4MHz,SPI最高传输速率可达10MHz,当CSB管脚接VCC时选择为IIC接口,当CSB管脚接GND时选择为SPI接口,I2C地址可配置0X76或者0x77,取决于SDO,SDO接GND时I2C地址维0x76,SDO接VCC时I2C地址为0x77
主控芯片和 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读取数据,引脚分布如下:
bmp280,物联网传感器,物联网,人工智能,嵌入式硬件,学习,python
典型电路如下,由于SCL和SDA为开漏输出,驱动能力不足,需要接上拉电阻。要通过IIC总线访问bmp280,CSB需要接到VDDIO。
bmp280,物联网传感器,物联网,人工智能,嵌入式硬件,学习,python

参考文献及购买链接

[1] BMP280气压传感器 - 学习手册
[2] BMP280气压传感器 - 购买链接文章来源地址https://www.toymoban.com/news/detail-848369.html

到了这里,关于物联网AI MicroPython传感器学习 之 BMP280气压传感器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 物联网AI MicroPython传感器学习 之 AS608指纹识别模块

    学物联网,来万物简单IoT物联网!! AS608指纹识别模块是一款高性能的光学指纹识别模块。它采用的是指纹识别芯片公司杭州晟元芯片技术有限公司生产的AS608指纹识别芯片。该芯片内置DSP运算单元,集成了指纹识别算法,能高效快速采集图像并对指纹特征进行识别。 该模块

    2024年04月27日
    浏览(46)
  • STM32配置读取BMP280气压传感器数据

    BMP280是在BMP180基础上增强的绝对气压传感器,在飞控领域的高度识别方面应用也比较多。 BMP280和BMP180的区别: 市面上也有一些模块: 这里介绍STM32芯片和BMP280的连接和数据读取。 BMP280和STM32的供电范围一致,可以在1.8V, 2.5V和3.3V多个供电电压点直接连接。 BMP280和STM32可以通

    2024年02月13日
    浏览(40)
  • STM32实现气压传感器测量(BMP180)

    目录 0.接线设计 1.功能描述 2.四种方式实现大气压采集 3.模块选择 4.编程环境 5.模块主要参数 6.代码实现         1)标准库模拟IIC实现气压值采集          2)标准库硬件IIC实现气压值采集          3)HAL库模拟IIC实现气压值采集         4)HAL库硬件IIC实现气

    2024年02月04日
    浏览(47)
  • ESP32设备驱动-BMP183温度传感器驱动

    BMP183 是 BMP085 的功能兼容后继产品,BMP085 是面向消费类应用的新一代高精度数字压力传感器。 BMP183 的超低功耗、低电压电子器件针对移动电话、PDA、GPS 导航设备和户外设备的使用进行了优化。 BMP183 在快速转换时的低海拔噪声仅为 0.25 米,可提供卓越的性能。 SPI 接口允许

    2024年02月06日
    浏览(56)
  • 【雕爷学编程】Arduino智能家居之使用Nano 33 IoT和BME280传感器发送温度和湿度数据到ThingSpeak

    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来

    2024年01月25日
    浏览(49)
  • 人工智能+物联网:从传感器到机器学习:智能化的数据采集和分析

    作者:禅与计算机程序设计艺术 大数据时代是一个数据爆炸的时代。如何从海量数据中快速找到隐藏在其中价值的信息,成为当今企业竞争中不可或缺的能力?人工智能和物联网正在成为经济领域和产业界的主流,新一代互联网物联网平台、AI智能终端、海量数据和算法驱动

    2024年02月09日
    浏览(73)
  • 智能传感器阅读笔记-物联网用智能传感器技术的发展重点

    物联网用智能传感器技术的发展重点 包含 边缘计算算法优化 、 身份认证算法优化 和 能量采集技术 。 图1  物联网用智能传感器技术的发展重点 边缘计算算法优化 边缘计算是指在靠近物或数据源头的一侧(传感器侧),采用集检测、计算、存储、通信功能于一体的平台,

    2024年02月20日
    浏览(51)
  • 物联网之传感器如何选型

    传感器的选型是一个涉及多个因素的过程,需要根据具体的应用场景、需求、预算和技术要求来进行综合考虑。以下是一些建议的步骤和方法,帮助您在自动窗帘系统中进行传感器选型: (1)明确需求:首先,明确自动窗帘系统的功能需求。例如,您需要控制窗帘的开关、调节

    2024年04月09日
    浏览(51)
  • 智能井盖传感器,物联网智能井盖系统

    随着城市人口的不断增加和城市化进程的不断推进,城市基础设施的安全和可靠性变得愈发重要,城市窨井盖作为城市基础设施重要组成部分之一,其安全性事关城市安全有序运行和居民生产生活安全保障。 近年来,各地都在加强城市窨井盖治理,在窨井盖管理方面也存在一

    2024年02月11日
    浏览(43)
  • 3个月快速入门LoRa物联网传感器开发

    在这里插入图片描述 LoRa作为一种LPWAN(低功耗广域网络)无线通信技术,非常适合物联网传感器和行业应用。要快速掌握LoRa开发,需要系统学习理论知识,并通过实际项目积累经验。 摘要: 先学习LoRa基础知识:原理、网络架构、协议等,大概需要2周时间。 然后选择LoRa开发板,编写简

    2024年02月14日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包