عناوين الدرس

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

مبتدئ

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

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.

nano off_button_pi.py

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

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 فيمكنك تعديل هذا الملف.

sudo nano /etc/rc.local

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

4

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

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

sudo reboot

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

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