DHT11跟DHT22外觀幾乎一樣,插錯型號程式庫是不會跳錯的,但讀出來的數字就是不對——這是新手最常遇到的第一個坑,先講在前面。
兩顆的差異,買之前先搞懂
DHT11便宜、精度普通(濕度誤差±5%,溫度誤差±2°C),適合拿來練手或做不要求精準的小專案;DHT22貴一些但精度好很多(濕度±2%,溫度±0.5°C),而且量測範圍更廣,長期監控環境資料建議直接上DHT22,省得之後想升級又要重接線。
接線與常見錯誤
- VCC接3.3V或5V都可以(依模組版本),GND接地,DATA接任一數位腳位——這條線建議加一顆10K電阻上拉,雖然很多模組板已經內建,但如果你買的是裸感測器(只有4隻腳沒有PCB板),沒加電阻讀值會飄
- 程式庫記得裝對:Adafruit的DHT sensor library,建立DHT物件時要指定DHT11或DHT22,型號寫錯是最常見的烏龍
- 感測器有讀取間隔限制(DHT11約1秒、DHT22約2秒),loop()裡如果沒有delay直接狂讀,會拿到nan(not a number)
如果讀值一直是nan,先確認三件事:型號設定對不對、接線有沒有鬆脫、還有delay夠不夠長。九成的問題都出在這三個地方,不用懷疑到板子本身壞掉。
