前言

溫溼度感測在智慧家庭中是很基本且重要的應用,也是環境監控的重要數據之一。在這篇文章中,我們將在 WFduino 與 Scratch 3 的環境下來讀取連接至 Arduino Uno 的溫溼度感應器 DHT11 的溫度與濕度。

溫溼度感應器 DHT11

很多實驗板都有內建 DHT11 溫溼度感應器,但是如果使用的是 Arduino 的板子且未加上合適的擴充板,那麼我們就需要使用外接的 DHT11 元件。購買 DHT11 元件時通常包含兩種形式,一種是三支接腳,而另外一種則是四支接腳。如果是四支接腳的 DHT11,因為必須使用到上拉電阻 (Pull-up Resistor),所以最好是接到麵包板上會比較方便。

需要特別注意的即使同是三支接腳的 DHT11,接腳的位置順序也可能有所不同。這次我使用的元件是 Keyes 推出的 KY-015 (實際外觀可參考下圖右邊元件),訊號輸出為標示 S 的接腳。但是也有訊號輸出為中間接腳的布線 (實際外觀可參考下圖左邊元件),因此在接線前最好還是先仔細確認。

兩種不同接腳方式的 3 Pin DHT11

兩種不同接腳方式的 3 Pin DHT11

上圖中兩個 DHT11 上方各有一個藍色的元件,注意看其皆為四個接腳。我前面提到 DHT11 有四隻接腳的形式,講的就是這個。我也提到使用四個接腳形式的 DHT11 必須加上上拉電阻,而三支接腳形式通常已經把上拉電阻直接做在板子上,所以使用上方便許多。其實很多元件都有這種差別,包含最基本的元件以及加上配合電路的模組化兩類形式。雖然模組化的價格比較高,但是因為使用方便,而且相對體積小,往往反而是比較省事的選擇。因此在採購前必須詳加確認你需要的是哪種形式,不然很容易因為只是看到價格便宜就買錯了。

除了 DHT11 之外,WFduino 的積木也支援 DHT22,但是卻不支援類比形式的 LM35 溫度感測器。此外,DHT11 是一個低準確度的感測器,對於溫溼度變化的反應也相對緩慢,使用上須多加注意。

開發環境建置

如果你還沒有建置 WFduino + Scratch 3 的開發環境,請參考這篇文章

線路圖

Arduino 與 DHT11

Arduino 與 DHT11

如之前所述,這個範例使用的是 Keyes 所推出的 DHT11。如果依上方線路圖所呈現的方式擺放,三隻接腳由左至右分別為訊號、VCC 與 GND,因此須分別連結至 Arduino 的編號 7 腳位、+5V 以及 GND。如果你使用的 DHT11 擁有不同的接腳順序,請記得根據實際的接腳位置進行接線。因為此元件已經內建上拉電阻,所以在此可以省略麵包板而直接接線。

程式範例

Arduino 與 DHT11 (Scratch 3 範例)

Arduino 與 DHT11 (Scratch 3 範例)

  1. 在 WFduino 中使用 DHT11 相當簡單,只要先使用 “溫溼度感測器” 積木設定 DHT11 訊號接腳所連接的腳位,之後再利用 “DHT” 積木就可以讀取到 DHT11 所感測到的溫度與濕度。DHT11 積木貼心地提供了攝氏與華氏兩種溫度,因此我們可以根據情況選擇合適的溫度基準。
  2. 因為在線路圖中我們將 DHT11 的訊號接腳連接至腳位 7,所以在此透過 “溫溼度感測器” 積木設定使用腳位 7。
  3. 除了 DHT11 之外, “溫溼度感測器” 積木還支援了 DHT21 與 DHT22。
  4. 當程式開始執行後,我們就可以看到 Scratch 貓咪說出目前的攝氏溫度與濕度,如下圖所示:

    WFduino 控制溫溼度感應器 DHT11 執行結果 (Scratch 3)

    WFduino 控制溫溼度感應器 DHT11 執行結果 (Scratch 3)

Facebook 留言
Print Friendly, PDF & Email
Summary
WFduino + Scratch 3 + Arduino 使用 DHT11 讀取溫溼度
Article Name
WFduino + Scratch 3 + Arduino 使用 DHT11 讀取溫溼度
Description
溫溼度感測在智慧家庭中是很基本且重要的應用,也是環境監控的重要數據之一。在這篇文章中,我們將在 WFduino 與 Scratch 3 的環境下來讀取連接至 Arduino Uno 的溫溼度感應器 DHT11 的溫度與濕度。
Author
Publisher Name
Everlearn Studio
Publisher Logo