아두이노 MKR WiFi 1010으로 텔레그램 봇 만들기 – IoT 입문 가이드
필요한 부품 및 소모품
| 부품 |
수량 |
| 아두이노 MKR WiFi 1010 |
1 |
프로젝트 소개
이 프로젝트는 아두이노를 텔레그램 봇 API와 연동하는 방법을 보여줍니다. U-BLOX의 ESP32 모듈을 탑재한 새로운 MKR WiFi 1010 보드를 사용합니다.
현재는 개념 증명(PoC) 단계로, 가능한 것을 보여주는 데 의의가 있어 보드만 있으면 됩니다.
텔레그램 봇이란?
봇은 사람이 아닌 소프트웨어가 운영하는 텔레그램 계정으로, AI 기능을 갖기도 합니다. 교육, 놀이, 검색, 방송, 알림, 연동, IoT 기기 제어 등 무엇이든 할 수 있습니다. (출처: 텔레그램 공식 블로그)
이 프로젝트에서는 아두이노에 명령을 내려 간단한 IoT 기기를 만듭니다. 간단한 명령에 응답하고 내장 LED를 켜고 끄는 정도지만, 상상력을 발휘하면 릴레이를 연결해 히터나 에어컨을 스마트폰으로 제어하는 등 확장할 수 있습니다.
1단계: 준비물
- 아두이노 MKR WiFi 1010 (공식 스토어)
- 아두이노 IDE 1.8.5 이상 (다운로드)
- 마이크로 USB 케이블
- 인터넷 연결 (SSID/비밀번호 필요, 집 공유기 권장)
- 스마트폰에 텔레그램 앱 설치 (PC/웹 버전도 가능)
2단계: IDE 설치 및 보드 설정
- 아두이노 IDE 1.8.5 다운로드/설치 (zip 또는 exe). 구버전은 MKR WiFi 1010을 지원하지 않을 수 있습니다.
- IDE 실행 → Tools > Board > Boards Manager → 'Arduino SAMD Boards' 검색 → 최신 버전 설치 (드라이버 포함).
- Sketch > Include Library > Manage Libraries → 'WiFiNINA' 검색 → 설치.
- 보드 연결 후 윈도우 드라이버 설치 대기.
- Tools > Board에서 'Arduino MKR WiFi 1010' 선택.
- 이 프로젝트용 특수 라이브러리인 ESP8266TelegramBot (Giancarlo Bacchio 작, 본 보드용으로 약간 수정됨)이 스케치 폴더에 포함되어 있습니다.
- 올바른 COM 포트 선택 후 Get Board Info로 테스트.
3단계: 텔레그램 봇 생성
- 텔레그램 앱에서 검색창에 @BotFather 입력 후 채팅 시작.
/start → 도움말 확인.
/newbot 입력.
- 봇 이름 입력 (연락처 등에 표시됨).
- 유저네임 입력 (5~32자, 영문/숫자/언더바, 대소문자 구분 없음, 반드시 'bot'으로 끝나야 함, 예:
mybot 또는 MyBot).
- 성공하면 긴 문자열 TOKEN 발급. 이 키로 텔레그램 서버와 통신. 안전한 곳에 복사해 두세요. 잃어버리면
/token으로 재발급 가능.
고급 설정 (선택 사항)
/setuserpic – 프로필 사진 업로드
/setabouttext – 프로필 '정보'란 설정
/setdescription – 채팅 열 때 뜨는 '이 봇의 기능' 설명 설정
자세한 가이드: 텔레그램 봇 API 문서
4단계: 스케치 수정·업로드·테스트
- 첨부된 스케치(MKR1010Bot_V1_02.zip) 다운로드·압축 해제 (폴더/파일명 변경 금지).
- 스케치 열기 →
arduino_secrets.h 탭에서 수정:
- WiFi SSID와 비밀번호 입력
- 봇 이름, 유저네임, 토큰 입력
- 보드/포트 확인 후 컴파일·업로드.
- [중요!] 시리얼 모니터를 열어야 합니다. MKR WiFi 1010은 네이티브 USB 포트(레오나르도类似)라 시리얼 모니터가 열릴 때까지 대기합니다. 시리얼 모니터 열면 WiFi 연결 → 텔레그램 서버 폴링 시작 로그가 뜹니다.
- 텔레그램에서 봇 이름으로 검색해 채팅 시작.
/start → 환영 메시지 수신.
help (슬래시 없이) → 지원 명령어 목록 확인 후 테스트.
인증서 문제 해결
텔레그램 서버 연결 오류(Bot not connected) 시:
- Tools > WiFi101/WiFiNINA Firmware Updater 열기.
- 보드 연결 확인 (포트 목록에 나타나는지).
- Open updater sketch → 업로드.
- 최신 펌웨어 선택 후 Update firmware.
- SSL Certificates 섹션에서 Add domain →
telegram.org:443 입력 → OK.
- Upload certificates to wifi module.
- 본 스케치 다시 업로드.
5단계: 개선 아이디어
새 명령어 추가
코드를 보면 각 명령어별 서브루틴을 추가해 쉽게 확장 가능합니다. 명령 수행 후 상태 정보를 사용자에게 반환하게 구성하세요.
사용자 제한 (보안)
데모라 아무나 접속 가능합니다. 시리얼 모니터에 뜨는 유저 ID를 확인해, 허용된 유저 ID만 명령 실행하도록 필터링 로직을 추가하세요.
하드웨어 확장
아두이노 I/O 핀에 다양한 센서와 릴레이 연결 가능. 주의: MKR WiFi 1010은 3.3V 로직입니다! 5V 센서/릴레이 사용 시 레벨 시프터 필수. 자세한 사항: 공식 가이드
코드
첨부 파일 MKR1010Bot_V1_02.zip (C/C++) 참조. 스케치 전체는 다운로드만 가능합니다.