facebook_pixel

توصيل مؤقت الساعة الحقيقي RTC على الراسبيري باي

فى هذا الدرس سنتعلم كيفية توصيل مؤقت الساعة الحقيقي Real Time Clock – RTC على الراسبيري باي عن طريق بروتوكول I2C، حيث سيمكننا ذلك من جعل توقيت الراسبري باي يعمل بإستمرار حتى مع قطع التيار الكهربي عنها.

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

Raspberry_Pi_RTC_2

توصيل شاشة OLED على الراسبري باي

فى هذا الدرس سنتعلم كيفية توصيل شاشة OLED عدد نقاطها هو 182×64 ويتم توصيلها على الراسبري باي عن طريق بروتوكول I2C، حيث سيمكننا ذلك من عرض ما نريد وقراءة قيمة أي مستشعر مباشرة على شاشة صغيرة بدون الاضطرار لتوصيل شاشة كبيرة للراسبيري باي ومن أهم مميزات هذه الشاشة هي صغر الحجم ودرجة الوضوح العالية للصورة وإنخفاض إستهلاك الطاقة بدرجة كبيرة.

Raspberry-Pi-OLED

 

المكونات المطلوبة

Raspberry Pi

راسبري باي

Raspberry_pi_OLED_1

شاشة عرض OLED

raspberry-pi-lcd-16x2-2

أسلاك توصيل Female / Female jumper

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

نقوم بتوصيل الدائرة كما في الصورة التالية ومن الممكن أن نقوم بتوصيلها بإستخدام لوحة التجارب الـ breadboard

raspberry-pi-oled
Raspberry-Pi-OLED

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

فى البداية نقوم بفتح الـ Terminal  الخاص بالراسبري باي وكتابة الأوامر التالية أو نقوم بفتح نافذه الـ SSH الخاصة بها من جهاز آخر مربوط معها علي نفس الشبكة كما تم شرحه في الدرس الخامس

في البداية نقوم بتحديث نظام تشغيل الراسبرى باى وتنصيب مكتبة GPIO الخاصة بالتحكم في أطراف الإدخال والإخراج.

ثم نقوم بتنصيب مكتبات إضافية لتعمل الشاشة على الراسبري باي.

ثم نقوم بتحميل ملفات مكتبة SSD1306 للتحكم فى الـOLED والمعدة مسبقاً من Adafruit من خلال الأوامر التالية.

نقوم بتغيير المسار إلى الملف الذي قمنا بتنزيلة ونقوم بعمل تنصيب للمكتبة من خلال الأوامر التالية.

بمجرد الإنتهاء من تنصيب المكتبة تصبح جاهزة مباشرة لإستدعائها من خلال أي برنامج Python عن طريق كتابة الأمر التالي في ملف الـ Python.

سنقوم الآن بالذهاب لملف examples داخل مكتبة الـ OLED لنشغل أحد الأمثلة حتى نتأكد من أن الشاشة تعمل بنجاح وذلك كالتالي.

سنلاحظ أن الشاشة تعمل وتعرض مجموعة من الأشكال المختلفة وكذلك كلمة Hello World كالتالي.

Raspberry_Pi_OLED_3

يجب ملاحظة أن هذه المكتبة تدعم برتوكول I2C وكذلك SPI وكذلك عدد مختلف من مقاسات الشاشات، فكل ما عليك أن تقوم بتحدد البروتوكول الذي تعمل علية شاشتك وفي هذه الحالة I2C ومقاس الشاشة 128×64، فنقوم بفتح ملف shapes.py من خلال برنامج nano.

كل ما عليك هو أن تقوم بإزالة علامة # من أمام البروتوكل والمقاس المناسب لشاشتك ووضعها قبل كل المقاسات الأخرى، وفى حالة الشاشة المستخدمة هنا

بإمكانك قراءة المزيد ومراجعة الكود المكتوب فى برنامج py فهو سهل وبسيط حيث يقوم برسم مجموعة من الخطوط عن طريق الأمر draw وكذلك طباعة كلمة Hello World مثل التالي.

هناك مجموعة من الأمثلة فى ملف examples أحدها يسمى py وهو يقوم بعرض صورة قطة على الشاشة وأخر إسمه animated.py يمكنك من تحريك نص على الشاشة، يمكنك بسهولة قراءة الكود المكتوب والتعديل فيه ليناسب إحتياجاتك.

Raspberry_Pi_OLED_4

توصيل شاشة LCD 16×2 للراسبيري باي

فى هذا الدرس سنتعلم كيفية توصيل شاشة LCD عدد أحرفها هو 16 حرف طولى وعدد أسطرها هو سطرين، حيث سيمكننا ذلك من عرض ما نريد وقراءته قيمة أى حساسات مباشرة على شاشة صغيرة بدون الإضطرار لتوصيل شاشة كبيرة للراسبيري باي أو إستخدام جهاز حاسب آخر لعرض ما نريد.

raspberry_pi_LCD_16x2

المكونات المطلوبة

راسبري باي

Raspberry Pi

شاشة عرض LCD 16×2

Raspberry-pi-lcd-16x2-1

أسلاك توصيل Female / Female jumper

raspberry-pi-lcd-16x2-2

أسلاك توصيل Female / Male jumper

raspberry-pi-lcd-16x2-3

مقاومة متغيرة 10 كيلو أوم

raspberry-pi-lcd-16x2-3

لوحة تجارب

 Raspberry-pi-lcd-16x2-15

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

نقوم بلحام الـ Pin Header المرفق مع الشاشة كالتالى.

raspberry-pi-lcd-16x2-5

 

raspberry-pi-lcd-16x2-6

 

raspberry-pi-lcd-16x2-7

 

raspberry-pi-lcd-16x2-8

 

نقوم بتوصيل الدائرة كما فى الصورة التالية ومن الممكن أن نقوم بتوصيلها بإستخدام لوحة التجارب الـ  breadboard

raspberry-pi-lcd-16x2-9
Raspberry-pi-lcd-16x2-10

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

في البداية نقوم بفتح الـ Terminal الخاص ب الراسبري باي وكتابة الأوامر التالية أو نقوم بفتح نافذة الـ SSH الخاصة بها من جهاز آخر مربوط معها على نفس الشبكة كما تم شرحه في الدرس الخامس.

في البداية يجب ان نقوم بتحميل ملفات مكتبة التحكم فى الـ LCD والمعدة مسبقاً من Adafruit من خلال الأمر التالي.

نقوم بتغيير المسار إلى الملف الذى قمنا بتنزيلة ونقوم بعمل تنصيب للمكتبة من خلال الأوامر التالية.

بمجرد الإنتهاء من تنصيب المكتبة تصبح جاهزة مباشرة لإستدعائها من خلال أى برنامج Python عن طريق كتابة الأمر التالي فى ملف الـ Python

سنقوم الآن بكتابة كود بسيط لتوضيح كيفية إستخدام المكتبة والتحكم فى الشاشة، عن طريق سطر أوامر لينكس Terminal نقوم بكتابة الأمر التالي لفتح ملف جديد وكتابة كود بلغة الـ Python به.

ثم نقوم بكتابة الكود التالي بداخله والذي يقوم بإختبار مجموعة من الأوامر الأساسية فى إستخدام الـ LCD

البرنامج السابق هو برنامج بسيط جداً حيث تم تعريف الأرجل التى تم توصيل الـ LCD بها ويمكنك تغير هذه الأرجل كما تشاء، ثم تم تعريف عدد الأسطر والصفوف فى الشاشة، ثم بعد ذلك تم تمرير هذه المتغيرات للمكتبة عن طريق الأمر  LCD.Adafruit_CharLCD.

يقوم البرنامج السابق بمجرد تشغيله بعرض كلمة Hello World لمدة 5 ثوانى .

Raspberry-pi-lcd-16x2-11
  • بعد ذلك يقوم بعرض رسالة من خلال سطر الأوامر ويطلب منك أن تقوم بكتابة جملة ما لتعرض على الشاشة مثل Geeks Valley وبمجرد الضغط على Enter سنلاحظ أن تم طباعة جملة Geeks Valley على الشاشة لمدة 5 ثوانى.
Raspberry-pi-lcd-16x2-12

 

Raspberry-pi-lcd-16x2-13

بعد ذلك يقوم البرنامج بطباعة جملة Goodbye World على الشاشة لمدة خمس ثوانى أخرى.

Raspberry-pi-lcd-16x2-14

ثم بعد ذلك يقوم البرنامج بمسح الشاشة وتركها خالية.

هناك الكتير من الأوامر الخاصة بهذه المكتبة وهذه المجموعة من أهمها.

home()– يقوم هذا الأمر بتحريك نقطة الكتابة لأول الشاشة
clear()– يقوم بمسح كل ما هو مكتوب على الشاشة
set_cursor(col, row)– يقوم هذا الأمر بتحديد نقطة الكتابة على الشاشة وذلك بتحديد رقم العمود col وكذلك رقم السطر row
show_cursor(show)– يقوم بعرض نقطة الكتابة على الشاشة
blink(blink)– يقوم بومض نقطة الكتابة على الشاشة
move_left()or move_right() – يقوم بتحريك نقطة الكتابة على الشاشة يميناً ويساراً
set_right_to_left()or set_left_to_right() – يقوم بتغيير إتجاه الكتابة من اليمين لليسار ومن اليسار لليمين
message(text)– ببساطة نقوم بكتابة النص المراد عرضه على الشاشة

تنفيذ برنامج البايثون تلقائياً على الراسبيري باي

فى هذا الدرس سنتعلم كيفية جعل برامج البايثون تعمل بشكل تلقائي أو فى وقت محدد على الراسبيري باي بإستخدام طريقة Crontab وهذه تعتبر من أهم الخطوات لكى تصبح الراسبيري باي منصة مستقلة لمشاريع الأنظمة المدمجة.

DSC00009

المكونات المطلوبة

DSC00009

راسبيري باي

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

فى البداية نقوم بفتح ال Terminal الخاص ب الراسبيري باي وكتابة الأوامر التالىة أو نقوم بفتح نافذه ال SSH الخاصة بها من جهاز آخر مربوط معها على نفس الشبكة كما تم شرحة فى الدرس الخامس.
نقوم بفتح محرر النصوص Nano ويقوم بإنشاء ملف البرنامج الذى نريد تشغيلة مع فتح الراسبري باي وليكن اسمه print.py

نقوم بكتابة الكود بداخلة بلغة البايثون python وللتوضيح سأقوم بكتابة برنامج يقوم بطباعة كلمة Hello World! ويقوم بطباعة الوقت والتاريخ الحالى.

ثم نقوم بالضغط علي Ctrl+O ثم enter ثم Ctrl+X وذلك لحفظ الملف السابق.
نقوم بإنشاء directory جديد لنضع الكود بداخلة ونسمية launcher ونوجه الـ terminal لهذا المسار الجديد ونقوم بإنشاء برنامج shell script.

فى هذا البرنامج نكتب الكود التالى الذى يقوم بتوجيه الـ terminal إلى مكان تواجد كود البايثون المراد تنفيذه وكذلك بدأ تشغيله.

ثم نقوم بالضغط علي Ctrl+O ثم enter ثم Ctrl+X وذلك لحفظ الملف السابق.
نحتاج الآن أن نجعل هذا البرنامج excutable كالتالي.

نقوم بإنشاء directory جديد بإسم logs فى الـ home وهو لكى يقوم الـ crontab بكتابة أى رسائل أخطاء هناك.

الـ crontab هو عبارة عن deamon يعمل فى خلفية نظام الـ Linux وهو يتيح لنا تنفيذ برامج فى أوقات محددة.
نقوم بكتابة الأمر التالى لكي يفتح نافذة الـ crontab

نقوم بكتابة الأمر التالي والذى يقوم بتشغيل الـ script مع كل Reboot للراسبري باي وسوف تلاحظ أنه أمر بسيط جداً فقط نقوم بكتابة @ ثم متى نريد تنفيذ هذا الأمر ثم مسار الملف المراد تنفيذه وهنا كي يتضح المثال سنقوم بعمل حفظ لناتج تنفيذ الأمر فى file بإسم cronlog فى directory الـ logs الذى قمنا بإنشائه مسبقاً عن طريق (<<) وهى تقوم بالإستمرار فى الحفظ فى نفس الملف ثم نقوم بعمل redirection للـ standard error فى الـ standard out  عن طريق كتابة 2>&1.

نقوم بعمل أعادة تشغيل للراسبري باى عن طريق الأمر التالي.

إذا قمنا الآن بفتح الـفايل cronlog سنجد أنه قد طبع بداخلة كلمة Hello World! ومن بعدها التاريخ والوقت ، وفى كل مرة نعيد تشغيل الجهاز فيها سيقوم بنفس الكتابة مجدداً مما يعنى أن الـ crontab يعمل جيداً.
الآن إذا أردت تنفيذ أمر معين فى وقت محدد كل ما عليك هو إتباع الـ format التالي فى الأمر.

الخانةالوصفالقيم المتاحة
MINالدقائق0 to 59
HOURالساعات0 to 23
DOMيوم فى الشهر1 to 31
MONالشهر1 to 12
DOWيوم فى الأسبوع 0 to 6
CMD الأمر المراد تنفيذه

وإذا أرت التكرار بشكل منتظم قم بإستبدل الخانة المراد التكرار فيها بـ * بدلاً من القيمة.
فمثلا إذا أردت تنفيذ البرنامج السابق فى وقت محدد وكتبت التالى فى الـ crontab.

 فهذا يعنى التالى :

30 => 30 دقيقة

08 => الساعة الثامنة صباحاً

10 => اليوم العاشر من الشهر

06 => شهر يونيو

*  => أى يوم من أيام الأسبوع

مثلاً أيضاً أذا أردت تنفيذ برنامج كل دقيقة فما عليك إلا الكود التالي.

أما إستخدام @ يكون كالتالي:

الأمريساوىالمعنى
@yearly0 0 1 1 *كل عام
@daily0 0 * * *كل يوم
@hourly0 * * * *كل ساعة
@rebootمع كل إعادة تشغيل

إستخدام الراسبيري باي كجهاز إرسال موجات FM

فى هذا الدرس سنتعلم كيفية إسخدام الراسبيرى باى كجهاز راديو لإرسال الأصوات عن طريق موجات ال FM ويتم ذلك عن طريق ال hardware  المدمج فى الراسبيرى باى الذى يقوم بتوليد spread-spectrum clock من خلال أحد أطراف ال GPIO وهو GPIO4 وكل ما تحتاج إضافته هو سلك لهذا الطرف كي يحدث التذبذب حولة وتنتشر الموجات لمسافة كبيره تصل إلى 100 متر ومن الممكن أن لا تستخدم هذا الهوائي ولكن مدى الراديو سيقل إلى 10 cm فقط.

raspberry_pi_fm_radio

المكونات المطلوبة

Raspberry Pi

راسبيرى باى

raspberry_pi_fm_radio_1

سلك توصيل طوله أكبر من 75 cm

raspberry_pi_fm_radio_1

سلك توصيل Female jumper

raspberry_pi_fm_radio_3

قطعة Heat Shrink

raspberry_pi_fm_radio_5

مكواة لحام

raspberry_pi_fm_radio_6

قصدير لحام

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

نقوم بقياس 75 cm  من كابل التوصيل (من الممكن أن يقل الكابل عن هذا الطول ولكن كلما قل طوله كلما قلت المساحة المغطاه لبث الراديو)، ونقوم بلحامه فى طرف واحد من سلك التوصيل ال Female  بإستخدام مكواة اللحام كالتالي ويكون مجال بث هذا الهوائي حوالي 100 متر .

raspberry_pi_fm_radio_7

 

raspberry_pi_fm_radio_8

 

نقوم بإستخدام قطعة ال heat shrink لتغطية مكان اللحام ثم نقوم بتسخينها بإستخدام قداحة حتى تنكمش على السلك لتقوم بحمايته كالتالي :

raspberry_pi_fm_radio_9
raspberry_pi_fm_radio_10

 

نقوم بتوصيل الكابل السابق الإعداد فى الطرف رقم 7 من ارجل التوصيل GPIO وهو GPIO4.

 

raspberry_pi_fm_radio_11

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

فى البداية نقوم بفتح ال Terminal  الخاص ب الراسبيري باي وكتابة الأوامر التالية أو نقوم بفتح نافذه ال SSH الخاصة بها من جهاز آخر مربوط معها على نفس الشبكة كما تم شرحة فى الدرس الخامس.

 نقوم بكتابة الأمر التالي وهو يقوم بتزيل مالفات PiFm الخاصة بتحويل الراسبيري باي لجهاز إرسال وهي تكون مضغوطة في ملف من النوع tar.

نقوم بفك ضغط الملفات التي تم إنزالها عن طريق الأمر التالي.

نقوم بالـتأكد أنه تم فك ضغط كل الملفات التي تقوم بتشغيل الراديو عن طريق الأمر ls الذي يعرض محتويات المجلد المتواجدين فيه.

raspberry-pi-fm-radio-12

نقوم بكتابة الأمر التالى الذي بدورة يقوم بتشغيل الراديو على تردد ال FM الذى نكتبة فى نهاية الأمر فقد أستخدمت تردد 93.7 MHz  وهو تردد لا ينتمي لأى قناه إذاعية وكذلك قمت بإختار التسجيل المرفق مع الملفات المسمي sound.wav ولكنك تستطيع تغيره إلى أى تسجيل تفضلة على أى يكون إمتداده .wav وليس .mp3 ويكون أيضاً 16-bit mono

إذا أرت فى أى وقت وقف الصوت ما عليك سوى الضغط على ctrl + c فيتوقف الصوت المرسل تماماً.

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

raspberry-pi-fm-radio-13

كيفية زيادة سرعة الراسبيري باي؟

فى هذا الدرس سنتعلم كيفية زيادة السرعة Overclocking للراسبيري باي مع الأخذ فى الإعتبار أن درجة الحرارة لن تزيد عن 50 أو 60 درجة مئوية.

raspberry_pi_overclock_1

المكونات المطلوبة

DSC00009

راسبيرى باى

raspberry-pi-overclock-2

مشتت حرارى

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

في البداية يجب أن تلاحظ أن كسر السرعة فى الراسبيري باي كان يؤدى إلى فقد الضمان قبل عام 2012 حيث أن مؤسسة راسبري فاونديشن لم تكن تدعم كسر السرعة وذلك لخطورته على حرق اللوحة بسبب زيادة درجة الحرارة عليها بشكل كبير، ولكنها بعد ذلك قامت بدعم كسر السرعة في نظام راسبيان بما يحافظ على اللوحات ولا يعرضها للخطر وذلك فى كل الإصدارات من راسبري باي 1 و B+ و 2 ماعدا راسبري باي 3 حيث أن تعطى أداء يقارب أقصى إمكانيات ممكنة فى اللوحة فلا داعي لكسر السرعة.

بإمكانك بسهولة تغير تفعيل كسر السرعة من قائمة خصائص الراسبيري باي Raspi-config كالتالي فبإمكانك الإختيار من مجموعة من الإعدادات المعدة مسبقاً التي بإمكانها أن تصل الراسبيري باي حتى تردد 1000 ميجاهرتز.

raspberry_pi_overclock_3

 

raspberry_pi_overclock_4

أو من خلال سطر أوامر لينكس وذلك بالتعديل على ملف txt كالتالى فنقوم بكتابة الأمر التالي في سطر أوامر النظام Terminal.

سوف تلاحظ وجود كثر من الأختيارات بإمكانك تخطي الكثير منهم والتالي هو قائمة بأهم ما يمكن التحكم به.

Frequency Overclocking
arm_freq – تردد البروسيسور والقيمة الأولية لها هي 700
gpu_freq – تردد كارت الشاشة الخاص باللوحة والقيمة الأولية لها هي 250
sdram_freq – تردد الرامات والقيمة الأولية لها هي 500
core_freq – تردد ال core الخاص بكارت الشاشة وهو له تأثير على أداء البروسيسور حيث أنه يتم التحكم به من خلال الـ L2 cache
h264_freq – تردد دائرة فك تشفير الفيديو
isp_freq – تردد دائرة التحكم فى الكاميرا
v3d_freq – تردد عرض الفيديو  3D
Voltage Overclocking
over_voltage – مقدار فرق الجهد الذي سيصل له البروسيسور وكذلك كارت الشاشة وأقل قيمة له هي (-16) و أقصى قيمة له هي (8) والقيمة الأولية له هي (0)

بإمكانك تغيير الإعدادات السابقة كما تريد وليكن قم بتغييرهم إلى الآتي ويفضل أن تقوم بتركيب مشتت الحرارة الخاص بالراسبيري وذلك لزيادة الحماية عليها من أي تغير ممكن فى حرارة البروسيسور.

arm_freq=900
gpu_freq=300
core_freq=250
h264_freq=250
isp_freq=250
v3d_freq=250
sdram_freq=450
over_voltage=6

 

زر إغلاق الراسبري باي

فى هذا الدرس سنتعلم كيفية عمل زر لإغلاق الراسبرى باى بشكل آمن بدون الإضطرار لإغلاقها من خلال أمر الإغلاق ولا فصل مصدر الطاقة عنها.

IMAG3682

المكونات المطلوبة

DSC00009

راسبرى باى

IMAG3664

سلك توصيل female \ female

IMAG3671

زر ذو طرفين press button

IMAG3665

مكواة لحام

DSC00096

قصدير لحام

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

نقوم بقص سلك التوصيل لنصفين متساويين فى الطول ثم نقوم بقطع جزء من الغلاف البلاستيكي الحامي للسلك حتى يظهر جزء مناسب من السلك فنستطيع لحامه فى زر الضغط.

IMAG3672

نقوم بلحام طرفيى السلكين فى طرفى رز الضغط كالتالي.

IMAG3677

إذا كان زر الضغط من ذوى الأربعة أطراف فعليك ملاحظة الصورة التالية وأن تقوم بلحام طرفى الأسلاك فى النقطتين A,B أو C,D.

Pi Shutdown Button

كل ما عليك فعله الآن هو إختيار أحد أرجل التوصيل GPIO المناسبة والتى ستختلف طبقاً لنوع الراسبرى باى المستخدمة، في حالتي هذه أستخدم راسبرى باى موديل B+ فقمت بإختيار أقرب رجل توصيل لأحد رجول الأرضي GND وكانت هى الرجل GPIO7نا للا وبإمكانك إختيار ما تريد.

gpio-pinout-bplus

نقوم بتوصيل الزر السابق الإعداد فى الطرفين رقم 26 و رقم 25 من أرجل التوصيل GPIO كالتالي

IMAG3682

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

فى البداية نقوم بفتح ال Terminal الخاص ب الراسبري باي وكتابة الأوامر التالية أو نقوم بفتح نافذه الـ SSH الخاصة بها من جهاز آخر مربوط معها على نفس الشبكة كما تم شرحة فى الدرس الخامس.
نقوم بكتابة الأمر التالي الذى يقوم بفتح محرر النصوص الشهير Nano ويقوم بإنشاء ملف اسمه off_button_pi.py لكتابة الكود بداخلة بلغة البايثون python.

نقوم بكتابة الكود التالي بداخل الملف السابق

2

ثم نقوم بالضغط على Ctrl+O ثم enter ثم ctrl+X وذلك لحفظ الملف السابق.

وكما نلاحظ الكود بسيط جداً يعتمد على إستدعاء مكتبتين رئيسيتين وهما GPIO وهى للتعامل مع أرجل التوصيل وجعل الرجل الموصلة على زر الضغط تعمل كطرف إدخال، وكذلك لتشغيل الـ Pull Up Resistor الداخلية فى الراسبرى باى فيمكننا بذلك جعل رجل التوصيل موصلة دائماً على فولت  Highوعند الضغط فقط على الزر تصبح موصلة بـ Low
ومكتبة os وهى الأهم هنا حيث تمكننا من التعامل مع نظام التشغيل وارسال أوامر له عن طريق كود البايثون فنستخدمها داخل أمر try الذى يتنظر أن يتم الضغط على الزرعن طريق أمر  GPIO.wait_for_edge ليقوم بعد ذلك بإرسال الأمر sudo shutdown -h now ليغلق الراسبرى باى بطريقة سليمة.

إذا كنت تريد تغيير رجل التوصيل GPIO كل ماعليك هو تغيّر رقمها فى الملف السابق gpio_pin_number لتصبح تساوى رقم الـ GPIO الأخرى التى تريد إستخدامها.

يبقى لنا خطوة واحده وهى أن نجعل هذا البرنامج يعمل تلقائياً عند فتح الراسبرى باى وذلك بفتح الملف rc.local بمحرر النصوص Nano مع كتابة sudo قبل الأمر وذلك ليعطى للمستخدم صلاحيات الـ  super user فيمكنك تعديل هذا الملف.

نقوم بإضافة مسار الملف الذى قمنا بإنشائه فى آخر rc.local قبل exit 0 مع كتابة اسم اللغة المستخدمة فى كتابة البرنامج قبل المسار وهى python كالتالى.

4

ثم نقوم بالضغط على Ctrl+O ثم enter ثم Ctrl+X وذلك لحفظ الملف السابق.

كل ما تبقى عليك هو عمل reboot  للراسبرى باى هكذا.

تستطيع الآن الضغط على زر الإغلاق وهو سيقوم بطريقة سليمة وصحيحة بإغلاق الراسبرى باى.

إنشاء media center باستخدام الراسبيري باي

Raspberry pi 3 هي واحدة من أفضل الحواسيب الصغيرة، لأنه يجمع بين سرعة مثيرة للإعجاب مع قيمة جيدة. كما انها متعددة الاستعمالات، لذلك يمكن استخدامها في الكثير من المشاريع. ومن ذلك، يمكنك أيضا استخدام الراسبيري باي 3 مع Kodi، لتحول لوحة الراسبيري باي مع أي جهاز تلفاز إلى Media Center متكامل لعرض الأفلام عالية الجودة.

how-to-use-raspberry-pi-to-make-a-media-centre

القطع المطلوبة :

الأدوات التي تحتاجها لهذا المشروع :

Raspberry Pi 3 Model B

5V 2A Switching Power Supply MicroUSB Cable

Power Supply

Samsung 8Gb Class 6 Microsd Memory Card 2

Samsung 8Gb Class 6 Microsd Memory Card

HDMI Cable - 1 meter

HDMI Cable – 1 meter

wifi module (802.11n)

how-to-use-raspberry-pi-to-make-a-media-centre

WiFi أو Ethernet Cable

Kodi :

هو برنامج Media Center مجاني ومفتوح المصدر قادر على تشغيل ملفات الفيديوهات والموسيقى  وعرض الصور المخزنة محليا. مخصص لاستخدامات الميديا و الترفيه المنزلي ، Kodi يمنحك القدرة على زيادة فاعليته من خلال استخدام نظام الإضافات. هذه الإضافات يمكن أن تستخدم لأشياء متعددة مثل الحصول على معلومات والترجمات ، ولكن يمكن أن تستخدم أيضا على التفاعل مع مواقع تقدم محتوى الفيديو على الانترنت، ومشاهدة هذا المحتوى مباشرة على kodi.

 ففي خلال دقائق تستطيع أن تحول لوحة الراسبيري باي مع أي جهاز تلفاز إلى Media Center متكامل لعرض الأفلام عالية الجودة. النظام مبني على برنامج XBMC الشهير لإدارة الميديا.

ماذا يمكنك أن تفعل مع KODI؟
تشغيل أفلام و مقاطع فيديو بدقة إتش دي عالية
تصفح الإنترنت و الإيميل.
الوصول لقاعدة بيانات للموسيقى و الفيديو.
مشاركة صورك الخاصة على حسابك.

 Kodi متاح على كل الأجهزة التي يمكن أن تخطر لك. برنامج الـ Media Center سهل التنزيل و متوافق مع انظمة التشغيل OS X, Linux ,Windows, Android- وحتى مع متحكم الراسبيري باي.

تثبيت نظام التشغيل :

 لا يمكنك تثبيت kodi  باعتباره نظام تشغيل ، لن يتم تشغيل Kodi على الراسبيري باي مباشرة- مثل اي برنامج أخر. فإنه يحتاج إلى نظام التشغيل لتشغيله.فسيتم تثبيت نظام تشغيل و Kodi، ليس  Kodi فقط.
هناك ثلاثة خيارات رئيسية لأنظمة التشغيل لـ Kodi : OpenELEC ، Xbian  ، و OSMC . وهناك اختلافات صغيرة بين خيارات أنظام التشغيل الرئيسية الثلاث.

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

تثبيت نظام OSMC :

الخطوة الأولى : قم بوضع الـ SD card  إلى منفذ قارئ SD card  على جهازك الكمبيوتر.
الخطوة الثانية : تنزيل مثبت OSMC :

how-to-use-raspberry-pi-to-make-a-media-centre

نحن سنقوم بتنزيل OSMC على بطاقة الذاكرة الرقمية (SD card) ، وليس على جهاز الكمبيوتر . لذلك في هذه المرحلة سيتم تنزيل برنامج على جهاز الكمبيوتر الخاص بنا و التي من شأنها تثبيت OSMC على بطاقة SD. يمكنك العثور على الإصدار المناسب لنظام التشغيل للكمبيوتر الخاص بك على موقع OSMC .

ليتم تشغيل مثبت OSMC  قم بالنقر المزدوج على الملف الذي تم تنزيله.

الخطوة الثالثة : تثبيت OSMC على بطاقة الذاكرة الرقمية (SD card) :
الإعدادات بديهية وربما لا تحتاجون إلى المساعدة، ولكن هنا جولة سريعة :

how-to-use-raspberry-pi-to-make-a-media-centre

لتثبيت OSMC ، المثبت OSMC اختر لغتك و نوع الجهاز الذي تقوم بإعداده. الراسبيري باي المستخدم في هذا المشروع هو Raspberry pi 3، لذلك يتم اختياره.

how-to-use-raspberry-pi-to-make-a-media-centre
how-to-use-raspberry-pi-to-make-a-media-centre

على الشاشة التالية اعلاه، قم بتحديد الإصدار الأحدث. ثم، على الشاشة الأخيرة، حدد خيارات بطاقة الذاكرة الرقمية (SD card)  .

how-to-use-raspberry-pi-to-make-a-media-centre
how-to-use-raspberry-pi-to-make-a-media-centre

ستظهر لك صفحة تتيح لك تحديد كيفية إتصال الـ OSMC بالانترنت ( هذا الإختيار متاح لك إما عن طريق كابل Ethernet او Wi-Fi dongle) . ثم قم بإختيار منفذ فتحة SD card الخاصه بجهازك.

how-to-use-raspberry-pi-to-make-a-media-centre

قم بالموافقه على الشروط في الصفحة أعلاه، سوف يقوم المثبت بتنحميل أحدث نسخة من OSMC و سوف يتم تثبيتها على بطاقة SD الخاصة بك . ستستغرق العملية بضع دقائق.

توصيل الراسبيري باي

إخرج بطاقة الذاكرة الرقمية (SD card) و قم بتوصيلها على الراسبيري باي. ثم تأكد من توصيل الكابلات بشكل صحيح- كابل HDMI ، و Ethernet (أو Wi-Fi dongle) ، ثم قم بتوصيل الراسبيري باي بالطاقة.

OSMC boot up

ستقوم OSMC  تلقائيا بجميع الاعدادات الازمة

how-to-use-raspberry-pi-to-make-a-media-centre

 

how-to-use-raspberry-pi-to-make-a-media-centre

Kodi :

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

how-to-use-raspberry-pi-to-make-a-media-centre

قم بإختيار Classic  لعرض واجهة Kodi .

 kodi  يتيح لك تدفق المتحوى من اللإنترنت ، وهو في الواقع بسيط الاستخدام. يمكنك مشاهدة أي شيء تقريبا على شبكة الإنترنت (الكثير الكثير)، ومجانا. إذا قمت بتنزيل Kodi  ولكن لم تكن متأكد من أين تبدأ ، هذا دليل سريع لك.
يحتوي Kodi على اقسام مختلفة مثل الصور و الفيديو و الموسيقى و البرامج و النظام  ، ستظهر لك على الشاشة الرئيسية.

how-to-use-raspberry-pi-to-make-a-media-centre

كيفية استخدام kodi للفيديو :

عند النقر على Videosيعطيك خيارين . لمشاهدة الوسائط المخزنة على الجهاز الخاص بك، انقر فوقFiles.

how-to-use-raspberry-pi-to-make-a-media-centre

لكيفية إضافة فيديو هي مشابة لإضافة الموسيقى . قم بإختيار add-ones ثم “Get more… ” . ستظهر قائمة من الملحقات التي توفر لك الوصول إلى المزيد من المحتوى، مثل اليوتيوب ، الجزيرة … .

how-to-use-raspberry-pi-to-make-a-media-centre

بعد إيجاد ما تريد، قم بالضغط عليه ثم حدد install  ليتم تثبيته.

كيفية استخدام Kodi للمسيقى :

استخدام kodi للموسيقى تعمل بطريقة مماثلة للفيديو . عند تحديدك لعلامة التبويب Music  على الشاشة الرئيسية سيظهر لك خيارين اما files او add-ones . للسماع للموسيقى المخزنه على الجهاز الخاص بك قم باختيار files.

how-to-use-raspberry-pi-to-make-a-media-centre

و لاضافة موسيقى  قم بتتبع نفس الخطوات لإضافة الفيديو. في الصورة التالية قمنا بتحميل MixCloud .

how-to-use-raspberry-pi-to-make-a-media-centre

نظام التحكم ومراقبة الإضاءه عن بعد

نظام التشغيل الآلي والتحكم للمنزل لايربط كل الأجهزة التكنولوجية في منزلك ببعض وحسب، بل يربطك أنت بمنزلك. لقد صممنا نظام متكامل يمكنه التفاعل مع الأجهزة الكهربائية (الضوء)  لمراقبتها و التحكم بها عن بعد لتجعل من حياتك أكثر متعة وراحة خاصة مع الأشياء التي تستخدمها كل يوم ضمن روتينك اليومي.

في هذا المشروع، سيتم المراقبة و التحكم بالإضاءة من اي مكان في العالم بإستخدام أي جهاز في المنزل مثل الهاتف الذكي أو الحاسوب أو tablet.

b5

القطع المطلوبة :

الأدوات التي تحتاجها لهذا المشروع :

5mm Red LED

العدد :8

220 Ω resistor

مقاومة 220 اوم

العدد :8

Full size breadboard 830

  لوح تجارب كبير (Full size breadboard)

Raspberry Pi 3 Model B

Jumper Wires Male/Male

 اسلاك توصيل ذكر/ذكر (Jumper Wires Male Male)

Female-Male Jumper Wires

 اسلاك توصيل أنثى/ذكر (Jumper Wires Female/male)

5V 2A Switching Power Supply MicroUSB Cable

Power Supply

Samsung 8Gb Class 6 Microsd Memory Card 2

Samsung 8Gb Class 6 Microsd Memory Card

نظرة عامة :

يبدأ النظام من خلال ارسال اوامر المستخدم عن طريق استخدام تطبيق على الهواتف الذكية او صفحة web  الى الخادم (server)  عبر الانترنت، ومن ثم يقوم الخادم بإرسال هذه الأوامر الى لوحة التحكم (الراسبيري باي ) للتحكم في إيقاف و تشغيل الاضاءه المنزلية.

remote-control-raspberry-pi-leds

يمكنك من خلال هذا النظام التحكم بالتوصيلات الكهربائية (Powerstrip  )، التحكم تدفئة أو تبريد المنزل، التحكم في تشغيل و اطفاء الالات الكهربائية.

تصميم لوحة التجارب:

في جزء التوصيل الإلكتروني سيتم توصيل 8  LEDs فقط.الجزء المختلف في التوصيل هو إختيار المنفذ لكل LEDs . في الواقع ، سوف نستخدم في نظام التحكم ومراقبة الإضاءه  مكتبة تدعا wiringPi و أرقام المنافذ في هذه المكتبية ليست هي نفس التي على الراسبيري باي.سيتم تسمية المنافذ على الراسبيري باي اعتمادا على مكتبة wiringPi كما هو موضح بالجدول التالي :

remote-control-raspberry-pi-leds

قم بتوصيل القطع اللكترونية كما هو موضح بالصورة :

remote-control-raspberry-pi-leds

 يتم توصيل  الطرف السالب للـ LEDs بمقاومة 220 اوم و الطرف الموجب حسب الجدول التالي:

remote-control-raspberry-pi-leds

تثبيت و إستخدام المكتبة Wiring Pi :

مكتبة Wiring Pi هي مكتبة الوصول إلى GPIO  على لوحة الراسبيري باي . و انها تسمح لك التحكم بمداخل و مخارج الراسبيري باي من خلال bash script   او مباشر من خلال سطر أوامر.
تحقق أولا ما اذا كانت مكتبة wiringPi مثبتة مسبقا ام لا ، من خلال نافذة الـ  terminal قم بتشغل الامر التالي:

 اذا لم تقم بتثبيت GIT،  يمكنك تثبيتها من خلال الأمر التالي :

اذا تم ظهور رسالة خطأ هنا ، تأكد من تحديث الراسبيري باي إلى أخر اصدار من Raspbian :

للحصول على WiringPi باستخدام GIT، قم بكتابة الأمر التالي:

سوف تجلب النسخة المحدثة ثم يمكنك إعادة تشغيل البرنامج من خلال الأمر أدناه .
لبناء/ تثبيت البرنامج :

الكتابة و القراءة من المنافذ عن طريق استخدام أوامر المكتبة wiringPi :

الأن يجب أن تكون قادر على إستخدام الأداة، قم بكتابة الأمر التالي على نافذة الـ Terminal :

اذا لم يتم ظهور شي أو رسالة خطأ فقد تم التثبيت للمكتبة بشكل صحيح. في حال تم ظهور رسالة الخطأ “command not found error” أو شي من هذا القبيل، تأكد من تثبيت و بناء المكتبة. للقيام بتشغيل و إطفاء الـ Wiring pin 0 )LED) ، تحتاج اولا إلى تعيين الدبوس كمخرج من خلال الأمر التالي :

“0”هي رقم المنفذ wiring، و “OUT”  لتعيين المنفذ كمخرج . سيتم تشغيل الـ LED  من خلال الأمر التالي :

“0” للدلاله على رقم المنفذ ، و “1”  لوضع الدبوس في حالة التشغيل الـ LED( للتشغيل 1 و إطفاءه 0) . و لإيقاف تشغيلك ببساطة استخدم الأمر :

وهناك أيضا اوامر لقراءة GPIO  والتي تسمح لقراءة وضع الدبوس. فيمكن من خلاله معرفة حالة الضوء هل هو في حالة التشغيل او الإيقاف إذا لم تكن على إستطاعه لرؤية الضوء. يمكنك ذلك عن طريق الأمر التالي :

“0” لتعيين رقم المنفذ Wiring. هذا الأمر يقوم بترجيع  قيمة 1 اذا كان الضوء في حالة التشغيل و قيمة 0 اذا كان الضوء في حالة الإيقاف.

وأخيرا مكتبة wiringPi تحتوي على الكثير من الأوامر و الدوال التي تمكنك من التحكم بمداخل و مخارج الراسبيري باي ولكن لن يتم تغطيتها جميعها في هذا المشروع. يمكنك الاطلاع على هذه الروابط اذا كنت مهتم بمعرفة المزيد :

http://wiringpi.com/reference/

https://projects.drogon.net/raspberry-pi/wiringpi/the-gpio-utility/

نظام التحكم ومراقبة الإضاءه عن بعد مع SSH  هو جميل ولكن الواجهة ليست سهلة الاستعمال  و كتابة الأوامر في كل مرة أمر طويل و مزعج. هذا هو السبب في أننا بحاجة إلى واجهة رسومية لمشروعنا.كما أن برمجة تطبيق لكل نظام تشغيل (IOS, Android, Windows phone ,Mac, Linux, Windows ,….) ستكون طويلة جدا و يتطلب أن تكون على معرفه  بعدة لغات مختلفة.

هذا هو السبب لإنشاء صفحة ويب على شبكة النت ، حيث انها ستكون متوافقه مع جميع الأجهزة ، و ستكون بحاجة لمعرفة اربع لغات : CSS,HTML (نمط الصفحة)، PHP (للتفاعل مع الخادم )،  JavaScript (التفاعلات مع المستخدم) . نحن بحاجة لتثبيت خادم الويب على الراسبيري باي. في حالتنا نحن لسنا بحاجة إلى قاعدة بيانات MySQL ، فقط بحاجة إلى خادم HTTP و PHP.

 تثبيت خادم الويب(Web Server) :

أولا قم بعمل تحديث للراسبيري باي :

قم بتثبيت الخادم (Apache HTTP server ) وPHP5 من خلال الأمر التالي :

الان قم بالتحقق ما اذا كان الخادم (Server) يعمل، قم بكتابة العنوان IP الخاص بالراسبيري باي على متصفح الويب. اذا كان يعمل ستظهر رسالة “It works!” كما هو موضح بالصورة أدناه.

remote-control-raspberry-pi-leds

إذا لم يتم مثل ما سبق، قم بالتحقق من العنوان IP الخاص بالراسبيري باي من خلال الأمر التالي :

أو قم بمحاولة إعادة تثبيت Apache  أو إعادة تشغيل الراسبيري باي.

الملف  الخاص بواجهة المستخدم :

قم بالدخول إلى ملف /var/www/html/ عبر نافذة الـTerminal من خلال الأمر التالي :

قم بعرض الملفات الموجودة على هذا الملف بإستخدام الامر التالي:

سيظهر لك ملف واحد يسمى “index.html”  هذا الملف يتوافق مع صفحة “It works!”. يمكنك حذفه ليتم إنشاء الصفحة الخاصة بهاذا المشروع. قم بحذف الملف بإستخدام الأمر التالي :

و إنشاء ملف أخر يسمى “index.php”  :

ثم قم بكتابة النص التالي داخل الملف:

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

إنشاء واجهة المستخدم :

يمكننا التحكم بالراسبيري باي من خلال  PHP script ولكن لن يكون هناك واجهة لتفعال المستخدم ، و بالتالي فإننا لن نتمكن من إيقاف و تشغيل الـ LED.
واجهة المستخدم تتألف من صور عبارة عن أزرار تشغيل و إيقاف. الأخضر للدلالة على التشغيل و الأحمر للدلالة على اللإيقاف . كل صورة/ زر يتم ربطه مع LED خاص به . لذلك اذا تم النقر على أحد الصور/الأزرار ، سيتم تشغيل أو إيقاف الـ LED المرتبط به و سيتم تغيير الصورة من زر أحمر إلى أخضر او العكس .

remote-control-raspberry-pi-leds

سيتم إنشاء واجهة الصفحة بإستخدام لغةHTML، و لتفاعلات الخادم وتوليد الصفحة لغة PHP، و JAVAScript  لإدارة التفاعل مع المستخدم و الرسوم المتحركة للصفحة. ويمكنك استخدام CSS لتخطيط و تنسيق الصفحة مثل الخلفية .

remote-control-raspberry-pi-leds

اولا نحن بحاجة لملف “index.php” لإنشاء الواجهة ولتفاعل الخادم . هذه الصفحة هي الصفحة الرئيسية التي تحتوي على 8 ازرار.

التحكم بالإضاءة من خلال ملف PHP :

تنفيذ التطبيق مع كود PHP يمكن القيام به بكتابة دالتين مختلفين :exec و system  .أولا الدالة “system” ، تأخذ هذا الامر متغيرين :

المتغير الأول هو الأمر الذي سيتم تنفيذه، و المتغير الثاني هو الحاله المستردة من تنفيذ الأمر. والمتغير الثاني لا يكون إلزاميا.وهكذا يمكنك إستخدامه إذا كنت بحاجة إلى تنفيذ الأوامر”gpio mode 0 out” او “gpio write 0 1” مثال :

ثم الدالة “exec”،  هذة الدالة تقوم بالضبط بنفس العمل للدالة “system” ولكن تقوم بقراءة و تخزين ما طبعه الامر. حيث انه يأخذ ثلاث متغيرات :

الإختلاف بالمتغيرات هو مصفوفة $output . سيتم تخزين ما يتم قراءته خلال الأمر في هذه مصفوفة.وهكذا، يمكنك استخدام هذه الدالة إذا كنت بحاجة إلى قراءة أحد المنافذ مثل الأمر “gpio read 0” وتخزين القيم التي تم استجاعها. مثال:

سنقوم بهذا المشروع بالتحكم بالمصابيح المربوطة على المنافذ من 0 على 7، يتم إنشاء الثمانية أزرار لأول مره في For loop بإستخدام :

قم بفتح ملف index.php ، ثم قم بكتابة الكود التالي في الملف و قم بحفظه:

 نحن بحاجة إلى التحقق ما اذا تم النقر على أحد الأزرار من قبل المستخدم . حيث ان JavaScript تفيد لهذا الغرض، سيتم وضعها في ملف منفصل يسمى “script.js” ولكنها لا تزال مدرجة في ملف”index.php“
Scrip هو مجرد إضافة مستمع (listener) إلى كل من الثمانية أزرار، في كل مرة يتم الضغط على هذه الأزرار ، سيتم استخدام دالة لسؤال ملف gpio.php عن حالة الإضاءة و تستقبل التحديثات كإجابة. و أخير ستقوم الـ javaScript  بتغير صورة الأزرار إلى الأحمر للدلالة على الإيقاف أو إلى أخضر في حالة تشغيل الإضاءة.
و في الملف الأخير ،gpio.php .  يحتوي على كود PHP لتشغيل و إيقاف الإضاءة اعتمادا على ما يتم ارسالة من الـ javaScript .

يمكنك تحميل برمجة كامل المشروع من خلال الرابط المباشر على الموقع هنـا . يمكنك تحميل الملف على الراسبيري باي على ملف /var/www/html/ ثم قم بفتح عنوان IP الخاص بالراسبيري باي على متصفح ويب.

التحكم باللوحة الإعلانية عن بعد

لوحة الإعلانات اللاسلكية هو إنتقاء جيد لهذا المشروع، بدلا من أن تكون مجرد لوحة إعلانية بسيطة. أولا يجب أن نفهم الغرض من هذا المشروع، في هذا النظام يمكننا عرض رسالة أو شعار لبعض أجهزة العرض مثل شاشات الكريستال السائل (LCD)، وهذه الرسالة يمكن بسهولة وضعها و تغييرها من أي مكان في العالم، عن طريق إستخدام الانترنت لإرسال الرسالة لاسلكيا من متصفح ويب إلى شاشة الـ (LCD) المتصلة بلوحة الراسبيري باي.لذالك يمكنك إرسال الرسالة بإستخدام الحاسوب، الهاتف الذكي أو tablet .

web-controlled-iot-notice-board-using-raspberry-pi

القطع المطلوبة :

في نظام التحكم بشاشات الإعلانات، سنقوم بإنشاء خادم الويب المحلي ( local web server)،  والذي يمكنه أن يكون (A global server) على شبكة الإنترنت. في الراسبيري باي ، سيتم إستخدام شاشة العرض LCD 16×2 لعرض الرسالة و Flask لإستقبال الرسالة عبر الشبكة. كلما يتلقى الراسبيري باي أي رسالة لاسلكية من صفحة ويب ، فإنه يعرض هذه الرسالة على شاشة الكريستال السائل (LCD).

الأدوات التي تحتاجها لهذا المشروع :

HD44780

LCD 16×2 شاشة

potentiometer 10k

Potentiometer 10K Ω

220 Ω resistor

مقاومة 220 اوم

Half-size Breadboard

لوح تجارب حجم متوسط (Half size breadboard )

Raspberry Pi 3 Model B

Jumper Wires Male/Male

 اسلاك توصيل ذكر/ذكر (Jumper Wires Male Male)

Female-Male Jumper Wires

 اسلاك توصيل أنثى/ذكر (Jumper Wires Female/male)

5V 2A Switching Power Supply MicroUSB Cable

Power Supply

Samsung 8Gb Class 6 Microsd Memory Card 2

Samsung 8Gb Class 6 Microsd Memory Card

تصميم لوح التجارب :

نحن بحاجة فقط لتوصيل شاشة العرض (LCD) مع لوحة الراسبيري باي عن طريق إستخدام بعض الاسلاك على لوحة التجارب.

قم بتوصيل الدائرة كما هو موضح بالصورة :

web-controlled-iot-notice-board-using-raspberry-pi

توصيل  شاشة الـ LCD :

راسبيري بايLCD شاشة
GNDVss
5vVDD
GNDRW
GPIO7RS pin
GPIO8Enable pin
GPIO25D4 pin
GPIO24D5 pin
GPIO23D6 pin
GPIO18D7 pin

إنشاء صفحة ويب :

في هذا المشروع، العنصر الرئيسي هو الراسبيري باي، و التي تمثل قلب هذا المشروع،وتستخدم للتحكم على العمليات المرتبطة بهذا المشروع. مثل : التحكم بشاشة العرض (LCD)، وتلقي الرسائل من الخادم (Server) .

web-controlled-iot-notice-board-using-raspberry-pi

سيتم إنشاء خادم ويب (Web Server)، الذي يوفر وسيلة لإرسال “الرسالة المراد إعلانها” الى الراسبيري باي بإستخدام Flask في متصفح الويب. Flask  هو  إطار عمل مُصغّر/صغير (Micro-Framework) وقوي فى نفس الوقت لتطوير برامج الويب عبر لغة بايثون Python، يتوفّر على عدد لا بأس به من الدوال المُساعدة، مُناسب لتطوير تطبيقات صغيرة ومُتوسّطة (مُدونة، منتدى، موقع شخصي… ).

قم بإنشاء ملف  webapp ليتم حفظ الملفات المتعلق بهذا المشروع داخله عن طريق كتابة الأمر التالي على نافة Terminal :

في هذا المشروع سوف نقوم بإنشاء صفحة ويب مع مربع نص (TextBox) و زر إرسال (Submit button)، حيث يمكننا أن ندخل “رسالة الاعلان” في مربع نص ثم رفعها إلى الخادم (Server) عن طريق النقر على زر إرسال. يتم تطوير هذا التطبيق على شبكة الإنترنت باستخدام لغة HTML. الكود البرمجي لصفحة الويب هذه سيتم شرحه و عرضه في الخطوات التالية.

لإنشاء صفحة ويب :

أولا: قم بإنشاء ملف templates في الملف webapp  عن طريق إدخال  الأمر التالي في Terminal:

تحتاج إلى كتابة  كود HTML في محرر نص (text editor) و حفظ الملف مع تمديد  (.HTML)
قم بفتح محرر نص (Text Editor) تحت قائمة Accessories  في القائمة الرئيسية :

web-controlled-iot-notice-board-using-raspberry-pi

قم بكتابة كود  HTML التالي :

web-controlled-iot-notice-board-using-raspberry-pi

قم بحفظ الملف بتمديد(.HTML) مثل (index.html) في ملف templates ، الذي تم إنشاءه داخل ملف webapp.

لمحة عن الكود :
صفحة الويب يتم إنشاءها بلغة HTML ، والتي تحتوي على مربع نص :

وزر إرسال  (Submit button) :

مع عنوان للصفحه :

عند النقر على زر إرسال سيتم إستخدام POST method  لتنفيذ الكود. ثم نقوم بعرض الرسالة التي تم إرسالها إلى الراسبيري باي عن طريق الخادم (Server).

فهي تقوم بالتحقق ما اذا كانت هناك نص في مربع النص ثم تقوم بطباعة النص على صفحة الويب نفسها، بحيث يمكن للمستخدم أيضا رؤية الرسالة المرسلة.

أولا قم بتثبيت حزمة Flask. وتأكد من أنك متصل بالانترنت، إما عن طريق  Ethernet Cable أو عن طريق WIFI   قبل أن تبدأ.

قم بكتابة الأمر التالي على نافذة Terminal  لتثبيت الـ Flask :

جزء البرمجة في هذا المشروع يلعب دورا هاما للغاية لأداء جميع العمليات. أولا وقبل كل شي نحن بحاجة إلى درج المكتبات المطلوبة لـ  Flask .ثم تهيئة المتغييرات و تحديد Pins  لشاشة الكريستال السائل  (LCD) .

لبرمجة شاشة الكريستال السائل (LCD) ، يتم إنشاء الدالة ()lcd_init لتهيئة شاشة LCD.

 و الداله  ()lcd_byte لإرسال الأوامر إلى الشاشة، , و الداله  ()lcd_string لإرسال البيانات المراد عرضها على الشاشة إلى الـ LCD .

 و فيما يلي هذا الجزء من البرنامج يستخدم لإرسال رسالة من متصفح ويب إلى الراسبيري باي بإستخدام Flask .

قم بكتابة الكود البرمجي كاملا  كالتالي :

قم بحفظ ملف الكود app.py داخل ملف webapp الذي تم إنشاءه مسبقا. flask  سوف يقوم بالبحث عن index.html في ملف templates، الموجود على نفس الملف الذي يحتوي ملف الكود app.py .
بعد ذلك يمكنك تشغيل برنامج البايثون ولكن قبل ذلك تحتاج إلى استبدال عنوان IP في برنامج مع عنوان IP للراسبيري باي الخاصه بك.يمكنك التحقق من عنوان IP عن طريق كتابة الامر التالي على نافذة terminal :

بعد تشغيل كود البايثون ثم بفتح http://IP_address_of_your_Pi:8080 في متصفح الويب و ادخل الرسالة ثم انقر فوق زر الارسال .

النظام الأمني للمنزل للحماية من اللصوص

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

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

wraspberry-pi-iot-intruder-alert-system

القطع المطلوبة :

في هذا المشروع، سيتم إنشاء نظام الحماية للمنزل بإستخدام مستشعر الحركة (PIR sensor) و كاميرا الراسبيري باي. في هذا النظام سيتم الكشف عن الدخلاء ، و سرعان ما يتم تنبيه المستخدم عن طريق إرسال بريد إلكتروني له .وتحتوي هذة الرسالة على صورة الدخيل التي يتم إلتقاطها بكاميرا الراسبيري باي. يمكنك تركيب هذا النظام عند الباب الرئيسي للمنزل أو مكتبك ومراقبته في أي مكان بالعالم باستخدام البريد الخاص بك عبر الانترنت.

الأدوات التي تحتاجها لهذا المشروع :

pir motion sensor

حساس الحركة (PIR motion sensor)

raspberry-pi-iot-intruder-alert-system

 كاميرا للراسبري باي (raspberry pi camera module)

led 5mm red

 LED 5mm red

220 Ω resistor

مقاومة 220 اوم

small size breadboard 170 colors

  لوح تجارب صغير  (small size breadboard)

 راسبيري باي (Raspberry Pi 3 Model B)

Jumper Wires Female Female

 اسلاك توصيل أنثى/أنثى  (Jumper Wires Female/Female)

Female-Male Jumper Wires

 اسلاك توصيل أنثى/ذكر (Jumper Wires Female/male)

5V 2A Switching Power Supply MicroUSB Cable

Power Supply

شرح العمل :

عمل هذا المشروع هو بسيط جدا. سيتم إستخدام مستشعر الحركة (PIR sensor)  للكشف عن وجود أي شخص و تستخدم كاميرا الراسبيري باي لإلتقاط الصور عندما يتم الكشف عن الشخص.

عندما يأتي أي شخص أو متسلل في حدود نطاق مستشعر الحركة ، سنتلقى إشارة من المستشعر ليتم تفعيل الكاميرا على الفور من خلال الراسبيري باي . الراسبيري باي سوف يرسل أوامر للكاميرا لإلتقاط صورة و حفظها. وبعد ذلك تقوم الراسبيري باي بإنشاء بريد يتم إرسالة إلى عنوان البريد الالكتروني المحدد مع صورة الدخيل/المتسلل .

يتم حفظ الصورة في الراسبيري باي مع إسم يحتوي على الوقت و التاريخ الذي تم الكشف فيه عن الدخيل. لذلك يمكنك التحقق من وقت وتاريخ الدخول للمتسلل/الدخيل من خلال النظر فقط على اسم الصورة، كما هو موضح بالصورة أدناه.

wraspberry-pi-iot-intruder-alert-system

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

raspberry-pi-iot-intruder-alert-system

تصميم لوحة التجارب:

قم بتوصيل الدائرة كما هو موضح بالصورة التالية :

raspberry-pi-iot-intruder-alert-system

في نظام الكشف عن الدخيل/ المتسلل ، نحن بحاجة إلى توصيل كاميرا الراسبيري باي و حساس الحركة إلى لوحة الراسبيري باي. قم بتوصيل الكاميرا في المدخل المخصص للكاميرا (Camera slot) على الراسيبيري باي.

wraspberry-pi-iot-intruder-alert-system

وقم بتوصيل حساس الحركة مع منفذ GPIO18، و LED  يتم توصيل  الطرف السالب بمقاومة 220 اوم و الطرف الموجب مع منفذ GPIO 17، ثم قم بتوصيل طرف المقاومة الاخر بالطرف السالب (GND) على لوحة الراسبيري باي .

يمكنك العودة على الدرس الثاني عشر للإطلاع على كيفة توصيل حساس الحركة.

إعداد الراسبيري باي :

نحن نستخدم لغة البايثون (Python) لعملية البرمجة. قبل برمجة الكود، أنت بحاجة إلى إعداد لوحة الراسبيري باي. يجب عليك العودة سلسلة تعلم الراسبيري باي لتنزيل و إعداد نظام التشغيل (Raspbian Jessie OS ) .

رازبيري باي-الدرس الأول– تهيئة بطاقة الذاكرة
رازبيري باي-الدرس الثاني– اعداد نظام التشغيل للمره الأولى
رازبيري باي-الدرس الرابع– اعداد GPIO

بعد تثبيت نظام التشغيل بنجاح ، انت بحاجة إلى الاتصال بالانترنت و تفعيل كاميرا الراسبيري باي ثم اعداد البريد الإلكتروني.

الاتصال بالشبكة :

يتم توفير إعدادات شبكة الإتصال في واجهة المستخدم لإصدارRaspbian   الحالي. الإتصال بالشبكة يمكن إجراءه عبر أيقونة الشبكة في أقصى الطرف الأيمن من شريط القوائم . قم بالضغط على أيقونة الشبكة سيتم ظهور قائمة شبكات الإنترنت المتاحة، كما هو مبين بالصورة أدناه. إذا لم يتم العثور على شبكات ، سوف تظهر الرسالة “No APs found – scanning… ”   قم بالانتظار بضع ثواني دون إغلاق القائمة، لتجد الشبكة.

raspberry-pi-iot-intruder-alert-system

انقر فوق الشبكة التي تريد الاتصال بها. سيظهر لك مربع يطلب منك إدخال مفتاح الشبكة :

wraspberry-pi-iot-intruder-alert-system

إدخل المفتاح واضغط موافق ، ثم انتظر بضع ثوان.

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

بعد توصيل الكاميرا إلى لوحة الراسبيري باي  ،  من قائمة البدء ثم preferences  قم بفتح Raspberry Pi Configuration Tool

wraspberry-pi-iot-intruder-alert-system

تأكد من أن الكاميرا مفعلة كما هو موضح بالصوة أدناه :

wraspberry-pi-iot-intruder-alert-system

إذا لم تكن مفعلة قم بتفعيلها عن طريق اختيار (Enable) ،   ثم قم بإعادة تشغيل نظام الراسبيري باي.

اعداد البريد الإلكتروني :

الآن بعد إعداد كاميرا الراسبيري باي ، سوف نقوم بتثبيت برنامج لإرسال البريد. هنا نحن نستخدم ssmtp وهو حل سهل وجيد لإرسال البريد باستخدام سطر الأوامر أو بإستخدام لغة البايثون.نحن بحاجة إلى تثبيت اثنين من المكتبات لإرسال الرسائل باستخدام SMTP :

قم بكتابة الأوامر اعلاه على نافذة الـ Terminal .

بعد تثبيت المكتبات، انت بحاجة إلى فتح ssmtp.conf و تعديل على اعدادات هذا الملف كما هو مبين في الصورة أدناه ثم قم بحفظ الملف.

wraspberry-pi-iot-intruder-alert-system

يمكننا أيضا التحقق من الإعدادات عن طريق إرسال بريد . قم بكتابة الأمر أدناه ، إذا كان كنت الإعدادات صحيحة سيتم ارسال بريد على عنوان البريد الإلكتروني المذكور :

البرمجة :

قم بتشغيل الكود أدناه ليتم البدء بتفعيل نظام أمن المنزل :

شرح الكود البرمجي :

برنامج البايثون في هذا المشروع يلعب دورا هاما للغاية لأداء جميع العمليات. أولا وقبل كل شيء، نحن بحاجة إلى درج مكتبات للبريد الإلكتروني المطلوبة، تهيئة المتغيرات و تحديد منافذ حساس الحركة (PIR sensor) و الLED وغيرها من العناصر .

بعد ذلك، قمنا بتهيئة البريد و تحديد عنوان البريد الإلكتروني و الرسائل :

ثم قمنا بإنشاء الدالة (sendMail(data لإرسال البريد :

قم بالتعديل على الكود أعلاه بوضع بوضع كلمة المرور الخاصة بالإيميل المرسل  .

يتم إنشاء الدالة ()capture_image  لإلتقاط صورة الدخيل و حفظها بإسم يحتوي على الوقت و التاريخ .

يتم تهيئة Picamera   مع بعض الإعدادات الخاصة به :

و في النهاية ، سيتم قراءة حساس الحركة و عندما نتلقى إشارة High  من الحساس ستقوم الراسبيري باي بإستدعاء الدالة ()capture_image   لإلتقاط صورة الدخيل/ المتسلل وإرسال رسالة تنبيه مع صورة المتسلل كمرفق. وقد تم إستدعاء الدالة  ()sendmail  داخل الدالة ()capture_image لإرسال البريد.

هذا كيف يعمل الراسبيري باي كنظام أمن وحماية، يمكنك أيضا إستخدام مستشعر المواجات فوق الصوتية (Ultrasonic  sensor ) أو مستشعر الأشعة التحت حمراء (IR sensor ) للكشف عن وجود لص أو دخيل .

راسبيري باي -الدرس الثاني عشر-حساس الأبواب وكاشف الحركة

في هذا الدرس، سوف تتعلم كيفية استخدام وربط المدخلات في الموصل GPIO لتوصيل وقراءة مستشعر الباب وحساس كشف الحركة PIR.

pir1

القطع

في هذا الدرس نحتاج للقطع التالية:

راسبيري باي

sm2

وصلة خارجية لتوصيل أرجل GPIO في لوحة الاختبار

sm3

أسلاك توصيل

sm4

لوحة الاختبار

sm5

حساس الحركة PIR

pir2

حساس الباب المغناطيسي

pir3

توصيل الأسلاك والقطع

الآن قم بالتوصيل كما في الصورة التالي مع مراعاة الدقة في التوصيل:

بالنسبة للحساس الحركة PIR تأكد من توصيل المقبس والأسلاك بشكل صحيح (استخدم الصورة أدناه) حسب الألوان كالتالي:

الأحمر يذهب إلى 5V

الأسود يذهب إلى GND

الأصفر يذهب إلى المخرج “الرجل” رقم 18

pir5

ملاحظة: حساس الحركة يحتاج إلى 5V ليعمل ولكنه يخرج الاشارة على مستوى 3.3V لذلك لا اشكال في توصيلها بشكل مباشر مع الراسبيري باي

سوف نستخدم إمكانيات الراسبيري باي لإنشاء مقاومة مع جهد عالي (pull-up resistor ) لمستشعر الباب لذلك نحن لا نحتاج إضافات خارجية لعمل مقاومة مع جهد عالي (pull-up resistor).

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

الكود البرمجي بسيط سوف يقوم بطباعة نص يحدد نوع الاستجابة في حال وصول أي اشارة من أحد الحساسين.

افتح نافذة SSH الخاصة بالراسبيري باي واكتب الأمر التالي لفتح ملف نصي جديد باسم switches:

الآن انسخ الكود البرمجي التالي ثم قم بالضغط على CTRL+x ثم إضغط Y لحفظ الملف:

أخيرًا لتشغيل البرنامج قم بكتابة الأمر التالي: