2016年5月17日 星期二

Grove - Temp&Humi Sensor DHT11 測試-使用LinkIt Smart 7688 Duo

Temp&Humi Sensor DHT11 測試-使用LinkIt  Smart 7688 Duo

 ****注意 LinkIt 7688 Duo 在 Arduino IDE 1.6.9 有問題 Arduino IDE 要用1.6.7*****
  

    Grove Starter Kit for LinkIt 7688 Duo 套件內的溫濕度感測器主要零件為 DHT11Aosong 出產的DHT 11 只能用於一般環境溫濕度檢測 檢測範圍 : 溫度 0~50℃ , 濕度 20-90%RH 價格便宜深受DIY族的喜愛

DHT11 簡介

      DHT11是一款經過校准過且直接以數字訊號輸出的溫濕度感測器。內含一個電阻式感濕元件和一個NTC測溫元件,並與一個8bit單晶片相連接。體積小、功耗低,傳輸距離最遠可達20公尺以上。


硬體安裝

Grove - Temp&Humi Sensor 

 Seeed Studio 料號 151118004 , 內容物 DHT11模組 X 1 Grove 線材 X 1


 先將Grove 線材一端插入DHT11模組


再將線材另一端插入LinkIt Smart 7688 Duo 底版的 A0 ,OLED插在 I2C



接好USB 跟電腦連接


Temp&Humi Sensor 函式庫安裝

Seeed 的 Library 不能用 !! 有時間在解 , 先下載 adafruit 的 Library 

到這裡下載函式庫

https://github.com/adafruit/DHT-sensor-library


下載後解壓縮放在

C:\Users\電腦\Desktop\arduino-1.6.7-windows\arduino-1.6.7\libraries


2016/10/27 後下載的adafruit DHT-sensor-library 要多下載 Adafruit_Sensor-master

https://github.com/adafruit/Adafruit_Sensor

2016/10/27 前下載到的 adafruit DHT-sensor-library 


2016/10/27 前下載到的 adafruit DHT-sensor-library 



開啟 Arduino IDE 輸入以下程式碼 複製貼上也可 

// 以下為程式碼
// DHT libraries 來源 adafruit
//https://github.com/adafruit/DHT-sensor-library
//https://github.com/adafruit/Adafruit_Sensor     // 2017/01/14 修正
//OLED 來源 Seeed-Studio
//https://github.com/Seeed-Studio/OLED_Display_128X64

#include <DHT.h>        
#include <Wire.h>        
#include <SeeedOLED.h>   

#define DHTPIN A0                     // 感測器接在 A0 接腳

#define DHTTYPE DHT11          // 感測器為 DHT11

DHT dht(DHTPIN, DHTTYPE); //初始化 DHT11 感測器

void setup() {

  dht.begin();
  Wire.begin();
  SeeedOled.init();                            //初始化 OLED 
  SeeedOled.setNormalDisplay();   //設定為正常顯示模式
  SeeedOled.setPageMode();        //設定為頁定址模式
 }

void loop() {
  delay(2000);                   //延遲2秒 這感測器很慢
    
  float h = dht.readHumidity();  //讀取濕度值
  float t = dht.readTemperature();        //讀取攝氏溫度
  float f = dht.readTemperature(true); //讀取華氏溫度
  
  if (isnan(h) || isnan(t) || isnan(f))  //如果讀取不到感測器
  {
  SeeedOled.clearDisplay();        //清除 OLED
  SeeedOled.setTextXY(0,0);                 //設定OLED 從0,0開始顯示
  SeeedOled.putString("Failed sensor! ");    //顯示字元 Failed sensor! 
    return;                                                       //一直重複這動作直到讀取感測器
  }

  SeeedOled.setTextXY(0,0);                  //設定OLED 從0,0開始顯示
  SeeedOled.putString("Humidity: ");    // 顯示字元 Humidity: 
  SeeedOled.putFloat(h);                        //顯示讀取的濕度值
  SeeedOled.putString("%");                 //顯示字元 % 
  SeeedOled.setTextXY(2,0);                //設定OLED 從2,0開始顯示
  SeeedOled.putString("Temp: ");        //顯示字元 Temp
  SeeedOled.putFloat(t);                       //顯示讀取的攝氏溫度值
  SeeedOled.putString("*C");            //顯示字元 *C
  SeeedOled.setTextXY(4,0);             //設定OLED 從4,0開始顯示  
  SeeedOled.putString("Temp: ");        //顯示字元 Temp 
  SeeedOled.putFloat(f);                     //顯示讀取的華氏溫度值
  SeeedOled.putString("*F");            //顯示字元 *F 

}

// 程式碼到此


確認 Arduino IDE 工具 選單 "版子"  "序列埠" 


確認好後按 "上傳"


第一次按 "上傳 " Arduino IDE 會顯示儲存檔案 請輸入 "DHT11"


上傳中..



上傳完成


    上傳完成後 OLED 會顯示 DHT11 感測器的目前溫濕度資料



   拔掉 DHT11 感測器 會顯示 "Failed sensor! "插回感測會顯示 DHT11 感測器的目前溫濕度資料





資料來源 :  Seeed Technology Co., Ltd   http://www.seeedstudio.com/depot/
                    Adafruit Industries LLC        https://www.adafruit.com/

2 則留言:

  1. 請問一下使用後跳出
    C:\Program Files (x86)\Arduino\libraries\DHT-sensor-library-master\DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory

    #include
    不知道如何解決

    回覆刪除
  2. 2016 10月時有改過libraries 要在多下載Adafruit_Sensorlibraries

    https://github.com/adafruit/Adafruit_Sensor

    回覆刪除