- المكونات مطلوبة
- مخطط الرسم البياني
- إعداد قارورة في Raspberry Pi للتحكم في باب المرآب
- إنشاء نص Python لـ Smart Garage Door Opener
- إنشاء صفحة HTML لخادم الويب Raspberry Pi
- {{pin.name}} {٪ if pin.state == true٪} مفتوح حاليًا
في عصر IoT (إنترنت الأشياء) حيث يمكن التحكم في كل شيء عن بُعد باستخدام هاتفك الذكي ، فلماذا تحمل المفاتيح معك. هناك الكثير من التقنيات لدعم التحكم اللاسلكي في الأجهزة مثل RFID و Bluetooth و Wi-Fi و LoRa. لقد قمنا سابقًا ببناء بعض أجهزة إنذار الباب ودائرة التحكم في الباب لفتح وإغلاق الباب لاسلكيًا:
- اردوينو قفل الباب RFID
- نظام فتح الباب الأوتوماتيكي باستخدام الأردوينو
- دائرة إنذار الباب المغناطيسي باستخدام مستشعر القاعة
- إنذار أمان الباب المستند إلى إنترنت الأشياء الذي يتحكم فيه مساعد Google
هنا في هذا البرنامج التعليمي ، سنقوم ببناء Smart Garage Door Opener باستخدام Raspberry Pi. هنا سيتم إنشاء خادم ويب Raspberry Pi لفتح وإغلاق باب المرآب باستخدام هاتفك الذكي.
المكونات مطلوبة
- لوحة Raspberry Pi مع Raspbian مثبتة فيها
- وحدة الترحيل
- توصيل الأسلاك
من المفترض أن Raspberry Pi الخاص بك يومض بالفعل بنظام تشغيل ويمكنه الاتصال بالإنترنت. إذا لم يكن كذلك ، فاتبع البرنامج التعليمي Getting started with Raspberry Pi قبل المتابعة. نحن هنا نستخدم Raspberry Jessie المثبت Raspberry Pi 3.
هنا يتم استخدام الشاشة الخارجية باستخدام كابل HDMI كشاشة للتواصل مع Raspberry Pi. إذا لم يكن لديك شاشة ، يمكنك استخدام عميل SSH (معجون) أو خادم VNC للاتصال بـ Raspberry pi باستخدام الكمبيوتر المحمول أو الكمبيوتر. تعرف على المزيد حول إعداد Raspberry Pi بدون رأس هنا.
مخطط الرسم البياني
قم بتوصيل آلية فتح باب المرآب بإخراج المرحل. هنا قمنا للتو بتوصيل مصباح LED مع مرحل لغرض العرض التوضيحي.
إعداد قارورة في Raspberry Pi للتحكم في باب المرآب
هنا ، قمنا بإنشاء خادم ويب باستخدام Flask ، والذي يوفر طريقة لإرسال الأوامر من صفحة الويب إلى Raspberry Pi للتحكم في الروبوت عبر الشبكة. يتيح لنا Flask تشغيل برامج Python النصية الخاصة بنا من خلال صفحة ويب ويمكننا إرسال واستقبال البيانات من Raspberry Pi إلى متصفح الويب والعكس صحيح. Flask هو إطار مصغر لبايثون. تعتمد هذه الأداة على Unicode مع خادم تطوير ومصحح أخطاء مدمجين ، ودعم اختبار وحدة متكامل ، ودعم ملفات تعريف الارتباط الآمنة وسهولة استخدامها ، وهذه الأشياء تجعلها مفيدة للهواة.
قم بتشغيل الأوامر التالية لتثبيت القارورة في Raspberry Pi الخاص بك:
sudo apt-get update sudo apt-get install python-pip python-flask
الآن ، قم بتشغيل الأمر pip لتثبيت Flask وتبعياته:
قارورة تثبيت sudo pip
يمكنك معرفة المزيد حول البرمجة باستخدام Flask هنا ، وكذلك التحقق من مشاريعنا السابقة حيث استخدمنا Flask للتحكم في الروبوت من خلال خادم الويب ، وإرسال الرسالة من صفحة الويب إلى Raspberry Pi وإرسال قيمة الوزن إلى Raspberry Pi في Smart Container.
الآن ، سنكتب برنامج نصي بيثون لخادم ويب باب المرآب الخاص بنا.
إنشاء نص Python لـ Smart Garage Door Opener
سيتفاعل هذا البرنامج النصي مع Raspberry Pi GPIOs ويقوم بإعداد خادم الويب. إذن ، هذا هو النص الأساسي لتطبيقنا. تم تقديم برنامج Python Script الكامل لمفتاح الباب في النهاية ، وقد أوضحنا هنا أجزاء قليلة منه.
أولاً ، قم بعمل مجلد. يجب أن تكون جميع المجلدات المطلوبة الأخرى في هذا المجلد فقط. قم بتشغيل الأوامر أدناه لإنشاء مجلد وإنشاء ملف python يسمى app.py داخل هذا المجلد.
mkdir garage_door cd garage_door nano app.py
سيؤدي هذا إلى فتح محرر Nano حيث يتعين علينا كتابة البرنامج النصي.
ابدأ بتضمين مكتبات مهمة.
استيراد RPi.GPIO كـ GPIO من flask import Flask، render_template، request app = Flask (__ name__، static_url_path = '/ static')
الآن ، قم بإنشاء قاموس كدبابيس لتخزين رقم التعريف الشخصي والاسم وحالة الدبوس. يمكنك استخدام أكثر من دبوس حسب حاجتك.
دبابيس = { 14: {'name': 'Garage Door'، 'state': GPIO.LOW} }
ثم قم بتعيين الدبوس كإخراج واجعله منخفضًا في البداية.
لدبابيس في المسامير: GPIO.setup (دبوس ، GPIO.OUT) GPIO.output (دبوس ، GPIO.LOW)
الآن ، قم بعمل وظيفة رئيسية لقراءة حالة الدبوس وتخزين هذه الحالة في متغير.
@ app.route ("/") def main (): للدبوس في الدبابيس: الدبابيس = GPIO.input (pin) ..
يتعين علينا تمرير هذه البيانات إلى صفحة html الخاصة بنا حتى نتمكن من التحكم في حالة زر الإدخال.
إرجاع render_template ('main.html'، ** templateData)
الآن ، قم بعمل وظيفة للتعامل مع الطلبات من عنوان URL برقم التعريف والإجراء الموجود فيه.
@ app.route ("/
تحويل الدبوس من عنوان URL إلى عدد صحيح.
changePin = int (changePin)
إذا كان جزء الإجراء من عنوان URL هو "فتح" ، فقم بما يلي.
إذا كان الإجراء == "فتح": GPIO.output (changePin، GPIO.HIGH) إذا كان الإجراء == "إغلاق": GPIO.output (changePin، GPIO.LOW)
يمكنك نسخ النص الكامل من نهاية هذا البرنامج التعليمي وحفظه باستخدام ctrl + x ثم الضغط على Enter. لقد انتهينا من نص بيثون. الآن ، يتعين علينا إنشاء صفحة HTML للتفاعل مع نص Python النصي.
إنشاء صفحة HTML لخادم الويب Raspberry Pi
في نفس مجلد garage_door ، أنشئ مجلدًا آخر باسم القوالب وداخل هذا المجلد أنشئ ملف.html باستخدام الأوامر أدناه.
mkdir قوالب cd القوالب nano main.html
في محرر نصوص nano ، اكتب كود html. يمكنك تحرير ملف جزء من الصفحة وتصميمه وفقًا لاختيارك. لقد استخدمت للتو نظام css للجهات الخارجية باستخدام علامة الارتباط كود HTML الكامل موضح أدناه:
خادم ويب باب المرأب
{٪ للدبوس في الدبابيس٪}{{pin.name}} {٪ if pin.state == true٪} مفتوح حاليًا
هنا الجزء المهم هو أن إنشاء زر لفتح وإغلاق الباب وتعيين الدولة ل فتح و ثيق زر. سيقوم الزر بإرسال وجلب حالة GPIO من نص Python النصي.
يمكنك استخدام كود HTML المذكور أعلاه في المحرر وحفظه. الآن خادم الويب جاهز للتشغيل.
افتح الجهاز وانتقل إلى مجلد garage_door وقم بتشغيل الأمر أدناه
sudo python app.py
افتح المتصفح وأدخل عنوان IP الخاص بـ raspberry pi واضغط على Enter. للعثور على عنوان IP الخاص بك ، يمكنك تشغيل الأمر أدناه في Terminal.
اسم المضيف -أنا
سترى صفحة مثل هذه.
تأكد من توصيل وحدة الترحيل بـ Raspberry Pi. اضغط على الزر فتح لتشغيل المرحل أو لفتح باب المرآب. يمكنك أيضًا رؤية حالة التتابع. بمجرد تشغيل "الترحيل" ، سيتم تغيير نص الزر " إغلاق" لإيقاف تشغيل التتابع. الآن عند النقر فوق الزر مرة أخرى ، سيتم إيقاف تشغيل الترحيل وسيتم تغيير نص الزر إلى فتح مرة أخرى.
لإيقاف الخادم ، اضغط على ctrl + c.
لذا ، ما عليك سوى توصيل هذا المرحل ببعض آلية Door Opener ، المتوفرة بسهولة في السوق ، وابدأ في التحكم في باب المرآب باستخدام الهاتف الذكي.
يوجد فيديو توضيحي أدناه.