ติดตั้ง Telegram Bot วิธีขอ Token และ Chat ID แบบเข้าใจง่าย สำหรับ ESP32 และงาน IoT

คุณทำ ESP32 ได้แล้ว แต่พอจะส่งแจ้งเตือนเข้า Telegram ดันติดตรง “Token คืออะไร” และ “Chat ID เอาจากไหน” ใช่ไหม?

ปัญหานี้เจอกันบ่อยมาก โดยเฉพาะสาย Maker มือใหม่ที่อยากให้บอร์ดส่งข้อความเตือนเข้าโทรศัพท์ เช่น อุณหภูมิสูงเกิน ปั๊มน้ำทำงาน หรือมีแก๊สรั่ว แต่หลายบทความชอบข้ามขั้นตอนสำคัญไปเลย ทำให้คุณสร้างบอทได้แต่ใช้งานจริงไม่ได้

บทความนี้จะพาคุณทำตั้งแต่ต้นแบบภาษาคนทำจริง ตั้งแต่สร้าง Telegram Bot, ขอ Token, หา Chat ID ทั้งแบบแชทส่วนตัวและแบบกลุ่ม ไปจนถึงทดสอบส่งข้อความให้ได้จริง เพื่อที่คุณจะเอาไปต่อกับ ESP32 หรือโปรเจกต์ IoT ของคุณได้ทันที

  • ถ้าคุณเพิ่งเริ่มต้นและยังไม่คุ้นกับบอร์ดนี้ แนะนำให้อ่านบทความ ESP32 คืออะไร ก่อน แล้วค่อยกลับมาต่อเรื่อง Telegram Bot จะเข้าใจภาพรวมเร็วขึ้น

Telegram Bot คืออะไร และทำไมสาย Maker ควรรู้

Telegram Bot คือบัญชีบอทที่เอาไว้รับ-ส่งข้อความอัตโนมัติผ่านระบบของ Telegram เหมาะมากกับงานแจ้งเตือนจาก ESP32, Arduino หรือระบบ IoT เพราะใช้งานฟรี เรียกผ่าน HTTP ได้ตรง ๆ และเอาไปต่อกับโปรเจกต์ได้ค่อนข้างง่าย

Telegram Bot ใช้ทำอะไรได้บ้าง

  • ส่งข้อความแจ้งเตือนเมื่อเซนเซอร์เกินค่าที่กำหนด
  • ส่งสถานะปั๊มน้ำ พัดลม หรือรีเลย์
  • ส่งค่าอุณหภูมิ ความชื้น หรือค่าจากเซนเซอร์อื่น
  • ใช้เป็นช่องทางแจ้งเตือนในโปรเจกต์ Smart Farm หรือระบบอัตโนมัติ

ทำไมหลายโปรเจกต์ ESP32 นิยมใช้ Telegram แจ้งเตือน

เพราะมันตรงไปตรงมา คุณแค่มีอินเทอร์เน็ต มี Token และมี Chat ID ก็สั่งให้บอร์ดส่งข้อความเข้าโทรศัพท์ได้เลย ไม่ต้องทำแอปเองตั้งแต่ศูนย์ เหมาะกับงานต้นแบบ งานสอน และงานใช้งานจริงขนาดเล็กถึงกลาง

Token กับ Chat ID คืออะไร ต่างกันยังไง

Token คือรหัสประจำตัวของบอท ใช้ยืนยันว่าโปรแกรมของคุณกำลังคุยกับบอทตัวไหน

Chat ID คือรหัสของห้องแชทปลายทาง ใช้บอกว่าข้อความต้องถูกส่งไปที่ใคร หรือไปที่กลุ่มไหน

จำง่าย ๆ:
Token = บอกว่า “ฉันคือบอทตัวไหน”
Chat ID = บอกว่า “จะส่งข้อความไปหาใคร”

ก่อนเริ่มต้องเตรียมอะไรบ้าง

ติดตั้งแอป Telegram และสมัครบัญชีให้เรียบร้อย

ก่อนอื่นคุณต้องมีบัญชี Telegram ก่อน จะใช้ในมือถือหรือบนคอมก็ได้ แต่สำหรับมือใหม่ ผมแนะนำให้เริ่มจากมือถือก่อน เพราะทดสอบง่ายสุด

รู้จัก BotFather ผู้ช่วยสร้างบอทของ Telegram

BotFather คือบอททางการของ Telegram ที่ใช้สร้างและจัดการบอทอื่น ๆ เช่น สร้างบอทใหม่ รีเซ็ต Token หรือตั้งค่าพื้นฐานของบอท

ต้องมีอะไรบ้างก่อนเอาไปใช้กับ ESP32

  • บัญชี Telegram
  • บอทที่สร้างจาก BotFather
  • Bot Token
  • Chat ID
  • ESP32 ที่ต่อ WiFi ได้

วิธีสร้าง Telegram Bot ด้วย BotFather

ค้นหา @BotFather ให้ถูกตัว

เข้าแอป Telegram แล้วค้นหาคำว่า @BotFather จากนั้นเข้าไปที่แชทของบอทตัวนี้

ใช้คำสั่ง /newbot เพื่อสร้างบอท

กดเริ่มแชท แล้วพิมพ์คำสั่ง /newbot จากนั้นระบบจะถามชื่อบอทของคุณ

หน้าการสร้าง bot telegram ด้วย botfather สร้าง bot ชื่อ DevaDIY_Notify

ตั้งชื่อบอทและ username ให้ผ่าน

Telegram จะให้คุณตั้ง 2 ส่วน:

  • Bot Name = ชื่อที่คนเห็น
  • Username = ชื่อสำหรับอ้างอิงบอท โดยทั่วไปต้องลงท้ายด้วย bot

ตัวอย่างเช่น

  • ชื่อบอท: DevaDIY Notify
  • username: devadiy_notify_bot

จุดไหนคือ Token ที่ต้องเก็บไว้

หลังสร้างสำเร็จ BotFather จะส่งข้อความตอบกลับมา และในข้อความนั้นจะมี HTTP API Token ของบอทคุณ นี่คือค่าที่ต้องเก็บไว้ให้ดี เพราะคุณต้องเอาไปใส่ในโค้ดภายหลัง

Bot token Telegram ที่สร้างด้วย BotFather
ข้อควรระวัง: อย่าเอา Token ไปโพสต์ลงเว็บสาธารณะ หรือ GitHub สาธารณะ เพราะถ้าใครได้ Token ไป เขาอาจใช้บอทของคุณส่งข้อความแทนได้

วิธีขอ Telegram Bot Token แบบทีละขั้น

Token เอาไว้ทำอะไร

เวลาคุณเรียก Telegram Bot API ทุกคำสั่งจะอ้างอิงผ่าน Token เช่น

https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdates

ถ้า Token ถูกต้อง Telegram ก็จะรู้ว่าคำสั่งนี้เป็นของบอทตัวไหน

วิธีคัดลอก Token ให้ถูก

คัดลอก Token ทั้งเส้นให้ครบ อย่าเผลอมีช่องว่างหน้า-หลัง และอย่าตัดส่วนใดส่วนหนึ่งออก

ถ้า Token หลุดต้องทำยังไง

ถ้าคุณเผลอทำ Token หลุดหรือสงสัยว่ามีคนอื่นเห็นแล้ว ให้กลับไปจัดการที่ BotFather แล้วรีเซ็ต Token ใหม่ จากนั้นอย่าลืมเอา Token ใหม่ไปแทนในโค้ดทั้งหมด

วิธีหา Chat ID ของตัวเอง

ทำไมต้องทักหาบอทก่อน

มือใหม่พลาดตรงนี้เยอะมาก คือสร้างบอทเสร็จแล้วรีบไปเรียก API ทันที แต่ยังไม่เคยส่งข้อความหาบอทเลย ทำให้ getUpdates ยังไม่มีข้อมูลแชทให้ดู

สรุปง่าย ๆ: คุณต้องเข้าไปคุยกับบอทก่อน อย่างน้อยส่งข้อความหรือกด Start หนึ่งครั้ง

วิธีใช้ getUpdates หา Chat ID

หลังจากทักบอทแล้ว ให้เปิด browser แล้วเรียก URL นี้

https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdates

ระบบจะตอบกลับเป็นข้อมูล JSON

ดูตรงไหนว่าเลขไหนคือ Chat ID

ให้มองหาส่วนที่เป็น "chat" แล้วดูค่าของ "id" ภายใน เช่นตัวอย่างนี้

{
  "message": {
    "chat": {
      "id": 123456789,
      "first_name": "Phisan",
      "type": "private"
    }
  }
}

จากตัวอย่างนี้ Chat ID คือ 123456789

ข้อมูล payload Json chat id จากการส่ง url /gerupdate/ ไปที่ api telegram

วิธีหา Chat ID ของกลุ่ม Telegram

เพิ่มบอทเข้ากลุ่มก่อน

ถ้าคุณอยากส่งข้อความเข้ากลุ่ม Telegram คุณต้องเพิ่มบอทเข้าไปในกลุ่มนั้นก่อน

ส่งข้อความในกลุ่มเพื่อให้มี update

หลังเพิ่มบอทเข้ากลุ่มแล้ว ให้ลองพิมพ์ข้อความในกลุ่ม หรือส่งคำสั่งที่เกี่ยวข้องกับบอท เพื่อให้เกิดข้อมูลใน update

ทำไม Group ID มักขึ้นต้นด้วย -100

เวลาเป็นกลุ่มหรือ supergroup ค่า Chat ID มักเป็นเลขติดลบ และในหลายกรณีคุณจะเห็นรูปแบบคล้าย -100xxxxxxxxxx ซึ่งเป็นเรื่องปกติของ Telegram

Privacy Mode มีผลยังไง

ถ้าบอทของคุณยังเปิด privacy mode อยู่ บอทจะไม่ได้เห็นทุกข้อความในกลุ่มเสมอไป บางกรณีจะเห็นเฉพาะคำสั่งหรือข้อความที่เกี่ยวข้องกับบอทเท่านั้น ดังนั้นถ้าหา group chat id ไม่เจอ ให้ลองส่งคำสั่งถึงบอทในกลุ่ม หรือเช็กการตั้งค่าของบอทเพิ่มเติม

ทิปจากงานจริง:
ถ้าคุณจะใช้ Telegram สำหรับแจ้งเตือนระบบฟาร์มหรือระบบเครื่องจักร ผมแนะนำให้ทดสอบกับแชทส่วนตัวก่อน เมื่อส่งเข้าได้แน่นอนแล้วค่อยขยับไปกลุ่ม จะไล่ปัญหาง่ายกว่า

ทดสอบส่งข้อความจาก Telegram Bot

ใช้ sendMessage แบบง่ายที่สุด

เมื่อคุณมีทั้ง Token และ Chat ID แล้ว ให้ลองทดสอบส่งข้อความด้วย URL นี้

https://api.telegram.org/botYOUR_BOT_TOKEN/sendMessage?chat_id=YOUR_CHAT_ID&text=Hello%20Telegram

ตัวอย่าง URL ทดสอบ

เช่น

https://api.telegram.org/bot123456:ABCDEF/sendMessage?chat_id=123456789&text=Pump%20ON

ถ้าทุกอย่างถูกต้อง คุณจะได้รับข้อความจากบอทใน Telegram ทันที

ถ้าส่งไม่เข้าให้เช็กอะไรบ้าง

  • Token ถูกหรือไม่
  • Chat ID ถูกหรือไม่
  • เคยทักหาบอทแล้วหรือยัง
  • ถ้าเป็นกลุ่ม เพิ่มบอทเข้ากลุ่มแล้วหรือยัง
  • URL ที่เรียกครบหรือไม่

เอา Token และ Chat ID ไปใช้กับ ESP32 ยังไง

Token ใช้ตรงไหนในโค้ด

ในโค้ด ESP32 คุณมักจะเก็บ Token ไว้ในตัวแปร เช่น

String botToken = "YOUR_BOT_TOKEN";

Chat ID ใช้ตรงไหนในโค้ด

ส่วน Chat ID ก็เก็บไว้ในตัวแปร เช่น

String chatId = "123456789";

ตัวอย่างงานจริงในสาย Maker และ Smart Farm

  • อุณหภูมิในโรงเรือนสูงเกิน 35°C แล้วส่งแจ้งเตือน
  • ปั๊มน้ำเปิดทำงานผิดเวลา ส่งแจ้งเตือนเข้า Telegram
  • ถังน้ำแห้งหรือระดับน้ำต่ำ ให้บอร์ดส่งข้อความเตือน
  • เซนเซอร์แก๊สตรวจจับค่าผิดปกติแล้วแจ้งเตือนทันที

ข้อดีคือคุณไม่ต้องสร้างแอปมือถือเองก็เริ่มทำระบบแจ้งเตือนได้แล้ว

ก่อนที่ ESP32 จะส่งข้อความเข้า Telegram ได้ บอร์ดต้องเชื่อมต่ออินเทอร์เน็ตให้สำเร็จก่อน คุณสามารถดูพื้นฐานได้ในบทความ ESP32 WiFi และฟังก์ชันที่ใช้บ่อย

ปัญหาที่มือใหม่เจอบ่อย

หา BotFather ไม่เจอหรือเจอผิดตัว

ให้ดูชื่อบัญชีให้ชัดว่าเป็น @BotFather จริง ๆ

เรียก getUpdates แล้วไม่ขึ้นอะไร

ส่วนใหญ่เกิดจากยังไม่เคยส่งข้อความหาบอท หรือยังไม่ได้กด Start

ส่งข้อความไม่สำเร็จ

มักเกิดจาก Token ผิด, Chat ID ผิด, URL ไม่ครบ หรือบอทยังไม่ได้เริ่มคุยกับผู้ใช้

ใช้ในกลุ่มแล้วบอทไม่ตอบ

ให้เช็กว่าบอทอยู่ในกลุ่มจริงหรือไม่ และระวังเรื่อง privacy mode ที่อาจทำให้บอทไม่เห็นทุกข้อความในกลุ่ม

คัดลอก Token ผิด

ปัญหานี้เจอบ่อยกว่าที่คิด โดยเฉพาะเวลาคัดลอกจากมือถือ อย่าลืมเช็กว่าคัดลอกครบทั้งชุด

ถ้าโค้ด Telegram ถูกหมดแล้วแต่ยังส่งข้อความไม่ออก ให้เช็กเรื่องการเชื่อมต่อเน็ตก่อน โดยดูแนวทางในบทความ ESP32 เชื่อมต่อ WiFi ไม่ได้

สรุป

ถ้าจะสรุปให้สั้นที่สุด ขั้นตอนมีแค่นี้เลย:

  1. สมัครและเข้าใช้งาน Telegram
  2. เปิดแชทกับ @BotFather
  3. ใช้คำสั่ง /newbot เพื่อสร้างบอท
  4. คัดลอก Token ที่ได้
  5. ทักหาบอทของคุณก่อน 1 ครั้ง
  6. เรียก getUpdates เพื่อหา Chat ID
  7. ทดสอบ sendMessage
  8. เอา Token และ Chat ID ไปใส่ในโค้ด ESP32

สำหรับสาย Maker: ถ้าคุณทำส่วนนี้ได้แล้ว คุณจะต่อยอดไปทำระบบแจ้งเตือนในงาน IoT ได้อีกเยอะมาก ไม่ว่าจะเป็น Smart Farm, ระบบเตือนอุณหภูมิ, ระบบแจ้งเตือนปั๊มน้ำ หรือโปรเจกต์เฝ้าระวังต่าง ๆ

คำถามที่พบบ่อย (FAQ)

Token กับ Chat ID ต้องใช้ทั้งคู่ไหม

ใช่ ต้องใช้ทั้งคู่ เพราะ Token เอาไว้ระบุตัวบอท ส่วน Chat ID เอาไว้ระบุปลายทางของข้อความ

เพราะคุณยังไม่ได้ส่งข้อความหาบอท หรือยังไม่ได้กด Start

ได้ ถ้าคุณมี Chat ID ของแต่ละคนหรือแต่ละกลุ่ม

เป็นรูปแบบปกติของ Telegram โดยเฉพาะกลุ่มและ supergroup

ให้รีเซ็ต Token ใหม่ผ่าน BotFather แล้วอัปเดตโค้ดทั้งหมดให้ใช้ค่าใหม่

ตัวบอทเป็นบัญชีบน Telegram แต่ฝั่งโปรแกรมหรือเซิร์ฟเวอร์ของคุณต้องทำงานเมื่อจะรับหรือส่งข้อมูลผ่าน API

ได้ และเป็นวิธีที่นิยมมากสำหรับงานแจ้งเตือน เพราะเริ่มต้นง่าย

ไม่ต้อง คุณเรียก Bot API ผ่าน HTTP ได้เลย

ได้ แต่ต้องเพิ่มบอทเข้ากลุ่ม และบางกรณีต้องระวังเรื่อง privacy modeไม่ต้อง คุณเรียก Bot API ผ่าน HTTP ได้เลย

>แนะนำให้ต่อยอดไปที่การเชื่อม WiFi บน ESP32, การส่ง HTTP request, และการทำระบบแจ้งเตือนจากเซนเซอร์จริง

Shopping Cart
Scroll to Top