DHT22 是一款低成本數位溫濕度感測器,使用電容式濕度感測器和熱敏電阻測量周圍空氣,並輸出數位訊號。
幾款溫濕度計的使用心得,DHT22精準度算普普,比DHT11好太多了,AHT系列20與21都不錯用,主推。
DHT22與DHT11用法與接法都一樣,但DHT11太爛了不建議用。
DHT22規格:
工作電壓:3V~5.5V
輸出型式:數位訊號
溫度測量範圍:-40℃~80℃
溫度精準度:0.5℃
濕度測量範圍:0~100%RH
濕度精準度:2%RH
尺寸:28.2mm x 13.1mm x 5.5mm
重量:6g
接線方式:
| Raspberry PI PICO | DHT22/DHT11 |
| 電源3.3v | + |
| 任一GPIO (22) | out |
| GND | – |
主程式:
MicroPython韌體本身已經包含dht套件庫,所以不用另外安裝。
from machine import Pin, Timer
import dht
# 溫度感測器,這裡使用GPIO 22讀取
dht22 = dht.DHT22(Pin(22, Pin.IN))
# 定時抓溫度
th_timer = Timer()
# 抓溫度tag
tag_measure_th = False
def measure_th():
dht22.measure()
current_temp = dht22.temperature()
current_humidity = dht22.humidity()
print("溫度= " + str(current_temp) + "°C 濕度= " + str(current_humidity) + "%")
# 開始測量溫度
def start_measure_show_th(t):
global tag_measure_th
tag_measure_th = True
def main():
global tag_measure_th
# 測量溫度定時器 每3秒量測一次,此感測器不能太頻繁量測
th_timer.init(mode=Timer.PERIODIC, period=3000, callback=start_measure_show_th)
# 不斷檢查Tag是否被觸發,觸發後才去執行耗時處理,避免程式卡死
while True:
if tag_measure_th:
measure_th()
tag_measure_th = False
# 開始執行
main()
輸出如下:
溫度= 27.1°C 濕度= 50.2%
溫度= 27.1°C 濕度= 50.2%
溫度= 27.1°C 濕度= 50.2%
溫度= 27.1°C 濕度= 50.1%
溫度= 27.1°C 濕度= 50.2%
溫度= 27.1°C 濕度= 50.2%
-END-
發佈留言