สอนการใช้งาน NodeMCU Esp8266 กับเซ็นเซอร์ DHT11 แสดงผลผ่านแอพ Blynk
สอนการใช้งานเครื่องมือ Gauge ในแอพ Blynk แสดงค่า ความชื้นและอุณหภูมิจากเซ็นเซอร์ DHT11 ผ่านไวไฟเข้ามือถือ สามารถนำไปประยุกต์ใช้ได้กับหลากหลายงาน เช่น ระบบควบคุมความชื้นในโรงเรือน ระบบควบคุมอุณหภูมิในตู้ฝักไข่ หรือระบบพ่นหมอกลดอุณหภูมิ เป็นต้น
อุปกรณ์ที่ต้องใช้
- บอร์ด NodeMCU ESP8266-12F
- สาย Micro USB Type B
- บอร์ดทดลอง Breadboard 400 จุด
- สาย Jumper 20 cm Male to Male
- DHT11 เซ็นเซอร์วัดอุณหภูมิและความชื้น
- มือถือผู้ใช้งาน
การต่อวงจร
DHT ⇒ Esp8266
GND → GND
VCC → Vin
S → D4
การติดตั้งโปรแกรม Arduino IDE → คลิก
โหลดLibrary
ตัวอย่างโค้ด
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include “DHT.h”
#define DHTPIN D4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
char auth[] = “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”; // ใส่โทเคนที่ได้จากแอพ Blynk
char ssid[] = “xxxxxxxxxxxx”; // ใส่ชื่อไวไฟ
char pass[] = “xxxxxxxxxxxx”; // ใส่รหัสไฟไว
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
Serial.println();
Serial.println(“Status\tHumidity (%)\tTemperature (C)\t(F)”);
dht.begin();
}
void loop()
{
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F(“Failed to read from DHT sensor!”));
return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (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”));
Blynk.run();
Blynk.virtualWrite(V0, t); //แสดงอุณหภูมิบนแอพ Blynk
Blynk.virtualWrite(V1, h); //แสดงความชื้นบนแอพ Blynk
Blynk.virtualWrite(V2, f); //แสดงอุณหภูมิองศาฟาเรนไฮบนแอพ Blynk
delay(1000);
}
ดาวโหลดโค้ด → คลิก
ดาวโหลดแอพ Blynk → คลิก
ขั้นตอนการใช้งานแอพ Blynk
1. เมื่อทำการติดแอพบนมือถือเรียบร้อยแล้ว กดเข้าแอพมาจะเจอหน้าต่างดังรูป
2. กดตรงคำว่า Login
3. กรอกอีเมลล์ และ password ให้เรียบร้อย แล้วกดตรง Login
4. กรอกชื่อโปรเจค จะตั้งชื่อว่าอะไรก็ได้ แล้วแต่ผู้ใช้ครับ ในที่นี้ผมจะตั้งชื่อว่า “DHT 11”
5. กดเลือกบอร์ดตรงCHOOSE DEVICE เลือกเป็น “ESP8266” แล้วกด OK
6. กดเลือกการเชื่อมต่อCONNECTION TYPE เลือกเป็น “Wi-Fi” แล้วกด OK
7. กด “Create”
8. แอพจะส่ง Token ไปยังอีเมลล์ของเรา หลังจากนั้นกด OK หมายเหตุ “เดี๋ยวเราจะนำ Token นี้ไปใส่ในโค้ด Arduino IDE ของเรา เดี๋ยวผมจะสอนในขั้นตอนท้าย ๆ ครับ“
9. กดตรงเครื่องหมายบวก ดังรูป
10. จะเจอหน้าต่างแถบเครื่องมือต่าง ๆ มากมาย ในที่นี้เราจะเลือกเครื่องมือ “Gauge” ดังรูป
11. เลือกให้ครบ 3 Widget GAUGE หลังจากนั้นให้กดค้างที่ตัว GAUGE แล้วการขยายให้เต็ม ดังรูป
12. กดที่ตัว Widget GAUGE อันบนสุด 1 ครั้ง
13. จะเจอหน้าต่าง ดังรูป
14. ตั้งชื่อว่า “อุณหภูมิ”
15. กดเลือก PIN เลือกเป็น Virtual เลือก PIN เป็น V0 จากนั้นกด OK ดังรูป
16. ตรงแถบ INPUT ตอนแรกค่าNIN-MAXจะเป็น 0- 1023 ให้ทำการเปลี่ยนค่า MAX เป็น 100 ดังรูป
17. ตรงแถบ LABEL ให้เปลี่ยนหน่วยเป็น °C ดังรูป
18. กดตรงคำว่า TEXT เพื่อการเปลี่ยนสีตัว Widget GAUGE ของเรา ในที่นี้ผมจะเลือกเป็นสีเหลือง ดังรูป
19. อันที่ 2 ทำในลักษณะเดิม แต่เราจะเปลี่ยน ชื่อ, PIN, หน่วย, และ สี ให้ได้ดังรูป
20. อันที่ 3 ทำในลักษณะเดิม แต่เราจะเปลี่ยน ชื่อ, PIN, หน่วย, และ สี ให้ได้ดังรูป
21. กดกลับ แล้วเราจะได้ผล ดังรูป
22. สืบเนื่องมาจากขั้นที่ 8 เราเข้าไปที่อีเมลล์ของเรา จะเห็น Token ที่ได้มา ดังรูป
23. นำ Token ไปกรอกในโค้ด และใส่ชื่อไวไฟ และรหัส แล้วกดอัพโหลดโค้ดลงบอร์ด ดังรูป
24. เมื่ออัพโหลดลงบอร์ดเรียบร้อยแล้ว ให้กดที่รูปสามเหลี่ยมที่อยู่ทางมุมบนขวาเพื่อเริ่มการใช้งาน Widget
25. จะได้ผล ดังรูป และบนหน้าต่างแอพ ซ้ายมือด้านล่างจะขึ้นคำว่า “DHT 11 connected.” เป็นอันเสร็จ