Raspberry Pi는 항상 재미 있고 쉽게 프로젝트를 구축 할 수있었습니다. 강력한 ARM 아키텍처와 오픈 소스 Linux 기반 운영 체제는 우리의 프로젝트를 즉시 온라인으로 만드는 데 많은 도움이되었습니다. 이 튜토리얼에서는 Telegram이라는 인기있는 채팅 애플리케이션을 통해 Raspberry Pi와 휴대폰간에 데이터 (파일 / 사진 / 비디오 / 오디오 / 텍스트) 를 공유 하는 또 다른 흥미로운 방법을 배웁니다.
Telegram을 처음 사용하는 사람들을 위해 Whatsapp과 매우 유사한 Android 용 Play 스토어 (Iphone 및 Windows에서도 사용 가능)에서 사용할 수있는 채팅 기반 애플리케이션입니다. Play 스토어에서 1 억 건 이상의 다운로드 (2017 년 5 월 10 일 기준)를 기록했으며 사람들은 Whatsapp (손가락이 교차)보다 더 빠르고 기능적이라고 주장합니다. 이 애플리케이션의 특별한 기능 중 하나는 봇을 지원한다는 것입니다. 이 스마트 폰 응용 프로그램은 인간뿐만 아니라 기계에서도 사용할 수 있음을 의미합니다. 우리의 경우 기계는 Raspberry Pi입니다. 봇 역할을하는 방법에 대해 Raspberry Pi를 교육하면 누구나 (공개 한 경우) 일반 사람과 채팅하는 것처럼 Raspberry Pi와 채팅 할 수 있으며 사진 사진 문서 및 오디오 파일도 공유 할 수 있습니다. 나만의 개인 비서가되도록 훈련시킬 수도 있습니다. 멋지죠? 빌드하는 방법을 배우자라즈베리 파이 텔레 그램 봇.
필요한 재료:
- 인터넷에 연결된 모든 Raspberry Pi
- 텔레 그램 애플리케이션을 실행하는 모바일.
이 프로젝트에는 하드웨어가 많지 않으므로 Pi와 함께 의자에 앉아 아래 단계를 따르십시오. Raspberry Pi를 처음 사용하는 경우 Raspberry Pi 소개 기사 및 기타 Raspberry Pi 자습서를 따르십시오.
1 단계: 모바일에 텔레 그램 설치
첫 번째 단계는 모바일에 텔레 그램을 설치하는 것입니다. Telegram은 Android, IOS 및 Windows 플랫폼에서도 사용할 수 있으므로 Telegram 애플리케이션을 다운로드하십시오. 모든 응용 프로그램과 마찬가지로 Telegram 사용을 시작하는 작은 가입 절차가 있으며 홈 화면에 도달 할 때까지 계속합니다.
2 단계: 봇 아버지와 대화
다음 단계는 Bot Father에게 새 Bot을 생성하도록 요청하는 것입니다. 홈 화면의 오른쪽 상단에 검색 아이콘이 있습니다.이를 클릭하여 "botfather"라는 이름을 검색합니다. Botfather는 그 자체로 봇이며 새로운 봇을 생성하도록 안내합니다. 시작을 클릭하고 아래 그림과 같이 / newbot 을 선택하십시오. 이제 봇은 봇의 이름 및 봇의 사용자 이름과 같은 몇 가지 세부 정보를 요청합니다. 이러한 세부 정보를 입력하고 나중에 필요할 수 있도록 사용자 이름을 기억하십시오.
3 단계: 액세스를위한 토큰 얻기
봇을 circuitdigest로, 사용자 이름을 circuitdigestBot으로 지정했습니다. 이 프로세스 후에 botfather는 액세스 할 수있는 토큰을 제공합니다. 이것은 봇의 암호와 같으며 사람들은이 토큰 키를 사용하여 봇을 프로그래밍 할 수 있습니다. 따라서 안전하게 보관하고 다른 사람과 공유하지 마십시오. 이 토큰 키를 받으면 Raspberry Pi로 이동할 차례입니다.
4 단계: Raspberry Pi에 Telegram을 설치하기위한 Telepot
Raspberry Pi에서 Telegram Bot을 사용하는 것은 Telepot이라는 Python 패키지로 가능합니다. Lx 터미널에서 다음 명령을 사용하여 Raspberry Pi에이 패키지를 설치해야합니다.
sudo apt-get install python-pip sudo pip install telepot
Telepot을 Raspberry로 가져 오면 Python 프로그램에서이 패키지를 사용하여 Telegram Bot과 통신 할 수 있습니다.
5 단계: Raspberry Pi 프로그래밍
Telegram에서 방금 만든 봇은 마치 아기와 같습니다. 무엇을 어떻게해야하는지 가르치지 않는 한 스스로 아무것도 할 수 없습니다. 이 교육은 Raspberry Pi 및 Python 스크립트를 통해 수행 할 수 있습니다. 이 자습서에서는 메시지, 사진, 오디오 및 문서 보내기와 같은 몇 가지 기본 작업을 수행하도록 봇을 프로그래밍했습니다. 따라서 특정 명령을 말할 때 특정 동작으로 응답합니다. 명령과 동작은 아래 표에 나열되어 있습니다.
전보의 명령 |
Raspberry Pi의 응답 |
/안녕 |
“안녕하세요! CircuitDigest” |
/시각 |
현재 시간으로 답장 |
/심벌 마크 |
이미지 (CircuitDigest 로고)로 답장 |
/파일 |
현재 프로그램이 포함 된 파일로 회신합니다. |
/ 오디오 |
데모 오디오 파일로 답장 |
위의 작업을 수행 하는 전체 프로그램은이 페이지 하단에 있습니다. 그러나 바로 아래에서 프로그램의 작동 방식을 이해하는 데 도움이되는 프로그램의 중요한 스 니펫을 설명했습니다.
첫 번째 단계는 모든 라이브러리 를 가져 오는 것입니다. 여기서 Telegram 봇을 사용하려면 분명히 텔레포트 라이브러리가 필요합니다. 또한 time, timedate 라이브러리를 사용하여 Raspberry pi의 현재 시간을 읽습니다. 그런 다음 이제 값이 저장되는 객체를 만듭니다.
import time, datetime telepot.loop에서 telepot 가져 오기 import MessageLoop now = datetime.datetime.now ()
다음 단계는 모바일의 Telegram 앱에서 들어오는 명령 을 기반으로 작업을 수행하는 함수 를 만드는 것 입니다. 여기서 함수의 이름은 action입니다. 봇이 생명을 얻는 것은이 함수 안에 있습니다. 우리의 봇은 스스로 대화를 시작할 수 없으며, 우리가 무언가를 요청하는 경우에만 응답 할 수 있습니다. 그래서 우리가 무언가를 요청할 때마다 채팅 ID가 있습니다. 이 채팅 ID는 주소와 유사하며이 채팅 ID를 사용해야 만 봇이 우리에게 답장 할 수 있습니다. 따라서 첫 번째 단계는 채팅 ID와 우리에게 말하려는 메시지를 읽는 것입니다. 또한 디버깅 목적으로 수신 된 메시지를 인쇄합니다.
def action (msg): chat_id = msg command = msg print 'Received: % s'% command
함수 내에서이 명령을 미리 정의 된 텍스트와 비교하고 특정 작업을 수행합니다. 이 첫 번째 명령은 될 것입니다 / 안녕하세요 있는에 우리는 안녕 "대답! CircuitDigest”
if command == '/ hi': telegram_bot.sendMessage (chat_id, str ("Hi! CircuitDigest"))
다음 명령은 현재 시간을 응답하는 / time입니다. 우리는 이미 시간과 날짜를 가지고 있습니다. 여기서는 단순히 시간과 분을 기준으로 분할하고 str 함수 를 사용하여 추가합니다.
elif 명령 == '/ time': telegram_bot.sendMessage (chat_id, str (now.hour) + str (":") + str (now.minute))
다음 명령은 봇이 URL에서 이미지를 가져 와서 우리에게 보낼 / logo 입니다. 이미지는 URL 또는 하드 디스크에서 보낼 수 있습니다. 여기서는 CircuitDigest의 로고를 표시하는 URL을 사용했습니다.
elif 명령 == '/ logo': telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
다음 명령은 / file 이며 하드 디스크에서 Aisha.py 라는 파일을 보냅니다. 디렉토리 주소를 변경하여 원하는 파일을 보낼 수 있습니다.
elif 명령 == '/ file': telegram_bot.sendDocument (chat_id, document = open ('/ home / pi / Aisha.py'))
마지막 명령은 / audio 입니다. 이것은 하드 디스크에서 모든 mp3 파일을 보낼 수 있습니다. 여기에서는 test.mp3라는 오디오 파일을 데모로 사용했습니다.
elif 명령 == '/ audio': telegram_bot.sendAudio (chat_id, audio = open ('/ home / pi / test.mp3'))
이제 가장 중요한 단계 입니다. 여기서는 Telegram 봇에 Python 스크립트에 대한 액세스 권한을 부여합니다. 여기에서 봇의 이름을 telegram_bot 으로 지정하고 3 단계에서 봇파 더가 제공 한 토큰 주소를 할당합니다. 아래 줄에서 개인 정보 보호를 위해 토큰의 마지막 몇 자리를 제거했습니다. 또한 프린트 get me를 사용하여 쉘 화면에 봇의 세부 정보를 표시합니다. 이렇게하면 작동하는 것을 알아 차릴 수 있습니다.
telegram_bot = telepot.Bot ('468382312: AAFhURMxpVlMWEdFzbIQLszBPFEUpXXXXXX') print (telegram_bot.getMe ())
프로그램 작동 방식을 이해 하셨기를 바랍니다. 이제 다음 단계로 넘어가겠습니다.
6 단계: Raspberry Pi에서 프로그램 실행
앞서 말했듯이 전체 프로그램은이 페이지의 끝에 제공되며 여기에서 동일한 프로그램을 다운로드 할 수도 있습니다. 코드를 열면 프로그램 의 토큰 주소 를 토큰 주소 로 변경 해야 합니다.
이제 파이썬 코드를 실행하면 다음과 같이 셸 창에서 봇의 세부 정보를 볼 수 있습니다.
여기에서 내 봇 사용자 이름은 circuitdigestBot입니다. 여기에서 봇 이름을 얻으면 모든 것이 잘되고 있음을 의미합니다.
" up and running " 이 표시되면 봇이 조치를 취할 준비가되었으며 이제 명령에 응답 할 수 있음을 의미합니다.
7 단계: 출력 즐기기
이제 남은 것은 봇이 프로그램에 얼마나 잘 응답하는지 확인하는 것입니다. 제 경우에는 "circuitdigestBot"인 봇 이름을 검색합니다. 봇 이름이 아닌 사용자 이름을 검색합니다. 사용자 이름은 봇으로 끝나야합니다.
봇을 열면 시작을 클릭하고 / hi, / time, / file, / logo 또는 / audio와 같은 명령을 입력하면 그에 따라 응답해야합니다.
셸 스크립트를 사용하여 현재 스크립트가 응답하는 내용을 확인할 수 있습니다. 전체 작업 은이 페이지 끝에 있는 비디오 에서 찾을 수 있습니다.
8 단계: 하이 파이브를 줘
튜토리얼을 이해하고 이제이 Raspberry pi 텔레 그램 봇을 만들고 Telegram App을 사용하여 Raspberry Pi 와 통신 할 수 있기를 바랍니다. 아아! 문제가 있으면 댓글 섹션을 통해 알려 주시면 다시 연락 드리겠습니다. 또한이 프로젝트가 얼마나 마음에 들었는지 또는 향후 프로젝트에서이 프로젝트를 사용하여 무엇을 빌드하고 싶은지 알려주세요.
또한 다음 튜토리얼에서. 명령을 보내는 방식과 Raspberry Pi의 하드웨어와 관련된 항목을 변경하여 더 멋지게 보이게 할 것입니다.