عناوين الدرس

كاميرا مراقبة تنقل الصور لتيليجرام باستخدام الراسبيري باي

مبتدئ

مقدمة

تستخدم كاميرات المراقبة لمتابعة نشاط الأطفال داخل المنزل في ظل غياب الوالدين أو مراقبة المسابح الداخلية خشية وصول من لا يعرف السباحة فيها أو لحماية المنازل ومكاتب العمل من التعديات والسرقة، في هذا الدرس ستتعلم كيف تصنع كاميرا مراقبة ذكية تنقل الصور لتيليجرام باستخدام الراسبيري باي.

كاميرا مراقبة ذكية

المواد والأدوات

cctv-send-photo-to-iot-telegram-bot-using-raspberry-pi

 1× راسبيري باي

cctv-send-photo-to-iot-telegram-bot-using-raspberry-pi

 1× سلك (HDMI)

cctv-send-photo-to-iot-telegram-bot-using-raspberry-pi

1× محول تيار (5V-2A)

كاميرا مراقبة ذكية

 1× كرت ذاكرة

كاميرا مراقبة ذكية

1× سلك ايثرنت

كاميرا مراقبة ذكية

1×  كاميرا للراسبري باي (raspberry pi camera module) أو USB webcam

توصيل الدائرة

وصل الكاميرا مع الراسبيري باي كما هو ظاهر في الشكل التالي.

كاميرا مراقبة ذكية

إنشاء بوت على التيليجرام

عليك بالبداية تنصيب برنامج التيليجرام على هاتفك أو أي جهاز لوحي تفضله Telegram.

بعد تنصيبه سجل اسمك وبياناتك ورقم هاتفك كما هو معتاد.

أنشئ بوت باسم (Geeksvalley) يتم إرسال أوامر التشغيل والاطفاء عليه بالخطوات التالية:

بالبداية تحتاج بوت BotFather الرسمي الخاص بالتيليجرام اكتب في صفحة البحث BotFather.

التحكم بالمصابيح

بعد ذلك اكتب رسالة start/ سيرد عليك برسالة تحتوي على جميع الأوامر التي يستطيع تنفيذها البوت.

التحكم بالمصابيح

لإنشاء بوت جديد أرسل newbot/.

سيرد عليك البوت برسالة تطلب منك تسمية البوت الذي قمت بإنشائه في هذا الدرس تمت تسميته GeeksValley.

سيرد عليك البوت برسالة تطلب منك تحديد اسم المستخدم للبوت وبنهاية اسم المستخدم اكتب bot_.

هنا اسم المستخدم GeeksValley_bot.

سيتم  إرسال رسالة بأنه تم انشاء البوت ويتضمن رابط HTTP API احفظ الرابط ستستخدمه عند كتابة كود المشروع على الراسبيري باي.

التحكم بالمصابيح

تهيئة الراسبيري باي

أولا، سوف تحتاج إلى تثبيت نظام الراسبيان على الراسبيري باي إذا لم تكن قد فعلت ذلك قم بالإطلاع على  الدرس الأول نظام تشغيل الراسبيري باي

وبعد تثبيت النظام، يمكنك تهيئة النظام من خلال الرجوع  للدرس الثاني تهيئة نظام التشغيل

افتح الشاشة السوداء LXterminal للبدء باستخدام الراسبيري باي.

كاميرا مراقبة ذكية

للبدء، قم بإستخدام الـ Termial  لتحديث الراسبيري باي إلى أحدث إصدار.

sudo apt-get update
sudo apt-get upgrade

ثم أعد تشغيل الراسبيري باي.

reboot

حمّل البايثون على الراسبيري باي.

sudo apt install python3 idle3

بعد ذلك حمّل Telepot حتى تتمكن من تكوين جسر تواصل مع برنامج التيليجرام.

sudo pip install telepot

تفعيل الكاميرا على الراسبيري باي

من القائمة الرئيسية انقر على Preferences ثم اختر Raspberry Pi Configuration.

Raspberry Pi Configuration Tool

في أعلى الصفحة انقر على Interfaces مقابل Camera انقر على Enabled حتى تتمكن من تفعيلها.

Camera enabled

أعد تشغيل الراسبيري باي.

الكود البرمجي

ستشاهد في قائمة 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” بمعنى أن الأمر غير موجود.

cctv-send-photo-to-iot-telegram-bot-using-raspberry-pi

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.

cctv-send-photo-to-iot-telegram-bot-using-raspberry-pi

سيكون هناك رسالة مفادها بأن الراسبيري باي سيأخذ الأوامر من التيليجرام لتنفيذها.

cctv-send-photo-to-iot-telegram-bot-using-raspberry-pi

سيبدأ النظام بالعمل مباشرة يمكنك إرسال photo/ من التيليجرام وستلاحظ أنها مطابقة لمخرجات الشاشة.

cctv-send-photo-to-iot-telegram-bot-using-raspberry-pi

لا تنسَ فصل مصدر الطاقة بعد الانتهاء من استخدام النظام.

 

X
تم إضافة المنتج إلى السلة بنجاح