คู่มือการสร้างบอท Telegram ด้วย ESP32

การปรับปรุงครั้งล่าสุด: 15/11/2026
ผู้แต่ง: ไอแซก
  • การผสานรวมไลบรารี UniversalTelegramBot เพื่อลดความซับซ้อนในการสื่อสารผ่าน HTTPS กับ Telegram API
  • การควบคุมขา GPIO จากระยะไกลเพื่อสั่งงานอุปกรณ์ต่างๆ เช่น LED และอ่านสถานะของสวิตช์
  • การนำระบบรักษาความปลอดภัยมาใช้โดยการตรวจสอบความถูกต้องของรหัสแชทและการใช้ใบรับรอง SSL

แผงวงจรไมโครคอนโทรลเลอร์เชื่อมต่อกับแผงวงจรทดลอง (breadboard) ที่มีไฟ LED สว่างอยู่ เหมาะสำหรับการแสดงผลลัพธ์ของโครงการ ESP32

คุณเคยคิดที่จะควบคุมอุปกรณ์บ้านอัจฉริยะจากโซฟาที่บ้านโดยใช้โทรศัพท์มือถือของคุณหรือไม่? การติดตั้งระบบควบคุม ESP32 ผ่าน Telegramเป็นหนึ่งในวิธีที่ง่ายและทรงพลังที่สุดในการเข้าสู่โลกของระบบบ้านอัจฉริยะโดยไม่ต้องทำให้ชีวิตยุ่งยากด้วยเซิร์ฟเวอร์ภายนอกราคาแพงหรือการตั้งค่าที่ซับซ้อน

เคล็ดลับอยู่ที่การเปลี่ยนบอร์ดของคุณให้เป็นเซิร์ฟเวอร์ขนาดเล็กที่รับฟังคำสั่งจากบอท คุณไม่จำเป็นต้องเป็นอัจฉริยะด้านการเขียนโปรแกรม เพราะด้วยไลบรารีเพียงไม่กี่ตัวและความอดทนเพียงเล็กน้อย คุณก็สามารถทำให้บอร์ดของคุณเปิดไฟหรือแจ้งเตือนสถานะของเซ็นเซอร์แบบเรียลไทม์ได้ทั้งหมดผ่านข้อความ SMS

วัสดุที่คุณต้องการ

รายละเอียดของแผ่นวงจรต้นแบบ (protoboard) พร้อมสายเคเบิลและชิ้นส่วนอิเล็กทรอนิกส์ ซึ่งจะเป็นประโยชน์สำหรับส่วนวัสดุที่ต้องการ

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

  • ใช้ไดโอดเปล่งแสง (LED) เพื่อตรวจสอบว่าทุกอย่างทำงานได้ปกติ
  • ใช้ตัวต้านทานขนาด 220 โอห์ม เพื่อป้องกันไม่ให้ LED ไหม้
  • ปุ่มกดหรือสวิตช์สำหรับอ่านสถานะทางกายภาพ
  • การเชื่อมต่อสายเคเบิลและแผงวงจรทดลอง (breadboard) จะช่วยให้คุณไม่ต้องบัดกรีอะไรเลยในตอนเริ่มต้น

การประกอบวงจรไฟฟ้า

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

ก่อนที่จะแก้ไขโค้ด คุณต้องเตรียมฮาร์ดแวร์ก่อน สำหรับตัวอย่างนี้ เราจะเชื่อมต่อ LED กับขา GPIO 33และสวิตช์กับขาGPIO 14สิ่งสำคัญคือต้องจำไว้ว่าคุณสามารถเปลี่ยนขาเหล่านี้ได้ตามต้องการ แต่คุณจะต้องสะท้อนการเปลี่ยนแปลงนั้นในค่าคงที่ของโปรแกรมในภายหลังด้วย

  โทรเลขไม่ทำงานอย่างถูกต้อง สาเหตุ วิธีแก้ไข และทางเลือก

LED เชื่อมต่อกับตัวต้านทานที่เหมาะสมเพื่อป้องกัน ในขณะที่ปุ่มกดได้รับการออกแบบภายในเพื่อหลีกเลี่ยงการเดินสายไฟเพิ่มเติม เมื่อคุณประกอบวงจรบนแผงวงจรทดลองเสร็จแล้ว คุณสามารถดำเนินการต่อในส่วนของซอฟต์แวร์ ซึ่งเป็นส่วนที่การทำงานทั้งหมดเกิดขึ้น

การตั้งค่าบอทใน Telegram

ภาพระยะใกล้ของบุคคลกำลังใช้สมาร์ทโฟนส่งข้อความ จำลองการโต้ตอบกับบอท Telegram

เพื่อให้ ESP32 สามารถรู้ได้ว่าควรฟังคำสั่งจากใคร เราต้องสร้างตัวตนของบอทภายในแอปพลิเคชัน Telegram ก่อน กระบวนการนี้มีความสำคัญอย่างยิ่ง เพราะจะให้ข้อมูลสำคัญสองส่วน ได้แก่โทเค็นของบอท (สตริงยาวๆ ของตัวเลขและตัวอักษร) และรหัสผู้ใช้ ส่วนตัวของคุณ หากไม่มีข้อมูลสำคัญสองส่วนนี้ อุปกรณ์จะไม่สามารถตรวจสอบตัวตนหรือระบุได้ว่าใครได้รับอนุญาตให้สั่งการได้

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

การเตรียมสภาพแวดล้อมการพัฒนา

คอมพิวเตอร์แล็ปท็อปที่มีโค้ดโปรแกรมแสดงอยู่บนหน้าจอ แสดงถึงขั้นตอนการพัฒนาใน Arduino IDE

เพื่อให้โค้ดทำงานได้ เราต้องติดตั้งเครื่องมือที่จะช่วยให้ชีวิตเราง่ายขึ้น นั่นคือ ไลบรารี UniversalTelegramBotแทนที่จะเขียนโค้ดหลายร้อยบรรทัดเพื่อจัดการกับ Telegram API ไลบรารีนี้จะทำทุกอย่างให้เราเกือบทั้งหมด

ในการติดตั้ง ให้ไปที่ตัวจัดการไลบรารีของ Arduino IDE พิมพ์ชื่อไลบรารี แล้วคลิกติดตั้ง นอกจากนี้ ตรวจสอบให้แน่ใจว่าคุณได้ ติดตั้งไลบรารี WiFi และ WiFiClientSecure แล้ว เนื่องจากไลบรารีเหล่านี้จะช่วยให้ ESP32 สามารถเชื่อมต่ออินเทอร์เน็ตและใช้โปรโตคอล HTTPS สำหรับการสื่อสารที่ปลอดภัยได้

การวิเคราะห์รหัสควบคุม

โปรแกรมจะเริ่มต้นด้วยการกำหนดข้อมูลประจำตัวเครือข่าย WiFi ของคุณและคีย์ของบอท สิ่งสำคัญคือคุณต้องแทนที่ค่าตัวอย่างด้วยค่าของคุณเอง ชื่อ SSID และรหัสผ่านรวมถึงโทเค็นและรหัสแชทด้วย สำหรับการโต้ตอบ เรากำหนดตัวแปรที่เรียกว่า info ซึ่งประกอบด้วยรายการคำสั่งที่บอทจะรู้จัก เช่น /led_on หรือ /sw_state

  วิธีสร้างระบบอัตโนมัติในการตอบกลับและแบบสอบถามบน Telegram โดยใช้บอท

การจัดการข้อความและคำสั่ง

หัวใจหลักของระบบคือฟังก์ชันที่ตรวจสอบข้อความใหม่ ESP32 ใช้เมธอดนี้ getUpdates สำหรับ ตรวจสอบคิวข้อความ จาก Telegram เพื่อป้องกันไม่ให้คนแปลกหน้าควบคุมบ้านของคุณ โค้ดนี้มีตัวกรองที่ตรวจสอบว่า ID ของผู้ส่งตรงกับของคุณทุกประการ CHAT_ID ที่กำหนดไว้ล่วงหน้า.

เมื่อผู้ใช้ได้รับการยืนยันตัวตนแล้ว บอทจะวิเคราะห์ข้อความที่ได้รับ: หากตรวจพบ... /led_onมันส่งสัญญาณดิจิทัลไปยังขา 33 เพื่อเปิดไฟ หากได้รับสัญญาณ /led_offปิดใช้งาน นอกจากนี้ยังมีตัวเลือกในการ /led_toggleซึ่งมีประโยชน์มากเพราะ พลิกกลับสถานะปัจจุบัน ของไฟ LED โดยที่คุณไม่ต้องรู้ว่าก่อนหน้านี้มันเปิดหรือปิดอยู่

การอ่านค่าเซ็นเซอร์และการดำเนินการเสร็จสิ้น

นอกจากการออกคำสั่งแล้ว บอทยังสามารถให้ข้อมูลได้อีกด้วย โดยใช้คำสั่ง /sw_stateESP32 อ่านสถานะของขา 14 เนื่องจากเราได้กำหนดค่าขาไว้ดังนี้ อินพุต_พูลอัพอุปกรณ์จะตรวจจับว่าปุ่มถูกกดหรือไม่ และจะส่งข้อความตอบกลับมาเพื่อยืนยัน

ในระหว่างกระบวนการบูต อุปกรณ์จะเชื่อมต่อกับ Wi-Fi ในลักษณะล็อกไว้ ซึ่งหมายความว่าอุปกรณ์จะไม่ทำอะไรเลยจนกว่าการเชื่อมต่อจะเสถียรเพื่อเพิ่มความปลอดภัยยิ่งขึ้น ระบบจะใช้ใบรับรองหลักของ Telegram เพื่อให้มั่นใจว่าการรับส่งข้อมูลได้รับการเข้ารหัส ส่วนลูปหลักจะตรวจสอบข้อความซ้ำทุกวินาทีเพื่อให้ระบบมีความคล่องตัวและตอบสนองได้ดี

ด้วยระบบนี้ เราได้ผสานรวมฮาร์ดแวร์และซอฟต์แวร์เข้าด้วยกันอย่างประสบความสำเร็จเพื่อสร้างสะพานเชื่อมการสื่อสารไร้สาย เราได้ตั้งค่าบอท จัดการความปลอดภัยโดยใช้รหัสประจำตัวและใบรับรอง และตั้งโปรแกรมการตอบสนองของพิน GPIO เพื่อโต้ตอบกับโลกทางกายภาพจากทุกที่ที่มีการเชื่อมต่ออินเทอร์เน็ต

ไอแซก

Isaac

นักเขียนผู้หลงใหลเกี่ยวกับโลกแห่งไบต์และเทคโนโลยีโดยทั่วไป ฉันชอบแบ่งปันความรู้ผ่านการเขียน และนั่นคือสิ่งที่ฉันจะทำในบล็อกนี้ เพื่อแสดงให้คุณเห็นสิ่งที่น่าสนใจที่สุดเกี่ยวกับอุปกรณ์ ซอฟต์แวร์ ฮาร์ดแวร์ แนวโน้มทางเทคโนโลยี และอื่นๆ เป้าหมายของฉันคือการช่วยคุณนำทางโลกดิจิทัลด้วยวิธีที่เรียบง่ายและสนุกสนาน

  วิธีส่งข้อความข้ามแอปพลิเคชันระหว่าง WhatsApp และ Telegram

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

ต้องใช้ไลบรารีใดในการเชื่อมต่อ ESP32 กับ Telegram?

ควรใช้ไลบรารี UniversalTelegramBot ซึ่งช่วยลดความซับซ้อนในการโต้ตอบกับ Telegram API และอำนวยความสะดวกในการส่งและรับข้อความ

ฉันจะมั่นใจได้อย่างไรว่ามีเพียงฉันเท่านั้นที่สามารถควบคุมบอทได้?

โค้ดนี้ใช้ตัวกรองที่เปรียบเทียบ ID แชทของข้อความที่ได้รับกับ CHAT_ID ที่กำหนดไว้ล่วงหน้า โดยไม่สนใจคำสั่งใดๆ ที่มาจากผู้ใช้รายอื่น

จำเป็นต้องใช้ HTTPS ในการสื่อสารกับบอทหรือไม่?

ใช่แล้ว Telegram ต้องการการเชื่อมต่อที่ปลอดภัย ดังนั้นจึงใช้ WiFiClientSecure และต้องกำหนดค่าใบรับรองรูทของ Telegram บน ESP32 ด้วย

คำสั่ง /led_toggle ในโค้ดมีจุดประสงค์อะไร?

คำสั่งนี้ใช้สำหรับกลับสถานะปัจจุบันของ LED โดยจะเปิด LED หากปิดอยู่ หรือปิด LED หากเปิดอยู่

เหตุใดจึงใช้ INPUT_PULLUP สำหรับสวิตช์?

ใช้เพื่อกระตุ้นความต้านทานภายในของแผงวงจร จึงไม่จำเป็นต้องเพิ่มความต้านทานทางกายภาพภายนอกเข้าไปในวงจรปุ่มกด

ฉันจะหาโทเค็นบอทและรหัสผู้ใช้ได้จากที่ไหน?

โทเค็นได้มาจากการสร้างบอทผ่าน BotFather บน Telegram และรหัสผู้ใช้สามารถรับได้จากบอทที่เชี่ยวชาญในการรับข้อมูลประจำตัวโปรไฟล์