วันอาทิตย์ที่ 17 พฤศจิกายน พ.ศ. 2562

Module:Environment:DHT11/DHT22(AM2302)

Module DHT11/DHT22(AM2302)

โมดูล DHT22/AM2302



    เป็นโมดูลสำหรับวัดอุณหภูมิและความชื้น ให้ค่าออกเป็นดิจิตอล เป็นเซนเซอร์รุ่นยอดนิยม DHT11 และ DHT22 การใช้งานเหมือนกันการวางขาก็เหมือนกัน แต่ความละเอียดในการวัดต่างกัน
เซนเซอร์เปล่าๆ ต้องต่อตัวต้นทาน 10K วงจร Pullup ถ้าเป็นโมดูก็พร้อมใช้งานเลย
เซนเซอร์ DHT22


1 3-5V
2 ต่อขาดิจิตอลอินพุตของบอร์ด ต่ด 10k Ohm pull-up resistor
3 ไม่ได้ใช้
4 GND

ถ้าเป็นโมดูลจะเห็นแค่สามขา ตัดขา 3 ออก

DHT11
DHT22
Temperature range0 to 50 ºC +/-2 ºC-40 to 80 ºC +/-0.5ºC
Humidity range20 to 90% +/-5%0 to 100% +/-2%
ResolutionHumidity: 1%
Temperature: 1ºC
Humidity: 0.1%
Temperature: 0.1ºC
Operating voltage3 – 5.5 V DC3 – 6 V DC
Current supply0.5 – 2.5 mA1 – 1.5 mA
Sampling period1 second2 seconds
ติดตั้งไลบารี DHT sensor ( by Adafruit) ผ่าน Library Manager ก่อนใช้โค้ดด้านล่าง แก้ค่า DHTPIN และเลือก DHTTYPE ว่าจะใช้ DHT11 หรือ DHT22 โค้ดเอามาจาก DHTtest ที่มากับตัวอย่าง

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// ESP32: อ่านค่าเซนเซอร์ DTHxx 
#include "DHT.h" ติดตั้ง DHT sensor library by Adafruit ก่อน
#define DHTPIN 12     // ขา GPIO ที่อ่านค่า

// เลือกว่าจะใช้ตัวไหนให้เอาคอมเมนต์ออก
//#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(F("DHTxx test!"));
  dht.begin();
}
void loop() {
  delay(2000); //พักรอเล็กน้อยระหว่างอ่านค่า
  //ใช้เวลาอ่าน  0.25 วินาที อาจจะถึง 2 วินาที
  float h = dht.readHumidity();       //ความชื้น 
  float t = dht.readTemperature();    //อุณหภูมิเป็นเซลเซียส (Default)
  float f = dht.readTemperature(true);//อุณหภูมิเป็นฟาเรนไฮต์(isFahrenheit = true)

  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return; // อ่านค่าไม่ได้กลับไปอ่านต่อ
  }
  //คำนวณ heat index เป็นฟาเรนไฮต์ (default)
  float hif = dht.computeHeatIndex(f, h); 
  //คำนวณ heat index เป็นเซลเซียส (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);
  Serial.print(F("Humidity: "));
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.print(F("°C "));
  Serial.print(f);
  Serial.print(F("°F  Heat index: "));
  Serial.print(hic);
  Serial.print(F("°C "));
  Serial.print(hif);
  Serial.println(F("°F"));
}



เพิ่มเติม
Arduino library for DHT11, DHT22, etc Temperature & Humidity Sensors



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

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

Module:Control:IFR 520

MOSFET Module  สวิตซ์ปิดเปิดไฟเหมือน Relay แต่เป็น Solid state (ไม่มีส่วนที่เคลื่อนไหว) มันทำงานที่ความถี่สูงได้เหมาะกับเอาไปใช้งาน PWM ...