[尼克的robot]實做arduino溫溼度計 DHT21(22)+序列埠即時電腦顯示數值

從無到有 最詳細的步驟說明

首先,看了一下DHT系列感應器的規格後整理一下重點

目前市面上有有DHT11,DHT21,DHT22三種

除了DHT11之外其他兩種量測溫度的範圍都一樣

而精準度方面,DHT21就有很好的表現

也就是說如果想要玩稍微精準一點的量測

建議還是購買21以上的版本

至於尼克的感應器是AM2301,也就是DHT21

使用上就很讓我驚訝,跟DHT11精準度相差甚遠

以下是比較關鍵數據的比較表

  DHT11 DHT21 DHT22
量測範圍

0 - 50

(-40) - 80 (-40) - 80
分辨率 1 0.1 0.1
25度時精度 +/-4 +/-3 +/-2

 


回歸正題,這次使用到的材料有 : 

溫溼度感應器一顆,UNO板一塊

接線圖 : (右邊那也是溫度感應器,找不到dht)

然後大部分的DHT溫溼度感器接3.3或5V都可以

如果不確定的可以看他的規格書或先接3.3V


程式部分,先複製以下程式到arduino軟體

然後點擊程式最上方的兩個連結下載函示庫(下方有圖文解釋)

如果底下程式無法使用請到下方連結下載

(複製到這的程式某些文字好像會改變)

(也有可能複製到廣告,可以檢查一下奇怪的文字出現)

記得要整個資料夾下載喔(程式要存在一個同名的資料夾裡面)

https://drive.google.com/drive/folders/1wKF7TWhs4Y7Amy1VJE9YxolkVJNrC8gP?usp=sharing

 

//程式部分

 

/*

尼克的robot網址 :

https://kenny2019.pixnet.net/blog

*/

// Adafruit Unified Sensor Library: https://github.com/adafruit/Adafruit_Sensor
// DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library

#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>

#define DHTPIN  2     // 連接digital 2號針腳

// 選擇你感應器的型號
//#define DHTTYPE           DHT11     // DHT 11 
//#define DHTTYPE           DHT22     // DHT 22 (AM2302)
#define DHTTYPE           DHT21     // DHT 21 (AM2301)


DHT_Unified dht(DHTPIN, DHTTYPE);

uint32_t delayMS;

void setup() {
  
  Serial.begin(9600); 
  dht.begin(); //初始化感應器
  Serial.println("DHTxx Unified Sensor Example");
  sensor_t sensor;
  dht.temperature().getSensor(&sensor);
  dht.humidity().getSensor(&sensor);
  delayMS = sensor.min_delay / 1000;
}


void loop() {
  
  delay(delayMS);
  // 獲取感應器讀值
  sensors_event_t event;  
  dht.temperature().getEvent(&event);
  if (isnan(event.temperature)) {
    Serial.println("Error reading temperature!");
  }
  else {
    Serial.print("Temperature: ");
    Serial.print(event.temperature);
    Serial.println(" *C");
  }
  // 獲取感應器濕度讀值
  dht.humidity().getEvent(&event);
  if (isnan(event.relative_humidity)) {
    Serial.println("Error reading humidity!");
  }
  else {
    Serial.print("Humidity: ");
    Serial.print(event.relative_humidity);
    Serial.println("%");
  }
}


這次使用到額外的兩個函式庫

所以要另外下載加入

 

加入程式庫教學 : 

進入程式上方網址連結後

點擊下載ZIP壓縮檔

 

下載完成後,進入arduino軟體點擊 草稿碼>>匯入程式庫>>加入ZIP程式庫

然後選擇下載下來的兩個程式庫就行囉


然後選擇你感應器的型號 : 

找到底下三行程式

把你的感應器型號前方的//符號刪除

另外兩行前方加入//就可以了

接著直接上傳到開發板

上傳成功後,點擊右上方的放大鏡就可以看見數值了

 

 

下一篇預計教大家怎麼使用lcd模組顯示東西

然後再把溫溼度顯示在上面

 

 

 

 

 

 

文章標籤
全站熱搜
創作者介紹
創作者 尼克先生 的頭像
尼克先生

尼克的robot arduino機器人教學 佇立的一棵樹

尼克先生 發表在 痞客邦 留言(0) 人氣(1,660)