MicroPython的BMP280驱动

MicroPython相关代码、库、软件、工具
头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

MicroPython的BMP280驱动

#1

帖子 shaoziyang »

BMP280是一个高精度的温度和气压传感器,是BMP180的升级型号。不但体积更小,精度更好,功耗也大幅度降低了。

今天完成了BMP280程序的移植,在程序移植过程中,发现了好几个坑,耽误了不少时间,幸好还是解决了。
使用起来非常简单,只要import bmp280库,就可以获取气压、温度、高度了。

代码: 全选

from machine import I2C
import time

import bmp280

b = bmp280.BMP280(I2C(1))

while True:
    time.sleep_ms(500)
    b.get()
完整的程序库:

https://github.com/shaoziyang/mpy-lib/t ... sor/bmp280
 

zhanghuanzhang
帖子: 1
注册时间: 2021年 12月 30日 10:59

Re: MicroPython的BMP280驱动

#2

帖子 zhanghuanzhang »

你好,我装上了你这个驱动,但是总显示这个错误OSError: [Errno 5] EIO,不知道你遇到过么

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

Re: MicroPython的BMP280驱动

#3

帖子 shaoziyang »

先检查一下I2C连接是否正常。如果I2C正常,在根据错误提示,查看是哪行代码引起的错误,判断错误原因。

追捕小螳螂
帖子: 3
注册时间: 2022年 2月 20日 22:34

Re: MicroPython的BMP280驱动

#4

帖子 追捕小螳螂 »

请问大佬:I2C(1)中的1指的是啥?
from machine import I2C
import time

import bmp280

b = bmp280.BMP280(I2C(1))

while True:
time.sleep_ms(500)
b.get()
上次由 追捕小螳螂 在 2022年 2月 20日 23:18,总共编辑 1 次。

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

Re: MicroPython的BMP280驱动

#5

帖子 shaoziyang »

追捕小螳螂 写了:
2022年 2月 20日 22:53
请问大佬:I2C(1)中的1指的是啥?
from machine import I2C
import time

import bmp280

b = bmp280.BMP280(I2C(1))

while True:
time.sleep_ms(500)
b.get()

 
I2C(1)指的的硬件I2C1,也就是第一个硬件I2C模块。

追捕小螳螂
帖子: 3
注册时间: 2022年 2月 20日 22:34

Re: MicroPython的BMP280驱动

#6

帖子 追捕小螳螂 »

大佬您好,我的模块是esp8266的,接的5和4两个针脚,在您写的测试的那个代码基础下,我稍微修改了一下:  b = bmp280.BMP280(I2C(scl=Pin(5), sda=Pin(4))),然后返回
>>> exec(open('./runbmp280.py').read(),globals())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 6, in <module>
  File "bmp280.py", line 20, in __init__
  File "bmp280.py", line 60, in get2Reg
  File "bmp280.py", line 55, in getReg
OSError: [Errno 19] ENODEV

我查了一下是意思是好像是传感器地址问题

有这么几个问题请教您:
1.我的传感器是aht20+bmp280二合一的板子,就是一个板子有两个传感器,4针的,是不是两个传感器不能共用一个i2c啊
2.我现在是两个驱动文件分开上传的,就是两个.py  ,然后aht20能够正常出数据,280不能,显示上面的问题(280的驱动用的您写的那个最新的mpy drive for BMP280 Digital Pressure Sensor)。
3.现在手头上使用的传感器是淘宝AHT20+BMP280 3.3v紫色颜色板子,,没有资料。。。不过有一款类似的黑白配色的20+280 5v的,那个资料是c的,不过驱动好像是分开的,具体没研究明白。。。
4.i2c地址可不可以开头那样写,这样的错误代码会不会与I2C_ADDR有关

希望大佬能指点一下,谢谢

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

Re: MicroPython的BMP280驱动

#7

帖子 shaoziyang »

印象中奥松的传感器不是标准I2C的,可能会有干扰,可以试试独立的BMP280模块。
 

追捕小螳螂
帖子: 3
注册时间: 2022年 2月 20日 22:34

Re: MicroPython的BMP280驱动

#8

帖子 追捕小螳螂 »

扫描了一下地址是0x77,很奇怪,四针默认应该是0x76?不行就直接上bme了

谢谢大佬的回复了!

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

Re: MicroPython的BMP280驱动

#9

帖子 shaoziyang »

在I2C模式下,BME280的地址受SDO引脚影响。


地址SDO
0x760
0x771
 
 
 
 

alpha49
帖子: 5
注册时间: 2022年 12月 7日 10:52

Re: MicroPython的BMP280驱动

#10

帖子 alpha49 »

大佬为什么那个网址我进不去啊

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章