이전 게시물에선 하드웨어와 회로도에 관한 얘기를 했다. 이번 게시물에선 화분의 비서 역할을 할 텔레그램 봇을 만들고, 화분을 함께 관리할 친구나 가족, 동료와의 그룹챗에 테스트 메시지를 보내는 것까지의 과정을 소개할 것이다. 복사가 필요한 주소와 코드는 우측 상단 복사 아이콘을 클릭하면 클립보드에 복사된다.
프로젝트 개요와 하드웨어의 세부 사항에 관한 글은 아래 링크로!
텔레그램 API를 활용한 스마트 화분 프로젝트 – 개요, 하드웨어 구성, 회로도
🤖 텔레그램 봇 생성
첫번째로, 만들고 싶은 봇의 기능에 맞는 명령어와 이름을 정해야 한다. 봇의 이름과 기능은 나중에 자유롭게 수정할 수 있다.
나는 ‘status’ , ‘water’ , ‘last watered’ 명령어를 수행하는 Plant Assistant 봇을 생성하기로 했다.
스마트폰, 태블릿, PC의 텔레그램 앱 검색창에 Bot Father을 입력하고, 맨 위의 공식 계정에 대화를 건다.

챗박스 옆의 파란색 메뉴 버튼을 누르면 여러 명령어가 나온다.
/newbot 명령어를 클릭해 Bot Father와 대화하며 봇의 이름과 아이디를 정하면 된다.

봇이 생성된 즉시 봇에 접근할 수 있는 HTTP API를 알려준다.

그 후 만들어진 봇에 들어가 그룹챗을 만들고, 그 그룹챗에 Chat ID 생성용 테스트 메시지를 하나 보내놓으면 라즈베리파이와 채팅방을 연결할 준비가 끝난다.
🍓 Chat ID 생성
https://api.telegram.org/botAPI/getUpdates
위 주소의 API 부분에 봇의 자신의 API 키를 입력하고 이동하면 다음과 같은 화면이 뜬다.

여기서 -로 시작하는 chat id를 얻을 수 있다. 만약 다음과 같은 화면이 뜨지 않는다면,
- 채팅방에 봇이 포함되어 있는지
- API 코드를 처음부터 끝까지 잘 복사해서 주소에 공백없이 넣었는지
- 채팅방에 메시지를 하나 이상 보냈는지
를 확인하면 된다.
👩🏻💻 텔레그램과 라즈베리파이 연결
라즈베리파이에서 파이썬 파일을 실행시키는 방법엔 여러 가지가 있다. VS Code에서 확장프로그램을 설치해 SSH로 라즈베리파이를 원격 연결하는 것이 제일 편하다. 하지만 나는 네트워크 오류가 자꾸 발생해 그냥 라즈베리파이 쉘에서 코드 파일을 직접 입력하는 방식으로 진행했다. 간단한 프로젝트라 그런가 오히려 더 효율적이었다.
인터넷이 연결된 라즈베리파이를 준비한다.
pip install python-telegram-botpython-telegram-bot 라이브러리를 설치한다
nano bot_message_test.py파이썬 파일을 생성한다. 이 때 귀찮아서 이름을 telegram.py로 설정했더니 telegram 라이브러리와 충돌이 발생했다. ㅋㅋ
import asyncio
from telegram import Bot
# 텔레그램 봇의 API 키와 Chat id(-포함)를 입력하세요
TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN'
GROUP_CHAT_ID = 'YOUR_GROUP_CHAT_ID'
async def send_test_message():
bot = Bot(token=TOKEN)
await bot.send_message(chat_id=GROUP_CHAT_ID, text="Hello, group! This is a test message.")
if __name__ == "__main__":
asyncio.run(send_test_message())위 파이썬 코드를 복붙해 저장한다.
텔레그램이 업데이트되면서 python-telegram-bot 라이브러리가 비동기 코루틴 함수를 사용하게 됐다. await 키워드를 사용하여 코루틴을 기다려야 하기 때문에 asyncio 라이브러리를 사용했다.
python bot_message_test.py이 때 파일이 실행되지 않고 오류가 난다면,
- 파이썬 버전 확인 후 python3 명령어로 다시 실행
- 파일명과 모듈 충돌 여부 확인
- 계속 안되면 가상환경에서 새로 실행
해보면 된다. 그리고 사실 이렇게 간단한 코드의 에러 해결엔 GPT한테 물어보는 게 가장 빠르다. ㅋㅋ 쉘의 오류메시지 싹 긁어서 GPT한테 물어보면 해결!
😚 봇 생성 및 테스트 마무리 및 소감
프로젝트를 진행하면서 제일 쉽고 재밌는 파트였다. 아마존의 알렉사 사진을 봇의 프로필 사진으로 등록하고, 채팅방의 이름을 바꾸는 등 커스터마이징하는 재미가 있었다. ‘Bot Father’로 봇을 생성하면서부터는 텔레그램의 유용성과 유연성에 무척 놀랐고, 주식이 있다면 사고 싶었다! 원래도 좋아하는 앱이었지만, 더 좋아졌다.
프로젝트를 처음 기획할 때, 카카오톡이나 인스타그램이랑 연동하려고도 했었는데 평소에 카카오톡을 잘 쓰지 않기도 하고, 텔레그램이 구현이 제일 쉬울 것 같아서(ㅋㅋ) 다른 후보는 전부 탈락시켰다. 아주 탁월한 선택이었다고 생각한다.
다음 게시물엔 실제 구현을 위한 명령어 설정 및 코드, 데모 비디오를 첨부해 텔레그램 화분 프로젝트 게시물을 마무리할 예정입니다. 텔레그램 봇, API, Chat ID나 테스트 메시지에 관한 기타 문의사항은 댓글이나 메일 주시면 24시간 내에 답변하겠습니다.

![[KakaoTech] 이론기간 회고 | 기술에 대한 명확한 이해와 반복숙달](https://icecreamzoa.com/wp-content/uploads/2025/03/image-6.png)

답글 남기기