ESP32를 이용한 텔레그램 봇 제작 가이드

마지막 업데이트 : 15/11/2026
저자 : 이삭
  • UniversalTelegramBot 라이브러리를 통합하여 Telegram API와의 HTTPS 통신을 간소화했습니다.
  • GPIO 핀을 원격으로 제어하여 LED와 같은 액추에이터를 작동시키고 스위치 상태를 읽습니다.
  • 채팅 ID 인증 및 SSL 인증서 사용을 통해 보안을 구현했습니다.

LED가 켜진 브레드보드에 연결된 마이크로컨트롤러 보드는 ESP32 프로젝트의 결과를 보여주기에 이상적입니다.

소파에 편안히 앉아 휴대폰으로 집안 자동화 기기를 제어하는 ​​것을 생각해 보신 적 있으신가요? 텔레그램을 통해 ESP32를 제어하는 ​​시스템을 구축하는 것은 값비싼 외부 서버나 복잡한 설정 없이도 홈 자동화의 세계에 발을 들일 수 있는 가장 간단하면서도 강력한 방법 중 하나입니다.

핵심은 보드를 봇의 명령을 수신하는 소형 서버로 바꾸는 데 있습니다. 프로그래밍 전문가가 아니어도 괜찮습니다. 몇 가지 라이브러리와 약간의 인내심만 있으면 기기를 통해 조명을 켜거나 센서 상태를 실시간으로 문자 메시지로 알려주는 기능을 구현할 수 있습니다.

필요한 자료

케이블과 전자 부품이 포함된 프로토타입 기판의 상세 모습으로, 필요한 재료 항목을 작성하는 데 유용합니다.

시작하는 데 큰돈을 쓸 필요는 없습니다. 가장 중요한 것은 ESP32 보드 입니다 . 구형 모델이든 최신 모델이든 호환성은 완벽하므로 상관없습니다. 프로젝트의 핵심 부품 외에도 테스트를 위한 몇 가지 기본 구성 요소가 필요합니다.

  • 모든 것이 제대로 작동하는지 확인하기 위한 발광 다이오드(LED).
  • LED가 타는 것을 방지하기 위해 220옴 저항을 사용합니다.
  • 물리적 상태를 읽기 위한 푸시 버튼 또는 스위치.
  • 처음에 납땜을 할 필요가 없도록 연결 케이블과 브레드보드를 ​​제공합니다.

전자 회로 조립

회로 조립을 위해 브레드보드에 전자 부품과 전선을 연결하는 손.

코드를 수정하기 전에 하드웨어를 준비해야 합니다. 이 예제에서는 LED를 GPIO 핀 33 에 , 스위치를 GPIO 핀 14 에 연결합니다 . 필요에 따라 이 핀들을 변경할 수 있지만, 프로그램 상수에도 변경 사항을 반영해야 한다는 점을 기억하는 것이 중요합니다.

  텔레그램이 제대로 작동하지 않습니다. 원인, 해결책 및 대안

LED는 보호를 위해 해당 저항과 연결되어 있으며, 푸시 버튼은 추가 배선이 필요 없도록 내부적으로 구성되어 있습니다. 브레드보드에 회로를 조립 했으면 이제 모든 기능이 구현되는 소프트웨어 부분으로 넘어갈 수 있습니다.

텔레그램 봇 설정

스마트폰으로 메시지를 보내는 사람의 클로즈업 사진으로, 텔레그램 봇과의 상호작용을 시뮬레이션하고 있다.

ESP32가 누구의 메시지를 수신해야 하는지 알 수 있도록 하려면 먼저 텔레그램 애플리케이션 내에서 봇의 ID를 생성해야 합니다. 이 과정은 두 가지 핵심 정보, 즉 봇 토큰 (숫자와 문자로 이루어진 긴 문자열)과 사용자 ID를 제공하기 때문에 매우 중요합니다 . 이 두 가지 키가 없으면 장치는 자체 인증을 할 수 없으며 명령을 내릴 권한이 있는 사람을 확인할 수도 없습니다.

채팅이 혼란스러워졌다고 느껴지시면 언제든지 오른쪽 상단 메뉴에서 채팅 기록을 삭제할 수 있다는 점을 기억하세요 . 기록을 삭제하면 봇이 재시작되고 홈 버튼과 사용 가능한 명령어 목록으로 돌아가므로 처음부터 다시 시작할 수 있습니다.

개발 환경 준비

프로그래밍 코드가 화면에 표시된 노트북 컴퓨터는 아두이노 IDE에서의 개발 단계를 보여줍니다.

이 코드가 제대로 작동하려면, 우리의 작업을 훨씬 수월하게 해주는 도구인 UniversalTelegramBot 라이브러리를 설치해야 합니다 . 텔레그램 API를 처리하기 위해 수백 줄의 코드를 작성하는 대신, 이 라이브러리가 거의 모든 작업을 대신 처리해 줍니다.

설치하려면 아두이노 IDE의 라이브러리 관리자로 이동하여 라이브러리 이름을 입력하고 설치를 클릭하기만 하면 됩니다. 또한 ESP32가 인터넷에 연결하고 안전한 통신을 위해 HTTPS 프로토콜을 사용하려면 WiFi 및 WiFiClientSecure 라이브러리가 설치되어 있는지 확인하십시오.

제어 코드 분석

이 프로그램은 먼저 사용자의 Wi-Fi 네트워크 자격 증명과 봇의 키를 정의합니다. 예시 값은 반드시 자신의 값으로 바꿔야 합니다. SSID 및 비밀번호토큰과 채팅 ID도 포함됩니다. 상호 작용을 위해 라는 변수를 정의합니다. info 여기에는 /led_on 또는 /sw_state와 같이 봇이 인식할 명령 목록이 포함되어 있습니다.

  텔레그램에서 봇을 사용하여 응답 및 설문 조사를 자동화하는 방법

메시지 및 명령 관리

시스템의 핵심은 새 메시지를 확인하는 기능입니다. ESP32는 이 메서드를 사용합니다. getUpdates 파라 메시지 큐를 확인하세요 텔레그램에서 온 메시지입니다. 낯선 사람이 당신의 집을 제어하는 ​​것을 방지하기 위해, 이 코드에는 발신자의 ID가 당신의 ID와 정확히 일치하는지 확인하는 필터가 포함되어 있습니다. 미리 정의된 CHAT_ID.

사용자 인증이 완료되면 봇은 수신된 텍스트를 분석합니다. 만약 감지되는 내용이 있다면... /led_on33번 핀으로 디지털 신호를 보내 조명을 켜고, 만약 수신되면 /led_off, 을 끕니다. 또한 다음과 같은 옵션도 있습니다. /led_toggle이는 매우 실용적이기 때문입니다. 현재 상태를 반전시킵니다 LED가 이전에 켜져 있었는지 꺼져 있었는지 알 필요 없이 LED의 상태를 확인할 수 있습니다.

센서 판독 및 완료

봇은 명령을 내리는 것 외에도 정보를 제공할 수 있습니다. 명령어를 사용하면 됩니다. /sw_stateESP32는 14번 핀의 상태를 읽습니다. 우리는 해당 핀을 다음과 같이 설정했습니다. 입력_풀업기기는 버튼이 눌렸는지 여부를 감지하고 이를 확인하는 문자 메시지를 저희에게 보낼 것입니다.

부팅 과정 동안 기기는 잠금 상태로 Wi-Fi에 연결됩니다. 즉, 연결이 안정될 때까지 아무런 작업도 수행하지 않습니다 . 보안을 더욱 강화하기 위해 텔레그램의 루트 인증서가 사용되어 데이터 트래픽이 암호화됩니다. 메인 루프는 시스템의 민첩성과 응답성을 유지하기 위해 매초 메시지 확인을 반복합니다.

이 시스템을 통해 하드웨어와 소프트웨어를 성공적으로 통합하여 무선 통신 브리지를 구축했습니다. 봇을 구성하고, ID와 인증서를 사용하여 보안을 관리하며, GPIO 핀 응답을 프로그래밍하여 인터넷 연결만 있으면 어디서든 물리적 세계와 상호 작용할 수 있도록 했습니다.

이삭

Isaac

바이트와 ​​기술 전반에 관한 세계에 대한 열정적인 작가입니다. 나는 글쓰기를 통해 내 지식을 공유하는 것을 좋아하며 이것이 바로 이 블로그에서 할 일이며 가젯, 소프트웨어, 하드웨어, 기술 동향 등에 관한 가장 흥미로운 모든 것을 보여 드리겠습니다. 제 목표는 여러분이 간단하고 재미있는 방식으로 디지털 세계를 탐색할 수 있도록 돕는 것입니다.

  WhatsApp과 Telegram 간에 메시지를 주고받는 방법

Preguntas frecuentes

ESP32를 텔레그램에 연결하려면 어떤 라이브러리가 필요합니까?

UniversalTelegramBot 라이브러리를 사용해야 합니다. 이 라이브러리는 Telegram API와의 상호 작용을 간소화하고 메시지 송수신을 용이하게 합니다.

봇을 나만 제어할 수 있도록 하려면 어떻게 해야 하나요?

이 코드는 수신된 메시지의 채팅 ID를 미리 정의된 CHAT_ID와 비교하는 필터를 구현하며, 다른 사용자가 보낸 명령은 무시합니다.

봇과 통신하려면 HTTPS를 사용하는 것이 필수적인가요?

네, 텔레그램은 보안 연결이 필요하므로 WiFiClientSecure를 사용하고 ESP32에 텔레그램 루트 인증서를 구성해야 합니다.

코드에서 /led_toggle 명령어의 목적은 무엇인가요?

이 명령어는 LED의 현재 상태를 반전시키는 데 사용됩니다. LED가 꺼져 있으면 켜고, 켜져 있으면 꺼집니다.

스위치에 INPUT_PULLUP이 사용되는 이유는 무엇입니까?

이는 기판의 내부 저항을 활성화하는 데 사용되므로 푸시 버튼 회로에 외부 물리적 저항을 추가할 필요가 없습니다.

봇 토큰과 사용자 ID는 어디서 얻을 수 있나요?

토큰은 텔레그램의 BotFather를 통해 봇을 생성하여 얻을 수 있으며, 사용자 ID는 프로필 ID 획득에 특화된 봇을 통해 얻을 수 있습니다.