ESP8266 DHT11/DHT22/DHT21 วัดความชื้นและอุณหภูมิแบบออนไลน์
ESP8266 สามารถเขียนโปรแกรมผ่านทาง Arduino IDE เพื่อติดต่อกับเซนเซอร์ต่าง ๆ และส่งข้อมูลผ่านทาง Wi-Fi ในบทความนี้เราจะมาทดลอง เขียนโปรแกรมแสดงค่าอุณหภูมิและความชื้น ผ่าน Wi-Fi เพื่อให้อุปกรณ์ที่อยู่ในวงแลนเดียวกัน สามารถส่งคำสั่งเพื่อขอดูข้อมูลจากตัว ESP8266 โดยเราจะตั้งค่าให้ ESP8266 ทำงานในโหมด Server เพื่อให้อุปกรณ์ตัวอื่น ๆ หรือ Client สามารถติดต่อเพื่อขอดูข้อมูลได้ การอ่านข้อมูลอุณหภูมิและความชื้นจาก DHT11 ด้วย NodeMCUทำเป็น server ให้ client เรียกดูข้อมูล
ตัวอย่างโคด Arduino ESP8266 DHT อุณหภูมิ ความชื้น ออนไลน์
#include
#include
#include "DHT.h"
#define DHTPIN D2 // what digital pin we're connected to
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
ESP8266WebServer server(80);
DHT dht(DHTPIN, DHTTYPE);
void handle_index() {
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
// เช็คถ้าอ่านค่าไม่สำเร็จให้เริ่มอ่านใหม่
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
String res = "
เซนเซอร์อุณหภูมิ ความชื้น
Temp =" + String(t) ;
res += "*C
ความชื้น=" + String(h);
server.send(200, "text/html", res);
}
void setup(void) {
Serial.begin(115200);
WiFi.begin("wifi_ssid", "wifi_password");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.println(".");
}
Serial.println(WiFi.localIP());
server.on("/", handle_index);
server.begin();
}
void loop(void) {
server.handleClient();
}
คลิปวีดีโอสอน Arduino ESP8266 DHT : ESP8266 แสดงความชื้นและอุณหภูมิแบบออนไลน์