延續前一篇文章: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()
[結果]
[參考資料]
- Github:adafruit/Adafruit_Python_DHT
張貼留言