[Alexa] น้อง Alexa พาเพลิน — ลองทำ WeMo Smart Plug ใช้เองด้วย ESP8266 กันเถอะ
มาต่อตอนที่ 3 กันเลยครับ หลังจากที่เราได้รู้จักกับน้อง Alexa ผ่าน Echo Dot ในตอนที่ 1 และตอนที่ 2 สำหรับการทดลองเชื่อมต่อกับ TP-Link Smart Plug ไปแล้ว มันคงจะดีไม่น้อยถ้าเราทำอุปกรณ์พวก Smart Home ได้เอง โดยไม่ต้องไปเสียตังค์ซื้อมาแพง ๆ ตลอดเวลา บทความนี้คือคำตอบครับ เราจะมาทำอุปกรณ์ Smart Home เล่นเองครับ ง่าย ๆ งบน้อย ๆ เพียงแค่ใช้ ESP8266 ก็สนุกได้แล้วครับ
เราจะมาทำอุปกรณ์ Smart Home เล่นเองครับ ง่ายๆ งบน้อยๆ เพียงแค่ใช้ ESP8266 ก็สนุกได้แล้วครับ
WeMo Smart Plug รุ่นทำเองจาก ESP8266
WeMo เป็นอุปกรณ์ Smart Home จาก Belkin นะครับ (หากใครยังไม่รู้จัก)
เนื่องจากคุณ Chris แกได้เล่นเจ้า Amazon Echo แล้วเกิดซน ๆ ลองจับ Packet ที่ Echo คุยกับ WeMo ดู แล้วก็ค้นพบวิธีดังกล่าวครับ จึงได้ทำการเผยแพร่วิธีการนี้ ให้พวกเราได้ลองเล่นกันดูครับ….กราบบบบบ
WeMo เป็นอุปกรณ์ Smart Home จาก Belkin นะครับ (หากใครยังไม่รู้จัก) หลักการการทำงานก็ง่าย ๆ ดังนี้ครับ (กรุณาดูภาพไดอะแกรมประกอบ)
การทำความรู้จักอุปกรณ์ WeMo กับ Echo
- Echo จะทำการค้นหา WeMo ด้วยการประกาศ (Broadcast) UPnP
- WeMo ได้ยินแล้ว ก็ตอบ Echo ด้วย HTTP URL
- Echo ก็ขอข้อมูลรายละเอียดเพิ่มเติม ด้วย HTTP URL
- WeMo ก็ให้ข้อมูลกลับไปแบบ HTTP Response
การสั่งงานเปิด/ปิด WeMo
- Echo ใช้คำสั่ง “SetBinaryState” สั่งไปที่ WeMo ผ่าน HTTP
- WeMo ตอบกลับผ่าน HTTP
อุปกรณ์ที่ใช้
- Espresso Lite V2.0 (ESP8266)
จริงจะใช้ ESP8266 รุ่นไหนก็ได้นะครับ ใครยังไม่เคยเล่นตัวนี้แนะนำอ่านบทความนี้ก่อนครับ > [ESP8266] มาลองเล่น ESPresso Lite V2.0 กัน - FTDI Friend 3.3V
สำหรับโปรแกรม Espresso Lite (รุ่นไหนที่มีมาแล้วก็ไม่ต้องครับ) - สาย Mini USB
อันนี้ก็ไว้ใช้คู่กับ FTDI เช่นกันครับ - Relay Module
สำหรับไว้เปิด/ปิดโคมไฟ - โคมไฟ
อุปกรณ์สำหรับทดสอบของเรานั้นเอง .. ใครไม่มีใช้แค่ LED ธรรมดาดูก่อนก็ได้ครับ
มาลองทำ WeMo Smart Plug รุ่นทำเองจาก ESP8266 กัน
Step 1 : ต่อสาย
- ผมใช้ Pin 4 ของ Espresso Lite V2.0 ไปเป็นสัญญาณออกไปสั่ง Relay ให้ทำงาน ที่ขาสัญญาณของ Relay ครับ
- โดยส่วนอื่น ก็ตามนี้ ง่ายๆ ได้เลยครับ
หมายเหตุ* สัญลักษณ์ Light Blub จริงๆมันคือปุ่ม แต่ผมขอเอามาแทนนะครับ เนื่องจากกว่าในโปรแกรมมันไม่มีหลอดไฟมาให้
Step 2 : ดาวโหลดโค๊ด
- ดาวโหลดโค๊ดจากโค๊ดด้านล่างนี้ หรือต้นฉบับได้ที่ kakopappa
- เปิดด้วยโปรแกรม Arduino IDE (ก๊อปปี้ไปวางได้เลยครับ)
- แก้ไขบรรทัด 13 ในเครื่องหมายคำพูด “ ” ให้เป็นชื่อ Wi-Fi ที่จะไปเชื่อมต่อ
- แก้ไขบรรทัด 14 ในเครื่องหมายคำพูด “ ” ให้เป็นรหัส Wi-Fi ที่จะไปเชื่อมต่อ
- แก้ไขบรรทัด 33 ให้เป็นหมายเลขขาที่คุณจะใช้
- แก้ไขบรรทัด 124 ในเครื่องหมายคำพูด “ ” ให้เป็นชื่อของอุปกรณ์ที่คุณจะใช้เรียกกับ Alexa
โค๊ดนี้ต้นฉบับมาจากโค๊ดคุณ Aruna Tennakoon หรือ kakopappa
Step 3 : Flash
- เลือกบอร์ดเป็น Espresso Lite V2.0
- เลือกพอร์ต
- กด Upload เพื่อ Compile และดาวโหลดโปรแกรมลงบอร์ดได้เลยครับ
Step 4 : สแกนหาอุปกรณ์ใน Alexa App
- เข้ามาที่ Alexa App เลือกเมนู Smart Home
- Alexa จะสแกนหาอุปกรณ์ Smart Home ที่เชื่อมต่ออยู่กับวงเครือข่ายเดียวกับ Alexa ซึ่งก็จะเจอ ESP Smart Plug ที่เราทำขึ้นมาครับ
- หากใครหาไม่เจอ ให้กดที่ Discover devices ระบบจะทำการสเกนหาให้อีกทีครับ ประมาณ 30 วินาที
- หรือใครอยากเท่ก็ใช้คำสั่ง สั่งให้ Alexa หาให้ได้ครับ โดยสั่งว่า “Alexa, Discover devices”
Step 5 : ทดสอบคำสั่งเสียง
- ลองใช้งานคำสั่งดูครับ
- เปิด — “Alexa, Turn on ESP Smart Plug”
- ปิดไฟ — “Alexa, Turn off ESP Smart Plug”
Step 6: เบื้องหลังการทำงาน
หากเราเปิด Serial Monitor ดูที่ Arduino IDE จะเห็นการทำงานเบื้องหลังของ ESP Smart Plug ของเราดังนี้ครับ
หมายเหตุ* อย่าลืมเลือก Baudrate เป็น 115200 ด้วยนะครับ
- ESP8266 เริ่มทำการเชื่อมต่อกับ Wi-Fi
- เริ่มการทำงาน UDP
- เมื่อน้อง Alexa เริ่มทำการค้นหา ESP Smart Plug เค้าทั้ง 2 คนก็จะเริ่มพูดคุยกันครับ
- เมื่อเราสั่งคำสั่งให้เปิดไฟ หรือ “Alexa, Turn on ESP Smart Plug” ที่ Arduino จะแสดงข้อความว่า Got Turn on request
- เมื่อเราสั่งคำสั่งให้เปิดไฟ หรือ “Alexa, Turn on ESP Smart Plug” ที่ Arduino จะแสดงข้อความว่า Got Turn off request
สรุป
ทำอุปกรณ์ Smart Home แบบเท่ ง่าย ๆ สนุกดีครับ ประหยัด ทำงานได้เหมือนของที่ซื้อมาเลยครับ แถมยังประยุกต์ใช้งานได้อีกหลากหลายเลยครับ ใครมี ESP8266 ก็หยิบมาเล่นได้เลยครับ รับรองว่าฟินนนน