Arduino Home Assistant
เกริ่นนำ
เจ้า Arduino Home Assistant ตัวนี้คืออุปกรณ์ที่เอาไว้ควบคุมของหลายๆ อย่างในบ้าน เช่น ไฟโต๊ะ พัดลมเป่าคอม พัดลมใหญ่ เครื่องทำความชื้น และสเต็ปเปอร์มอเตอร์สำหรับม่าน โดยใช้เซ็นเซอร์จับค่าต่างๆ อย่าง MLX90614, LDRs, เซ็นเซอร์อินฟราเรด, เซ็นเซอร์วัดฝน, อัลตราโซนิก ฯลฯ ทำให้มันสามารถตรวจสอบสภาพแวดล้อมในห้องแล้วจัดการงานต่างๆ ได้เอง ตัวอย่างง่ายๆ เลยคือถ้าอุณหภูมิคอมพ์สูงเกินไป พัดลมเป่าคอมก็จะทำงานอัตโนมัติ กับอุปกรณ์อื่นๆ ก็ใช้หลักการเดียวกัน บางงานอาจต้องใช้ข้อมูลจากหลายเซ็นเซอร์มาประกอบกัน เราสามารถปรับโหมดการทำงานของสวิตช์เป็นแบบบังคับมือ (Manual) หรืออัตโนมัติ (Auto) ก็ได้

ศูนย์บัญชาการกลาง: Arduino Home Assistant
การพึ่งพา Google Home หรือ Amazon Alexa นั่นหมายความว่าความเป็นส่วนตัวของคุณกำลังถูกเปิดเผยหมด และถ้าอินเทอร์เน็ตหลุด ของในบ้านก็จะใช้ไม่ได้เลย โปรเจค Arduino Home Assistant นี้จะพาน้องๆ เข้าสู่โลกของเครือข่ายภายในบ้าน (LAN) แบบจัดเต็ม มันสร้าง "ฮับ" อุปกรณ์จริงๆ ที่สื่อสารกันแค่ภายในบ้านเท่านั้น รับประกันความเป็นส่วนตัว 100% และดีเลย์ต่ำมากจนวัดไม่ได้!
เซิร์ฟเวอร์ REST API ภายในบ้าน
Arduino (ที่จับคู่กับ W5100 Ethernet Shield หรือ ESP32) ทำหน้าที่เป็นเหมือนสถานีรถไฟกลาง
- โครงสร้าง (Architecture): อุปกรณ์อัจฉริยะทุกชิ้นในบ้าน (Node A, Node B) จะถูกโปรแกรมให้คุยกันแค่กับ IP กลางที่
192.168.1.100(ฮับ) - ล่ามแปลภาษา JSON: ฮับรันเว็บเซิร์ฟเวอร์จิ๋วๆ ไว้ พอมีคนกดสวิตช์ไฟในครัว Node A ก็จะส่งคำขอ HTTP
GET /kitchen/light/1ไปหาฮับ - ฮับก็จะแปลคำสั่งนั้น เช็คสถานะในอาร์เรย์บูลเลียนมหึมาของมัน อัพเดทสถานะ แล้วส่งข้อมูล JSON กลับมาเป็น
{"status":"ON"}เพื่อยืนยันว่าทำงานสำเร็จ - หน้าจอควบคุม (Interface): น้องก็แค่เปิดแอป HTML ที่โฮสต์อยู่บนฮับผ่านมือถือ ก็จะเห็นปุ่มควบคุมทุกอย่างในบ้านแบบเรียลไทม์!
อัพเกรดไปใช้ MQTT (Publish/Subscribe)
ถ้าบ้านเรามีอุปกรณ์อัจฉริยะเพิ่มเป็น 50 ชิ้น การใช้ HTTP GET requests จะช้ามากและทำให้ Arduino รวนได้
- ต้องอัพเกรดลอจิกของฮับไปใช้ MQTT (Message Queuing Telemetry Transport) โดยใช้ไลบรารี
<PubSubClient.h> - ฮับจะทำหน้าที่เป็น "โบรกเกอร์"
- ไฟในครัวจะ "Subscribe" ฟังหัวข้อ (Topic) ชื่อ
house/kitchen/light1 - แอปในมือถือน้องจะ "Publish" ส่งข้อความ
ONไปที่หัวข้อนั้น ฮับก็จะรับข้อความมาแล้วส่งต่อไปให้ไฟทันที ใช้เวลาไม่ถึง 5 มิลลิวินาที!
ฮาร์ดแวร์พื้นฐานที่ต้องมี
- Arduino Mega + W5100 Ethernet Shield (การต่อสาย LAN ให้ฮับเสถียรกว่าวายฟายเยอะ)
- หรือจะใช้ ESP32 Dev Module ทำหน้าที่เป็นจุดกระจายสัญญาณ Wi-Fi (Access Point) ก็ได้
- Relay Nodes (เช่น ESP-01 modules) กระจายไว้ตามจุดต่างๆ ในบ้านเพื่อสั่งงานอุปกรณ์จริง
- ความรู้เรื่องโปรโตคอลเครือข่ายระดับเทพ (TCP/IP, HTTP, MQTT) อย่าหนี ต้องเรียน!
ฟังก์ชันการทำงาน
ต่อมา ในระบบนี้มีฟังก์ชันให้เล่นถึง 8 อย่างด้วยกัน ได้แก่ โชว์ไฟ LED, ตรวจสอบสภาพห้อง, ตรวจสอบสภาพ Arduino, ตรวจสอบสภาพแล็ปท็อป, ตรวจสอบอากาศ, ตั้งเวลา/ปลุก, เกม, โหมด WIFI และพื้นที่ส่วนตัวสำหรับบันทึกข้อมูลของน้องๆ เอง นอกจากนี้ยังมีหน้าเพื่อตรวจสอบสถานะของอุปกรณ์ทุกชิ้นอีกด้วย การควบคุมหลักจะใช้โพเทนชิออมิเตอร์และปุ่มกดสองปุ่ม ง่ายๆ เอง อย่าช็อตนะตัวนี้!

โหมด WIFI
เจ้า Home Assistant ตัวนี้มันยังพ่วงโมดูล esp-01 เข้าไปด้วยนะ งานควบคุมและตรวจสอบทั้งหมดเลยทำผ่าน Wi-Fi ได้สบายๆ ผ่านโน๊ตบุ๊คหรือมือถือเลยจ้า ใช้ Blynk เป็นแพลตฟอร์ม แล้วก็มี Google Assistant คอยสนับสนุนอีกแรง ทำให้สั่งงานได้ทุกที่ทุกเวลาเลยว่างั้น! พอเซ็นเซอร์อัลตราโซนิกกับ LDR ตรวจจับว่าไม่มีคนในห้องแล้ว มันจะสลับไปใช้โหมด WIFI อัตโนมัติเลย

แค่นี้แหละน้อง! ตอนนี้พี่ก็สามารถสั่งให้ Home Assistant ปิดม่านได้จากที่ไหนก็ได้ แค่พูดว่า "Ok Google, activate close curtain" ง่ายๆ สบายๆ งานนี้จัดไปวัยรุ่น!