Quick

    아두이노 우노 Q로 나만의 챗봇 만들기

 

목록으로
아두이노 우노 Q 텔레그램 봇 만들기

안녕하세요 나도메이커입니다!

지난 시간에 소개해 드린 아두이노 우노 Q(Arduino Uno Q)의 LED Painter 예제는 다들 재미있게 실습해 보셨나요? 복잡한 코드 없이도 원하는 문구나 재미있는 이모지를 LED Matrix 전광판에 자유롭게 표현해 보면서, 하드웨어와 소프트웨어가 연결되는 흥미로운 경험을 하셨을 텐데요.

오늘은 코딩 교육 현장에서 학생들의 반응이 가장 뜨거운 또 다른 예제, 바로 '텔레그램 봇(Telegram Bot)'을 활용한 나만의 인공지능 챗봇 만들기 프로젝트를 소개해 드리겠습니다. 챗봇은 현대 IoT 및 AI 서비스의 핵심입니다. 초등학생부터 고등학생까지 누구나 쉽게 따라 할 수 있는 이번 실습을 통해 API의 개념과 통신 원리를 자연스럽게 익힐 수 있습니다.

우선 프로젝트를 시작하기 위한 필수 준비 사항으로, 전 세계적으로 널리 사용되는 메신저인 '텔레그램(Telegram)' 계정 가입이 필요합니다.

PC 버전에서 봇을 원활하게 세팅하기 위해서는 스마트폰(핸드폰)을 통한 계정 생성이 선행되어야 합니다. 앱스토어나 플레이스토어에서 텔레그램을 다운로드하신 후, 핸드폰으로 계정 생성을 먼저 진행해 주시기 바랍니다!

■ 1. BotFather를 통한 나만의 봇 생성하기

가장 먼저 해야 할 일은 텔레그램 서버에 접속하여 나만의 가상 챗봇(Bot)을 생성하는 것입니다. 이 과정을 통해 외부 프로그램(아두이노)과 텔레그램 서버가 서로 소통할 수 있는 고유한 식별자인 API(Application Programming Interface) 토큰을 발급받을 예정입니다.

PC 버전 텔레그램을 실행한 후, 좌측 상단의 검색창에 봇들의 관리자인 @BotFather를 검색하여 나오는 공식 계정을 클릭해 주세요.

BotFather와의 대화방이 열리면 화면 하단의 시작을 누르거나, 채팅창에 챗봇 생성을 요청하는 명령어인 /newbot을 전송합니다.

명령어를 인식한 BotFather가 봇의 화면에 표시될 '이름(Name)'을 물어옵니다. 이 이름은 언제든 변경할 수 있으니 편하게 지어주세요. 저는 직관적으로 unoq_bot이라는 이름으로 보냈습니다.

이름을 정해줬다면, 그다음으로는 봇을 검색할 때 사용할 '유저 이름(Username)'을 정해줘야 합니다. 유저 이름은 반드시 끝에 'bot'이라는 단어로 끝나야 하는 규칙이 있습니다.

주의할 점은, 유저 이름은 전 세계 텔레그램 사용자들과 겹치지 않는 고유한 값(중복 불가)이어야 한다는 것입니다. 저도 중복되는 이름이 많아 여러 번 시도한 끝에, 결국 unoq123_bot으로 최종 결정했습니다!

유저 이름 생성이 성공적으로 완료되면, BotFather가 축하 메시지와 함께 길고 복잡한 영문자와 숫자가 섞인 API 토큰(Token)을 보내줍니다. 이 API 값은 아두이노 우노 Q가 텔레그램 서버에 접근할 수 있게 해주는 '마스터키'와 같으므로, 안전하게 복사해 둡니다.

■ 2. 아두이노 App Lab에 API 토큰 연결하기

이제 하드웨어 세팅으로 넘어갈 차례입니다. 아두이노 App Lab 프로그램을 실행하시고, 준비된 아두이노 우노 Q 보드를 PC와 연결합니다.

기존에 공기질 측정이나 날씨 예제를 진행하셨던 코딩 선생님과 학생들이라면, 예제 목록에서 프로젝트를 복사하고 내 프로젝트 창으로 가져오는 과정은 이미 익숙하실 겁니다. Examples 목록에서 Telegram Bot 예제를 찾아 실행해 보겠습니다. 화면 우측 상단의 RUN(실행) 버튼을 클릭해 주세요.

RUN을 클릭하면 코드가 보드에 업로드되면서, 화면 중앙에 API 토큰을 입력하는 팝업창이 나타납니다. 여기에 아까 BotFather에게 발급받아 복사해 두었던 API 값을 붙여넣기 한 후 입력해 주세요!

입력이 완료되면 아두이노 우노 Q가 텔레그램 서버와 성공적으로 연동을 시작합니다. 이제 내가 만든 봇이 제대로 작동하는지 확인하기 위해 다시 텔레그램 메신저 창으로 돌아갑니다.

■ 3. 챗봇 실행 및 AI(사물, 감정) 인식 결과 확인

내가 만든 봇이 어떤 똑똑한 기능들을 수행할 수 있는지 본격적으로 테스트해 보겠습니다.

텔레그램 검색창에 제가 방금 생성한 유저 이름인 unoq123_bot을 검색하면, 목록에 제가 만든 봇이 정확히 나오는 것을 확인할 수 있습니다.

대화방에 입장하여 하단의 '시작' 버튼을 누르고 첫 번째 명령어인 /hello를 전송해 보았습니다. 봇이 즉시 반갑게 인사를 건네며 자신이 아두이노 UNO Q라고 친절하게 소개합니다.

이번에는 /help 명령어를 입력해 봅니다. 챗봇이 현재 수행할 수 있는 다양한 명령어와 사용법(도움말)을 깔끔하게 정리하여 알려줍니다.

다음은 이 예제의 하이라이트인 인공지능(AI) 기반 기능 테스트입니다. 챗봇 메뉴 중 'Text for mood detection(문장 분위기 인식)' 기능은 사용자가 보낸 문맥을 분석하여 감정 상태를 파악하는 고도화된 기능입니다.

제가 "기분이 좋다"는 뉘앙스의 텍스트를 전송하니, 아두이노 우노 Q가 텍스트를 분석하여 긍정적인 감정(Positive)임을 정확하게 분석해 냈습니다.

텍스트 인식을 넘어 이미지(사물) 인식도 가능할까 궁금하여, 제 책상 위에 있는 마우스 사진을 찍어 봇에게 전송해 보았습니다.

잠시 후, 봇이 사진을 분석하여 컴퓨터 마우스를 정확히 인식하고, 화면 안에 한 개의 사물을 찾았다고 답변을 보내옵니다. 코딩 없이도 이런 AI 기반 객체 인식 시스템을 구축할 수 있다니 교육용으로 정말 놀라운 활용도입니다.

■ 4. 프로젝트 마무리 및 응용 방법

오늘은 텔레그램 봇 예제를 활용하여 아두이노 우노 Q 기반의 나만의 인공지능 챗봇을 완성해 보았습니다.

아직은 기분 파악이나 간단한 사물 인식 같은 기초적인 기능만 테스트해 보았지만, 이 예제는 무한한 확장성을 가지고 있습니다. 코딩 교실이나 심화 학습 과정에서 코드를 조금만 수정하고 명령어를 추가한다면, 집안의 전등을 켜거나 센서 온도를 텔레그램으로 전송받는 등 본격적인 스마트홈 IoT 제어 시스템도 충분히 구축할 수 있습니다.

초등학생부터 고등학생까지 즐겁게 배울 수 있는 챗봇 프로젝트, 유익하셨나요? 혹시 실습을 진행하시다가 어렵거나 궁금한 점이 생기신다면 언제든 댓글로 남겨주시면 자세히 답변해 드리겠습니다.

해당 프로젝트에서 나온 상품은 아래에서 확인가능합니다 ▼

실습준비물

연관 컨텐츠

결제 및 주문

공지사항 목록