愛體驗認證

顯示具有 感測器 標籤的文章。 顯示所有文章
顯示具有 感測器 標籤的文章。 顯示所有文章

2019年5月3日 星期五

TCweng_DHT22溫溼度感應器教學arduino


DHT22是DHT系列
能力非常好的感應器

分辨率達到 
濕度0.1 %     溫度RH 0.1  ℃
量程范围有 
濕度0 ~ 99.9 %   溫度RH -40 ~ 80℃
至於精度也有不錯的表現  
濕度±2 %RH (25℃)   溫度( ±0.5℃)


接線

" - "或黑線 接負極
" + "或紅線 接正極
最後一個就是訊號線啦
今天我們把訊號線插在2號(D2)的位置


程式部分

首先要先下載DHT的函示庫
這個包含了DHT全系列的感應器函示
https://github.com/adafruit/DHT-sensor-library

到上面連結下載壓縮檔後
添加函示庫到Arduino就可以了

如果不會把函示庫添加到IDE裡的讀者
可以到上一篇文章閱讀




程式的部分y
!!!!注意不要複製到中文的部分喔


#include "DHT.h"

#define DHTPIN 2 // dht22的接腳



//#define DHTTYPE DHT11 // DHT 11

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

//#define DHTTYPE DHT21 // DHT 21 (AM2301)



DHT dht(DHTPIN, DHTTYPE);



void setup() {

Serial.begin(9600);

Serial.println("DHT test!");



dht.begin();

}



void loop() {



delay(2000);



float h = dht.readHumidity();

float t = dht.readTemperature();

float f = dht.readTemperature(true);





if (isnan(h) || isnan(t) || isnan(f)) {

Serial.println("Failed to read from DHT sensor!");

return;

}



float hif = dht.computeHeatIndex(f, h);

float hic = dht.computeHeatIndex(t, h, false);



Serial.print("Humidity: ");

Serial.print(h);

Serial.print(" %t");

Serial.print("Temperature: ");

Serial.print(t);

Serial.print(" *C ");

Serial.print(f);

Serial.print(" *Ft");

Serial.print("Heat index: ");

Serial.print(hic);

Serial.print(" *C ");

Serial.print(hif);

Serial.println(" *F");

}

2019年4月19日 星期五

TCweng_DHT11溫溼度感測器教學-Arduino

DHT系列溫溼度感測器
目前共有DHT11,DHT21和DHT22三種
且三種都為溫溼度複合的雙功能感應器
至於感測精度上當然就有差啦
從11開始精度往上遞增
當然價格也會落高一些
不過這個差距大改就是幾十元
所以TC覺得如果有精度上的需求
直接買21或22型號的會好一些
會感受到蠻大的差距

那就進入今天的正題
DHT11溫溼度感測器的製作
以下為感測器基本資訊
1. 供電電壓:3.3〜5.5V
2. 測量範圍:濕度20-90%RH
3. 溫度0〜50℃
4. 測量精度:濕度+ -5%RH

---------------------------------------------
接線
至於接腳的部分就要看你的板子了
有一個" - "號的就是負極
有一個" + "號的就是負極
最後一個就是訊號線啦
今天我們把訊號線插在2號(D2)的位置
------------------------------------------------
匯入程式庫
草稿碼->匯入程式庫->管理程式庫
打開後搜尋DHT.h
(如下圖)

找到上圖第二個
下載之後關掉就完成了
------------------------------------------------
底下是程式的部分
記得要選取序列埠跟板子的型號喔
上傳之後就能成功運作了!!!


#include "DHT.h"
#define dhtPin 2     //DHT11訊號線位置
#define dhtType DHT11 //選用DHT11 (另有21,22功能)  
DHT dht(dhtPin, dhtType); // 定義DHT感測器

void setup() {
  Serial.begin(9600);//設定鮑率9600
  dht.begin();//啟動DHT

}

void loop() {
  float h = dht.readHumidity();//讀取濕度
  float t = dht.readTemperature();//讀取攝氏溫度
  float f = dht.readTemperature(true);//讀取華氏溫度
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("傳感器讀取錯誤!");
    return;
  }

  Serial.print("濕度: ");

  Serial.println(h);
  Serial.println(" %");

  Serial.print("攝氏溫度: ");

  Serial.print(t);
  Serial.print(" *C");

  Serial.print("華氏溫度: ");

  Serial.print(f);
  Serial.print(" *F");

  delay(1000);  //延時1秒

}