|

【進階學習】探析 DHT11 溫度感測器

   

作者:陸向陽

 

在筆者過往的經驗中,微控制器(MCU)的課程,無論是在以前念書時的學校聽課(學校學名叫積體電路應用),或是出社會後的一些課程,似乎對基礎的說明相當少,幾乎都是快速進入實作,反正線路對了,載入範例程式後能動,老師就叫您做下一週的新實習。

筆者就這樣在學校學了 8255 I/O 擴充、8253/8254 計時器的喇叭發聲、ADC0804 類比數位轉換、DAC0800 數位類比轉換等,但其實畢業後依舊不知道 8253 的其他模式操作與提供各種模式的用意(有些用意還需要了解時空背景),若畢業專題沒有用到,也就不會深入,甚至為了趕快有成效,只要能動就好,不太需要追究箇中原理,專題一旦過關,就更放諸一邊了,這也是最近有一篇 Arduino / NXT 有害論會出現的原因。

DHT11 感測器的腳位

所以,筆者決定多談一點感測元件的技術細節,而 Arduino 實作中,多會有溫濕度的感測,並以 DHT11 感測器為多,因此想對此多一點說明。DHT11

首先各位會看到 DHT11 有 4 根接腳(大陸叫引腳),但其實只有 1、2、4 有用,第 3 支腳沒有任何用處,一般在 Datasheet 上會寫 NC(No Connection 的意思)。

1 號接腳接 Vdd(最低 3V,最高 5V,所以從 Arduino 這邊供電的話,給予 3.3V 或 5V 均可),4 號接腳接地,簡單說就是供應 DHT11 基本可運作的電力。

DHT11 是用電阻方式感應濕度,並用 NTC 方式感應溫度,DHT 內本來就有一顆 8 位元MCU,MCU 的工作就是把感測到的溫度、濕度,以數位信號方式,透過 2 號腳位傳遞出去,所以其實那顆 MCU 也內建類比轉數位功效(ADC),而溫濕度感測後的相關校準與係數,其實就燒錄在 MCU 的程式內,不過也無法更改了,因為是 OTP(One Time Program),燒寫一次就不能再更動程式內容。

由於輸出已經是數位型式,所以 2 號接腳與 Arduino 本體,即便相隔一段距離仍可正常傳遞,傳遞過程中仍有一定程度的抗雜訊能力,一般而言能有 20 公尺以上長度。DHT11-Circuit

在各種細節的處理上也要非常細膩

值得注意的是,DHT11 的 Datasheet 提到,若傳輸距離太短,最好在 2 號的信號輸出線路上,加上一個 5k 歐姆的外部提升電阻,由於實務上不易找到剛好 5k 歐姆的,也可以找電阻值稍大或稍小的,例如 4.7k 歐姆。

如果長度超過 20 公尺,也建議找一個合適的提升電阻,但阻值需要再行量測,依據不同的長度,以及到達 Arduino 時的邏輯電壓準位,從而選擇合適的阻值。

另外,Datasheet 也建議在 Vdd 與接地線路間接一個 100nF 的電容,讓電源可以潔淨一點,避免雜訊影響。而剛接上電源時,要等待約 1 秒,讓 DHT11 完成各項初始、校準,才能開始使用。

當然,DHT11 也涉及它的時序(Timing)、信號準位與速度要求、協定格式等,但通常要到更細膩的開發與除錯時才會更深入探究。

進一步的,其他有些東西也會影響 DHT11,例如長時間的強烈陽光或紫外線、化學材料產生的蒸汽等,會影響 DHT11 的運作效率,而且筆者也建議傳遞信號的導線(特別指 2 號線路)最好能有良好的包覆,以確保信號品質,在野外使用也要避開露水。

如果要拿 DHT11 來正式製作產品,則需要進行焊接(不再是麵包板的實習),建議焊槍溫度不要高過攝氏 260 度,也不用接觸超過 10 秒鐘,以免焊槍的高溫把 DHT11 燒壞。

最後,其實 DHT11 是一個比較初階、平價的感測器,其實在同公司的產品中,還有更好的 DHT22 可選,若期望解析度、精準度高一點,或者是溫、濕度偵測範圍能大一點,可以考慮 DHT22。

陸向陽
Latest posts by 陸向陽 (see all)
【自造者創業】ATOM 2.0如何靠群募逐步擴展市場
Ameba創意大賽開跑 打通Maker to Market的最後一哩路

訂閱MakerPRO知識充電報

與40000位開發者一同掌握科技創新的技術資訊!

Author: 陸向陽

從電子科系畢業後,即以媒體人的角色繼續這段與「電子科技」的不解之緣。歷任電子技術專書作者、電子媒體記者、分析師等角色,並持續寫作不殆。近來投入Arduino、Raspberry Pi等開放硬體的研究與教程介紹。

Share This Post On

2 Comments

    • 歡迎到MakerPRO社群提問:https://www.facebook.com/groups/makerpro.cc/

      Post a Reply

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *