Raspberry Pi 筆記(54):LCD1602顯示時間及溫濕度

延續前一篇文章:Raspberry Pi 筆記(53):I2C連接LCD1602顯示日期時間,如要將DHT11的溫濕度顯示在 LCD1602上,要怎麼做呢?我的作法是使用 Adafruit_DHT Python程式,以下說明線路的連接方式及執行的程式。

[線路與連接]

Pi 接腳LCD1602 I2C接腳DHT11
Pin 4(+5V)VCCVCC
Pin 6(GND)GNDGND
Pin 3SDA-
Pin 5SCL-
Pin 7-Pin 2

[準備工作]

程式中會使用到DHT11的溫濕度函式庫,需先安裝 Adafruit_DHT程式。指令如下:
$ pip install Adafruit_DHT
執行結果如下:

[程式]

延續上一篇的程式,增加安裝的Adafruit_DHT,呼叫Adafruit_DHT.read_retry()可取得溫濕度,再將測得的值顯示在LCD1602上。
#!/usr/bin/env python
import LCD1602
import time
import Adafruit_DHT

LCD1602.init(0x27, 1)   # init(slave address, background light)
GPIO_PIN = 4

try:
    print('Press Ctrl-C To Stop')
    LCD1602.clear()
    while True:
        h, t = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, GPIO_PIN)
        LCD1602.write(0, 0,"Time: {}".format(time.strftime("%H:%M:%S")))
        LCD1602.write(0, 1,"T={0:0.1f}C H={1:0.1f}%".format(t, h))
        time.sleep(1)
except KeyboardInterrupt:
    print('Close Program')
finally:
    LCD1602.clear()

[結果]


[參考資料]

Post a Comment

較新的 較舊