文号
937845
阅读
5094
回复
1
收藏
0
BMP280显示到I2C的LCD1602
2024/09/26
IP:天津

之前一直用0.96的OLED屏幕,现在想整一个显示范围大一点的屏幕来显示气压和温度,手头有块LCD1602一直闲置着,这块屏幕是带一块I2C转接板,网上只找到有LCD12864的驱动,找到一个I2C的调用库一烧录疯狂报错,重改了一下主函数这里把代码发一下,参考XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,使用的是原先BP机的那块板子飞线出来,搭透传模块的改成BMP280,原先放置0.96OLED屏幕的地方改成了1602,具体的引脚主函数有写,下面是需要的驱动(micropython设备)左下角,放在打包的zip里,就不放代码了

实际上整了一个测定氧气含量的试验,只不过用的是电打火,把温度和气压用屏幕显示出来

main.png

main

from achine import Pin, SoftI2C, Timer
from i2c_lcd import I2cLcd
import bmp280
import time

DEFAULT_I2C_ADDR = 0x27
i2c_lcd = SoftI2C(sda=Pin(23), scl=Pin(18))#屏幕
lcd = I2cLcd(i2c_lcd, DEFAULT_I2C_ADDR, 2, 16)
i2c_bmp = SoftI2C(sda=Pin(16), scl=Pin(17))#气压传感器
BMP = bmp280.BMP280(i2c_bmp)
#开机动画
def boot_animation():
    lcd.clear()
    lcd.putstr("1427")#替换
    for i in range(16):
        lcd.move_to(i, 1)
        lcd.putstr('|')
        time.sleep(0.125)
    lcd.clear()
    lcd.putstr("System Ready!")
    time.sleep(1)
    lcd.clear()

#显示温度大气压
def update_display(tim):
    temperature = BMP.getTemp()
    pressure = BMP.getPress() / 100
    lcd.clear()
    lcd.putstr('T: {:.2f} C'.format(temperature))#温度
    lcd.move_to(0, 1)
    lcd.putstr('P: {:.2f} hPa'.format(pressure))#大气压

#开机动画
boot_animation()

#刷新温度气压
tim = Timer(-1)
tim.init(period=1000, mode=Timer.PERIODIC, callback=update_display)#刷新频率

打包的程序文件

attachment icon AHT20+LCD1602.zip 14.62KB ZIP 4次下载

显示效果

a532741eea09482e4cfa80bfded9b0e.jpg 55b40d703ae6a4f0f068a4168782124.jpg

b8bda50eb240ea55cf40878e77ee620.jpg


1727317376810.png

等密封剂凝固再试验一下

[ 修改于2年1个月前 - 2024/09/26 10:57:16 ]
2年0个月前IP:四川
938993
1楼

这是通过消耗氧气看气压变化测含氧量吗,期待后续。

引用
评论(1)
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的