Hướng dẫn tạo bot Telegram bằng ESP32

Cập nhật lần cuối: 15/11/2026
tác giả: Isaac
  • Tích hợp thư viện UniversalTelegramBot để đơn giản hóa việc giao tiếp HTTPS với API Telegram.
  • Điều khiển từ xa các chân GPIO để vận hành các thiết bị chấp hành như đèn LED và đọc trạng thái công tắc.
  • Triển khai bảo mật thông qua xác thực ID trò chuyện và sử dụng chứng chỉ SSL.

Bo mạch vi điều khiển được kết nối với bảng mạch thử nghiệm (breadboard) có đèn LED sáng, lý tưởng để minh họa kết quả của dự án ESP32.

Bạn đã bao giờ nghĩ đến việc điều khiển các thiết bị tự động hóa nhà cửa từ sự thoải mái trên ghế sofa bằng điện thoại di động chưa? Việc thiết lập một hệ thống để điều khiển ESP32 thông qua Telegram là một trong những cách đơn giản và mạnh mẽ nhất để bước vào thế giới tự động hóa nhà cửa mà không cần phải làm phức tạp cuộc sống của bạn với các máy chủ bên ngoài đắt tiền hoặc các cấu hình khó thực hiện.

Điều kỳ diệu nằm ở việc biến bo mạch của bạn thành một máy chủ nhỏ lắng nghe các lệnh từ một bot. Bạn không cần phải là một chuyên gia lập trình, bởi vì chỉ với một vài thư viện và một chút kiên nhẫn, bạn có thể khiến thiết bị của mình bật đèn hoặc cảnh báo bạn về trạng thái của cảm biến trong thời gian thực, tất cả đều thông qua tin nhắn văn bản tức thời.

Vật liệu bạn sẽ cần

Chi tiết về một bảng mạch thử nghiệm với dây cáp và các linh kiện điện tử, hữu ích cho phần vật liệu cần thiết.

Để bắt đầu, bạn không cần phải tốn quá nhiều tiền. Điều quan trọng nhất là phải có một bo mạch ESP32 ; không quan trọng đó là mẫu cũ hay mẫu mới nhất, vì khả năng tương thích là hoàn toàn. Bên cạnh bộ não của dự án, bạn sẽ cần một số linh kiện cơ bản để thử nghiệm:

  • Một điốt phát quang (LED) để kiểm tra xem mọi thứ có hoạt động bình thường hay không.
  • Sử dụng điện trở 220 ohm để tránh làm cháy đèn LED.
  • Nút bấm hoặc công tắc để đọc trạng thái vật lý.
  • Kết nối các dây cáp và bảng mạch thử nghiệm để bạn không cần phải hàn bất cứ thứ gì ngay từ đầu.

Lắp ráp mạch điện tử

Hai bàn tay đang lắp ráp các linh kiện điện tử và dây dẫn trên bảng mạch thử nghiệm để tạo thành mạch điện.

Trước khi chỉnh sửa mã, bạn cần chuẩn bị phần cứng. Trong ví dụ này, chúng ta sẽ kết nối đèn LED với chân GPIO 33 và công tắc với chân GPIO 14. Điều quan trọng cần nhớ là bạn có thể thay đổi các chân này nếu cần, nhưng bạn sẽ phải phản ánh sự thay đổi đó sau này trong các hằng số của chương trình.

  Telegram không hoạt động chính xác Nguyên nhân, giải pháp và giải pháp thay thế

Đèn LED được kết nối với điện trở tương ứng để bảo vệ, trong khi nút nhấn được cấu hình bên trong để tránh dây dẫn thừa. Sau khi đã lắp ráp mạch trên bảng mạch thử nghiệm , bạn có thể chuyển sang phần mềm, nơi mọi hoạt động diễn ra.

Thiết lập Bot trên Telegram

Ảnh cận cảnh một người đang sử dụng điện thoại thông minh để gửi tin nhắn, mô phỏng tương tác với bot Telegram.

Để ESP32 biết cần lắng nghe ai, trước tiên chúng ta phải tạo danh tính cho bot trong chính ứng dụng Telegram. Quá trình này rất quan trọng vì nó cung cấp hai thông tin then chốt: mã thông báo của bot (một chuỗi dài các số và chữ cái) và ID người dùng cá nhân của bạn . Nếu thiếu hai khóa này, thiết bị không thể tự xác thực hoặc xác định ai được ủy quyền để ra lệnh cho nó.

Nếu bất cứ lúc nào bạn cảm thấy cuộc trò chuyện trở nên hỗn loạn, hãy nhớ rằng bạn luôn có thể xóa lịch sử từ menu ở góc trên bên phải. Thao tác này sẽ khởi động lại bot và đưa nó trở lại nút trang chủ với các lệnh có sẵn, cho phép bạn bắt đầu lại từ đầu.

Chuẩn bị môi trường phát triển

Máy tính xách tay hiển thị mã lập trình trên màn hình, thể hiện giai đoạn phát triển trong môi trường lập trình Arduino IDE.

Để đoạn mã hoạt động, chúng ta cần cài đặt một công cụ giúp đơn giản hóa công việc: thư viện UniversalTelegramBot . Thay vì phải viết hàng trăm dòng mã để xử lý API của Telegram, thư viện này hầu như làm tất cả mọi thứ cho chúng ta.

Để cài đặt, chỉ cần vào trình quản lý thư viện của Arduino IDE, nhập tên thư viện và nhấn cài đặt. Ngoài ra, hãy đảm bảo bạn đã cài đặt các thư viện WiFi và WiFiClientSecure , vì chúng cho phép ESP32 kết nối với internet và sử dụng giao thức HTTPS để liên lạc an toàn.

Phân tích mã điều khiển

Chương trình bắt đầu bằng việc xác định thông tin đăng nhập mạng WiFi và khóa của bot. Điều quan trọng là bạn phải thay thế các giá trị ví dụ bằng giá trị của riêng mình. SSID và mật khẩucũng như mã thông báo và ID cuộc trò chuyện. Để tăng tính tương tác, chúng tôi định nghĩa một biến có tên là info trong đó chứa danh sách các lệnh mà bot sẽ nhận ra, chẳng hạn như /led_on hoặc /sw_state.

  Cách tự động hóa phản hồi và khảo sát trên Telegram bằng bot

Quản lý tin nhắn và lệnh

Cốt lõi của hệ thống là chức năng kiểm tra các tin nhắn mới. ESP32 sử dụng phương thức này. getUpdates para kiểm tra hàng đợi tin nhắn Từ Telegram. Để ngăn chặn bất kỳ người lạ nào điều khiển nhà bạn, mã này bao gồm một bộ lọc xác minh ID người gửi hoàn toàn trùng khớp với ID của bạn. ID CHAT_ID được xác định trước.

Sau khi người dùng được xác thực, bot sẽ phân tích văn bản nhận được: nếu nó phát hiện... /led_onNó gửi tín hiệu số đến chân 33 để bật đèn; nếu nó nhận được /led_off, tắt nó đi. Ngoài ra còn có tùy chọn để /led_toggleđiều này rất thiết thực bởi vì đảo ngược trạng thái hiện tại của đèn LED mà không cần bạn phải biết trước đó nó đã bật hay tắt.

Đọc và hoàn thành cảm biến

Ngoài việc đưa ra các lệnh, bot cũng có thể cung cấp thông tin. Sử dụng lệnh /sw_stateESP32 đọc trạng thái của chân 14. Vì chúng ta đã cấu hình chân này như sau: ĐẦU VÀO KÉO LÊNThiết bị sẽ phát hiện xem nút có được nhấn hay không và sẽ gửi cho chúng tôi một tin nhắn xác nhận.

Trong quá trình khởi động, thiết bị kết nối với Wi-Fi ở chế độ khóa, nghĩa là nó sẽ không thực hiện bất cứ điều gì cho đến khi kết nối ổn định . Để tăng cường bảo mật hơn nữa, chứng chỉ gốc của Telegram được sử dụng, đảm bảo rằng lưu lượng dữ liệu được mã hóa. Vòng lặp chính chỉ đơn giản là lặp lại việc kiểm tra tin nhắn mỗi giây để giữ cho hệ thống hoạt động nhanh nhạy và phản hồi kịp thời.

Với hệ thống này, chúng tôi đã tích hợp thành công phần cứng và phần mềm để tạo ra một cầu nối truyền thông không dây. Chúng tôi đã cấu hình một bot, quản lý bảo mật bằng ID và chứng chỉ, và lập trình phản hồi chân GPIO để tương tác với thế giới vật lý từ bất cứ đâu có kết nối internet.

Isaac

Isaac

Người viết đam mê về thế giới byte và công nghệ nói chung. Tôi thích chia sẻ kiến ​​thức của mình thông qua viết lách và đó là những gì tôi sẽ làm trong blog này, cho bạn thấy tất cả những điều thú vị nhất về tiện ích, phần mềm, phần cứng, xu hướng công nghệ, v.v. Mục tiêu của tôi là giúp bạn điều hướng thế giới kỹ thuật số một cách đơn giản và thú vị.

  Cách gửi tin nhắn chéo giữa WhatsApp và Telegram

Câu hỏi thường gặp

Cần thư viện nào để kết nối ESP32 với Telegram?

Nên sử dụng thư viện UniversalTelegramBot, thư viện này đơn giản hóa việc tương tác với API của Telegram và tạo điều kiện thuận lợi cho việc gửi và nhận tin nhắn.

Làm thế nào để đảm bảo chỉ mình tôi mới có thể điều khiển bot?

Đoạn mã này triển khai một bộ lọc so sánh ID cuộc trò chuyện của tin nhắn nhận được với CHAT_ID được xác định trước, bỏ qua bất kỳ lệnh nào đến từ người dùng khác.

Việc sử dụng HTTPS để giao tiếp với bot có thực sự cần thiết không?

Đúng vậy, Telegram yêu cầu kết nối bảo mật, vì vậy WiFiClientSecure được sử dụng và chứng chỉ gốc của Telegram phải được cấu hình trên ESP32.

Lệnh /led_toggle trong đoạn mã có mục đích gì?

Lệnh này được sử dụng để đảo ngược trạng thái hiện tại của đèn LED, bật đèn nếu nó đang tắt hoặc tắt đèn nếu nó đang bật.

Tại sao lại sử dụng INPUT_PULLUP cho công tắc?

Nó được sử dụng để kích hoạt điện trở bên trong của mạch, do đó tránh được việc phải thêm điện trở vật lý bên ngoài vào mạch nút nhấn.

Tôi có thể lấy mã thông báo bot và ID người dùng ở đâu?

Mã token được lấy bằng cách tạo bot thông qua BotFather trên Telegram, còn ID người dùng có thể được lấy thông qua các bot chuyên dụng để xác thực danh tính người dùng.