สอนสร้าง Smart Switch ด้วย ESP32 และ Relay เพื่อสั่งเปิด-ปิดไฟหรือพัดลมผ่านหน้าเว็บ แจกโค้ดตัวเต็มพร้อมวิธีต่อวงจรแบบปลอดภัยสำหรับมือใหม่
เปลี่ยนบ้านธรรมดาให้เป็น Smart Home
หลายคนอยากลองสั่งเปิด-ปิดไฟผ่านมือถือ แต่ไม่อยากซื้ออุปกรณ์สำเร็จรูปราคาแพง วันนี้ผมจะพาใช้ ESP32 ร่วมกับ Relay (รีเลย์) เพื่อทำสวิตช์อัจฉริยะไว้ใช้เองครับ จะเอาไปคุมปั๊มน้ำโซลาร์เซลล์ หรือไฟหน้าบ้านก็ได้หมดครับ
อุปกรณ์ที่ต้องใช้
บอร์ด ESP32
Relay Module 5V (1 Channel หรือ 2 Channel) (เปรียบเหมือนสวิตช์ไฟที่ใช้ไฟฟ้าสั่งงาน)
สายไฟและหลอดไฟ (สำหรับทดสอบ)
วิธีการต่อวงจร (ง่ายๆ)
ESP32 ขา 5V -> ต่อเข้า VCC ของ Relay
ESP32 ขา GND -> ต่อเข้า GND ของ Relay
ESP32 ขา GPIO 2 -> ต่อเข้า IN ของ Relay (เราจะใช้ขานี้สั่งงาน)
ข้อควรระวัง: การต่อไฟ 220V เข้ากับ Relay ควรทำด้วยความระมัดระวัง หากไม่ชำนาญ แนะนำให้ทดสอบกับไฟ DC 12V หรือพัดลมตัวเล็กๆ ก่อนนะครับ
แจก Full Source Code: Web Smart Switch v1.0
โค้ดนี้จะสร้างปุ่มกดบนมือถือให้คุณ 2 ปุ่ม คือ “เปิดไฟ” และ “ปิดไฟ” ครับ
* * Project: ESP32 Web Smart Switch v1.0
* Source: satawat.com
* Update: 2026-03-18
*
#include
#include
#include
const char* ssid = “ชื่อไวไฟของคุณ”;
const char* password = “รหัสผ่านไวไฟ”;
const char* hostName = “esp32-0B060089FD08”; // ชื่อเครื่องเดิมจำง่าย
WebServer server(80);
const int relayPin = 2; // ใช้ขา GPIO 2 สั่งงาน Relay
bool relayState = LOW;
void handleRoot() {
String statusText = (relayState == HIGH) ? “เปิดอยู่” : “ปิดอยู่”;
String btnColor = (relayState == HIGH) ? “red” : “green”;
String btnText = (relayState == HIGH) ? “สั่งปิดไฟ” : “สั่งเปิดไฟ”;
String action = (relayState == HIGH) ? “/off” : “/on”;
String html = “”;
html += ”
“;
html += ”
Smart Switch v1.0
“;
html += ”
สถานะตอนนี้: ” + statusText + ”
“;
html += “” + btnText + “”;
html += ”
ID: ” + String(hostName) + “.local
“;
server.send(200, “text/html”, html);
}
void setup() {
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW); // เริ่มต้นให้ปิดไฟก่อน
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print(“.”); }
if (MDNS.begin(hostName)) { Serial.println(“mDNS started”); }
server.on(“/”, handleRoot);
server.on(“/on”, []() { relayState = HIGH; digitalWrite(relayPin, HIGH); handleRoot(); });
server.on(“/off”, []() { relayState = LOW; digitalWrite(relayPin, LOW); handleRoot(); });
server.begin();
Serial.println(“พร้อม! เข้าใช้งานที่: ” + WiFi.localIP().toString());
}
void loop() {
server.handleClient();
}
สรุปบทความ
ตอนนี้คุณก็มีสวิตช์ไฟอัจฉริยะที่ทำเองได้ง่ายๆ แล้วครับ ไม่ว่าจะอยู่ที่ไหนในบ้าน (ที่ Wi-Fi ไปถึง) ก็สั่งงานได้ทันที
เทคนิคเพิ่มเติม: หากอยากสั่งงานจาก “นอกบ้าน” ผ่านอินเทอร์เน็ต สามารถศึกษาเรื่อง Blynk หรือ LINE Notify เพิ่มเติมได้ ซึ่งผมจะมาแชร์ในบทความถัดๆ ไปที่ satawat.com ครับ!