วันอังคารที่ 7 มีนาคม พ.ศ. 2560

การใช้ Arduino วัดอุณหภูมิและความชื้นด้วย DHT11

รู้จัก DHT11

เป็นเซ็นเซอร์ที่ใช้วัดอุณหภูมิเป็นองศาเซลเซียล และองศาฟาเรนไฮ ยังสามารถวัดความชื้นได้อีกด้วย มีไลบารี่พร้อมใช่งานกับ Arduino สามารถใช้วัดค่าได้เที่ยงตรงกว่า NTC หรือ PTC มาก เพราะให้เอาต์พุตออกมาในรูปของดิจิตอล ใช้วัดอุณหภูมิอากาศโดยรอบ

การใช้งาน

DHT11 มีทั้งหมดอยู่ 4 ขา คือ
ลำดับขาใช้งาน
1VCC
DATA
NC
GND
DHT11 จะใช้วิธีการส่งข้อมูลให้กับไมโครคอนโทรลเลอร์ด้วยสายเพียงเส้นเดียวในแบบของดิจิตอลลอจิก

วงจรใช้งานกับ Arduino

Arduino library

สามารถดาว์โหลดได้จากลิ้ง https://github.com/adafruit/DHT-sensor-library นำไฟล์ที่คลายแล้ว ไปวางในโฟลเดอร์ Arduino\libraries แล้วก๊อบโค้ดด้านล้างลงบอร์ด
/* IOXhop - www.ioxhop.com */
#include "DHT.h"

#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
   Serial.begin(9600); 
   Serial.println("DHTxx test!");

   dht.begin();
}

void loop() {
   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 hi = dht.computeHeatIndex(f, h);

   Serial.print("Humidity: "); 
   Serial.print(h);
   Serial.print(" %\t");
   Serial.print("Temperature: "); 
   Serial.print(t);
   Serial.print(" *C ");
   Serial.print(f);
   Serial.print(" *F\t");
   Serial.print("Heat index: ");
   Serial.print(hi);
   Serial.println(" *F");
  
   delay(2000);
}
เมื่อเปิด Serial Monitor ขึ้นมา ก็จะพบกับข้อความแสดงอุณหภูมิดังรูปด้านล่างนี้
-----------------------------------------------------------------------------------
DHT11 มีการตอบสนองต่ออุณหภูมิที่ค่อนข้างช้า ไม่ควรนำไปใช้วัดในสภาพแวดล้อมที่มีการเปลี่ยนแปลงไปอย่างรวดเร็ว

ไม่มีความคิดเห็น:

แสดงความคิดเห็น