ลองเล่น IFTTT ถ้าเป็นเช่นนั้นแล้ว

IFTTT ย่อมาจาก “if this then that” หรือแปลเป็นไทยตรงๆก็คือ “ถ้าเป็นเช่นนั้นแล้ว” มันเป็นแนวคิดง่ายๆแค่ว่า “ถ้าเกิด เหตุการณ์ นี้ให้ไป ทำงาน อันนั้น” ฝรั่งก็เลยจับเอา เหตุการณ์ และ ทำงาน ต่างๆนั้นมาผูกกับ Service ต่างๆมากมาย

If this then that

IFTTT ทำอะไรได้บ้าง

คือตอนแรกก็ไม่รู้หรอกว่ามันคืออะไรแค่อยากทำระบบอัตโนมัติต่างๆดู @Molek เลยแนะนำมาให้ลองไปเล่นตัวนี้ เพราะว่ามันต่อกับ google home สามารถใช้สั่งงานด้วยเสียงได้ด้วย พอลองเข้าไปดูที่ https://ifttt.com ก็เจอว่ามันทำได้เกือบทุกอย่างที่อุปกรณ์ของคุณรองรับ ที่คุณมี Service อยู่ เช่นถ้าคุณมี facebook , มี line มี email กับมือถือที่ลง App IFTTT เอาไว้ คุณอาจจะ

  • ถ้าคุณ ออกจากบ้าน แล้วให้ post แจ้งที่ facebook
  • ถ้าคุณ ออกจากบ้าน แล้วให้ ปิด WiFi แล้วเปิด 4G
  • ถ้าเพิื่อน อวยพรวันเกิดคุณ ใน facebook ให้ ตอบขอบคุณอัตโนมัติ
  • ถ้าแบต มือถือใกล้หมด แล้วให้ ปิด WiFi ปิด Data
  • ถ้า เขียน Blog ใหม่ แล้วให้ post แจ้งที่ Social Network ด้วย
  • ถ้าสามี เข้าไปถนนรัชดา ให้ส่ง line notify หาภรรยา (ลาก่อยยยยพ่อบ้านใจกล้าปิด find my iphone แล้วคิดว่าจะรอดหรอ)

อะไรแบบนี้เนื่องด้วย service มันเยอะมากผมก็ยังดูไม่หมดต้องไล่ๆหาดูเอาเอง https://ifttt.com/search

Service ต่างๆใน IFTTT มีมากมาย
Service ต่างๆใน IFTTT มีมากมายคลิกเข้าไปใน Service นั้นจะมี trigger ต่างๆให้เลือก

service ต่างๆที่เราเลือกใช้งานแล้ว มันจะบันทึกเอาไว้ที่ My Applets ของเราสามารถกดเข้าไปเรียกดูได้

ตัวอย่างหน้า My Applets ของผม
ตัวอย่างหน้า My Applets ของผม

มาลองสร้าง Applets ของตัวเองจาก Services ที่ทำสำเร็จรูปเอาไว้แล้ว

เนื่องด้วย Services ต่างๆใน IFTTT มันมีมากมายทั้งเกิดจากเจ้าของ Services นั้นๆพัฒนาขึ้นและนักพัฒนาภายนอกกทำ Applets ของตัวเองออกมาแจกจ่ายให้ลองใช้กันดู เราก็ควรลองใช้งานดูก่อน

ผมลองดู Services ของ facebook (https://ifttt.com/facebook) แล้วเห็นอันนึงน่าสนใจ

ตัวอย่าง Service ของ Facebook
ตัวอย่าง Service ของ Facebook

ตามรูปคือ backup status ทั้งหมดของเราเข้า google drive ก็โอนะ ลองเลย คลิกเข้าไป

หน้าจอจะบอกรายละเอียดของ Service นี้ by facebook คือชื่อผู้พัฒนา Services นี้
หน้าจอจะบอกรายละเอียดของ Service นี้ by facebook คือชื่อผู้พัฒนา Services นี้
ถ้ามันจำเป็นต้องขอสิทธิ์เพิ่มเติมใดๆมันก็จะแจ้งบอกอย่างอันนี้คือผมต้องผูก Google Account เข้าไปก่อน
ถ้ามันจำเป็นต้องขอสิทธิ์เพิ่มเติมใดๆมันก็จะแจ้งบอกอย่างอันนี้คือผมต้องผูก Google Account เข้าไปก่อน
จะใช้ Account ไหนก็เลือกไป
จะใช้ Account ไหนก็เลือกไป
ขอสิทธิ์อะไรบ้างก็ให้ไป
ขอสิทธิ์อะไรบ้างก็ให้ไป
เสร็จแล้วก็จะได้หน้าจอสรุป Applets ที่เราสร้างนี้ กด Save ก็เรียบร้อย
เสร็จแล้วก็จะได้หน้าจอสรุป Applets ที่เราสร้างนี้ กด Save ก็เรียบร้อย

ณ ตอนนี้เราก็จะได้ Applet ที่ทำงานอัตโนมัติโดยที่เราไม่ต้องไปสนใจมันเลย ซึ่ง Applet นี้มีเงื่อนไขว่า ถ้าเรา post status ลง facebook เมื่อไรมันจะ เอาข้อความไปเก็บเป็น SpreadSheet ไว้ใน  Goole Drive ให้อัตโนมัติเลย !!!

ผมลองทดสอบพิมพ์ใน Timeline Facebook ดู
ผมลองทดสอบพิมพ์ใน Timeline Facebook ดู
พอเข้าไปดูที่ Google Drive ของตัวเองก็พบว่ามี Excel File เพิ่มเข้ามา
พอเข้าไปดูที่ Google Drive ของตัวเองก็พบว่ามี spreadsheet เพิ่มเข้ามา
และแน่นอนมันก็มีข้อความที่เรา Update เอาไว้
และแน่นอนมันก็มีข้อความที่เรา Update เอาไว้

นี่เป็นตัวอย่างง่ายๆในการประยุกต์ใช้ IFTTT ซึ่งเราไม่ต้องเขียน Code อะไรเลย !!! แค่เลือกเงื่อนไขให้มันทำงานแบบ if this then that นั้นเอง

เมื่อเอา IFTTT มาผสมกับ IoT แล้ว

หลายๆ Service เราอาจจะมองว่าไร้สาระแต่มันอาจจะมีประโยชน์มากๆกับคนอื่นๆ โดยเฉพาะกับ IoT เพราะอุปกรณ์พวก MCU ที่เราใช้ (อย่างที่ผมใช้ประจำก็ ESP8266) มันก็มีข้อจำกัดเรื่อง memory ถ้าเราอยากให้ IoT ที่เราพัฒนาใช้งานได้หลากหลายการ Coding อะไรเยอะแยะลงไปอาจจะทำให้ memory เต็มจนทำไม่ได้ เช่น ถ้ากดเปิด Switch ไฟในห้องให้ส่ง Email แจ้ง แค่นี้บน ESP8266 ก็เขียน Code กันหูดับแล้วครับ

สำหรับสายนักพัฒนาอย่างเรา Service ที่น่าสนใจและใช้งานง่ายมากๆก็คือ Maker WebHooks

Service ของ Maker Webhooks เครื่องมือสำหรับนักพัฒนา IoT อย่างเรา
Service ของ Maker Webhooks เครื่องมือสำหรับนักพัฒนา IoT อย่างเรา

Maker Webhooks https://ifttt.com/maker_webhooks คือบริการที่ทำหน้าที่ 2 แบบคือ แบบรับและแบบส่ง การรับการเรียก URL Request เราเรียกว่า Triggers และสามารถสั่งทำงานเรียก URL ที่กำหนดได้เราจะเรียกว่า Actions โดยเราสามารถเลือกใช้ Triggers หรือ Actions หรือใช้ทั้งคู่ก็ได้

Triggers และ Actions
Triggers และ Actions

ตัวอย่างที่เราสามารถทำได้

  • สั่งงานด้วยเสียงผ่าน google assistant “close light” แล้วให้ เรียก web hooks มาที่ url ของ IoT ที่เราทำสั่งไว้ปิดไฟ
  • สั่งงานด้วยเสียงผ่าน google assistant “open light” แล้วให้ เรียก web hooks มาที่ url ของ IoT ที่เราทำสั่งไว้เปิดไฟ
  • ถ้า สภาพอากาศวันนี้ฝนน่าจะตก ให้ เรียก web hooks มาที่ url ของ IoT สั่งปิดก็อกน้ำไม่ต้องรดน้ำต้นไม้

นึกออกไหมว่า IoT ของเราจะเปิดเป็น URL Request เอาไว้เราสามารถเอา Web Hooks มาต่อได้ทุกอย่างอยู่ที่ว่า Trigger เราจะใช้อะไรเข้ามาเรียก

ลองมาทำ Applets ของเรากันดีกว่า โจทย์คือ ออกจากบ้านแล้วให้ปิดไฟ กลับมาบ้านให้เปิดไฟ

เนื่องด้วยผมทำ Switch ไฟ Online เอาไว้แล้วโดยสามารถควบคุมผ่านการเรียก URL ดังนี้ (url สมมุตินะ)
เปิดไฟ http://nineaum.dynamicdns.com/light1/on
ปิดไฟ http://nineaum.dynamicdns.com/light1/off

ผมลองสร้างเงื่อนไขว่า ถ้าออกจากบ้านให้ปิดไฟ ถ้ากลับเข้าใกล้บ้านให้เปิดไฟ ผมลองค้นหา Service ใน IFTTT แล้วพบว่าสามารถทำได้โดยใช้ Service ที่ชื่อว่า Location เริ่มแรกจากหน้า My Applets ให้กด New Applet (https://ifttt.com/create) ขึ้นมาก่อน

หน้า New Applet ให้กดที่ + This เพื่อเริ่มสร้างเงื่อนไข
หน้า New Applet ให้กดที่ + This เพื่อเริ่มสร้างเงื่อนไข
ค้นหาคำว่า location จะเจอ service Location ขึ้นมา
ค้นหาคำว่า location จะเจอ service Location ขึ้นมา
เลือก Trigger ที่ว่า ถ้าเราออกจากพื้นที่
เลือก Trigger ที่ว่า ถ้าเราออกจากพื้นที่
ให้ระบุพื้นที่ของบ้านเราเอาไว้อาจจะกว้างๆหน่อยเพื่อให้ระบบมีเวลาเช็ค Location
ให้ระบุพื้นที่ของบ้านเราเอาไว้อาจจะกว้างๆหน่อยเพื่อให้ระบบมีเวลาเช็ค Location
เสร็จแล้วระบบจะส่งกลับมาหน้าเดิมให้คลิก +that คือจะให้อะไรต่อ
เสร็จแล้วระบบจะส่งกลับมาหน้าเดิมให้คลิก +that คือจะให้อะไรต่อ
กดเข้าไปแล้วค้นหา webhook
กดเข้าไปแล้วค้นหา webhook
เลือกสร้าง web request เพื่อให้มันเรียก url ปิดไฟของเรา
เลือกสร้าง Action แบบ web request เพื่อให้มันเรียก url ปิดไฟของเรา
กำหนดค่า URL ปิดไฟลงไป
กำหนดค่า URL ปิดไฟลงไป
เรียบร้อย Applets ของเราก็พร้อมใช้งานล่ะ
เรียบร้อย Applets ของเราก็พร้อมใช้งานล่ะ

กรณีการเปิดไฟก็ทำ Applet เพิ่มอีกตัวครับเลือกตัว Trigger เป็นเมื่อเราเข้ามาในพื้นที่ แค่นั้นเอง ถ้าถามว่าแล้ว IFTTT มันรู้ได้ยังไงว่าเราเดินทางไปไหนบ้างแล้วมันสามารถเช็คได้จากมือถือที่เราลง App IFTTT เอาไว้ไงครับ

หน้า IFTTT บน GooglePlay
หน้า IFTTT บน GooglePlay

โดยตัว App IFTTT มันจะขอสิทธิ์เพื่อตรวจสอบตำแหน่งของเราได้นั้นเอง ส่วนว่าใครอาจจะสังเกตว่า UX,UI ของ Web IFTTT มันดูใหญ่ๆชอบกล ก็เพราะว่าเค้า Build ให้เหมาะกับบนมือถือด้วยใครอาจจะสะดวกสร้าง Applet บนมือถือก็สามารถทำได้เช่นกัน

IFTTT บนความสะดวกก็มีทั้งข้อดีข้อเสีย

ข้อดี

  • นักพัฒนาสบายไม่ต้องมาปวดหัว Coding
  • ประหยัดเวลาการพัฒนา คือเสียเวลาค้นหา Services ให้ตรงความต้องการจะเร็วกว่าการมาพัฒนางานใหม่ทั้งหมด
  • ลดภาระการทำงานบน IoT ได้มีอะไรโยนเข้า IFTTT ให้หมด

ข้อเสีย

  • ระบบมีการพึ่งพา Service ภายนอกถ้า IFTTT ล่มก็หมายถึงระบบงานของเราล่มตาม ฉะนั้นควรออกแบบแผนสำรองเอาไว้เผื่อด้วย
  • อาจจะเสียรู้ บางทีเราคิดว่างานยากๆ น่าจะเสียเวลาพัฒนาเยอะ ที่ไหนได้ เคาะ 3-4 ทีก็ได้ Applet ใช้งานแล้ว ไม่ได้ตลกนะ เห็นว่ามีอาจารย์กรรมการ Project อนุญาตให้นักศึกษาทำ Project นี้เพราะคิดว่ามัน Coding ยากและนาน ที่ไหนได้ นักศึกษามาใช้ IFTTT นี่จะฮาเอานะ 😛

จบล่ะบทความนี้ เขียนละเอียดรูปเยอะหวังว่าจะอ่านกันจบถึงบรรทัดนี้น่ะนะ

ความคิดเห็น