การทดลองเรื่อง ทดสอบการวัดค่าอุณหภูมิและความชื้นด้วยตัวตรวจวัด DHT11
วัตถุประสงค์
1.เพื่อศึกษาหลักการทำงานของตัวตรวจจับอุณหภูมิและความชื้น DHT11
2.เพื่อทดลองการเขียนโปรแกรมอ่านค่าและแสดงผลค่าอุณหภูมิและความชื้นที่ตรวจวัดได้

อุปกรณ์ที่ใช้ในการทดลอง
ลำดับ
|
รายการ
|
จำนวน
|
หน่วย
|
ภาพประกอบ
|
1
|
บอร์ดพัฒนาสำเร็จรูปการควบคุมผ่านอินเตอร์เน็ตด้วยชิปเซ็ต ESP8266
|
1
|
ชุด
|

|
2
|
เซ็นเซอร์วัดอุณหภูมิและความซื้น เชื่อมต่อแบบสายสัญญาณเส้นเดียว
|
1
|
ชุด
|

|
3
|
สายไฟสำหรับต่อวงจรแบบปลายตัวผู้-ตัวผู้
|
3
|
เส้น
|

|
4
|
สายเชื่อมต่อบอร์ดพัฒนากับพอร์ต Micro USB เพื่อการโปรแกรม
|
1
|
เส้น
|

|
5
|
เบรดบอร์ดสำหรับต่อวงจรขนาด 400 จุด
|
1
|
ชุด
|

|
ขั้นตอนการทดลอง
ต่อวงจรสำหรับการทดลองดังรูป

1.เชื่อมต่อบอร์ดพัฒนา NodeMCU ESP-12E เข้ากับคอมพิวเตอร์ โดยการเสียบสาย USB-A to Micro-B ด้านที่เป็น Micro-B ต่อเข้ากับบอร์ดพัฒนา NodeMCU ESP-12E และเสียบด้านที่เป็น USB-A เข้ากับ Port USB ของคอมพิวเตอร์หรือโน๊ตบุ๊ค
2.เปิดโปรแกรม Arduino IDE ขึ้นมา ท่านจำเป็นต้องติดตั้ง Library ของ DHT11 Humidity & Temperature Sensor โดยการไปที่เมนู Sketch ไปที่ Include Library แล้วเลือก Manage Libraries...
3.หา Library ของ DHT11 Humidity & Temperature Sensor โดยการพิมพ์ dht11 ในช่อง filter ท่านจะพบ DHT sensor library และ SimpleDHT ให้ท่านทำการติดตั้ง library ทั้ง 2 libraries

4.จากนั้น ให้ท่านพิมพ์หรือคัดลอก source code ข้างล่างนี้ไปวางไว้ใน Arduino IDE
#include <DHT.h> #define DHTPIN D4 // Digital pin connected to DHT11 GPIO2 (D4) #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE); // Initialize DHT sensor void setup() { Serial.begin(115200); // Sets the data rate in bits per second (baud) for serial data transmission. dht.begin(); } void loop() { float h = dht.readHumidity(); // Read humidity float t = dht.readTemperature(); // Read temperature as Celsius (the default) float f = dht.readTemperature(true); // Read temperature as Fahrenheit (isFahrenheit = true) if (isnan(h) || isnan(t) || isnan(f)) { // Check if any reads failed and exit early (to try again). Serial.println("Failed to read from DHT sensor!"); return; } float hif = dht.computeHeatIndex(f, h); // Compute heat index in Fahrenheit (the default) float hic = dht.computeHeatIndex(t, h, false); // Compute heat index in Celsius (isFahreheit = false) Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C "); /*Serial.print(f); Serial.print(" *F\t"); Serial.print("Heat index: "); Serial.print(hic); Serial.print(" *C "); Serial.print(hif); Serial.println(" *F");*/ }
|
5.จากนั้นให้ทำการ verify และ upload source code ไปยังบอร์ดพัฒนา NodeMCU ESP-12E
ผลการทดลอง
วิธีดูค่าที่วัดได้จากตัวตรวจวัดค่าอุณหภูมิและความชื้น DHT11 ให้ทำตามขั้นตอนดังนี้
1.คลิ๊กปุ่ม Serial Monitor (รูป "แว่นขยาย") ที่อยู่ตรงมุมบนขวาของ Arduino IDE

2.ให้ตรวจสอบค่า baud rate ในหน้าต่าง Serial Monitor ให้ตรงกับค่าที่ตั้งไว้ใน source code (ในที่นี้คือ 115200)
3.หากค่า baud rate ตั้งไว้ตรงกับค่าที่กำหนดในโปรแกรมแล้ว ในหน้าต่าง Serial Monitor ก็จะแสดงค่าอุณหภูมิและค่าความชื้นออกมาให้เห็น ก็แสดงว่า เราสามารถตรวจวัดค่าอุณหภูมิและความชื้นจากตัวตรวจวัด DHT11 ได้แล้ว ซึ่งท่านสามารถนำค่าที่ได้นำไปสร้างเงื่อนไขในการควบคุมระบบ หรือส่งค่าขึ้นไปแสดงผลบนคลาวด์ผ่านทางเครือข่ายอินเตอร์เน็ตต่อไป