แต่เดิมการส่งแจ้งเตือนมักใช้บริการ LINE Notify ช่วยส่งแจ้งเตือนเข้าแอพฯ LINE โดยสามารถส่งข้อความ รูปภาพ สติ๊กเกอร์ อย่างสะดวกและรวดเร็ว อย่างไรก็ตาม LINE Notify จะมีการปิดให้บริการตั้งแต่วันที่ 31 มีนาคม 2568 เป็นต้นไป ตามประกาศในหน้าเว็บของ LINE Notify บริการที่ LINE แนะนำให้ใช้งานแทนคือ LINE Messaging API ซึ่งเป็นบริการที่รองรับทั้งการส่งข้อความหาผู้ใช้ และรับข้อความจากผู้ใช้ เพื่อทำ Bot Chat ความสามารถเพิ่มเติมของ LINE Messaging API อีกส่วนคือรองรับการส่งข้อความรูปแบบ Flex ทำให้ข้อความที่ส่งมีความสวยงาม น่าอ่านมากขึ้น
อย่างไรก็ตามการใช้งาน LINE Messaging API ทดแทน LINE Notify ก็มีความแตกต่างกันในด้านค่าใช้จ่าย, ด้าน User Journey และด้านการเขียนโค้ดโปรแกรม ผู้ใช้ควรอ่านข้อมูลจากบทความนี้ให้ครบด้วยถ้วนก่อนตัดสินใจเลือกใช้งาน
รูปที่ 1 ประกาศสิ้นสุดการให้บริการ LINE Notify
LINE Notify ผู้รับข้อความทุกคนสามารถรับข้อความได้เลย เพียงเพิ่ม LINE Notify เป็นเพื่อนด้วย QR Code ที่ LINE มีให้ การขอ Token และการเลือกห้องส่งข้อความ สามารถทำผ่านหน้า Web App ได้เลย
LINE Messaging API จำเป็นจะต้องสร้างบัญชี LINE Official Account แล้วให้ User เพิ่มบัญชีนี้เป็นเพื่อนก่อน การขอ Token สามารถทำได้ผ่าน Web App แต่ Token จะไม่ได้ผูกกับห้อง ตัว Token สามารถส่งเข้าห้องแชทไหนก็ได้ แต่ต้องมี ID ของห้อง การจะได้มาซึ่ง ID ของห้องต้องทำผ่าน Web Hook API เท่านั้น (ยุ่งยากกว่าเดิม)
ในด้านการเขียนโปรแกรม เดิม LINE Notify จะใช้ข้อมูล Token เพื่อส่งข้อความเท่านั้นและชัดเจนว่า 1 Token = 1 ห้อง แต่ LINE Messaging API จะต้องมีทั้ง Token และเลข ID ห้อง จึงจะส่งข้อความได้
LINE Notify ไม่มีค่าใช้จ่ายในการใช้งาน (แต่จำกัดข้อความที่ส่งได้สูงสุดในแต่ละวัน) แต่ LINE Messaging API ค่าใช้จ่ายจะคิดตามผู้รับข้อความ เช่น ส่งเข้ากลุ่ม 50 คน จะนับเป็นการส่ง 50 ข้อความ โดยหากใช้แพ็กเกจ ฟรี จะสามารถส่งได้เพียง 300 ข้อความ/เดือน
รูปที่ 2 แพ็กเกจราคาของ LINE Official Account
เข้าไปที่ https://account.line.biz/ จากนั้นเข้าสู่ระบบให้เรียบร้อย กด สร้างใหม่
กรอกข้อมูลดังรูป แล้วกดปุ่ม ตกลง
กดปุ่ม เสร็จสิ้น เพื่อยืนยันการเปิดแอคเคาท์ใหม่
ผลการสร้างแอคเคาท์ใหม่จะแสดงขึ้นมา กดปุ่ม ไป LINE Official Account Manager เพื่อเริ่มตั้งค่าทันที
รายการข้อกำหนดการใช้งานจะขึ้นมา ให้กดปุ่ม ยอมรับ
ปิดกล่อง ยินดีต้อนรับ โดยกด X มุมขวาบน
เปลี่ยนรูปประจำตัว โดยกดที่ปุ่ม แก้ไข
กดปุ่ม เลือกไฟล์ จากนั้นเลือกรูปประจำตัวใหม่
เมื่อเลือกแล้ว ให้กดปุ่ม บันทีก
หน้าต่างแจ้งเตือนจะแสดงขึ้นมา ให้กด บันทึก
จากนั้นเลื่อนมาที่หัวข้อ การใช้ฟีเจอร์ กด อนุญาตให้เข้าร่วมกลุ่ม
ยืนยันโดยกดปุ่ม ตกลง
ที่เมนูด้านขวา กด Messaging API
กดปุ่ม ใช้ Messaging API
หน้าต่างสร้างผู้ดูแลบัญชี (Provider) จะแสดงขึ้นมา ตั้งชื่อตามต้องการ แล้วกด ยอมรับ
กดปุ่ม ตกลง
หน้าต่างสรุปข้อมูลจะแสดงขึ้นมา ให้กดปุ่ม ตกลง
กดตรง LINE Developers หรือเข้า https://developers.line.biz/ เพื่อตั้งค่าเพิ่มเติม
กดปุ่ม Console
กดเข้าไปที่ชื่อ Provider ที่สร้างไว้
เลือกแอคเค้าที่สร้างไว้
กดเลือกเมนู Messaging API
เลื่อนลงมาด้านล่าง หัวข้อ Channel access token ให้กดปุ่ม Issue เพื่อสร้าง Token ใหม่
Token ใหม่จะแสดงขึ้นมาแล้ว ให้เก็บตัว Token นี้ไว้สำหรับใส่ในโค้ดโปรแกรมต่อไป
เข้าไปที่ https://typedwebhook.tools/ จากนั้นคัดลอกลิ้งมาใส่ในช่อง ลิงก์ Webhook แล้วกด บันทึก
เข้าไปที่ห้องแชท LINE Official Account ที่สร้างขึ้นมา แล้วส่งข้อความอะไรก็ได้เข้าไป
ที่ typedwebhook.tools จะมีข้อมูลขึ้นมา ให้กดเลือก JSON
หา source เก็บค่าของ userId ไว้ใช้สำหรับใส่ในโค้ดส่งแจ้งเตือนส่วนตัวต่อไป
หากต้องการส่งแจ้งเตือนเข้ากลุ่ม ให้เพิ่ม LINE แอคเค้าเข้ากลุ่ม
จากนั้นสังเกตใน typedwebhook.tools จะมี #2 ขึ้นมา ให้กดเข้าไป แล้วเลือก JSON เหมือนเดิม
หา source เก็บค่าของ groupId ไว้ใช้สำหรับใส่ในโค้ดส่งแจ้งเตือนเข้ากลุ่มต่อไป
ข้อสังเกต. User ID จะขึ้นต้นด้วย U แต่ Group ID จะขึ้นด้วยด้วย C
สำหรับ ESP32 และ ESP8266 ทาง อาร์ทรอน ชอป ได้จัดทำไลบรารี่ ArtronShop_LineMessaging ขึ้นมา เพื่อความสะดวกในการเขียนโค้ดส่งแจ้งเตือนผ่าน LINE Notify ปัจจุบันรองรับการส่งข้อความ, สติ๊กเกอร์, รูปภาพ (ลิ้งรูปภาพ) และแผนที่ โดยเบื้องหลังไลบรารี่จัดการการสื่อสารกับเซิร์ฟเวอร์ของ LINE ผ่าน HTTPS ให้
ติดตั้งไลบรารี่ ArtronShop_LineMessaging ตามขั้นตอนดังนี้
1) เปิดโปรแกรม Arduino IDE ขึ้นมา แล้วกดเปิด Library Manager ขึ้นมา ค้นหา ArtronShop_LineMessaging แล้วกด INSTALL
2) หลังติดตั้งเสร็จ จะมีข้อความ Successfully ขึ้นมา เป็นอันจบการติดตั้งไลบรารี่เพิ่ม
การส่งข้อความแจ้งเตือนจะทำผ่านไลบรารี่ ArtronShop_LineMessaging โดยก่อนใช้คำสั่งใด ๆ ของไลบรารี่นี้ ต้องใช้คำสั่ง #include <ArtronShop_LineMessaging.h> นำเข้าคำสั่งในไลบารี่มาก่อน
เนื่องจากการส่งแจ้งเตือนต้องทำผ่านอินเตอร์เน็ต ดังนั้นใน void setup() จึงต้องสั่งเชื่อมต่อ WiFi ก่อน โดยใช้ชุดคำสั่งต่อไปนี้
หลังจากเชื่อมต่อ WiFi สำเร็จ ให้ใช้คำสั่ง LINE.setup(<Token>); เพื่อกำหนด Token ที่ได้จากในเว็บ LINE Notify
การส่งแจ้งเตือนใช้คำสั่ง LINE.send(<ID ของห้อง>, <ข้อความที่ต้องการแจ้งเตือน>); โดยหากส่งสำเร็จ จะส่งค่า True กลับมา หากส่งไม่สำเร็จ จะส่งค่า False กลับมา ตัวอย่างส่งข้อความ "รถโดนขโมย" พร้อมตรวจสอบแจ้งใน Serial Monitor ว่าส่งข้อความสำเร็จหรือไม่ มีดังนี้
ได้โค้ดทดสอบส่งแจ้งเตือนฉบับเต็มดังนี้
แก้ไข ssid และ password เป็นชื่อ และรหัสผ่านของ WiFi ที่ออกอินเตอร์เน็ตได้
ตรง LINE_TOKEN ใส่ Token ที่ได้จากเว็บ LINE Developers Console
ตรง User ID or Group ID ใส่ ID ของห้องแชทที่ได้จาก Web Hook
อัพโหลดโปรแกรมลงบอร์ด ESP32 เปิด Serial Monitor ขึ้นมา ปรับ 115200 ผลที่ได้หากส่งข้อความสำเร็จ จะมีข้อความ Send notify successful ขึ้น (ดังรูป)
ในแอพฯ LINE จะมีข้อความแจ้งเตือนส่งเข้าไปในห้องแล้ว
เข้าไปเลือกสติ๊กเกอร์ที่ https://developers.line.biz/en/docs/messaging-api/sticker-list/ แล้วเก็บ Package ID และ ID ไว้ ตัวอย่างเลือกสติ๊กเกอร์ Package ID: 446, ID: 1988
คำสั่ง LINE.send(); เพิ่มโค้ดส่วน option ดังนี้
ได้โค้ดโปรแกรมฉบับเต็มที่แก้ไขเพิ่ม option แล้วดังนี้
อัพโหลดโปรแกรมลงบอร์ด ESP32 จะพบว่ามีข้อความพร้อมสติ๊กเกอร์ขึ้นมาแล้ว
การส่งรูปด้วยลิ้ง จำเป็นจะต้องมีลิ้งของรูปก่อน โดยรูปที่ส่งจะต้องเป็นไฟล์ JPEG มีขนาดไม่เกิน 2048x2048 เท่านั้น
หากยังไม่มีลิ้งรูป สามารถสร้างลิ้งรูปได้โดยนำรูปที่มีคุณสมบัติตรงตามข้อกำหนด (JPEG มีขนาดไม่เกิน 2048x2048) ไปอัพโหลดในเว็บรับฝากรูป ก็จะได้ลิ้งรูปมาแล้ว ตัวอย่างการฝากรูปในเว็บ pic.in.th มีขั้นตอนดังนี้
1) เข้าไปที่ https://pic.in.th/?lang=th กดปุ่ม เริ่มอัพโหลด
เลือกไฟล์รูปที่ต้องการ แล้วกด Open
กดติ๊กถูก ฉันยอมรับเงื่อนไข (1) แล้วกดปุ่ม อัพโหลด (2)
จากนั้นลิ้งของรูปภาพจะปรากฏขึ้นมา ให้คัดลอกลิ้งเก็บไว้ใส่ลงในโค้ดต่อไป
คำสั่ง LINE.send(); เพิ่มโค้ดส่วน option ดังนี้
ได้โค้ดโปรแกรมฉบับเต็มที่แก้ไขเพิ่ม option แล้วดังนี้
อัพโหลดโปรแกรมลงบอร์ด ESP32 จะพบว่ามีข้อความพร้อมรูปภาพขึ้นมาแล้ว
อยู่ในระหว่างการพิจารณาพัฒนาความสามารถนี้เพิ่มเติม
การแจ้งเตือนบางอย่างหากแนบแผนที่ไปด้วย ก็จะทำให้เข้าใจสถานะการณ์ปัจจุบันมากขึ้น เช่น เครื่องตรวจจับไฟไหม้ หากส่งข้อความเตือนไฟไหม้พร้อมส่งแผนที่ ก็จะทำให้รู้ได้ทันทีว่าไฟไหม้ที่ใด หรือเครื่องปจ้งเตือนรถโดนขโมย หากส่งแผนที่ที่บอกที่อยู่ปัจจุบันของรถ ก็จะรู้ได้ทันทีว่าต้องไปตามรถที่ไหน เป็นต้น
ไลบรารี่ ArtronShop_LineMessaging รองรับการส่งแผนที่ Google Map และ Longdo Map โดย Longdo Map สามารถใช้งานได้ทันที แต่ Google Map จำเป็นต้องใช้ API Key
การส่งแผนที่ จำเป็นต้องระบุพิกัดละติจูดและลองจิจูดที่จะปัดหมุนบนแผนที่ ซึ่งการหาพิกัดทำได้ดังนี้
เข้าไปที่ Google Map จากนั้นเลื่อนหาสถานที่ที่ต้องการ จากนั้นคลิกจุดที่ต้องการ จะมีเลขพิกัดขึ้นมาแล้ว
ตัวอย่างได้เลข 13.91024, 100.51108 สามารถตัดแบ่งได้ 13.91024 เป็นละติจูด และ 100.51108 เป็นลองจิจูด
คำสั่ง LINE.send(); เพิ่มโค้ดส่วน option ดังนี้
ได้โค้ดโปรแกรมฉบับเต็มที่แก้ไขเพิ่ม option แล้วดังนี้
อัพโหลดโปรแกรมลงบอร์ด ESP32 จะพบว่ามีข้อความพร้อมภาพแผนที่ขึ้นมาแล้ว
ตัวอย่างใช้งานร่วมกับเซ็นเซอร์ตรวจจับความเคลื่อนไหว (PIR) เมื่อจับความเคลื่อนไหวได้จะส่งแจ้งเตือนเพียงครั้งเดียวจนกว่าจะไม่พบการเคลื่อนไหว เมื่อพบความเคลื่อนไหวอีกครั้งจึงส่งแจ้งเตือนอีกครั้ง
ตัวอย่างนี้ใช้ Keyestudio PIR Motion Sensor ซึ่งเป็นเซ็นเซอร์ที่มีความแม่นยำกว่าเซ็นเซอร์ PIR ทั่วไป โดยต่อเซ็นเซอร์เข้ากับ ESP32 ดังนี้
ใช้โปรแกรมต่อไปนี้ในการทดสอบ
ผลที่ได้ เมื่อเซ็นเซอร์ตรวจพบความเคลื่อนไหว ก็จะส่งแจ้งเตือนพร้อมแผนที่มาใน LINE แล้ว
WiFiManager เป็นไลบรารี่ที่ใช้ฝังหน้าเว็บตั้งค่า WiFi ลงไปใน ESP32 ให้สามารถตั้งค่า WiFi ของ ESP32 ผ่านหน้าเว็บได้ (แบบเดียวกับตั้งค่าเร้าเตอร์)
ติดตั้งไลบรารี่ WiFiManager ตามขั้นตอนดังนี้
1) เปิดโปรแกรม Arduino IDE ขึ้นมา แล้วกดเปิด Library Manager ขึ้นมา ค้นหา WiFiManager แล้วกด INSTALL
2) หลังติดตั้งเสร็จ จะมีข้อความ Successfully ขึ้นมา เป็นอันจบการติดตั้งไลบรารี่เพิ่ม
อัพโหลดโค้ดต่อไปนี้ลง ESP32 เพื่อทดสอบ
เปิด Serial Monitor ขึ้นมา หากเคยตั้งค่าเชื่อมต่อ WiFi ไว้แล้ว ตัว ESP32 จะข้าม WiFiManager ไปเลย แต่หากยังไม่เคยตั้งค่า จะมีข้อความ Starting Web Portal ขึ้น ดังรูป
ตัว WiFiManager จะสั่งให้ ESP32 ปล่อย WiFi ชื่อ ESP32_LINE ออกมา ให้ใช้โทรศัพมือถือเชื่อม WiFi ชื่อดังกล่าว
จากนั้นเปิดแอพฯ เบราว์เซอร์ แล้วเข้าไปที่ http://192.168.4.1 แล้วกดปุ่ม Configure WiFi
เลือกชื่อ WiFi ที่ต้องการให้ ESP32 ไปเกาะ (1) หรือกรอกชื่อ WiFi (2) กรอกรหัสผ่านของ WiFi (3) แล้วกดปุ่ม Save (4)
หากตั้งค่าเชื่อมต่อ WiFi สำเร้จ จะมีข้อความแจ้งดังรูป
ที่ Serial Monitor จะเห็นหมายเลข IP พร้อมข้อความ portal exiting ขึ้น เป็นอันจบการตั้งค่า WiFi
กดปุ่ม IO0 หรือ BOOT บนบอร์ด ESP32 แล้วรอซักครู่ ข้อความ Send notify successful จะแสดงขึ้นมา ที่แอพฯ LINE จะมีข้อความแจ้งเตือนเข้ามาแล้ว
หากอัพโหลดโปรแกรมแล้ว ใน Serial Monitor พบข้อความ Send notify fail. check your token (code: <รหัสผิดพลาด>) แสดงว่าการส่งข้อความแจ้งเตือนไม่สำเร็จ โดยเหตุผลที่ไม่สำเร็จตีความตามรหัสผิดพลาดได้ดังนี้
ปัจจุบันไลบรารี่ ArtronShop_LineMessaging รองรับโมดูลแลน รุ่น W5500 โดยใช้ Arduino core for the ESP32 ตั้งแต่ V3 เป็นต้นไป โดยแก้ไขโค้ดส่วนที่เชื่อมต่อ WiFi เป็นโค้ดเชื่อมต่ออินเตอร์เน็ตผ่านแลนแทน (ไม่ต้องแก้ไลบรารี่ ArtronShop_LineMessaging)
แนะนำให้ศึกษาโค้ดเชื่อมต่ออินเตอร์เน็ตผ่านสายแลนที่ ETH_W5500_Arduino_SPI.ino