คุณทำ ESP32 ได้แล้ว แต่พอจะส่งแจ้งเตือนเข้า Telegram ดันติดตรง “Token คืออะไร” และ “Chat ID เอาจากไหน” ใช่ไหม?
ปัญหานี้เจอกันบ่อยมาก โดยเฉพาะสาย Maker มือใหม่ที่อยากให้บอร์ดส่งข้อความเตือนเข้าโทรศัพท์ เช่น อุณหภูมิสูงเกิน ปั๊มน้ำทำงาน หรือมีแก๊สรั่ว แต่หลายบทความชอบข้ามขั้นตอนสำคัญไปเลย ทำให้คุณสร้างบอทได้แต่ใช้งานจริงไม่ได้
บทความนี้จะพาคุณทำตั้งแต่ต้นแบบภาษาคนทำจริง ตั้งแต่สร้าง Telegram Bot, ขอ Token, หา Chat ID ทั้งแบบแชทส่วนตัวและแบบกลุ่ม ไปจนถึงทดสอบส่งข้อความให้ได้จริง เพื่อที่คุณจะเอาไปต่อกับ ESP32 หรือโปรเจกต์ IoT ของคุณได้ทันที
ถ้าคุณเพิ่งเริ่มต้นและยังไม่คุ้นกับบอร์ดนี้ แนะนำให้อ่านบทความ ESP32 คืออะไร ก่อน แล้วค่อยกลับมาต่อเรื่อง Telegram Bot จะเข้าใจภาพรวมเร็วขึ้น
สารบัญ
- Telegram Bot คืออะไร และทำไมสาย Maker ควรรู้
- ก่อนเริ่มต้องเตรียมอะไรบ้าง
- วิธีสร้าง Telegram Bot ด้วย BotFather
- วิธีขอ Telegram Bot Token แบบทีละขั้น
- วิธีหา Chat ID ของตัวเอง
- วิธีหา Chat ID ของกลุ่ม Telegram
- ทดสอบส่งข้อความจาก Telegram Bot
- เอา Token และ Chat ID ไปใช้กับ ESP32 ยังไง
- ปัญหาที่มือใหม่เจอบ่อย
- สรุป
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 จากนั้นระบบจะถามชื่อบอทของคุณ
ตั้งชื่อบอทและ username ให้ผ่าน
Telegram จะให้คุณตั้ง 2 ส่วน:
- Bot Name = ชื่อที่คนเห็น
- Username = ชื่อสำหรับอ้างอิงบอท โดยทั่วไปต้องลงท้ายด้วย
bot
ตัวอย่างเช่น
- ชื่อบอท:
DevaDIY Notify - username:
devadiy_notify_bot
จุดไหนคือ Token ที่ต้องเก็บไว้
หลังสร้างสำเร็จ BotFather จะส่งข้อความตอบกลับมา และในข้อความนั้นจะมี HTTP API 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
วิธีหา 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 ไม่ได้
สรุป
ถ้าจะสรุปให้สั้นที่สุด ขั้นตอนมีแค่นี้เลย:
- สมัครและเข้าใช้งาน Telegram
- เปิดแชทกับ @BotFather
- ใช้คำสั่ง
/newbotเพื่อสร้างบอท - คัดลอก Token ที่ได้
- ทักหาบอทของคุณก่อน 1 ครั้ง
- เรียก
getUpdatesเพื่อหา Chat ID - ทดสอบ
sendMessage - เอา Token และ Chat ID ไปใส่ในโค้ด ESP32
สำหรับสาย Maker: ถ้าคุณทำส่วนนี้ได้แล้ว คุณจะต่อยอดไปทำระบบแจ้งเตือนในงาน IoT ได้อีกเยอะมาก ไม่ว่าจะเป็น Smart Farm, ระบบเตือนอุณหภูมิ, ระบบแจ้งเตือนปั๊มน้ำ หรือโปรเจกต์เฝ้าระวังต่าง ๆ
คำถามที่พบบ่อย (FAQ)
Token กับ Chat ID ต้องใช้ทั้งคู่ไหม
ใช่ ต้องใช้ทั้งคู่ เพราะ Token เอาไว้ระบุตัวบอท ส่วน Chat ID เอาไว้ระบุปลายทางของข้อความ
ทำไมเรียก getUpdates แล้วไม่มีข้อมูล
เพราะคุณยังไม่ได้ส่งข้อความหาบอท หรือยังไม่ได้กด Start
ใช้บอทตัวเดียวส่งหาได้หลายคนไหม
ได้ ถ้าคุณมี Chat ID ของแต่ละคนหรือแต่ละกลุ่ม
Group Chat ID ทำไมเป็นเลขติดลบ
เป็นรูปแบบปกติของ Telegram โดยเฉพาะกลุ่มและ supergroup
ถ้า Token หลุดต้องทำยังไง
ให้รีเซ็ต Token ใหม่ผ่าน BotFather แล้วอัปเดตโค้ดทั้งหมดให้ใช้ค่าใหม่
บอทต้องออนไลน์ตลอดไหม
ตัวบอทเป็นบัญชีบน Telegram แต่ฝั่งโปรแกรมหรือเซิร์ฟเวอร์ของคุณต้องทำงานเมื่อจะรับหรือส่งข้อมูลผ่าน API
ใช้ Telegram Bot กับ ESP32 ได้จริงไหม
ได้ และเป็นวิธีที่นิยมมากสำหรับงานแจ้งเตือน เพราะเริ่มต้นง่าย
ต้องเขียนแอปเองไหมถึงจะส่งแจ้งเตือนเข้า Telegram ได้
ไม่ต้อง คุณเรียก Bot API ผ่าน HTTP ได้เลย
ใช้กับกลุ่มได้ไหม
ได้ แต่ต้องเพิ่มบอทเข้ากลุ่ม และบางกรณีต้องระวังเรื่อง privacy modeไม่ต้อง คุณเรียก Bot API ผ่าน HTTP ได้เลย
หลังจากได้ Token และ Chat ID แล้วควรไปเรียนเรื่องอะไรต่อ
>แนะนำให้ต่อยอดไปที่การเชื่อม WiFi บน ESP32, การส่ง HTTP request, และการทำระบบแจ้งเตือนจากเซนเซอร์จริง
