DHT22 เหมาะสำหรับการใช้งานที่ต้องการวัดอุณหภูมิและความชื้นในระดับพื้นฐานและไม่ต้องการความแม่นยำสูง เหมาะสำหรับการเริ่มต้นเรียนรู้เกี่ยวกับการใช้งานเซ็นเซอร์อุณหภูมิและความชื้นในโปรเจคต่างๆ
1.ดาวน์โหลด และติดตั้ง Library DHT sensor & Adafruit Unified Sensor
ติดตั้ง Library
ArduinoIDE > Sketch > Include Library > Add .ZIP Library > หาไฟล์ที่ดาวน์โหลด

2.ต่ออุปกรณ์

DHT22 > Arduino UNO
• + > VCC
• OUT > PIN 8
• - > GND
3.ลงโปรแกรม
Copy โค้ดด้านล่าง
Arduino
1#include <Adafruit_Sensor.h>
2#include <DHT.h>
3#include <DHT_U.h>
4
5#define DHTPIN 8
6
7// Uncomment the type of sensor in use:
8//#define DHTTYPE DHT11 // DHT 11
9#define DHTTYPE DHT22 // DHT 22 (AM2302)
10//#define DHTTYPE DHT21 // DHT 21 (AM2301)
11
12DHT_Unified dht(DHTPIN, DHTTYPE);
13
14uint32_t delayMS;
15
16void setup() {
17 Serial.begin(9600);
18 dht.begin();
19 Serial.println(F("DHTxx Unified Sensor Example"));
20 sensor_t sensor;
21 dht.temperature().getSensor(&sensor);
22 Serial.println(F("------------------------------------"));
23 Serial.println(F("Temperature Sensor"));
24 Serial.print (F("Sensor Type: ")); Serial.println(sensor.name);
25 Serial.print (F("Driver Ver: ")); Serial.println(sensor.version);
26 Serial.print (F("Unique ID: ")); Serial.println(sensor.sensor_id);
27 Serial.print (F("Max Value: ")); Serial.print(sensor.max_value); Serial.println(F("°C"));
28 Serial.print (F("Min Value: ")); Serial.print(sensor.min_value); Serial.println(F("°C"));
29 Serial.print (F("Resolution: ")); Serial.print(sensor.resolution); Serial.println(F("°C"));
30 Serial.println(F("------------------------------------"));
31 // Print humidity sensor details.
32 dht.humidity().getSensor(&sensor);
33 Serial.println(F("Humidity Sensor"));
34 Serial.print (F("Sensor Type: ")); Serial.println(sensor.name);
35 Serial.print (F("Driver Ver: ")); Serial.println(sensor.version);
36 Serial.print (F("Unique ID: ")); Serial.println(sensor.sensor_id);
37 Serial.print (F("Max Value: ")); Serial.print(sensor.max_value); Serial.println(F("%"));
38 Serial.print (F("Min Value: ")); Serial.print(sensor.min_value); Serial.println(F("%"));
39 Serial.print (F("Resolution: ")); Serial.print(sensor.resolution); Serial.println(F("%"));
40 Serial.println(F("------------------------------------"));
41 delayMS = sensor.min_delay / 1000;
42}
43
44void loop() {
45 delay(delayMS);
46 sensors_event_t event;
47 dht.temperature().getEvent(&event);
48 if (isnan(event.temperature)) {
49 Serial.println(F("Error reading temperature!"));
50 }
51 else {
52 Serial.print(F("Temperature: "));
53 Serial.print(event.temperature);
54 Serial.println(F("°C"));
55 }
56 dht.humidity().getEvent(&event);
57 if (isnan(event.relative_humidity)) {
58 Serial.println(F("Error reading humidity!"));
59 }
60 else {
61 Serial.print(F("Humidity: "));
62 Serial.print(event.relative_humidity);
63 Serial.println(F("%"));
64 }
65}1#include <Adafruit_Sensor.h>
2#include <DHT.h>
3#include <DHT_U.h>
4
5#define DHTPIN 8
6
7// Uncomment the type of sensor in use:
8//#define DHTTYPE DHT11 // DHT 11
9#define DHTTYPE DHT22 // DHT 22 (AM2302)
10//#define DHTTYPE DHT21 // DHT 21 (AM2301)
11
12DHT_Unified dht(DHTPIN, DHTTYPE);
13
14uint32_t delayMS;
15
16void setup() {
17 Serial.begin(9600);
18 dht.begin();
19 Serial.println(F("DHTxx Unified Sensor Example"));
20 sensor_t sensor;
21 dht.temperature().getSensor(&sensor);
22 Serial.println(F("------------------------------------"));
23 Serial.println(F("Temperature Sensor"));
24 Serial.print (F("Sensor Type: ")); Serial.println(sensor.name);
25 Serial.print (F("Driver Ver: ")); Serial.println(sensor.version);
26 Serial.print (F("Unique ID: ")); Serial.println(sensor.sensor_id);
27 Serial.print (F("Max Value: ")); Serial.print(sensor.max_value); Serial.println(F("°C"));
28 Serial.print (F("Min Value: ")); Serial.print(sensor.min_value); Serial.println(F("°C"));
29 Serial.print (F("Resolution: ")); Serial.print(sensor.resolution); Serial.println(F("°C"));
30 Serial.println(F("------------------------------------"));
31 // Print humidity sensor details.
32 dht.humidity().getSensor(&sensor);
33 Serial.println(F("Humidity Sensor"));
34 Serial.print (F("Sensor Type: ")); Serial.println(sensor.name);
35 Serial.print (F("Driver Ver: ")); Serial.println(sensor.version);
36 Serial.print (F("Unique ID: ")); Serial.println(sensor.sensor_id);
37 Serial.print (F("Max Value: ")); Serial.print(sensor.max_value); Serial.println(F("%"));
38 Serial.print (F("Min Value: ")); Serial.print(sensor.min_value); Serial.println(F("%"));
39 Serial.print (F("Resolution: ")); Serial.print(sensor.resolution); Serial.println(F("%"));
40 Serial.println(F("------------------------------------"));
41 delayMS = sensor.min_delay / 1000;
42}
43
44void loop() {
45 delay(delayMS);
46 sensors_event_t event;
47 dht.temperature().getEvent(&event);
48 if (isnan(event.temperature)) {
49 Serial.println(F("Error reading temperature!"));
50 }
51 else {
52 Serial.print(F("Temperature: "));
53 Serial.print(event.temperature);
54 Serial.println(F("°C"));
55 }
56 dht.humidity().getEvent(&event);
57 if (isnan(event.relative_humidity)) {
58 Serial.println(F("Error reading humidity!"));
59 }
60 else {
61 Serial.print(F("Humidity: "));
62 Serial.print(event.relative_humidity);
63 Serial.println(F("%"));
64 }
65}
4.ผลลัพธ์
Serial Monitor จะแสดงค่าอุณหภูมิและความชื้นขณะนั้น
.png?alt=media&token=714c7a38-a614-46ed-afaa-d6ed124d8355)
