ارسال و دریافت اطلاعات بین ربات تلگرام و رسبری پای
به نام خدا و با سلام خدمت دوستان
در این مطلب قصد دارم با استفاده از ربات تلگرام و رسبری پای، اطلاعات و عکس هایی رو که رسبری دارید به ربات تلگرام بفرستید.
برای این منظور ابتدا باید telepot را در رسبری نصب کنید که میتویند از کد زیر استفاده کنید :
1 2 |
sudo apt-get install python-pip sudo pip install telepot |
بعد از نصب باید در تلگرام یک ربات بسازیم پس مراحل زیر را انجام میدیم :
۱٫در قسمت search عبارت botfather را سرچ کنید :
۲٫دکمه start/ را بزنید :
۳٫عبارت newbot/ را بزنید:
۴٫یک اسم برای ربات خود بنویسید:
۵٫یک ID برای ربات خود بنویسید:(ته آی دیتون باید bot نوشته مثل :mahdibot )
۶٫اگر علمیات با موفقیت انجام شود ربات بات فادر لینک رباتی که ساختید و پیامی میفرستد که بخشی از ان به نام توکن مانند این است:
۲۷۳۶۶۷۶۲۱:AAEW2fCUbywfss83SwhRc7XwAw9_jZDGekU
به این عبارت توکن میگویند،این عبارت را ذخیره کنید و وارد رسبری پای شوید در ترمینال تایپ کنید
1 |
sudo nano telebot.py |
یک فایل باز می شود که کد زیر را در باید آن کپی کنید:(این فایل در شاخه اصلی ذخیره می شود)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import telepot import time from picamera import PiCamera def handle(msg): chat_id = msg['chat']['id'] command = msg['text'] print(msg['chat']['username']) print('Got command: %s' % command) if command == '/start': ...bot.sendMessage(chat_id, 'program started') if command == '/photo': camera=PiCamera() camera.capture('/home/pi/Desktop/1.jpg') bot.sendPhoto(chat_id,open('/home/pi/Desktop/1.jpg','rb')) camera.close() bot = telepot.Bot('***insert your token***') bot.message_loop(handle) print('The code is running') while 1: time.sleep(1) |
حالا برای ذخیره ctrl+x و سپس y وسپس اینتر را بزنید.
برای اجرای کد هم از دستور زیر را در ترمینال وارد کنید:
1 |
sudo python telebot.py |
حالا برگردید به ربات تلگرام خود، که ایجاد کرده بودید(رباتی که ساختید:خوده ربات بات فادر لینک رباتی که ساختید رو بهتون میده)
تایپ کنید start/ که رسبری به شما میفرسته program started
و سپس اگر تایپ کنید photo/ دوربین رسبری پای روشن شده و یک عکس میگیرد و رسبری عکس را در دسکتاپ قرار میدهد و عکس را به ربات تلگرام شما میفرستد و سپس دوربین را خاموش می کند.
توجه: دوستان گرامی اگر خواستید کد رو با idle ران کنید حتما از idle پایتون ورژن ۲ استفاده کنید.
کد زیر هم اطلاعات را به شما میفرستد :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import time import random import datetime import telepot """ After **inserting token** in the source code, run it: ``` $ python2.7 diceyclock.py ``` [Here is a tutorial](http://www.instructables.com/id/Set-up-Telegram-Bot-on-Raspberry-Pi/) teaching you how to setup a bot on Raspberry Pi. This simple bot does nothing but accepts two commands: - `/roll` - reply with a random integer between 1 and 6, like rolling a dice. - `/time` - reply with the current time, like a clock. """ def handle(msg): chat_id = msg['chat']['id'] command = msg['text'] print 'Got command: %s' % command if command == '/roll': bot.sendMessage(chat_id, random.randint(1,6)) elif command == '/time': bot.sendMessage(chat_id, str(datetime.datetime.now())) bot = telepot.Bot('*** INSERT TOKEN ***') bot.message_loop(handle) print 'I am listening ...' while 1: time.sleep(10) |
موفق و سربلند باشید.