2015/Dec/29

4. การใช้งาน DHT22 Humidity and Temperature Sensor (Board NodeMCU v.2 พร้อม ESP8266 wi-fi Module)

หลังจากที่ลอง บอร์ด Board NodeMCU V.3 พร้อม ESP8266 wi-fi Module กันมาแล้วคราวนี้เรามาลองให้ทำการอ่านค่าจาก DHT22 Humidity and Temperature Sensor กันดีกว่า 

อุปกรณ์ DHT22 Humidity and Temperature Sensor หน้าตาก็เป็นแบบนี้ครับ

  

ใครต้องการดู Data sheet ก็เข้าไปอ่านได้จาก http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Weather/RHT03.pdf 

ต่อวงจรง่ายๆ ตามรูปเลยครับ 

จากนั้นก็ทำการ Donload Driver ของ DHT22 จากเว็บไซต์ https://github.com/adafruit/DHT-sensor-library 

เอามาติดตั้งในแฟ้ม C:\Program Files (x86)\Arduino\libraries 
** directory ขึ้นอยู่กับว่าท่่านติดตั้งที่ไหนนะครับ แต่อยู่ในแฟ้ม libraries เปลี่ยนชื่อแฟ้มให้เป็น DHT 

กำหนดให้ใช้ DHT Library DHT Sersor

จากนั้นก็คัดลอก Code ลงไป 

เปิด Serial Monitor แล้ว ลอง Run ดูครับ 

ผลการทดลอง สามารถอ่านค่าได้เป็นที่น่าพอใจครับ ขอจบ การทดลองที่ 4 ไปก่อนนะครับ คราวหน้ามาเจอกันใหม่ 

edit @ 29 Dec 2015 19:30:10 by BigTUI ^_^

เพิ่มเติมครับ กรณีที่เป็น DHT11 

  

เราก็เพียงแต่เปลี่ยน จาก DHT22 เป็น DHT11 เท่านั้นเองครับ 

ผลปรากฏว่าใช้ได้ สามารถอ่านค่าอุณหภูมิ กับ ค่าความชื้นได้เหมือนกัน


โค้ด : 

#include <DHT.h>
#define DHTPIN D1
#define LEDOnboard D4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
pinMode(LEDOnboard,OUTPUT);
Serial.begin(115200);
dht.begin();
}
void loop()
{
digitalWrite(D4,LOW);
delay(2000);
digitalWrite(D4,HIGH);
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(t) || isnan(h))
{
Serial.println("Error reading DHT!");
}
else
{
Serial.print("Humidity: ");
Serial.println(h);
Serial.print("Temp: ");
Serial.println(t);
}
delay(2000);
}

 

edit @ 4 Jan 2016 14:07:06 by BigTUI ^_^

Comment

Comment:

Tweet


#include

 

 

#define DHTPIN D1

#define LEDOnboard D4

#define DHTTYPE DHT22

 

DHT dht(DHTPIN, DHTTYPE);

 

void setup()

{

pinMode(LEDOnboard,OUTPUT);

Serial.begin(115200);

dht.begin();

}

 

void loop()

{

digitalWrite(D4,LOW);

delay(2000);

digitalWrite(D4,HIGH);

float h = dht.readHumidity();

float t = dht.readTemperature();

 

if (isnan(t) || isnan(h))

{

Serial.println("Error reading DHT!");

}

else

{

Serial.print("Humidity: ");

Serial.println(h);

Serial.print("Temp: ");

Serial.println(t);

}

delay(2000);

}

#1 by BigTUI ^_^ At 2016-01-02 20:38,

ศรีเดช ปัญจขันธ์
View full profile