การแจ้งเตือน ทาง Telegram

เปลี่ยนจากการใช้ LINE Notify ในการแจ้งเตือนสำหรับ Arduino ไปใช้งานแพลตฟอร์มอื่น นี่คือแอปพลิเคชันหรือบริการที่เหมาะสมขึ้นอยู่กับความต้องการของคุณ: (ขอบคุณข้อมูลจาก Chat GPT)


 

1. Telegram

ข้อดี:

  • ใช้งานฟรี ไม่มีข้อจำกัดจำนวนข้อความต่อวัน
  • รองรับการส่งข้อความ, รูปภาพ, และข้อมูล JSON
  • มี API ที่ใช้ง่าย
  • ใช้งานผ่าน Bot ที่คุณสร้างเองได้

การตั้งค่า:

  1. สร้าง Telegram Bot ผ่าน @BotFather
  2. รับ API Token
  3. ใช้ Arduino Library เช่น UniversalTelegramBot
  4. ตัวอย่างโค้ดสำหรับส่งข้อความ:
    cpp
    #include <WiFi.h> #include <UniversalTelegramBot.h> const char* ssid = "your-SSID"; const char* password = "your-PASSWORD"; const char* telegramToken = "your-TELEGRAM_BOT_TOKEN"; const char* chatID = "your-CHAT_ID"; WiFiClientSecure client; UniversalTelegramBot bot(telegramToken, client); void setup() { WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); } bot.sendMessage(chatID, "Hello from Arduino!", ""); } void loop() { // Add code to check conditions and send alerts }

2. Pushbullet

ข้อดี:

  • รองรับทั้ง Android และ iOS
  • ใช้งานง่ายและรวดเร็ว
  • สามารถส่งข้อความหรือข้อมูลไปยังอุปกรณ์ต่าง ๆ ได้พร้อมกัน

การตั้งค่า:

  1. สมัครและรับ API Key ที่ Pushbullet
  2. ใช้ Arduino Library เช่น Pushbullet-for-Arduino
  3. ส่งข้อความแจ้งเตือนด้วยโค้ดง่าย ๆ

3. Pushover

ข้อดี:

  • รองรับทั้ง Android, iOS, และเดสก์ท็อป
  • รองรับการแจ้งเตือนหลายอุปกรณ์
  • ใช้งาน API ง่ายและเสถียร

การตั้งค่า:

  1. สมัครสมาชิกและรับ API Key ที่ Pushover
  2. ใช้ REST API สำหรับส่งข้อความจาก Arduino
  3. ตัวอย่างโค้ดสำหรับ Pushover:
    cpp
    #include <WiFi.h> #include <HTTPClient.h> const char* ssid = "your-SSID"; const char* password = "your-PASSWORD"; const char* pushoverToken = "your-APP-TOKEN"; const char* pushoverUser = "your-USER-KEY"; void setup() { WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); } HTTPClient http; http.begin("https://api.pushover.net/1/messages.json"); http.addHeader("Content-Type", "application/x-www-form-urlencoded"); String message = "token=" + String(pushoverToken) + "&user=" + String(pushoverUser) + "&message=Hello from Arduino!"; http.POST(message); http.end(); } void loop() { // Add code to monitor and notify }

4. Blynk

ข้อดี:

  • ออกแบบมาเพื่อ IoT โดยเฉพาะ
  • มีระบบแจ้งเตือนผ่านแอป
  • รองรับ Dashboard สำหรับแสดงข้อมูลแบบเรียลไทม์
  • มี Library รองรับการใช้งานบน Arduino

การตั้งค่า:

  1. สมัครสมาชิกที่ Blynk
  2. ดาวน์โหลดแอป Blynk บนมือถือ
  3. ใช้ Library Blynk ใน Arduino IDE
  4. ตัวอย่างโค้ด:
    cpp
    #include <WiFi.h> #include <BlynkSimpleEsp32.h> const char* ssid = "your-SSID"; const char* password = "your-PASSWORD"; const char* authToken = "your-BLYNK_AUTH_TOKEN"; void setup() { Blynk.begin(authToken, ssid, password); } void loop() { Blynk.run(); Blynk.notify("Alert: Your Arduino is online!"); }

5. IFTTT

ข้อดี:

  • ใช้งานร่วมกับแอปและบริการอื่น ๆ ได้
  • ใช้งานง่ายสำหรับผู้เริ่มต้น
  • รองรับการแจ้งเตือนผ่านมือถือ, อีเมล หรืออื่น ๆ

การตั้งค่า:

  1. สร้าง Webhook Applet ใน IFTTT
  2. ใช้ HTTP Request จาก Arduino ส่งข้อมูลไปยัง IFTTT Webhook
  3. ตัวอย่าง URL สำหรับส่งข้อมูล:
    ruby
    https://maker.ifttt.com/trigger/{event_name}/with/key/{your_webhook_key}

ตัวเลือกที่แนะนำ

  • Telegram: หากต้องการระบบที่ง่ายและไม่มีข้อจำกัด
  • Blynk: หากต้องการแสดงข้อมูล IoT แบบ Dashboard
  • Pushover หรือ Pushbullet: หากต้องการการแจ้งเตือนแบบเรียบง่าย

 

Telegram Token สำหรับเขียนโค้ดใน Arduino สามารถหาได้จากการสร้าง Telegram Bot ผ่าน @BotFather ใน Telegram โดยทำตามขั้นตอนดังนี้:


ขั้นตอนการสร้าง Telegram Bot และรับ Token:

  1. เปิดแอป Telegram บนมือถือหรือเดสก์ท็อป
  2. ค้นหา @BotFather ในช่องค้นหา
  3. เริ่มต้นสนทนากับ @BotFather โดยพิมพ์คำว่า:
    bash
    /start
    @BotFather จะตอบกลับมาพร้อมคำแนะนำการใช้งาน
  4. สร้าง Bot ใหม่โดยพิมพ์:
    bash
    /newbot
  5. ตั้งชื่อให้กับ Bot ของคุณ:
    • ตัวอย่าง: MyArduinoBot
  6. ตั้งชื่อ username สำหรับ Bot (ต้องลงท้ายด้วยคำว่า bot เช่น MyArduino_Bot):
    • หากชื่อที่ตั้งซ้ำกับ Bot อื่น ๆ BotFather จะแจ้งให้คุณตั้งชื่อใหม่
  7. เมื่อสร้าง Bot สำเร็จ @BotFather จะส่ง API Token ให้คุณ:
    ruby
    Use this token to access the HTTP API: 123456789:ABCDEF1234ghIkl-zyx57W2v1u123ew11

ใช้งาน Token กับ Arduino

  • คัดลอก API Token ที่ได้รับมา
  • นำไปใส่ในโค้ด Arduino เพื่อส่งข้อความ

ตัวอย่างโค้ด:

cpp
#include <WiFi.h> #include <UniversalTelegramBot.h> const char* ssid = "your-SSID"; const char* password = "your-PASSWORD"; const char* telegramToken = "123456789:ABCDEF1234ghIkl-zyx57W2v1u123ew11"; // ใส่ API Token ที่ได้จาก BotFather const char* chatID = "YOUR_CHAT_ID"; // ใส่ Chat ID ของผู้ใช้งาน (ดูวิธีด้านล่าง) WiFiClientSecure client; UniversalTelegramBot bot(telegramToken, client); void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); bot.sendMessage(chatID, "Hello from Arduino!", ""); } void loop() { // สามารถเพิ่มโค้ดตรวจสอบสถานะหรือเงื่อนไขเพื่อส่งข้อความ }

วิธีหาค่า Chat ID ของผู้ใช้

  1. พิมพ์ข้อความหาบอทที่คุณสร้างไว้
  2. ใช้ API ของ Telegram เรียกดูข้อมูล Chat ID:
    • เปิดเบราว์เซอร์และใส่ URL:
      bash
      https://api.telegram.org/bot<Your_Token>/getUpdates
      (แทน <Your_Token> ด้วย Telegram Token ที่คุณได้จาก BotFather)
    • ตัวอย่างผลลัพธ์:
      json
      { "ok": true, "result": [ { "update_id": 12345678, "message": { "message_id": 1, "from": { "id": 987654321, "is_bot": false, "first_name": "YourName" }, "chat": { "id": 987654321, "first_name": "YourName", "type": "private" }, "date": 1678920000, "text": "Hello" } } ] }
    • ค่า "id": 987654321 คือ Chat ID ของคุณ

เมื่อได้ Telegram Token และ Chat ID มาแล้ว คุณสามารถใช้ในโค้ด Arduino เพื่อส่งข้อความแจ้งเตือนได้ทันที!

2/2
 
4o
 
คุณพูดว่า:
ตั้งชื่อให้กับ Bot ของ app telegramดูจากเมนูไหน
ChatGPT พูดว่า:
ChatGPT

การตั้งชื่อให้กับ Bot ใน Telegram ไม่ได้ทำผ่านเมนูในแอป แต่ทำผ่าน @BotFather ซึ่งเป็นบอทที่ Telegram สร้างขึ้นสำหรับจัดการและตั้งค่าบอทต่าง ๆ โดยเฉพาะ ทำตามขั้นตอนนี้:


วิธีตั้งชื่อ Bot ผ่าน @BotFather:

  1. เปิดแอป Telegram บนมือถือหรือเดสก์ท็อป
  2. ค้นหา @BotFather ในช่องค้นหา
  3. กด Start หรือพิมพ์ /start เพื่อเริ่มการใช้งาน
  4. สร้าง Bot ใหม่ด้วยคำสั่ง:
    bash
    /newbot
  5. @BotFather จะถามให้คุณตั้ง ชื่อเต็ม (Name) สำหรับ Bot:
    • ตัวอย่าง: My Arduino Monitor Bot
  6. จากนั้นจะถามให้ตั้ง ชื่อผู้ใช้ (Username) สำหรับ Bot:
    • ชื่อนี้ต้อง ลงท้ายด้วยคำว่า bot เช่น MyArduino_Bot หรือ ArduinoMonitor_bot
    • ถ้าชื่อซ้ำกับคนอื่น คุณต้องตั้งชื่อใหม่จนกว่าจะสำเร็จ

ตัวอย่างการสนทนากับ @BotFather

vbnet
You: /newbot BotFather: Alright, a new bot. How are we going to call it? Please choose a name for your bot. You: My Arduino Monitor Bot BotFather: Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot. You: MyArduino_Bot BotFather: Done! Congratulations on your new bot. You will find it at t.me/MyArduino_Bot. Use this token to access the HTTP API: 123456789:ABCDEF1234ghIkl-zyx57W2v1u123ew11

เมื่อการสร้างเสร็จสิ้น:

  • คุณจะได้รับ Telegram Token สำหรับใช้ในโค้ด Arduino
  • สามารถเปิดใช้งาน Bot ได้โดยเข้าไปที่ลิงก์ที่ @BotFather ให้มา เช่น https://t.me/MyArduino_Bot

หากต้องการแก้ไขชื่อ Bot หลังจากสร้างเสร็จ:

  1. ใช้คำสั่ง:
    bash
    /setname
    แล้วเลือก Bot ที่ต้องการเปลี่ยนชื่อ
  2. ตั้งชื่อใหม่ตามต้องการ

การตั้งค่า Nodred

การตั้งค่า Node red (ขอบคุณข้อมูลจาก Chat GPT)

 

การสร้าง Node-RED Monitor Dashboard สำหรับใช้งานเอง มีขั้นตอนหลักดังนี้:

1. ติดตั้ง Node-RED

  • ติดตั้ง Node-RED บนคอมพิวเตอร์หรือเซิร์ฟเวอร์:
    bash
    npm install -g --unsafe-perm node-red
  • รัน Node-RED:
    bash
    node-red
  • เข้าถึง Node-RED ผ่านเบราว์เซอร์ที่ http://localhost:1880

2. ติดตั้ง Node-RED Dashboard

Node-RED Dashboard ใช้สำหรับสร้าง UI:

  1. เปิด Node-RED และไปที่เมนู "Manage Palette""Install"
  2. ค้นหา node-red-dashboard แล้วกด Install
  3. Dashboard Nodes จะปรากฏใน Node-RED Palette (เช่น Chart, Gauge, Switch เป็นต้น)

3. ออกแบบ Flow สำหรับ Monitor

สร้างฟังก์ชันพื้นฐานเพื่อดึงข้อมูลและแสดงผลบน Dashboard:

  • ตัวอย่าง: Monitor Sensor
    1. เพิ่ม Inject Node (สำหรับเริ่มต้นส่งข้อมูล)
    2. เพิ่ม Function Node (ประมวลผลข้อมูล)
      javascript
      msg.payload = Math.floor(Math.random() * 100); // ค่าจำลอง 0-100 return msg;
    3. เพิ่ม Gauge Node หรือ Chart Node (สำหรับแสดงผล)
    4. เชื่อมต่อ Node ทั้งหมดและ Deploy

4. ปรับแต่ง Dashboard

  1. ไปที่ Dashboard Tab ใน Node-RED
  2. ตั้งค่า Layout ของ Widgets (เช่น ขนาด, ตำแหน่ง)
  3. เข้า Dashboard ผ่าน http://localhost:1880/ui

5. เชื่อมต่อกับอุปกรณ์จริง

  • ใช้ MQTT หรือ HTTP Request Node สำหรับเชื่อมต่อกับเซ็นเซอร์หรืออุปกรณ์ IoT
  • ตัวอย่างการดึงข้อมูล:
    • หากเซ็นเซอร์ส่งข้อมูลผ่าน HTTP:
      • ใช้ HTTP Request Node
      • แสดงข้อมูลใน Gauge Node หรือ Chart Node

6. เพิ่มการแจ้งเตือน (Optional)

  • ใช้ Notification Node หรือ Email Node สำหรับส่งการแจ้งเตือน
  • ตัวอย่าง: ถ้าค่าเกิน 80 ให้แจ้งเตือน:
    javascript
    if (msg.payload > 80) { msg.payload = "Warning: Value exceeded!"; return msg; } return null; // ถ้าไม่เกิน ไม่ส่งข้อความ

7. การใช้งานผ่านมือถือ

  • ใช้ Browser บนมือถือเปิด http://<IP Address>:1880/ui
  • หากต้องการ URL สวยขึ้น ให้ใช้ Proxy เช่น Nginx หรือ Traefik
Free Joomla templates by Ltheme