以下測試參考 Ranerd 的這篇 :
文中使用的 DHT22 模組為四隻腳, 但現在市面上的都是 +Vcc (左), GND (右), 以及 Data (中) 三隻腳, 以前要接的電阻現在應該已經整合到模組裡面去了. 原始程式使用 GPIO14 與 DHT22 中間的 Data 腳相接, 我改為 GPIO12. 另外於 while 無窮迴圈外加一層 try except 用來捕捉 Ctrl + C 鍵盤中斷事件, 這樣程式才不會停不下來 :
from machine import Pin
from time import sleep
import dht
sensor = dht.DHT22(Pin(12))
try:
while True:
try:
sleep(2)
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
temp_f = temp * (9/5) + 32.0
print('攝氏溫度: %3.1f C' %temp)
print('華氏溫度: %3.1f F' %temp_f)
print('濕度: %3.1f %%' %hum)
except OSError as e:
print('無法讀取 DHT22 輸出')
except KeyboardInterrupt:
pass
結果可正常讀取溫濕度值 :
執行中按 Ctrl+C 可隨時終止執行 :
參考 :
沒有留言:
張貼留言