微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 raspberry pi pico 和 DHT22 传感器作为气象站时,1602 LCD 显示器显示额外的小数点时出现问题

如何解决使用 raspberry pi pico 和 DHT22 传感器作为气象站时,1602 LCD 显示器显示额外的小数点时出现问题

我仍然是编码新手,能够将其他来源的一些代码组合在一起,用于我构建的一个简单气象站。一切似乎都运行良好,但我偶尔会遇到打嗝,显示屏上的温度读数显示超出 0.1-0.9 的额外小数点。我插入了一个 round 命令来舍入到最接近的小数点,我认为这会解决这个问题,但它仍然随机发生。通过外壳显示温度读数时没有问题。它似乎在显示器上的随机温度读数中添加了额外的小数点。我已经包含了图片代码。绝对会感谢我能解决这个问题的任何帮助。谢谢。

from machine import Pin
import utime as time
from pico_i2c_lcd import I2cLcd
from machine import I2C
from DHT22 import DHT22

i2c = I2C(id=1,scl=Pin(27),sda=Pin(26),freq=100000)
lcd = I2cLcd(i2c,0x27,2,16)
dht_data = Pin(15,Pin.IN,Pin.PULL_UP)
dht_sensor=DHT22(dht_data,Pin(14,Pin.OUT),dht11=False)

while True:
     T,H = dht_sensor.read()
    #Converted to Fahrenheit (FT) for LCD display
    FT = T*1.8+32
    if T is None:
        print(" sensor error")
    else:
        print("{:3.1f}'C  {:3.1f}%".format(T,H))
    #DHT22 not responsive if delay too short
    time.sleep_ms(500)
    
    lcd.clear()
    lcd.move_to(0,0)
    lcd.putstr('Temp:')
    lcd.move_to(10,0)
    #If using Celsius,change (FT) to (T) and "F" to "C" on line below
    lcd.putstr(str(round(FT,1))+"F")
    lcd.move_to(0,1)
    lcd.putstr('Humidity:')
    lcd.move_to(10,1)
    lcd.putstr(str(H)+"%")`

what it normally looks like

the hiccup that randomly appears

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。