延續前一篇文章:
Raspberry Pi 筆記(53):I2C連接LCD1602顯示日期時間,如要將DHT11的溫濕度顯示在 LCD1602上,要怎麼做呢?我的作法是使用 Adafruit_DHT Python程式,以下說明線路的連接方式及執行的程式。
[線路與連接]
Pi 接腳 | LCD1602 I2C接腳 | DHT11 |
Pin 4(+5V) | VCC | VCC |
Pin 6(GND) | GND | GND |
Pin 3 | SDA | - |
Pin 5 | SCL | - |
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()
[結果]
[參考資料]
張貼留言