การส่งแจ้งเตือนผ่าน LINE Notify เป็นแนวทางการส่งแจ้งเตือนที่นิยมใช้งานกันมากในงานด้าน IoT เนื่องจากทำได้ง่าย ฟรี รวมทั้งแอพพลิเคชั่น LINE ทุกคนในไทยใช้งานอยู่แล้ว ทุกคนจึงสามารถรับแจ้งเตือนได้ทันที
การประกาศปิด LINE Notify เมื่อวันที่ 31 มีนาฯ 2568 ที่ผ่านมา ทำให้นักพัฒนาเดิมที่ใช้งาน LINE Notify ต้องย้ายไปส่งแจ้งเตือนผ่าน Telegram, LINE Messaging, Google Chat แทน อย่างไรก็ตามบริการดังกล่าวมีค่าใช้จ่าย หรือมีการใช้งานที่ยากสำหรับผู้ใช้ทั่วไปมากเกินไป
อาร์ทรอน ชอป ในฐานะผู้พัฒนาวงการ IoT จึงขอนำเสนอบริการส่งแจ้งเตือนจาก อาร์ทรอน ชอป ชื่อ Am Alert เบื้องหลังใช้เทคโนโลยี Progressive Web Application (PWA) และ Web Push Notifications เปิดให้ผู้สนใจใช้งานได้ฟรี
ทั้ง LINE, Telegram, Google Chat ล้วนออกแบบมาเพื่อใช้ในการสนทนา (แชท) ระหว่างบุคคลกับบุคคล จึงไม่มีความสามารถเฉพาะที่ทำให้ง่ายต่อการรับแจ้งเตือน หรือการส่งแจ้งเตือนมาให้
Am Alert ได้ปิดข้อเสียของแอพแชทด้วยการส่งแจ้งเตือนที่ง่าย เพียงยิง API ไปที่ Endpoint ที่กำหนด โดยใช้ Token ก็สามารถส่งแจ้งเตือนได้เลย ส่วนฝั่งผู้รับ เพียงเข้าลิ้ง ก็กดรับแจ้งเตือนได้เลยโดยไม่ต้องสมัครสมาชิกก่อน ไม่ต้องลงแอพ และสามารถดูประวัติการแจ้งเตือนได้ตลอดเวลา รองรับทั้งบน PC, Android และ iOS
Am Alert พัฒนาโดยใช้เทคโนโลยี Progressive Web Application (PWA) ซึ่งเป็นเทคโนโลยีทำเว็บแอพฯ ให้เป็นแอพฯ ที่ติดตั้งลงในเครื่องได้ โดยในครั้งแรกเข้าเว็บผ่าน Google Chome, Safari, Microsoft Edge จากนั้นหากต้องการใช้งานสะดวก สามารถกดติดตั้งลงในเครื่อง หรือกดเพิ่มไปที่หน้าจอ เพื่อเพิ่มความสะดวกในการใช้งานได้ โดยไอค่อนที่ปรากฏบนหน้าจอ เมื่อกดเข้าไปแล้วจะมีลักษณะคล้ายแอพฯ ปกติที่ติดตั้งผ่าน Google Play Store, App Store เลย
ปัจจุบัน อาร์ทรอน ชอป มีนโยบายเปิดให้ใช้งาน Am Alert ฟรีไปเรื่อย ๆ เนื่องจากค่าใช้จ่ายด้านเซิร์ฟเวอร์ยังค่อนข้างต่ำ เงินที่ได้จากการขายสินค้าในเว็บไซต์ อาร์ทรอน ชอป ยังเพียงพอให้เปิดบริการไปได้เรื่อย ๆ
อย่างไรก็ตาม หากกังวลเรื่องการปิดให้บริการ ท่านสามารถนำ Am Alert ไปติดตั้ง และใช้งานบนเซิร์ฟเวอร์ของตัวเองได้ (Self-Hosting) โดยดาวน์โหลดโค้ด และติดตั้งตามขั้นตอนใน GitHub : ArtronShop/am-alert
สมัครสมาชิกโดยเข้าไปที่ https://alert.artronshop.co.th/ กดไอค่อนมุมบนขวา เลือกเข้าสู่ระบบ
กดสมัครสมาชิก
กรอกข้อมูลอีเมล์ รหัสผ่าน ยืนยันรหัสผ่าน และชื่อ จากนั้นกดติ๊ก ยอมรับข้อตกลง แล้วกด สมัครสมาชิก
หากกรอกข้อมูลครบ ระบบจะพากลับมาหน้าแรก ให้กดที่ไอค่อนมุมบนขวา เลือก สร้างห้องแจ้งเตือนใหม่
เลือกรูป ใส่ชื่อห้อง แล้วกดสร้างห้อง
ระบบจะพาเข้าไปที่หน้าห้องแจ้งเตือน สามารถกดรับแจ้งเตือน หรือคัดลอก Token ไปส่งแจ้งเตือนได้เลย
หากอยู่หน้าแรก ให้กดเข้าไปที่ห้องที่ต้องการรับแจ้งเตือน
กดรับแจ้งเตือน แล้วรอซักครู่
หากกดรับแจ้งเตือนครั้งแรก หน้าต่างให้ยืนยันรับแจ้งเตือนจะแสดงขึ้นมา ให้กด อนุญาต เพื่อยืนยันรับแจ้งเตือน
จากนั้นจะมีข้อความแจ้ง รับแจ้งเตือนสำเร็จ จะแสดงขึ้นมา
หากต้องการแชร์ห้องให้ผู้ใช้อื่นรับแจ้งเตือนจากห้องนี้ได้ ให้ก๊อบลิ้งส่งไป หรือกดปุ่มแชร์
จากนั้นใช้โทรศัพท์เครื่องอื่นสแกน QR Code หรือกดปุ่มดาวน์โหลด QR Code แล้วส่งรูปไปให้ผู้ใช้อื่น หรือกดปุ่มแชร์ เพื่อเลือกแอพฯ ที่ต้องการแชร์ได้เลย
สามารถกดปุ่มรับแจ้งเตือนได้เลย โดยไม่ต้องกดติดตั้งเป็นแอพฯ หากกดปุ่มติดตั้งเป็นแอพฯ จะมีไอค่อน แจ้งเตือน แสดงขึ้นมาในหน้า Home เหมือนแอพฯ อื่น ๆ สามารถกดเข้าที่ไอค่อนเพื่อดูประวัติการแจ้งเตือนได้
ด้วย iOS เน้นเรื่องความเป็นส่วนตัว (Privacy) มาก การส่งแจ้งเตือนผ่านเว็บโดยตรงไม่สามารถทำได้ ต้องกดติดตั้งเป็นแอพฯ ก่อน ตามขั้นตอนดังนี้
ใช้ Safari เข้าไปที่ลิ้งของห้อง แล้วกดเปิดเมนูขึ้นมา
กดเลือก Add to Home Screen
กด Add
ที่หน้า Home จะมีไอค่อน แจ้งเตือน ขึ้นมา ให้กดเข้าไป
ใส่หมายเลขห้องลงในช่อง (หมายเลขห้องดูในหน้าต่างแชร์)
ปุ่ม รับแจ้งเตือน จะแสดงขึ้นมาแล้ว กดปุ่มเพื่อรับแจ้งเตือนได้เลย
เพื่อความสะดวกในการเขียนโปรแกรม ทาง อาร์ทรอน ชอป ได้จัดทำไลบรารี่สำหรับ Arduino / PlatformIO ไว้ให้แล้ว สามารถกดติดตั้งจากในหน้าต่าง Library Manager ได้เลย
เปิดโปรแกรม Arduino IDE ขึ้นมา กดเปิด Library Manager ค้นหา Am Alert แล้วกด Install
เมื่อติดตั้งเสร็จ จะมีข้อความ Successfully แสดงขึ้นมา (ดังรูป)
การส่งข้อความแจ้งเตือนจะทำผ่านไลบรารี่ AmAlert โดยก่อนใช้คำสั่งใด ๆ ของไลบรารี่นี้ ต้องใช้คำสั่ง #include <AmAlert.h> นำเข้าคำสั่งในไลบารี่มาก่อน
เนื่องจากการส่งแจ้งเตือนต้องทำผ่านอินเตอร์เน็ต ดังนั้นใน void setup() จึงต้องสั่งเชื่อมต่อ WiFi ก่อน โดยใช้ชุดคำสั่งต่อไปนี้
หลังจากเชื่อมต่อ WiFi สำเร็จ ให้ใช้คำสั่ง Alert.setup(<Token>); เพื่อกำหนด Token ที่ได้จากในเว็บ Am Alert
การส่งแจ้งเตือนใช้คำสั่ง Alert.send(<ข้อความที่ต้องการแจ้งเตือน>); โดยหากส่งสำเร็จ จะส่งค่า True กลับมา หากส่งไม่สำเร็จ จะส่งค่า False กลับมา ตัวอย่างส่งข้อความ "รถโดนขโมย" พร้อมตรวจสอบแจ้งใน Serial Monitor ว่าส่งข้อความสำเร็จหรือไม่ มีดังนี้
ได้โค้ดทดสอบส่งแจ้งเตือนฉบับเต็มดังนี้
แก้ไข ssid และ password เป็นชื่อ และรหัสผ่านของ WiFi ที่ออกอินเตอร์เน็ตได้ และใส่ Token ที่ได้จากเว็บ Am Alert
อัพโหลดโปรแกรมลงบอร์ด ESP32 เปิด Serial Monitor ขึ้นมา ปรับ 115200 ผลที่ได้หากส่งข้อความสำเร็จ จะมีข้อความ Send notify successful ขึ้น (ดังรูป)
ในเว็บ Am Alert จะมีข้อความแจ้งเตือนส่งเข้าไปในห้องแล้ว หากกดรับแจ้งเตือนไว้ จะมีข้อความแจ้งเตือนเด้งทันที
การส่งรูปด้วยลิ้ง จำเป็นจะต้องมีลิ้งของรูปก่อน โดยรูปที่ส่งจะต้องเป็นไฟล์ JPEG มีขนาดไม่เกิน 2048x2048 เท่านั้น
หากยังไม่มีลิ้งรูป สามารถสร้างลิ้งรูปได้โดยนำรูปที่มีคุณสมบัติตรงตามข้อกำหนด (JPEG มีขนาดไม่เกิน 2048x2048) ไปอัพโหลดในเว็บรับฝากรูป ก็จะได้ลิ้งรูปมาแล้ว ตัวอย่างการฝากรูปในเว็บ pic.in.th มีขั้นตอนดังนี้
1) เข้าไปที่ https://pic.in.th/?lang=th กดปุ่ม เริ่มอัพโหลด
เลือกไฟล์รูปที่ต้องการ แล้วกด Open
กดติ๊กถูก ฉันยอมรับเงื่อนไข (1) แล้วกดปุ่ม อัพโหลด (2)
จากนั้นลิ้งของรูปภาพจะปรากฏขึ้นมา ให้คัดลอกลิ้งเก็บไว้ใส่ลงในโค้ดต่อไป
คำสั่ง Alert.send(); เพิ่มโค้ดส่วน option ดังนี้
ได้โค้ดโปรแกรมฉบับเต็มที่แก้ไขเพิ่ม option แล้วดังนี้
อัพโหลดโปรแกรมลงบอร์ด ESP32 จะพบว่ามีข้อความพร้อมรูปภาพขึ้นมาแล้ว
การแจ้งเตือนบางอย่างหากแนบแผนที่ไปด้วย ก็จะทำให้เข้าใจสถานะการณ์ปัจจุบันมากขึ้น เช่น เครื่องตรวจจับไฟไหม้ หากส่งข้อความเตือนไฟไหม้พร้อมส่งแผนที่ ก็จะทำให้รู้ได้ทันทีว่าไฟไหม้ที่ใด หรือเครื่องปจ้งเตือนรถโดนขโมย หากส่งแผนที่ที่บอกที่อยู่ปัจจุบันของรถ ก็จะรู้ได้ทันทีว่าต้องไปตามรถที่ไหน เป็นต้น
ไลบรารี่ AmAlert รองรับการส่งแผนที่ Google Map และ Longdo Map โดย Longdo Map สามารถใช้งานได้ทันที แต่ Google Map จำเป็นต้องใช้ API Key
การส่งแผนที่ จำเป็นต้องระบุพิกัดละติจูดและลองจิจูดที่จะปัดหมุนบนแผนที่ ซึ่งการหาพิกัดทำได้ดังนี้
เข้าไปที่ Google Map จากนั้นเลื่อนหาสถานที่ที่ต้องการ จากนั้นคลิกจุดที่ต้องการ จะมีเลขพิกัดขึ้นมาแล้ว
ตัวอย่างได้เลข 13.91024, 100.51108 สามารถตัดแบ่งได้ 13.91024 เป็นละติจูด และ 100.51108 เป็นลองจิจูด
คำสั่ง Alert.send(); เพิ่มโค้ดส่วน option ดังนี้
ได้โค้ดโปรแกรมฉบับเต็มที่แก้ไขเพิ่ม option แล้วดังนี้
อัพโหลดโปรแกรมลงบอร์ด ESP32 จะพบว่ามีข้อความพร้อมภาพแผนที่ขึ้นมาแล้ว
ตัวอย่างใช้งานร่วมกับเซ็นเซอร์ตรวจจับความเคลื่อนไหว (PIR) เมื่อจับความเคลื่อนไหวได้จะส่งแจ้งเตือนเพียงครั้งเดียวจนกว่าจะไม่พบการเคลื่อนไหว เมื่อพบความเคลื่อนไหวอีกครั้งจึงส่งแจ้งเตือนอีกครั้ง
ตัวอย่างนี้ใช้ Keyestudio PIR Motion Sensor ซึ่งเป็นเซ็นเซอร์ที่มีความแม่นยำกว่าเซ็นเซอร์ PIR ทั่วไป โดยต่อเซ็นเซอร์เข้ากับ ESP32 ดังนี้
ใช้โปรแกรมต่อไปนี้ในการทดสอบ
ผลที่ได้ เมื่อเซ็นเซอร์ตรวจพบความเคลื่อนไหว ก็จะส่งแจ้งเตือนพร้อมแผนที่มาในเว็บ Am Alert แล้ว
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 จะแสดงขึ้นมา ที่เว็บ Am Alert จะมีข้อความแจ้งเตือนเข้ามาแล้ว
ปัจจุบันไลบรารี่ Am Alert รองรับโมดูลแลน รุ่น W5500 โดยใช้ Arduino core for the ESP32 ตั้งแต่ V3 เป็นต้นไป โดยแก้ไขโค้ดส่วนที่เชื่อมต่อ WiFi เป็นโค้ดเชื่อมต่ออินเตอร์เน็ตผ่านแลนแทน (ไม่ต้องแก้ไลบรารี่ Am Alert)
แนะนำให้ศึกษาโค้ดเชื่อมต่ออินเตอร์เน็ตผ่านสายแลนที่ ETH_W5500_Arduino_SPI.ino