الكود البرمجي
ستشاهد في قائمة Programming وجود برنامج جديد وهو Python 3 (IDLE) انقر عليه.
من قائمة File اختر New File.
انسخ الكود التالي والصقه بالملف الفارغ لكن هناك أمور مهمة عليك العمل بها قبل رفع الكود البرمجي إلى الراسبيري باي.
import telepot
import time
import os
from picamera import PiCamera
path=os.getenv("HOME")
# Handling message from Telegram
def handleMessage(msg):
id = msg['chat']['id'];
command = msg['text'];
print ('Command ' + command + ' from chat id' + str(id));
if (command == '/photo'):
print ("Taking picture…");
# Initialize the camera
camera = PiCamera();
camera.start_preview()
camera.capture(path + '/pic.jpg',resize=(640,480))
time.sleep(2)
camera.stop_preview()
camera.close()
# Sending picture
bot.sendPhoto(id, open(path + '/pic.jpg', 'rb'))
else:
bot.sendMessage(id, "Command not found..")
bot = telepot.Bot('your_bot_id');
bot.message_loop(handleMessage);
print ("Listening to bot messages….");
while 1:
time.sleep(10);
شرح الكود البرمجي
هنا نستعدي المكتبات الضرورية للنظام مثل time, os و PiCamera و telepot.
import telepot
import time
import os
from picamera import PiCamera
في هذا الأمر يمكن الحصول على مسار أو موقع HOME.
path=os.getenv("HOME")
بعد ذلك يستطيع المستخدم التحكم بالكاميرا وذلك بإدخال الأوامر في برنامج التيليجرام.
يقوم المستخدم بكتابة الأمر photo/ حتى يتمكن من التقاط الصور الحية وبعد ذلك سينطبع الأمر على الشاشة:
…Taking picture
# Handling message from Telegram
def handleMessage(msg):
id = msg['chat']['id'];
command = msg['text'];
print ('Command ' + command + ' from chat id' + str(id));
if (command == '/photo'):
print ("Taking picture…");
هنا سيتم تهيئة الكاميرا لالتقاط الصور وتعيين مقاسات خاصة لهذه الصور.
# Initialize the camera
camera = PiCamera();
camera.start_preview()
camera.capture(path + '/pic.jpg',resize=(640,480))
time.sleep(2)
camera.stop_preview()
camera.close()
في هذا الأمر سيتم تكوين جسر تواصل مع التيليجرام حتى يتم إرسال الصور الحية إليه.
# Sending picture
bot.sendPhoto(id, open(path + '/pic.jpg', 'rb'))
في حالة كتب المستخدم أمر غير الأمر photo/ ستظهر له رسالة “Command not found” بمعنى أن الأمر غير موجود.
bot.sendMessage(id, "Command not found..")
هذا السطر مهم وحساس للغاية عليك كتابة HTTP API الخاص بالبوت الذي قمت بإنشائه.
;(‘الصق HTTP API’) bot = telepot.Bot
bot = telepot.Bot('your_bot_id');
الرسالة التي ستظهر مباشرة بعد رفع الكود البرمجي هي “Listening to bot messages” بمعنى أن الراسبيري باي سيستجيب ويتفاعل مع الرسائل المرسلة من قبل التيليجرام.
bot.message_loop(handleMessage);
print ("Listening to bot messages….");
احفظ الملف camera بالمسار الافتراضي.
يمكنك الآن رفع الكود البرمجي من قائمة Run اختر Run module.
سيكون هناك رسالة مفادها بأن الراسبيري باي سيأخذ الأوامر من التيليجرام لتنفيذها.
سيبدأ النظام بالعمل مباشرة يمكنك إرسال photo/ من التيليجرام وستلاحظ أنها مطابقة لمخرجات الشاشة.