2017年8月4日 星期五

模組介紹 : faya 溫濕度感應模組


學習目標 : 認識faya 溫濕度感應模組的功能及使用方式
學習時間 : 40min
示範模組 : (1) faya brickNano
                 (2) faya串列LCD模組
                 (3) 16x2 LCD模組 (20x2 或 20x4 LCD亦可)
                 (4) faya溫濕度感應模組
工具 : (1) 樂高積木底板 (相容)


====================功能介紹====================
duino)讀取溫濕度的資料,他的外觀很簡單,只提供Data輸出埠,接到Arduino的數位腳後,就可以用外掛的函式讀取溫度與濕度的資料。


模組中央藍色的塑膠立方體就是溫濕度感測器,代號DHT11,他是一CP值很高的溫濕度感測器,對於一般環境偵測的精確度是可接受的,如果需要精確度更高的型號,可以選擇DHT21和DHT22可以參考!

接下來介紹使用指令
  • #include<dht.h>;
  • Arduino針對dht溫濕度感測器,開發了好用的函示庫,使用此感測器之前,記得先指示此函式標頭檔,此函式庫非內建,因此使用使函式前,請先將整個[dht]資料夾複製到Arduino底下的Libraries資料夾,本函式庫可從官方網站下載,也可從這邊下載。
  • dht 物件名稱  
      物件名稱 : 可自行命名,主程式辨別用

     (例) 當我們建構一物件名稱為"faya_dht11"時,我們在程式中需宣告:

     dht faya_dht11;

  • 物件名稱.read11(dht腳位) 
     此指令要求dht11感測溫濕度資料,並存在temperature和humidity變數中

     物件名稱 : 可自行命名,主程式辨別用
     dht腳位: dht11連接到Arduino的數位腳位

     (例) 當我們建構物件名稱為"faya_dht11",並把第5腳連到dht11時,程式中需宣告:

     faya_dht11.read11(5)


  • 物件名稱.temperature
     此指令取出temperature溫度資料
     
    (例) 當我們建構物件名稱為"faya_dht11",並要取出溫度資料時,程式中需宣告:

    faya_dht11.temperature;

  • 物件名稱.humidity
     此指令取出humidity濕度資料

    (例) 當我們建構物件名稱為"faya_dht11",並要取出濕度資料時,程式中需宣告:

    faya_dht11.humidity;


====================原理知識====================
以下解釋提供給有需要知道背後原理的人:

本模組所使的溫濕度感應器型號為DHT11,感應器的外觀有一藍色塑膠外殼,裡面除了溫濕度感測電路外,也包含了類比數位轉換電路和一顆微控制器,將轉換好的數位資料,編碼成特定格式,讓外部的控制器(我們用Arduino)讀取。

DHT11的量測規格如下,更詳細的規格和技術可參考datasheet:

濕度範圍: 20-90% RH
濕度準確度: ±5% RH
溫度範圍: 0-50 °C
溫度準確度: ±2% °C
操作電壓: 3V to 5.5V

faya溫濕度感應模組的電路圖如下,只要把Data腳位和微控制器中間加個提升電阻,就能開始使用了!


===================範例實作(1)===================
了解模組功能(原理)後,我們用以下範例來展示模組的功能:

目標: 
(1) 在 16x2 LCD顯示器上第一列顯示[目前溫度]
(1) 在 16x2 LCD顯示器上第二列顯示 [目前濕度]

接線:
(1) 電源線連接
     如下圖所示,連接的說明請看這篇文章 簡易版



(2) 訊號線連接
      Arduino_A4  ===>  串列LCD模組_SDA
      Arduino_A5  ===>  串列LCD模組_SCL


      Arduino_5 ===>  溫濕度感應模組_Data


範例程式:


備註:
- faya串列LCD的使用方式,請參考[模組介紹 : faya 串列LCD模組]
- L43列印溫度符號,他在lcd的R0M裡的代碼是0xDF,轉成八進位可用[/337]表示



範例結果:





討論:

本篇文章示範將溫溼度顯示在串列LCD模組上,我們曾經介紹過[faya串列七段顯示模組],大家也可以練習把這兩筆資料輪流放在此模組上喔!

歡迎大家在底下留言或到我們的粉絲團留言!
===================================

沒有留言:

張貼留言