skip to content
鰭狀漏斗

Arduino 溫溼度計 Part 1 - DHT22 溫溼度感測模組

/ 閱讀時間 4 分鐘

上次更新:

如標題所說,DHT22 是一個可以測量溫度及濕度的感測器。雖然精準度比 DHT11 好,不過價格也比 DHT11 還要高的多,為了使測量能夠更加精確,所以這次採用 DHT22 感測器。而且模組化使得安裝能夠更簡單,不需要自己加上電阻,也不需要自己焊接電子零件,因此 DHT22 感測模組相較之下是更好的選擇。

在一切開始之前,先確認以下材料是否都齊全了:

  • Arduino Uno - 1 塊
  • DHT22 溫溼度感測模組 - 若干塊
  • 麵包版 - 1 塊
  • 杜邦線 - 適量

首先,要去 Arduino 的官網下載 IDE,打開會像以下這樣。

將 Arduino Uno 經過 USB 線接到電腦後,點工具>序列埠選擇你已連接的裝置。

再來要匯入程式庫。

匯入程式庫

在 Arduino IDE 中,不一定要另外上網搜尋程式庫並下載匯入。它可以藉由程式庫管理員進行搜尋、下載和匯入,完全不用離開 IDE。

比如說,你可以點選草稿碼>匯入程式庫>管理程式庫…

等程式庫資訊更新完成後,搜尋 dht22,找到 DHT sensor library:

點 More info 可進入 github repository,點安裝即可安裝。

可以使用 這邊的版本 1.2.3 的範例程式碼

使用最新版本

當時最新版本還在 1.3.0 時提到 1.2.3 與 1.3.0 間對程式碼的修改只有這個 commit,看起來只是為了整合 Adafruit Unified Seneor 而更新,原始碼並沒有改變。

然而在 2019 年,這個程式庫重新變得活躍,帶來了更多更新,因此建議使用最新版。

從版本 1.3.0 起,就必須多安裝 Adafruit Unified Seneor 這個 library。

Adafruit Unified Seneor 也能在 Arduino IDE 的程式庫管理員中安裝。

安裝完後可以看看範例程式碼

硬體

再來進行硬體的配線。

DHT22 模組內有 3 個 port,依序標示+、out 及-。

  • +要接到 5v 接腳
  • out 要接到某個資料 port(建議從第 3 個 port 開始)
  • -要接到 GND 接腳

上傳程式

接完之後就來把剛剛的範例程式上傳到 Arduino 吧。

在範例程式的第 10 行(版本 1.2.3 為第 6 行):

#define DHTPIN 2 // what digital pin we're connected to

參數要改為你剛剛資料線接到的那個資料 port 編號

改完後點草稿碼>驗證/編譯 & 上傳,程式碼就上傳到 Arduino 了。開啟工具>序列埠監控視窗看看執行結果吧。