الكود البرمجى
فى البداية نقوم بفتح ال Terminal الخاص ب الراسبري باي وكتابة الأوامر التالية أو نقوم بفتح نافذه الـ SSH الخاصة بها من جهاز آخر مربوط معها على نفس الشبكة كما تم شرحة فى الدرس الخامس.
نقوم بكتابة الأمر التالي الذى يقوم بفتح محرر النصوص الشهير Nano ويقوم بإنشاء ملف اسمه off_button_pi.py لكتابة الكود بداخلة بلغة البايثون python.
nano off_button_pi.py
نقوم بكتابة الكود التالي بداخل الملف السابق
ثم نقوم بالضغط على 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 كالتالى.
ثم نقوم بالضغط على Ctrl+O ثم enter ثم Ctrl+X وذلك لحفظ الملف السابق.
كل ما تبقى عليك هو عمل reboot للراسبرى باى هكذا.
sudo reboot
تستطيع الآن الضغط على زر الإغلاق وهو سيقوم بطريقة سليمة وصحيحة بإغلاق الراسبرى باى.