จากบทความที่แล้ว ตรวจวัดอุณหภูมิห้องด้วย WeMos D1 Mini (ESP8266) แจ้งเข้า LINE ก็ได้คำแนะนำและกำลังใจเกินความคาดหมาย จึงมีแรงดีดให้รีบรื้อโปรเจกต์เก่าที่คิดไว้แต่ไม่ลงมือทำสักทีนั่นคือ รีโมตแอร์ด้วยมือถือ แต่นั่นแหละครับ คิดไว้นานแต่ไม่ลงมือก็ไม่ได้ผลลัพธ์สักที เอาหล่ะเพื่อไม่เป็นการเสียเวลา ไปดูรายละเอียดกันเลยดีกว่าครับ
มันจะทำอะไรได้บ้าง
- เปิด / ปิดแอร์ ยี่ห้อ LG ผ่านมือถือได้
- เปิด / ปิดแอร์ ยี่ห้อ LG ผ่านคอมพิวเตอร์ได้
- ตั้งอุณหภูมิ 20°C และ 25°C ได้
- ควบคุมจากระบบเน็ตเวิร์กภายใต้ Wi-Fi เดียวกัน
ใช้อุปกรณ์อะไรบ้าง
- WeMos D1 mini
- KY-005 Infrared emission sensor
- Wire
- Breadboard
เริ่มเลย!
ต่อสาย
ต่อสายตามนี้ได้เลยครับ ตัว sensor ใช้ไฟ 5V ได้ตามปกติ แต่เวลานำไปใช้ ต้องเล็ง sensor ให้ตรงกับแอร์เป๊ะ ๆ เลยนะครับ
- IR Emission + <–> WeMos 5V
- IR Emission – <–> WeMos G
- IR Emission Data <–> WeMos D3
เขียนโปรแกรมควบคุม
ในบทความนี้ผมได้ศึกษาจากตัวอย่าง Infrared remote library for ESP8266 ซึ่งมีวิธีการสร้าง Server เพื่อรองรับการรับ parameter เป็นรหัสของรีโมตแอร์ และส่งรหัสนั้นผ่าน IR Emission Sensor ไปยังแอร์อีกที และผมเองก็ได้ค้นหาจนเจอรหัสที่จะใช้งาน ในที่นี้คือแอร์ยี่ห้อ LG ดังนี้ ส่วนยี่ห้ออื่น ๆ ในตัวอย่างก็มีนะครับ ลองค้น ๆ ดู
- เปิด = 142607621
- ปิด = 143392849
- ปรับอุณหภูมิเป็น 20°C = 142640397
- ปรับอุณหภูมิเป็น 25°C = 142641666
ให้แทนที่ Wifi SSID และ Password ลงไปในโค้ด เสร็จแล้วก็สั่งอัปโหลดได้เลยครับ อ้อ สำหรับ UI ผมตัดส่วนตกแต่งออกนะครับ เกรงว่าเอาขึ้นออนไลน์แล้วจะถูกท้วงติงเรื่องลิขสิทธิ์อีก แต่ถ้าท่านไหนสนใจหลังไมก์มาพูดคุยกันได้ครับ 🙂
ส่วนรหัส bits ของแต่ละยี่ห้อ ผมไปค้นในโค้ด library ออกมาให้ ได้ตามนี้ครับ ในตัวอย่างของผมเป็น LG เลยใช้ คำสั่ง irsend.sendLG(code, 28);
ยี่ห้อ | Bit | ตัวอย่างคำสั่ง |
---|---|---|
NEC | 32 | sendNEC(data, nbits) |
SONY | 12 | sendSony(data, nbits) |
JVC | 16 | sendJVC(data, nbits, 0) |
LG | 28 | sendLG(data, nbits) |
SAMSUNG | 32 | sendSAMSUNG(data, nbits) |
WHYNTER | 32 | sendWhynter(data, nbits) |
COOLIX | 3 | sendCOOLIX(data, nbits) |
DAIKIN | 99 | ***มีท่าเฉพาะตัว ตามนี้เลย |
ผลการทำงาน
อัปโหลดโค้ดลง WeMos แล้งเปิด Serial Monitor ขึ้นมา (Ctrl + Shift + M) ให้ดูที่บรรทัด IP address นั่นแหละ ให้นำเลขที่เห็นมาใช้งาน ในตัวอย่างของผมคือ 192.168.1.37
หยิบมือถือมาแล้วเปิด browser ไปที่ 192.168.1.37
หรือจะไปที่คอมแล้วเปิด browser ไปที่ 192.168.1.37 เช่นกัน
ผมถ่ายวิดีโอมาให้ดู มือสั่น ๆ หน่อยนะครับ ดึกด้วย จับไม่ถนัดด้วย เดี๋ยวแก้ตัวใหม่บทความหน้าครับ 😛
เปิด CC ด้วยนะครับ ผมพิมพ์บรรยายไว้ให้อ่านด้วย
อ้างอิงและขอบคุณ
น่าจะพอเป็นไอเดียได้นะครับ โดยเฉพาะหน้ากาก UI ของรีโมตนั้นก็ดูดีกว่าที่เคยเห็นมา จากนี้ถ้าใครจะนำไปต่อยอดแล้วติดขัดตรงไหนก็สอบถามได้นะครับ ช่วย ๆ กัน เดี๋ยวเราก็จะมีของดี ๆ มาแบ่งปันกันได้มากขึ้นเรื่อย ๆ ครับ ในโอกาสหน้าจะมีอัปเดตให้สามารถสั่งผ่านระบบออนไลน์จากข้างนอกวงให้ครับ 🙂