جدول المحتويات:

نظام أمان Raspberry Pi Laser: 13 خطوة (بالصور)
نظام أمان Raspberry Pi Laser: 13 خطوة (بالصور)

فيديو: نظام أمان Raspberry Pi Laser: 13 خطوة (بالصور)

فيديو: نظام أمان Raspberry Pi Laser: 13 خطوة (بالصور)
فيديو: أعلى مستوى وصلتوا في البرمجة 2024, يوليو
Anonim
Image
Image
صورة
صورة

شكرا للتحقق من تعليماتي. بنهاية هذا الدليل ، ستنشئ نظام raspberry pi laser tripwire مع وظيفة تنبيه البريد الإلكتروني التي تظهر في الفيديو.

لإكمال هذا التوجيه ، ستحتاج إلى أن تكون على دراية بالدوائر العامة واللحام ، ومعرفة كيفية استخدام اللوح ، وأن تكون مرتاحًا عند استخدام الجهاز على pi. امتلاك خبرة في لغة الثعبان سيكون مفيدًا أيضًا.

يتكون هذا المشروع من ثلاثة أنظمة رئيسية. توت العليق ، ودائرة الليزر ، وجهاز كمبيوتر للمراقبة. هدفنا هو استخدام raspberry pi لاكتشاف تغير الجهد في دائرة سلك التعثر بالليزر ، ثم تنبيه كمبيوتر المراقبة في شكل بريد إلكتروني ودفق فيديو.

هيا نبدأ.

الخطوة 1: تقريب المكونات المطلوبة

لإكمال هذا المشروع سوف تحتاج إلى العناصر التالية.

  1. Raspberry Pi واحد على الأقل تشغيلي. في هذا البناء ، استخدمت نموذج B على غرار Pi يعمل بالصفير الأحمر. أنا متأكد من أن هذا البرنامج التعليمي سيعمل بشكل جيد إذا كنت تقوم بتشغيل raspbian jessie.
  2. مصدر طاقة خارجي لـ Raspberry Pi. سنقوم برسم قدر كبير من التيار بمجرد توصيل كل هذا. لقد قضيت الكثير من الوقت في تشخيص مصدر طاقة سيء كمصدر للمشاكل أثناء بنائي الأول. تأكد من أن لديك طاقة قوية قادرة على الحصول على 2 أمبير على الأقل.
  3. مؤشر ليزر رخيص. وجدت خاصتي بجوار ماكينة تسجيل المدفوعات النقدية في محطة وقود. إذا كنت تريد الليزر الدقيق يمكنك العثور عليه هنا. تقول الملصق 630-680 نانومتر عن الطول الموجي. أيًا كان نوع الليزر الذي ستحصل عليه سيحدد بعض المكونات الأخرى في التصميم. لذا تأكد من أن الملصق يحدد الطول الموجي.
  4. كاميرا ويب على طراز USB. تحتوي كاميرا الويب هذه على قاعدة قابلة للتعديل تتيح لك وضع الكاميرا بشكل جيد. لقد اكتشفت أن كبل USB المرفق بكاميرا الويب كان قصيرًا جدًا بالنسبة لتطبيقي ، لذلك وجدت امتدادًا على monoprice.
  5. نوع من مجموعة أدوات الاختراق الخاصة بـ Raspberry Pi حتى تتمكن من الوصول بسهولة إلى المسامير الموجودة على المعالج.

    صورة
    صورة
    صورة
    صورة
  6. لوح التجارب.
  7. لحام الحديد.
  8. أسلاك توصيل للوح.
  9. مكونات الدائرة. اضرب في مقدار أسلاك الرحلة التي تريدها.

    • أدى عمل واحد
    • مقاوم واحد 100 أوم
    • مقاوم واحد 1 كيلو
    • مقاوم واحد 10 كيلو
    • مقاوم واحد 200 كيلو في الحقيقة أي مقاوم كبير سيفي بالغرض. لقد اختبرت ذلك بمقاوم 1M وعملت بشكل جيد. كانت FYI 10k صغيرة جدًا.
    • ترانزستور PNP واحد PN: 2N4403-APCT-ND
    • ثنائي ضوئي واحد (يطابق هذا مع الطول الموجي لليزر الخاص بك) PN: PDB-C142-ND

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

طوال فترة هذا المشروع ، وجدت الأدوات الاختيارية التالية في متناول يدي:

  1. تثبيت التآزر على التوت باي. في حال لم تكن مألوفًا ، سيسمح لك هذا البرنامج بالتحكم في الماوس ولوحة المفاتيح الخاصة بـ Raspberry Pi بجهاز كمبيوتر آخر. هذا لطيف إذا كنت مثلي وترتاح أكثر على جهاز كمبيوتر مختلف. هذا أيضًا برنامج يجب أن يمتلكه الجميع.
  2. محور USB. ستحتاج إلى منفذ واحد لكل كاميرا ويب ترغب في استخدامها.
  3. مقياس الجهد أو الذبذبات إذا كان لديك.
  4. استخدام MobaXterm للتحكم في raspberry pi ومعالجة الملفات من خلال ssh. إنه أمر لا بد منه لأي شخص نشأ على النوافذ. راجع هذا البرنامج التعليمي للحصول على الإعداد لاستخدامه.

الخطوة 2: احصل على Pi وتشغيله

  • صورة
    صورة

    pi مع الحد الأدنى من المكونات المرفقة

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

    بعد ذلك ، تأكد من أن Raspberry Pi الخاص بك يعمل بأحدث البرامج عن طريق إدخال ما يلي في الجهاز

    sudo apt-get update

    مع تحديث raspberry pi ، حان الوقت للخطوة التالية

    الخطوة 3: قم بإنشاء دائرة الكشف عن الليزر

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

    • صورة
      صورة

      الشكل 1: أعلى تخطيط الدائرة اللوح

    • صورة
      صورة

      الشكل 2: عرض بديل لتخطيط لوحة الدوائر

    إذا كنت تريد مظهرًا أنظف ، فقد أرفقت ملفات kicad للوحة الموضحة أدناه.

    • صورة
      صورة

      الشكل 3: منظر علوي للوحة المستشعر

    • صورة
      صورة

      الشكل 4: لوحة الاستشعار ISO

    • الخطوة 4: تعديل الليزر للطاقة الخارجية

      في الخطوات التالية سوف تقوم ببناء مجموعة مؤشر الليزر.

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

      • صورة
        صورة

        يحل السلك البرتقالي محل زر الضغط اللحظي

      • صورة
        صورة

        إظهار الخيوط الإيجابية والسلبية

      - تتمثل الخطوة الأخيرة في عمل عمود تثبيت اتجاهي لليزر بحيث يمكن ضبطه بسهولة لتوجيهه إلى وعاء الليزر. لقد وجدت أن معظم مجموعات lego bionicle مصدرًا ممتازًا للكرة الرخيصة في مفاصل التجويف. ألصق قطعة واحدة من الوصلة الكروية بمؤشر الليزر باستخدام الغراء الفائق. يمكنك الآن تركيب مفصل المقبس على أي سطح وإدخال الليزر فيه.

      • صورة
        صورة

        مفصل كروي

      • صورة
        صورة

        مأخذ مشترك

      • صورة
        صورة

        تم تجميع الكرة والمقبس

      • الخطوة 5: شغّل الليزر واختبر دائرة الكشف

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

        • صورة
          صورة

          يعمل الليزر بشعاع صحي

        بمجرد حصولك على إشعاع الليزر ، حان الوقت لاختبار دائرة الكشف. وجّه الليزر إلى الثنائي الضوئي. يجب أن ينطفئ مؤشر LED للإشارة إلى أن الحزمة نشطة. قم بتلويح سلمك عبر الشعاع ويجب أن يضيء مؤشر LED للإشارة إلى رحلة.

        • صورة
          صورة

          الشعاع غير مكسور والمصباح مطفأ

        • صورة
          صورة

          دخيل يكسر الشعاع مما يؤدي إلى تضيء الصمام

        • الخطوة 6: قم بتوصيل كاميرا الويب الخاصة بك واختبر وظائفها

          قم بتوصيل كاميرا الويب الخاصة بك بمنفذ USB. من أجل دفق الفيديو ، نحتاج إلى الحصول على الأداة المساعدة mjpg-streamer. إليك برنامج تعليمي رائع حول كيفية القيام بذلك. بمجرد تثبيت mjpg-streamer بشكل صحيح. ابدأ دفق الفيديو عن طريق إدخال الأمر التالي في الجهاز.

          cd / حيث قمت بتثبيت mjpg-streamer / mjpg-streamer

          ./mjpg_streamer -i "./input_uvc.so -y / dev / video0" -o "./output_http.so -w./www -p 8081"

          سيقوم هذا الأمر بإعداد دفق على المنفذ 8081 باستخدام مصدر video0. إذا كنت تريد عدة كاميرات ويب ، أدخل الأمر أعلاه مرة أخرى ولكن غيّر video0 إلى video1 و 8081 إلى 8082. لقد قمت بدفق ما يصل إلى 3 كاميرات ويب بهذه الطريقة ولم يتم تحميل pi بشكل زائد.

          اختبر أن الاتصال يعمل عن طريق فتح مستعرض على جهاز كمبيوتر آخر وأدخل عنوان ip-address-of-pi: 8081 أو في pi ، يمكنك فقط إدخال localhost: 8081. إذا كنت لا تعرف عنوان IP الخاص بك لـ pi ، فأدخل ما يلي في Terminal

          ifconfig

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

          • صورة
            صورة

            إخراج عينة mjpg-streamer

          أثناء القيام بهذا البرنامج التعليمي للمرة الثانية ، تمكنت من الوصول إلى الصفحة الرئيسية لـ mjpg-streamer ولكني لم أرَ بثًا. لإصلاح هذا ، قرأت هذا المنشور (الرابط معطل الآن) ، وتحديداً الجزء المتعلق بتنسيق YUYV بكسل ، إذا واجهت دفقًا فارغًا ، فيجب عليك الرجوع إليه أيضًا.

          الخطوة 7: الاستراحة

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

          حان الوقت الآن لتجميعها معًا. لنبدأ ببساطة بمحاولة اكتشاف تعثر شعاع الليزر بالبرنامج.

          اربط دائرة الكشف بلوحة التجارب كما هو موضح. تأكد من توصيل سلك إشارة المستشعر بالطرف 25 استعدادًا للخطوة التالية. المقاوم المنسدل ليس اختياريًا. كان لدي 10 كيلو متراصة ، لكن أي مقاوم يجب أن يفعل.

          • صورة
            صورة

            تخطيط اللوح مع PiCobler

          • الخطوة 8: مراقبة الليزر بالبرنامج

            دعنا نكتب برنامجًا قصيرًا للاستماع إلى إشارة الليزر وإرسال هذا الإخراج إلى الجهاز. يمكنك تنزيل الرمز كمرفق.

            ربما تحتاج إلى تثبيت التبعيات لهذا البرنامج النصي. بايثون ووحدة gpio. لتثبيت هذه أدخل

            sudo apt-get install python-rpi.gpio python3-rpi.gpio

            بمجرد الانتهاء من تثبيت Python بنجاح ، قم بتنزيل برنامج python النصي المرفق المسمى read_pin.py وتشغيله

            cd / حيث تضع الملف / chmod 777 read_pin.py

            الأمر chmod سيمنح البرنامج النصي الإذن بالتشغيل. ثم اختبر أن كل شيء على ما يرام ورائع عن طريق الجري

            sudo python3 read_pin.py

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

            السيطرة- C

          • صورة
            صورة

            إخراج وحدة التحكم الصحيح (يظهر باستخدام MobaXterm)

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

          الخطوة 9: قم بإنشاء صفحة ويب لعرض البث الخاص بك

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

          sudo apt-get install apache2

          بمجرد التثبيت ، يجب أن تكون قادرًا على الكتابة في متصفحك على raspberry pi

          مضيف محلي

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

          الملفات المرفقة هي نماذج لصفحات الويب التي يمكنك استخدامها لإعداد موقع الويب الخاص بك. ستحتاج إلى تغيير امتداد الملف في ملف html لأنهم لن يسمحوا لي بتحميله. بعد ذلك ، ضع الملفات في مجلد www التي تم استدعاؤها في ملف تكوين apache. الموقع الافتراضي هو

          cd / var / www

          إذا كنت ترغب في تغيير الموقع الذي يبحث فيه خادم الويب عن ملفات html الخاصة بك ، يمكنك تحرير ملف تمكين المواقع عن طريق إدخال

          sudo nano / etc / apache2 / sites-enabled / 000-default

          قم بتغيير أي مثيل لـ / var / www / إلى الموقع الذي تريده. أضع خاصتي في / home / pi / Desktop / www /

          بمجرد حصولك على ملفات html في مجلد الويب ، أدخل المضيف المحلي في المستعرض أو عنوان IP الخاص بـ pi من جهاز كمبيوتر آخر. يجب أن نرى شيئا من هذا القبيل.

          • صورة
            صورة

            لقطة شاشة للملفات المرفقة قيد التشغيل

          سويت!

          الخطوة العاشرة: إعداد تنبيهات البريد الإلكتروني

          أشياء جيدة تحدث! دعنا نضغط على حظنا بمحاولة إرسال تنبيه عبر البريد الإلكتروني من pi إلى عنوان بريد إلكتروني محدد مسبقًا. سينشئ نص python النصي المرفق بريدك الإلكتروني الذي ترغب في إرساله ، والاتصال بموفر بريد إلكتروني مثل gmail ، وإرسال البريد الإلكتروني باستخدام مزود البريد الإلكتروني. يتم تحقيق ذلك باستخدام حزمة smtp من python. أقترح عليك إنشاء عنوان بريد إلكتروني وهمي فقط لنظام الأمان الخاص بك حيث سيتعين علينا تقليل الأمان على حساب Gmail الخاص بك حتى تعمل حزمة smtp.

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

          الأشياء التي ستحتاج إلى تغييرها ستكون

          • your_ip = "192.168.0.177"
          • your_ip_optional_port = ": 8080"
          • port_to_camera = ": 8081"
          • send_email_username = "اسم مستخدم بريدك الإلكتروني"
          • Send_email_password = "كلمة مرورك"

          من المرجح أن يكون your_ip_optional_port فارغًا ما لم يكن خادم apache الخاص بك يعمل على منفذ بخلاف المنفذ الافتراضي 80. كان لدي خادم يعمل بالفعل على 80 لذا قمت بتعيين pi للتشغيل على 8080. سيكون port_to_camera هو المنفذ الذي تحدد الكاميرا له تشغيل باستخدام mjpeg غاسل.

          بمجرد تغيير هذه المتغيرات في بداية البرنامج النصي ، قم بتشغيل البرنامج عن طريق إدخال ما يلي في المحطة.

          القرص المضغوط / المجلد الذي وضعت فيه البرنامج النصي /

          sudo python3 send_mail.py

          إذا تمت محاذاة النجوم بشكل صحيح وكانت جميع المتغيرات صحيحة ، يجب أن تتلقى بريدًا إلكترونيًا مشابهًا لذلك أدناه.

          • صورة
            صورة

            لقطة شاشة للملفات المرفقة قيد التشغيل

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

          الخطوة 11: تشغيل البرنامج النصي للبريد الإلكتروني عند تعطل الليزر

          الآن بعد أن أصبح pi قادرًا على إرسال رسائل بريد إلكتروني ، فلنقم بأتمتة ذلك بحيث نتلقى بريدًا إلكترونيًا في كل مرة يتم فيها تعطل الليزر. قم بتنزيل الملف المرفق وهو نسخة معدلة من read_pin.py والتي تحتوي على وظيفة جديدة لتشغيل البرنامج النصي للبريد. السطر الإضافي الرئيسي هو التالي

          sm_pid = os.spawnlp (os. P_NOWAIT، "/ usr / bin / python3"، "python3"، "/home/pi/Desktop/security/send_mail.py")

          سيطلق هذا الخط نص إرسال البريد بالتوازي مع البرنامج النصي لاستشعار الليزر. هذا أمر مرغوب فيه لأن نص إرسال البريد يستغرق بضع ثوانٍ حتى يكتمل وسيحظر تشغيل البرنامج النصي لاستشعار الليزر حتى يتم إرسال البريد الإلكتروني. هذه ليست مشكلة لنظام كاميرا واحد ، ولكن إذا كان لديك عدة كاميرات ، فقد ترغب في اكتشاف رحلة ليزر على الكاميرا 1 حتى إذا كانت الكاميرا 2 قد أطلقت حدث بريد إلكتروني. سيحتوي المتغير sm_pid على pid للعملية التي يتم تشغيلها بواسطة هذا الأمر. نتحقق من هذا المعرف إذا تم استدعاء مشغل البريد الإلكتروني مرة أخرى إذا كان موجودًا ولا يزال البريد الإلكتروني يرسل ، لذلك نتجاهل الحدث. إذا لم يكن موجودًا ، فمن المحتمل أن يكون هذا حدثًا جديدًا ويتم إرسال بريد إلكتروني.

          اختبار كل شيء يعمل عن طريق التشغيل

          cd / الدليل حيث وضعت الملف /

          chmod 777 read_pin_with_mail.py

          sudo python3 read_pin_with_mail.py

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

          الخطوة 12: قم بإنشاء برنامج نصي رئيسي لبدء النظام

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

          الخطوة 13: الخاتمة

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

          • صورة
            صورة

    موصى به: