จากบทความที่แล้ว การติดตั้ง Home Assistant บน Raspberry Pi 5 : https://www.artronshop.co.th/b/163 ได้อธิบายข้อมูลและแนะนำขั้นตอนการติดตั้ง Home Assistant ไปแล้ว ในบทความจะลองใส่อุปกรณ์ IoT ที่สร้างขึ้นเองด้วย ESP32 ลงไปใน Home Assistant ดูบ้าง โดยใช้เฟิร์มแวร์สำเร็จรูปอย่าง Tasmota
Tasmota คือ เฟิร์มแวร์โอเพ่นซอร์ส (Open Source) ด้าน Smart Home และ IoT ใช้ติดตั้งลงในอุปกรณ์ที่ใช้ชิป ESP8266 และ ESP32 โดยนิยมติดตั้งลงในอุปกรณ์สำเร็จรูปหลายยี่ห้อที่ใช้ชิปดังกล่าว เช่น อุปกรณ์ยี่ห้อ Sonoff, หลอดไฟบางรุ่น, สวิตช์ติดผนังบางรุ่น เป็นต้น โดยจุดประสงค์สำคัญคือต้องการควบคุมอุปกรณ์เหล่านั้นโดยไม่ใช้แอพฯ หรือ Server ของผู้ผลิตอุปกรณ์ โดยอาจจะเปลี่ยนมาใช้ Server ที่ตั้งอยู่ภายในบ้าน เพื่อเพิ่มความเสถียร์ (เนื่องจากวิ่งในวงแลน ไม่ต้องออกเน็ตก่อน) และควบคุมได้ยืดหยุ่นมากยิ่งขึ้น นอกจากนี้ ยังรองรับการเชื่อมต่อกับระบบสมาร์ทโฮมยอดนิยม เช่น Home Assistant, OpenHAB และ Domoticz ซึ่งช่วยให้การจัดการอุปกรณ์สมาร์ทโฮมเป็นเรื่องง่ายและสะดวกยิ่งขึ้น
จุดเด่นสำคัญของ Tasmota คือสามารถตั้งค่าอุปกรณ์ผ่านหน้าเว็บได้ ทำให้การใช้งานสามารถทำได้ง่าย โดยไม่ต้องเขียนโค้ดเลย รองรับการตั้งค่าเชื่อมต่อ WiFi, การตั้งค่าขา GPIO ต่าง ๆ, การดูสถานะ GPIO, การตั้งค่าเชื่อมต่อ MQTT, การตั้งค่าเชื่อมต่อ Matter, การควบคุมผ่านหน้าเว็บ, การสั่งงานผ่าน API, การสั่งอัพเดทเฟิร์มแวร์ (OTA)
ในบทความนี้เราลองตั้งค่าใช้งาน Home Assistant เชื่อมต่อกับ ESP32 โดยใช้เฟิร์มแวร์ Tasmota สั่งงานรีเลย์ 4 ช่อง
เชื่อมต่อบอร์ด ESP32 (ในรูปเป็น IOXESP32+) เข้ากับบอร์ดรีเลย์ 4 ช่อง ตามวงจรด้านล่างนี้
หรือต่อตามตารางด้านล่างนี้
บอร์ด ESP32 | บอร์ดรีเลย์ |
5V | VCC |
IO5 | IN1 |
IO17 | IN2 |
IO16 | IN3 |
IO4 | IN4 |
GND | GND |
เข้าไปที่ Home Assistant แล้วเข้าสู่ระบบให้เรียบร้อย
สร้าง Username และ Password ที่ให้อุปกรณ์ใช้ล็อกอิน โดยกดที่ การตั้งค่า (1) เลือก People (2)
กดที่แท๊ป ผู้ใช้ (1) แล้วกดปุ่ม ADD USER (2)
หน้าต่างเพิ่มผู้ใช้จะแสดงขึ้นมา ให้กรอกข้อมูลดังนี้
เป็นอันจบการสร้าง Username & Password สำหรับใส่ในขั้นตอนตั้งค่าเชื่อมต่อ MQTT หากต้องการให้แต่ละอุปกรณ์ใช้ Username & Password คนละชุดกัน ก็สามารถสร้างเพิ่มได้ในขั้นตอนนี้เลย (แต่ปกติทุกอุปกรณ์จะใช้ Username & Password เดียวกันเพื่อความง่ายในการตั้งค่า)
การเชื่อมต่อกับ Tamota ต้องเชื่อมต่อผ่าน MQTT และต้องติดตั้งส่วนเสริม (Add-on) MQTT Broker เพิ่ม โดยบทความนี้เลือกใช้ Mosquitto
การติดตั้ง Add-ons ต้องเปิดใช้โหมดขั้นสูง (Advanced mode) ก่อน โดยที่แถบซ้ายสุดกดที่เมนูสุดท้าย (ชื่อที่ล็อกอินอยู่ ณ ขณะนั้น) แล้วเลื่อนหาตัวเลือก Advanced mode จากนั้นกดปุ่มเปิด
เริ่มติดตั้งส่วนเสริม (Add-on) Mosquitto โดยกดไปที่ การตั้งค่า (1) แล้วเลือก Add-ons (2)
ค้นหา MQTT (1) แล้วเลือก Mosquitto broker (2)
กดปุ่ม INSTALL เพื่อเริ่มติดตั้ง จากนั้นรอซักครู่
เมื่อติดตั้งเสร็จ กดปุ่ม Start เพื่อให้ Mosquitto เริ่มทำงาน
Integrations เป็นซอฟแวร์ตัวกลาง (Middleware) ที่คอยแปลงข้อมูล Tasmota จาก MQTT ให้อยู่ในรูปแบบที่ Home Assistant เข้าใจ ดังนั้นหากต้องการให้ Tasmota เชื่อมต่อกับ Home Assistant ได้ ก็จำเป็นจะต้องติดตั้ง Integration เพิ่มเติมด้วย
กดที่เมนู ตั้งค่า (1) เลือก Devices & services (2)
จากนั้นกดปุ่ม ADD INTEGRATION ที่มุมขวาล่าง
ค้นหา Tasmota (1) เลือก Tasmota (2)
หน้าต่างตั้งค่า Discovery topic จะแสดงขึ้นมา ให้กดปุ่ม SUBMIT เพื่อใช้ค่าเริ่มต้นที่ให้มา
หน้าต่างแจ้งผลการติดตั้ง Tosmota Integration จะแสดงขึ้นมา ให้กดปุ่ม FINISH เพื่อปิดหน้าต่างนี้ไป
หลังจากนี้หากมีอุปกรณ์ Tasmota เชื่อมต่อ MQTT เข้ามา ที่ตัว Home Assistant ก็จะหาอุปกรณ์เจออัตโนมัติ
ต่อบอร์ด ESP32 เข้ากับคอมพิวเตอร์ด้วยสาย USB
ติดตั้ง Tasmota ผ่านหน้าเว็บ โดยเข้าไปที่ https://tasmota.github.io/install/ จากนั้นเลือกเวอร์ชั่นภาษาอังกฤษ (1) แล้วกด CONNECT
เลือกพอร์ต (1) แล้วกด เชื่อมต่อ
หมายเหตุ. หากไม่มีพอร์ตให้เลือก ให้ตรวจสอบว่าติดตั้งไดร์เวอร์แล้วหรือยัง สาย USB เป็นสายข้อมูลหรือไม่ (อาจลองเปลี่ยนสายดู)
กด INSTALL TASMOTA (ENGLISH)
กดเลือก Erase device (1) เพื่อให้ล้างข้อมูลเก่าที่ค้างในบอร์ด ESP32 ทิ้งไปก่อน จากนั้นกด NEXT (2)
กดปุ่ม INSTALL เพื่อยืนยันการติดตั้ง Tasmota
รอติดตั้งสักครู่ เมื่อเสร็จแล้ว จะมีข้อความ Installation complete ขึ้น (ดังรูป) จากนั้นกด NEXT
Tasmota จะเริ่มค้นหา WiFi ที่อยู่ในระยะสัญญาณให้ (รอจนกว่าจะเสร็จ)
เลือก WiFi ที่ต้องการให้อุปกรณ์ไปเชื่อมต่อ แล้วกดปุ่ม CONNECT
รอจนกว่าการเชื่อมต่อ WiFi จะเสร็จ
หากเชื่อมต่อ WiFi สำเร็จ จะมีข้อความ Device connacted ขึ้น (ดังรูป) กด VISIT DEVICE เพื่อเข้าหน้าตั้งค่าของ Tasmota ทันที
หน้าตั้งค่าของ Tasmota จะแสดงขึ้นมา (ดังรูป) กดที่ปุ่ม Configuration เพื่อเริ่มตั้งค่าเชื่อมต่อรีเลย์
กดที่ปุ่ม Module
เลือก Module type เป็น ESP32-DevKit (0) (ดังรูป) จากนั้นกด Save
หน้าจอแสดงสถานะการบันทึกการตั้งค่าจะแสดงขึ้นมา ให้รอสักครู่แล้วกดปุ่ม Main Menu
กดที่ปุ่ม Configuration อีกครั้ง แล้วเลือกเมนู Tamplate
ตั้งค่าขาที่ต่อรีเลย์ทั้งหมด ให้เป็น Relay_i (Relay invert) แล้วกำหนดหมายเลขรีเลย์ (ดังรูป) จากนั้นกดปุ่ม Save
หน้าจอแสดงสถานะการบันทึกการตั้งค่าจะแสดงขึ้นมา ให้รอซักครู่แล้วกดปุ่ม Main Menu
ที่หน้าหลักจะมีปุ่ม Toggle 1, Toggle 2, Toggle 3, Toggle 4 ขึ้นมาแล้ว กดที่ปุ่มเพื่อทดสอบสั่งงานรีเลย์
ผลที่ได้ เป็นดังคลิปด้านล่าง
กดที่ปุ่ม Configuration อีกครั้ง แล้วเลือกเมนู MQTT แล้วตั้งค่าการเชื่อมต่อ MQTT ดังนี้
หน้าจอแสดงสถานะการบันทึกการตั้งค่าจะแสดงขึ้นมา
กลับมาที่ Home Assistant หากตั้งค่าถูกต้อง ตรงกรอบ Tasmota จะแสดง 1 DEVISES แล้ว (หากยังไม่ขึ้น ให้รีเฟสหน้าเว็บ 1 ครั้ง) กดที่ปุ่มเพื่อดูรายละเอียด
กรอบ การควบคุม จะแสดงขึ้นมา ทดสอบกดที่สวิตช์เปิด-ปิด ก็จะพบว่าสามารถควบคุมการทำงานของรีเลย์ได้แล้ว
เปลี่ยนชื่อของรีเลย์แต่ละตัวโดยกดที่ชื่อ
กดรูปเฟืองเพื่อตั้งค่า
กำหนดชื่อใหม่ในช่อง Name (1) จากนั้นกด UPDATE (2)
ผลที่ได้ ชื่อจะเปลี่ยนไปแล้ว
ทำซ้ำขั้นตอนเดิม เพื่อเปลี่ยนชื่อตัวที่เหลือ ผลที่ได้เป็นดังรูป
เปลี่ยนชื่อของอุปกรณ์นี้ โดยกดที่รูปดินสอด้านบนมุมขวา
ตั้งชื่ออุปกรณ์ใหม่ในช่อง ชื่อ (1) แล้วกด UPDATE (2) (ตัวอย่างตั้งชื่อ ESP32-1)
หน้าต่างแจ้งเตือนการแก้ไขชื่อภายในจะแสดงขึ้นมา ให้ยืนยันโดยกด RENAME
กดกลับมาที่หน้า ภาพรวม จะเห็นว่ามีกรอบ ESP32-1 ขึ้นมาแล้ว เมื่อกดที่ปุ่มเปิด-ปิดก็จะพบว่าสามารถควบคุมการทำงานของรีเลย์ได้แล้ว
เมื่อกดที่สวิตช์เปิด-ปิด พบว่าสามารถควบคุมรีเลย์ได้ดังคลิปด้านล่าง
Tasmota ยังมีความสามารถที่หลากหลาย เช่น เชื่อมต่อกับเซ็นเซอร์, RGB LED และอื่น ๆ หากมีโอกาสจะแนะนำให้รู้จักในบทความถัดไป ๆ สำหรับบทความนี้จะแนะนำเฉพาะเชื่อมต่อกับรีเลย์ก่อน แล้วเจอกันใหม่ในบทความต่อไป
~ สวัสดีครับ ~