Telegram은 모든 모바일 제어 목적을 위해 Raspberry Pi와 결합 할 수있는 최적의 애플리케이션입니다. 그것은 매우 좋은 개발자 지원을 가지고 있으며 Telegram Bots의 성능을 향상시키기 위해 많은 기능이 곧 출시 될 예정입니다. 이전 튜토리얼에서 우리는 라즈베리 파이를위한 텔레 그램 봇을 설정하는 방법을 배웠고, 그것과 채팅을하고 이미지, 문서 및 오디오 파일을 공유해야한다는 것을 배웠습니다.
이제 Telegram을 사용하여 Raspberry Pins의 GPIO 핀을 제어하는 방법 을 학습하여 다음 단계로 진행하여 봇에 대한 하드웨어 지원을 제공합니다. 이 튜토리얼에서는 4 개의 LED를 Raspberry Pi GPIO 핀에 연결하고 Telegram의 자연어 (같은 채팅)를 사용하여 토글합니다. 흥미 롭죠? 시작하겠습니다.
필요한 재료:
- 4 개의 LED (모든 색상)
- Raspberry Pi (인터넷 연결 사용)
- 브레드 보드
- 전선 연결
전제 조건:
튜토리얼을 진행하기 전에 Raspberry Pi가 인터넷에 연결되어 있고 Pi에서 Python 프로그램을 실행할 수 있는지 확인하십시오. 또한 이전 튜토리얼을 읽고 Raspberry Pi Pi로 Telegram 봇을 설정하는 방법을 알아보십시오. 프로젝트를 진행하기 위해 해당 항목에 익숙하다고 가정하기 때문입니다.
Raspberry Pi를 처음 사용하는 경우 Raspberry Pi 소개 기사 및 기타 Raspberry Pi 자습서를 따르십시오.
회로도:
Raspberry Pi 및 Telegram Android 앱을 사용하여 LED 를 제어 하기위한 회로도 는 4 개의 LED와 일부 연결 와이어에 불과합니다. Raspberry Pi GPIO 핀은 3.3V TTL에서 작동하므로 전류 제한 저항이 필요하지 않습니다. 아래 회로에 따라 LED를 연결하십시오.
다음 표는 4 개의 LED 연결을위한 핀 번호와 GPIO 번호를 결정하는 데 도움이됩니다.
LED 터미널 |
핀 번호 |
GPIO 번호 |
녹색 양극 |
핀 31 |
GPIO 6 |
적색 양극 |
핀 33 |
GPIO 13 |
노란색 양극 |
핀 35 |
GPIO 19 |
백색 양극 |
핀 37 |
GPIO 26 |
네 가지 모두의 음극 |
핀 39 |
바닥 |
아래는 위의 표에 따라 4 개의 LED가 연결된 회로도 입니다.
연결되면 하드웨어 설정은 다음과 같이 보일 것입니다.
Raspberry Python 프로그램:
하드웨어가 준비되면 Python 프로그램을 진행할 수 있습니다. 이 프로그램에서 우리는 Telegram 봇에서 보낸 데이터 (메시지)를 읽고 그에 따라 LED를 토글해야합니다. 더 자연스럽게 만들기 위해 각 문장을 확인하고 프로그램 내에서 해당 문장을 하드 코딩하는 대신 단어를 확인하고 그에 따라 진행할 수 있습니다.
프로그램은 주로 두 단어를 확인합니다 그래서 그들은 있습니다 에 와 떨어져. 이 두 단어 중 하나를 감지하면 흰색, 노란색, 녹색 및 빨간색과 같은 다른 키워드를 찾습니다 . 각 색상 LED는 단어가 감지 된 경우에만 토글됩니다. 또한 감지 된 단어에 대한 문자열을 업데이트하여 텔레 그램 봇에 메시지를 다시 보냅니다.
전체 프로그램은 이 페이지의 하단에서 찾을 수 있습니다; 바로 아래에서 프로그램을 의미있는 작은 쓰레기로 나누어 설명했습니다.
이 프로그램이 작동하려면 Raspberry Pi에서 다운로드하여 가져온 telepot이 필요합니다. 이전 튜토리얼에서 우리는 이미 Raspberry Pi 내부에 텔레포트를 다운로드 했으므로 이제 아래와 같이 GPIO 라이브러리와 함께 프로그램으로 가져 오기만하면됩니다.
RPi.GPIO를 GPIO로 가져 오기 telepot.loop에서 telepot 가져 오기 MessageLoop 가져 오기
이 프로그램을 사용하여 LED 조명을 제어 할 것이며 LED의 색상은 흰색, 노란색, 빨간색 및 녹색이 될 것입니다. 그들은 회로도에 표시된 핀에 연결됩니다. 프로그램에서 사용할 수 있도록 색상을 기준으로 이러한 LED의 핀 이름을 정의 하겠습니다.
흰색 = 26 노란색 = 19 빨간색 = 13 녹색 = 6
다음 단계는 이러한 모든 LED 핀을 출력 핀 으로 정의하고 아래 라인을 사용하여 기본적으로 꺼진 것으로 정의하는 것입니다.
#LED 흰색 GPIO.setup (흰색, GPIO.OUT) GPIO.output (흰색, 0) # 초기 꺼짐 #LED 노란색 GPIO.setup (노란색, GPIO.OUT) GPIO.output (노란색, 0) # 초기 꺼짐 #LED 적색 GPIO.setup (적색, GPIO.OUT) GPIO.output (적색, 0) # 초기 꺼짐 #LED 녹색 GPIO.setup (녹색, GPIO.OUT) GPIO.output (녹색, 0) # 초기 꺼짐
이전 튜토리얼에서 배웠 듯이 Raspberry 봇이 수행해야하는 모든 작업은 함수 작업 내에 정의됩니다. 여기서 우리는 봇이 모바일에서 보낸 메시지를 듣고 일부 키워드와 비교하고 그에 따라 LED를 토글 하도록 만들어야합니다.
모바일에서 보내는 각 메시지에는 채팅 ID와 명령이 있습니다. 이 채팅 ID는 프로그램에서 발신자에게 회신하는 데 필요합니다. 그래서 아래와 같이 채팅 아이디와 메시지를 저장합니다.
chat_id = msg 명령 = msg
이제 전화에서 보내는 모든 내용은 변수 command에 문자열로 저장됩니다. 따라서이 변수에서 키워드를 확인하기 만하면 됩니다. 파이썬에는 여기서 일을 쉽게 해주는 명령이 있습니다. 예를 들어 명령어 변수에 저장된 문자열에“on”이라는 단어가 있는지 확인해야한다면 아래 줄을 사용하면됩니다.
명령에서 'on'인 경우:
마찬가지로 모든 키워드를 확인 하고 'on'을 받으면 사용자가 언급 한 색상을 확인합니다. 이것은 동일한 키워드를 비교하여 동일한 명령으로도 수행됩니다. 또한 상태 메시지로 사용자에게 회신 할 수있는 message 라는 문자열도 업데이트 합니다.
if 'on'in command: message = "Turned on"if 'white'in command: message = message + "white"GPIO.output (white, 1) if 'yellow'in command: message = message + "yellow"GPIO.output (yellow, 1) if 'red'in command: message = message + "red"GPIO.output (red, 1) if 'green'in command: message = message + "green"GPIO.output (green, 1) if 'all'in command: message = message + "all"GPIO.output (white, 1) GPIO.output (yellow, 1) GPIO.output (red, 1) GPIO.output (green, 1) message = message + "light (s)"telegram_bot.sendMessage (chat_id, message)
위와 같이 특정 LED 만 '녹색', '흰색', '빨간색', '노란색', '모두'및 '켜짐'과 같은 키워드를 찾습니다. 작업이 완료되면 방금 일어난 일에 대한 메시지를 사용자에게 보냅니다. 같은 방법은 불을 끄고하는 데 사용할 수있는 잘 끕니다.
if 'off'in command: message = "Turned off"if 'white'in command: message = message + "white"GPIO.output (white, 0) if 'yellow'in command: message = message + "yellow"GPIO.output (yellow, 0) if 'red'in command: message = message + "red"GPIO.output (red, 0) if 'green'in command: message = message + "green"GPIO.output (green, 0) if 'all'in command: message = message + "all"GPIO.output (white, 0) GPIO.output (yellow, 0) GPIO.output (red, 0) GPIO.output (green, 0) message = message + "light (s)"telegram_bot.sendMessage (chat_id, message)
Raspberry Pi 및 Telegram 봇으로 LED 제어:
LED를 연결하고 Python에서 프로그램을 시작하십시오. 봇 의 토큰 주소 를 변경 했는지 확인하십시오. 그리고 원하는 명령을 입력하십시오. 예를 들어 빨간색과 노란색 표시등을 켜려면 다음 명령을 사용할 수 있습니다.
1. 빨간색 및 노란색 표시 등 켜기
2. 빨간색 과 노란색을 오른쪽으로 켜십시오 .
3. 빨간색 과 노란색
4. 반드시 정격 넣어 에 노란색 과 붉은 빛
보시다시피 봇은 키워드 만 찾고 문장의 다른 단어는 무시하므로 자연스럽게 말할 수 있습니다. 프로젝트의 전체 작업 은이 페이지 끝에 있는 비디오 에서 찾을 수 있습니다.
어서! 당신의 프로젝트와 함께 플레이하고 재미있게 보내십시오. 이제 완전히 새로운 수준으로 끌어 올릴 수 있습니다. 두 튜토리얼을 결합하면 전 세계 어디에서나 스마트 폰의 모든 하드웨어를 제어 할 수 있으며 메시지, 오디오, 이미지 및 문서 형태로 Raspberry Pi에서 입력 / 결과를 얻을 수 있습니다. LED를 릴레이 및 AC 기기로 교체하면 스마트 폰으로 제어되는 홈 오토메이션이 될 수 있습니다. 그러니 창의력을 발휘하고 멋진 프로젝트를 만드세요…
당신이 프로젝트를 좋아하고 비슷한 것을 만드는 것을 즐겼기를 바랍니다. 의견란을 통해 문제가 있으면 알려 주시면 기꺼이 도와 드리겠습니다. 또한 여러분의 멋진 아이디어를 저와 공유하고 우리가 무엇을 만들 수 있는지 알아보십시오.