ฮับส่วนกลาง: Arduino Home Assistant
การพึ่งพา Google Home หรือ Amazon Alexa หมายความว่าความเป็นส่วนตัวของคุณจะถูกเปิดเผยโดยสมบูรณ์ และหากอินเทอร์เน็ตล่ม ไฟของคุณก็จะไม่ติด โปรเจกต์ Arduino Home Assistant เป็นการแนะนำสถาปัตยกรรม Local Area Network (LAN) โดยจะสร้างอุปกรณ์ "Hub" ทางกายภาพที่สื่อสารเฉพาะภายในบ้านของคุณเท่านั้น ทำให้มั่นใจได้ถึงความเป็นส่วนตัวที่สมบูรณ์และมีความหน่วงเป็นศูนย์ (zero latency)

เซิร์ฟเวอร์ Local REST API
Arduino (จับคู่กับ W5100 Ethernet Shield หรือ ESP32) ทำหน้าที่เป็นศูนย์กลางหลัก (Grand Central Station)
- สถาปัตยกรรม: อุปกรณ์ไฟอัจฉริยะหรือเซ็นเซอร์ทุกชิ้นในบ้าน (Node A, Node B) ได้รับการตั้งโปรแกรมให้สื่อสาร เฉพาะ กับ IP address ส่วนกลาง
192.168.1.100(Hub) เท่านั้น - ตัวแปล JSON: Hub จะรันเว็บเซิร์ฟเวอร์ขนาดเล็ก เมื่อมีการกดสวิตช์ไฟในห้องครัว Node A จะส่ง HTTP request
GET /kitchen/light/1ไปยัง Hub - Hub จะแยกวิเคราะห์สตริงนั้น ตรวจสอบอาร์เรย์ boolean ภายในขนาดใหญ่ อัปเดตสถานะ และส่งกลับ JSON payload
{"status":"ON"}เพื่อยืนยันการกระทำ - ส่วนติดต่อผู้ใช้ (Interface): สมาร์ทโฟนของคุณจะเปิดแอป HTML ในเครื่องที่โฮสต์อยู่บน Hub ซึ่งแสดงปุ่มสลับสถานะแบบเรียลไทม์สำหรับทั้งบ้าน!
การเปลี่ยนไปใช้ MQTT (Publish/Subscribe)
หากบ้านมีอุปกรณ์อัจฉริยะเพิ่มขึ้นเป็น 50 ชิ้น HTTP GET requests จะทำงานช้าลงอย่างมากและทำให้ Arduino ค้างได้
- คุณต้องอัปเกรดตรรกะของ Hub ไปเป็น MQTT (Message Queuing Telemetry Transport) โดยใช้ไลบรารี
<PubSubClient.h> - Hub ทำหน้าที่เป็น "Broker"
- ไฟในห้องครัวจะ "Subscribe" ในหัวข้อ (topic)
house/kitchen/light1 - แอปในโทรศัพท์ของคุณจะ "Publish" ข้อความ
ONไปยังหัวข้อนั้นโดยตรง Hub จะรับข้อความและส่งต่อลงไปยังไฟทันทีอย่างเงียบๆ ในเวลาน้อยกว่า 5 มิลลิวินาที!
ฮาร์ดแวร์พื้นฐานที่จำเป็น
- Arduino Mega + W5100 Ethernet Shield (การเชื่อมต่อแบบใช้สายมีความเสถียรมากกว่า Wi-Fi สำหรับฮับส่วนกลาง)
- อีกทางเลือกหนึ่งคือ ESP32 Dev Module ทำหน้าที่เป็น Wi-Fi Access point
- Relay Nodes (Like ESP-01 modules) กระจายอยู่ทั่วบ้านเพื่อควบคุมอุปกรณ์ทางกายภาพ
- ความรู้ขั้นสูงเกี่ยวกับ Networking Protocols (TCP/IP, HTTP, MQTT)