ความปลอดภัยในบ้านคือเรื่องสำคัญอันดับต้นๆ ของทุกคนครับ ลองจินตนาการดูว่า ถ้าคุณไม่อยู่บ้านแล้วมีคนพยายามงัดประตู หรือแอบเข้ามาในห้อง แม้แต่ระบบล็อกประตูแบบเดิมๆ ก็ไม่สามารถแจ้งเตือนคุณได้แบบเรียลไทม์ (ต่อให้มีกล้อง CCTV กว่าจะรู้ตัวของก็อาจจะหายไปแล้ว)
วันนี้เราจะมาแก้ปัญหานี้ด้วยการสร้าง Smart Door Security System ระบบรักษาความปลอดภัยประตูอัจฉริยะผ่าน IoT! ระบบนี้จะคอยตรวจจับการเปิดประตูและการเคลื่อนไหวแบบเรียลไทม์ พร้อมส่งเสียงไซเรนเตือนภัย และส่งแจ้งเตือนเข้ามือถือคุณผ่าน Wi-Fi ทันทีที่มีผู้บุกรุกครับ

ระบบนี้ทำอะไรได้บ้าง? (System Overview)
-
เฝ้าระวังประตู: ใช้เซนเซอร์แม่เหล็ก (Magnetic Sensor) ตรวจจับว่าประตูเปิดหรือปิดอยู่
-
ตรวจจับการเคลื่อนไหว: ใช้เซนเซอร์ PIR ตรวจจับคนเดินผ่านหน้าประตู
-
ส่งเสียงเตือน: มี Buzzer ร้องเตือนผู้บุกรุกให้ตกใจ
-
แจ้งเตือนผ่าน Wi-Fi: ส่งข้อมูลแบบเรียลไทม์เข้ามือถือคุณได้ทันที
-
เก็บบันทึกข้อมูล: สามารถขยายผลไปทำเป็นระบบบันทึกเวลาเข้า-ออกได้
อุปกรณ์ที่ต้องใช้ (Required Hardware)
1. บอร์ด ESP32 (สมองกลหลัก)
รับหน้าที่เป็นพระเอกคอยควบคุมอุปกรณ์ทั้งหมดและเชื่อมต่อสัญญาณ Wi-Fi ครับ
ดูผังขา Pinout ของ ESP32 (View More)
2. เซนเซอร์แม่เหล็กติดประตู (Magnetic Door Sensor)
เอาไว้ติดที่ขอบประตู ถ้าประตูเปิดออก แม่เหล็กจะแยกจากกันและส่งสัญญาณบอกบอร์ด
ดูรูปภาพและการทำงานเพิ่มเติม (View More)
3. เซนเซอร์จับความเคลื่อนไหว (PIR Motion Sensor)
ตรวจจับรังสีความร้อนจากร่างกายมนุษย์ ใครเดินผ่านหน้าประตูระบบจะรู้ทันที!
ดูรูปภาพและการทำงานเพิ่มเติม (View More)
4. ลำโพง Buzzer & อะแดปเตอร์จ่ายไฟ 5V
Buzzer ทำหน้าที่เป็นสัญญาณกันขโมยเฉพาะจุด ส่วน Power Supply ใช้สำหรับจ่ายไฟเลี้ยงให้ระบบทำงานได้อย่างเสถียร
ดูรูปอุปกรณ์ Buzzer และ Power Supply เพิ่มเติม (View More)
วิธีการต่อวงจร (Circuit & Wiring)
-
Magnetic Sensor: สายเส้นนึงต่อเข้าพิน GPIO 4 / อีกเส้นต่อลง GND
-
PIR Sensor: ขา VCC ต่อไฟ 5V / ขา GND ต่อลง GND / ขา OUT ต่อพิน GPIO 5
-
Buzzer: ขาสัญญาณต่อเข้าพิน GPIO 18
หลักการทำงาน (Working Logic):
เมื่อประตูยังปิดอยู่ ระบบจะอยู่ในสถานะปกติ แต่ถ้าประตูถูกเปิดออก หรือเซนเซอร์ PIR จับความเคลื่อนไหวได้ ระบบจะถือว่ามีการบุกรุก (Intrusion) บอร์ดจะสั่งให้ Buzzer ร้องเตือนเสียงดัง และส่งข้อความแจ้งเตือนผ่าน Wi-Fi (MQTT Protocol) ทันที
คลิกเพื่อดูรูปตัวอย่างการติดตั้ง (View More)
ลงมือเขียนโค้ด (ESP32 Code)
โค้ดสำหรับโปรเจกต์นี้เขียนด้วยภาษา C/C++ บน Arduino IDE โดยใช้ไลบรารี PubSubClient เพื่อทำระบบแจ้งเตือนผ่าน MQTT Server (ในตัวอย่างใช้เซิร์ฟเวอร์ฟรีของ hivemq.com) ลองคัดลอกโค้ดด้านล่างไปแก้ไขชื่อ Wi-Fi ของตัวเองแล้วอัปโหลดลงบอร์ดได้เลยครับ!
คลิกเพื่อดูและคัดลอกซอร์สโค้ดฉบับเต็ม (View More)
#include <WiFi.h>
#include <PubSubClient.h>
// ----------------------
// Pin Configuration
// ----------------------
#define DOOR_SENSOR 4 // Magnetic reed switch
#define PIR_SENSOR 5 // Motion sensor
#define BUZZER 18 // Alarm buzzer
// ----------------------
// WiFi Credentials
// ----------------------
const char* ssid = "YOUR_WIFI_NAME";
const char* password = "YOUR_WIFI_PASSWORD";
// ----------------------
// MQTT Configuration
// ----------------------
const char* mqtt_server = "broker.hivemq.com";
const char* topic_alert = "smartdoor/alert";
WiFiClient espClient;
PubSubClient client(espClient);
bool lastDoorState = HIGH;
bool alarmTriggered = false;
void setup_wifi() {
Serial.println("Connecting to WiFi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi Connected");
}
void reconnect() {
while (!client.connected()) {
Serial.println("Connecting to MQTT...");
if (client.connect("SmartDoorClient")) {
Serial.println("MQTT Connected");
} else {
delay(2000);
}
}
}
void setup() {
Serial.begin(115200);
pinMode(DOOR_SENSOR, INPUT_PULLUP);
pinMode(PIR_SENSOR, INPUT);
pinMode(BUZZER, OUTPUT);
digitalWrite(BUZZER, LOW);
setup_wifi();
client.setServer(mqtt_server, 1883);
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
bool doorState = digitalRead(DOOR_SENSOR);
bool motionState = digitalRead(PIR_SENSOR);
// Door Open Detection
if (doorState == LOW && lastDoorState == HIGH) {
Serial.println("🚪 Door Opened!");
client.publish(topic_alert, "Door Opened");
digitalWrite(BUZZER, HIGH);
alarmTriggered = true;
}
// Motion Detection
if (motionState == HIGH) {
Serial.println("🚨 Motion Detected!");
client.publish(topic_alert, "Motion Detected");
digitalWrite(BUZZER, HIGH);
alarmTriggered = true;
}
// Reset Alarm after 5 seconds
if (alarmTriggered) {
delay(5000);
digitalWrite(BUZZER, LOW);
alarmTriggered = false;
}
lastDoorState = doorState;
delay(500);
}
สรุป: การสร้างระบบ Smart Door Security ด้วย ESP32 เป็นโปรเจกต์ IoT ที่คุ้มค่าและนำไปใช้งานได้จริง ไม่ว่าจะเป็นบ้าน ร้านค้า ออฟฟิศ หรือโกดังเก็บสินค้า ก็สามารถนำระบบนี้ไปปกป้องทรัพย์สินของคุณให้ปลอดภัยแบบ 24/7 ได้เลยครับ!
อยากสร้างระบบรักษาความปลอดภัยสุดล้ำเป็นของตัวเองใช่ไหม?
คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา