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

نظام أمان التعرف على الوجه للثلاجة المزودة بـ Raspberry Pi: 7 خطوات (بالصور)
نظام أمان التعرف على الوجه للثلاجة المزودة بـ Raspberry Pi: 7 خطوات (بالصور)

فيديو: نظام أمان التعرف على الوجه للثلاجة المزودة بـ Raspberry Pi: 7 خطوات (بالصور)

فيديو: نظام أمان التعرف على الوجه للثلاجة المزودة بـ Raspberry Pi: 7 خطوات (بالصور)
فيديو: طريقه ظبط ثلاجه شارب ١٨ قدم بلازما ونحافظ علي الاكل ونختار درجه حراره مناسبه 2024, شهر نوفمبر
Anonim
Image
Image
نظام أمان التعرف على الوجه للثلاجة المزودة بـ Raspberry Pi
نظام أمان التعرف على الوجه للثلاجة المزودة بـ Raspberry Pi
نظام أمان التعرف على الوجه للثلاجة المزودة بـ Raspberry Pi
نظام أمان التعرف على الوجه للثلاجة المزودة بـ Raspberry Pi

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

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

كيف يعمل؟ كاميرا IP الموضوعة أعلى الثلاجة ، أجهزة الاستشعار (زرين) تكتشف متى يفتح الشخص باب الثلاجة ، بعد ذلك يلتقط Raspberry Pi صورة لذلك الشخص (بكاميرا IP) ، ثم يرسلها إلى Microsoft Face API لتحليل الصورة والحصول على اسم الشخص. باستخدام هذه المعلومات ، يقوم Raspberry Pi بمسح "قائمة الوصول": إذا لم يكن لدى الشخص إذن للوصول إلى الثلاجة ، يقوم Raspberry بإخطار المالك عبر البريد الإلكتروني والرسائل النصية والتويتر! (انظر الصور أعلاه)

لماذا ا؟ يتيح لك النظام التحكم في أفراد أسرتك ، خاصةً عندما يكونون على نظام غذائي ، أو يعانون من عدم تناول الطعام بعد منتصف الليل! أو استخدمها للمتعة فقط!

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

هيا نبدأ!

الخطوة الأولى: التحضير

تحضير
تحضير

سوف تحتاج:

  • Raspberry Pi 3 (يمكنك استخدام الإصدارات الأقدم ، لكن الجيل الثالث مزود بشبكة Wi-Fi ، لذا فهي مريحة للغاية)
  • أزرار
  • الأسلاك
  • الهاتف الذكي القديم أو كاميرا Raspberry Pi

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

  1. قم بتنزيل Win32 DiskImager من هنا (إذا كنت تستخدم Windows)
  2. قم بتنزيل SD Formatter من هنا
  3. أدخل بطاقة SD في جهاز الكمبيوتر الخاص بك وقم بتهيئتها باستخدام SD Formatter
  4. قم بتنزيل صورة Raspbian من هنا (اختر "Raspbian Jessie with pixel")
  5. قم بتشغيل Win32 DiskImager ، واختر بطاقة SD الخاصة بك ، وحدد المسار إلى صورة Raspbian ، وانقر فوق "كتابة"
  6. أدخل بطاقة SD في Raspberry Pi وقم بتشغيل الطاقة!

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

الآن تم تكوين Pi الخاص بك وأنت على استعداد للمتابعة!

الخطوة الثانية: عمل جهاز استشعار

صنع جهاز استشعار
صنع جهاز استشعار
صنع جهاز استشعار
صنع جهاز استشعار
صنع جهاز استشعار
صنع جهاز استشعار

وصف الخطوة: في هذه الخطوة ، سنقوم بعمل مستشعر يكتشف متى يفتح الشخص باب الثلاجة وينشط Raspberry Pi.

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

  1. أسلاك لحام لأزرار.
  2. اربط الزر الأول بباب الثلاجة بحيث يتم دفعه عند غلق الباب (انظر الصورة أعلاه)
  3. اربط الزر الثاني بباب الثلاجة كما هو موضح بالصورة أعلاه. يجب تحرير هذا الزر في جميع الأوقات ، إلا عندما يصل الباب إلى النقطة التي يلتقط فيها النظام صورة. لإعداده ، تحتاج إلى إرفاق شيء ما بالثلاجة بحيث يتم الضغط على هذا الزر عند فتح الباب إلى الحد المطلوب (انظر الصور أعلاه).
  4. قم بتوصيل الأسلاك من الأزرار بـ Raspberry Pi: الزر الأول بـ GPIO 23 والأرضي ، والزر الثاني بـ GPIO 24 والأرضي (انظر الرسم التخطيطي المتقلب).

ملاحظة: أستخدم BCM pinout (وليس اللوحة) ، اقرأ المزيد عن الفرق هنا.

بمجرد الاتصال بـ Raspberry Pi الخاص بك عبر SSH ، لتشغيل python shell ، اكتب Terminal:

بيثون 3

إذا كنت تقوم بتوصيل الشاشة ولوحة المفاتيح بـ Raspberry Pi ، فما عليك سوى تشغيل "Python 3 IDLE" من القائمة.

الخطوة التالية هي جعل Raspberry Pi يعمل مع الأزرار. سنقوم بإرفاق مستمعين خاصين بمسامير GPIO 23 و 24 ، والتي ستستمع إلى حدث "الحافة الصاعدة" وحدث "الحافة المتساقطة" على تلك المسامير. في حالة وقوع الحدث ، سوف يستدعي المستمعون الوظائف التي حددناها. تعني "الحافة الصاعدة" أنه تم الضغط على الزر وتحريره الآن (الزر الأول - الباب مفتوح) ، "الحافة المتساقطة" تعني أنه تم تحرير الزر والضغط عليه الآن (الزر الثاني - الباب وصل إلى نقطة معينة). المزيد عن وظائف الأزرار - هنا.

أولاً ، قم باستيراد مكتبة تتيح لنا الوصول إلى الدبابيس:

استيراد RPi. GPIO كـ GPIO

حدد الآن الوظائف الخاصة التي سيتم استدعاؤها عند تشغيل الحدث:

مستشعر def 1 (قناة): طباعة ("مستشعر 1 تم تشغيله") def sensor2 (قناة): طباعة ("مستشعر 2 تم تشغيله)

تعيين نوع pinout:

GPIO.setmode (GPIO. BCM)

تكوين الدبابيس:

GPIO.setup (23، GPIO. IN، pull_up_down = GPIO. PUD_UP) GPIO.setup (24، GPIO. IN، pull_up_down = GPIO. PUD_UP)

إرفاق المستمعين:

GPIO.add_event_detect (23، GPIO. RISING، callback = sensor1، bouncetime = 300) GPIO.add_event_detect (24، GPIO. FALLING، callback = sensor2، bouncetime = 300)

الآن يمكنك اختباره! إذا ضغطت على الزر 1 ، فسترى رسالة في المحطة الطرفية "تم تشغيل المستشعر 1" ، ويعطيك الزر 2 رسالة "تم تشغيل المستشعر 2".

ملاحظة: عند الانتهاء من التجربة ، لا تنس استدعاء الوظيفة التالية: GPIO.cleanup ().

لنقم بإعداد وظيفة أخرى يتم استدعاؤها عندما يصل الباب إلى النقطة التي نلتقط فيها صورة! يمكنك القيام بذلك بنفسك أو استخدام التنفيذ الخاص بي الذي أرفقته هنا (sensor.py)

ملاحظة: يتم استخدام sensor.py فقط لأغراض الاختبار ، والملفات ذات الوظائف الكاملة التي أرفقتها بالخطوة الأخيرة.

الخطوة 3: تكوين كاميرا IP

تكوين كاميرا IP
تكوين كاميرا IP
تكوين كاميرا IP
تكوين كاميرا IP
تكوين كاميرا IP
تكوين كاميرا IP

وصف الخطوة: سنقوم الآن بتكوين الهاتف الذكي القديم ككاميرا IP.

يتم استخدام الهاتف الذكي ككاميرا IP عبر التطبيق. هناك تطبيقات مختلفة لنظام التشغيل Android و iOS و Windows Phone يمكنك استخدامها. لقد اخترت الجهاز المسمى "IP Webcam" لنظام Android. هذا تطبيق مجاني ومن السهل تكوينه.

قم بتشغيل التطبيق ، انتقل إلى "تفضيلات الفيديو" لإعداد دقة الصور التي سيوفرها التطبيق. ثم انقر على "بدء الخادم" (الصورة الأولى أعلاه). في الجزء السفلي من الشاشة ، يجب أن ترى عنوان IP الخاص بالكاميرا (انظر الصورة الثانية أعلاه). في المتصفح يمكنك كتابة https://cam_ip_address/photo-j.webp

أخيرًا ، قم بتوصيل الكاميرا بالثلاجة (الصورة الأخيرة أعلاه).

الخطوة 4: واجهة برمجة تطبيقات الوجه

واجهة برمجة تطبيقات الوجه
واجهة برمجة تطبيقات الوجه

وصف الخطوة: في هذه الخطوة سنتحدث عن واجهة برمجة تطبيقات Microsoft Face API التي تقوم بالتعرف على الوجه والتعرف على الأشخاص.

Microsoft Face API هي خدمة للتعرف على الوجوه ، يمكننا من خلالها تحليل الصور وتحديد الأشخاص عليها.

أولاً ، أنت بحاجة إلى حساب Microsoft Azure. إذا لم يكن لديك واحد يمكنك إنشاؤه مجانًا هنا.

ثانيًا ، انتقل إلى https://portal.azure.com ، وانقر فوق "جديد" في الجانب الأيسر ، واكتب في النموذج "Cognitive Services APIs" ، وحدده وانقر فوق "إنشاء". أو يمكنك فتح هذا الرابط. أنت الآن بحاجة إلى إدخال اسم الخدمة الخاصة بك ، وتحديد نوع الاشتراك ، ونوع واجهة برمجة التطبيقات التي تحتاجها (في حالتنا ، إنها واجهة برمجة التطبيقات Face API) ، والموقع ، وطبقة التسعير ، ومجموعة الموارد ، والموافقة على الشروط القانونية (انظر لقطة الشاشة المضافة إلى هذه الخطوة).

ثالثًا ، انقر فوق "جميع الموارد" ، وحدد خدمة Face API واطلع على إحصائيات الاستخدام وبيانات الاعتماد وما إلى ذلك.

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

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

  1. أنشئ مجموعة
  2. أضف أشخاصًا إلى هذه المجموعة
  3. أضف وجوهًا لهؤلاء الأشخاص
  4. مجموعة القطار
  5. أرسل صورة مع الشخص الذي تريد تحديد هويته (عليك تقديم صورة ومعرف المجموعة الذي ستبحث فيه الخدمة عن مرشحين)
  6. النتيجة: ردًا على ذلك ، ستحصل على قائمة بالمرشحين الذين يمكن أن يكونوا على الصورة التي أرسلتها.

لقد أنشأت ثلاثة ملفات بوظائف محددة تتيح العمل مع المجموعات والأشخاص الفرديين والصور الفردية:

  • PersonGroup.py - يحتوي على ميزات تتيح: إنشاء مجموعة والحصول على معلومات حول المجموعة والحصول على قائمة بكل مجموعاتك وتدريب المجموعة والحصول على حالة التدريب
  • Person.py - يحتوي على ميزات تتيح: إنشاء شخص ، والحصول على معلومات الشخص ، وإدراج جميع الأشخاص في مجموعة محددة ، وإضافة وجوه لشخص معين
  • Face.py - يحتوي على ميزات تسمح بما يلي: اكتشاف الوجه على الصورة ، وتحديد الشخص ، والحصول على اسم الشخص المحدد

في الملف المسمى "Recogn.py" ، أقدم ميزات تسمح لك بالتحقق مما إذا كانت الصورة تحتوي على وجه وإضافة وجوه لشخص معين (يضيف تلقائيًا وجهًا من العديد من الصور من مجلد محدد).

قم بتنزيل الملف المرفق بهذه الخطوة ، وفك ضغطه ، وتغيير المتغير العام "KEY" في هذه الملفات الثلاثة: PersonGroup.py ، و Person.py ، و Face.py إلى مفتاحك الخاص الذي يمكنك العثور عليه: portal.azure.com> جميع الموارد > خدمة واجهات برمجة التطبيقات (أو كيف سميتها)> علامة تبويب المفاتيح. يمكنك استخدام أي من المفتاحين.

ملاحظة: سنقوم هنا بتدريب خدمة Face API على التعرف على الأشخاص ، لذلك يمكن تنفيذ الإجراءات التالية من أي جهاز كمبيوتر (ليس هناك حاجة لـ Raspberry Pi لذلك) - يتم حفظ التغييرات على خادم Microsoft.

بعد تغيير KEY ، قم بتشغيل Recogn.py وأدخل الأمر التالي في python shell:

PersonGroup.create ("family"، 'fff-fff')) // يمكنك استخدام اسمك ومعرفك من أجل

مجموعة printResJson (PersonGroup.getPersonGroup ('fff-fff'))

يجب أن ترى بيانات حول المجموعة التي أنشأتها للتو. أدخل الآن:

printResJson (Person.createPerson ("fff-fff" ، "اسم الشخص"))

الآن تحصل على هوية الشخص. إنشاء مجلد يحتوي على صور لهذا الشخص بحيث تحتوي جميع الصور على وجه هذا الشخص. يمكنك استخدام وظيفة DiscoverFaceOnImages في Recogn.py والتي تعرض لك الصور التي تم اكتشاف وجهها. الآن ، قم بتشغيل الأمر:

addFacesToPerson ("مجلد به صور" ، "معرف الشخص الذي حصلت عليه بعد الأمر السابق" ، "fff-fff")

ثم يتعين علينا تدريب خدمتنا بإدخال ما يلي:

PersonGroup.trainPersonGroup ('fff-fff') printResJson (PersonGroup.getPersonGroupTrainingStatus ('fff-fff'))

الآن مجموعتنا مدربة ومستعدة لتحديد هوية الشخص.

للتحقق من الشخص الموجود على الصورة ، يمكنك:

Face.checkPerson (صورة ، "fff-fff")

ردًا على ذلك ، ستحصل على قائمة بالمرشحين والاحتمالات الموجودين في الصورة.

ملاحظة: في كل مرة تقوم فيها بإضافة وجوه لشخص أو شخص إلى مجموعة ، عليك تدريب المجموعة!

الخطوة 5: تكوين Node-Red

تكوين العقدة الحمراء
تكوين العقدة الحمراء

وصف الخطوة: في هذه الخطوة ، سننشئ تدفق Node-Red الذي سيعلمك بانتهاك الوصول إلى ثلاجتك =)

إذا كان Raspberry Pi يعمل على Raspbian Jessie في نوفمبر 2015 أو إصدار أحدث ، فلن تحتاج إلى تثبيت Node-Red ، لأنه مثبت مسبقًا بالفعل. تحتاج فقط إلى تحديثه. الرجاء استخدام الدليل هنا.

الآن ، يتعين علينا تثبيت عقدة Twilio على Node-Red ، حتى نتمكن من تشغيل رسالة نصية. افتح Terminal واكتب:

cd ~ /.node-rednpm تثبيت node-red-node-twilio

المزيد عن عقدة Twilio هنا. بعد ذلك ، قم بتشغيل Node-Red عن طريق الكتابة في الجهاز:

العقدة الحمراء

ثم انتقل إلى: https://127.0.0.1:1880/ - إذا فتحت متصفحًا على Raspberry Pihttps:// {raspberry_pi_ip}: 1880 / - إذا كنت تريد فتح محرر Node-Red من جهاز كمبيوتر آخر

لمعرفة عنوان IP الخاص بـ Raspberry Pi ، استخدم هذه التعليمات.

الآن عليك أن تجد عقدة Twilio في قائمة العقد في محرر Node-Red الخاص بك (عادة ما تظهر بعد المجموعة "الاجتماعية").

حان الوقت لخلق التدفق!

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

يبدأ التدفق الخاص بنا بالعقدة "الإخطار" التي تقبل طلب POST من برنامجنا الرئيسي مع بعض البيانات حول انتهاك الوصول (يمكن العثور على مثال للبيانات في عقدة التعليق "حول استلام الكائنات"). تستجيب هذه العقدة على الفور برسالة "موافق" ، لذلك يعلم البرنامج الرئيسي أن البيانات قد تم استلامها (التدفق: / الإخطار> الاستجابة مع موافق> الاستجابة). العقدة الخضراء في الأسفل بالاسم msg.payload موجودة لأغراض التصحيح: إذا كان هناك شيء لا يعمل ، يمكنك استخدامه.

من بيانات العقدة الأولى (/ notify) التي يتم نشرها إلى "موضوع البيانات" و "موضوع الصورة" حيث تمت إضافة المواضيع "بيانات" و "صورة" على التوالي.

في عقدة "التحويل البرمجي" ، نتلقى البيانات (التي نحصل عليها أثناء الخطوة الأولى) مع موضوع "البيانات" وصورة بموضوع "الصورة" (الصورة مأخوذة من /home/pi/image.jpg). يجب تجميع هاتين الرسالتين في كائن واحد ، ولكن يتم استلام الكائنين في وقت مختلف! للتعامل مع هذا سوف نستخدم ميزة "السياق" التي تسمح لنا بتخزين البيانات بين استدعاءات الوظيفة.

الخطوة التالية هي التحقق مما إذا كان الشخص من قائمة الوصول الخاصة بنا أم شخص غريب (checkConditions node). يوجد حقل "TrustPerson" في البيانات التي نتلقاها: تعني كلمة "true" أننا نعرف هذا الشخص ، لكنه انتهك إذن الوصول ، وتعني كلمة "false" أن الشخص غريب.

عندما تكون النتيجة "صحيحة" ، نرسل إشعارًا إلى twitter و twilio والبريد الإلكتروني ؛ عندما تكون النتيجة "خاطئة" - فقط البريد الإلكتروني و twilio. نقوم بإنشاء كائن للبريد الإلكتروني مع رسالة وصورة مرفقة وموضوع بريد إلكتروني ، وكائن لـ twilio مع رسالة. بالنسبة إلى Twitter ، نضيف البيانات إلى كائن ما إذا كانت عبارة "TrustedPerson" صحيحة. ثم أرسل هذه العناصر الثلاثة إلى ثلاث عقد مختلفة.

ملاحظة: إذا لم تستقبل العقدة التالية رسالة ، فنحن فقط نرسل "خالية" إليها.

حان الوقت لتكوين العقد للإعلام!

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

أضف عقدة "بريد إلكتروني" إلى التدفق. إذا كنت لا تستخدم Gmail ، فستحتاج إلى تغيير البيانات في الحقول التالية - "الخادم" و "المنفذ" (يمكنك العثور على الخادم والمنفذ اللذين يجب عليك استخدامهما في صفحات المساعدة الخاصة بوكيل بريدك الإلكتروني) وإلا فلا تغير هذه مجالات.

  • إلى> عنوان البريد الإلكتروني الذي سيتم إرسال الرسائل إليه
  • معرف المستخدم> تسجيل الدخول من بريدك الإلكتروني (ربما يكون هو نفسه حقل "إلى")
  • كلمة المرور> كلمة المرور من حساب البريد الإلكتروني الخاص بك
  • الاسم> اسم هذه العقدة

Twilio اذهب إلى https://www.twilio.com/try-twilio وقم بتسجيل حساب. تحقق منه. اذهب إلى https://www.twilio.com/console وانقر على "أرقام الهواتف" (رمز # كبير) وأنشئ رقمًا مجانيًا. إذا كنت خارج الولايات المتحدة الأمريكية ، فيجب عليك إضافة أذونات GEO ، انتقل إلى https://www.twilio.com/console/sms/settings/geo-pe… وأضف بلدك.

الآن ، انتقل إلى محرر Node-Red ، وأضف عقدة Twilio ، وانقر نقرًا مزدوجًا عليها لتكوين وملء جميع الحقول:

  • بيانات الاعتماد> استخدام بيانات الاعتماد المحلية
  • تويليو> تحرير

    • SID الحساب> خذ من هنا
    • من> اكتب الرقم الظاهري الذي قمت بإنشائه
    • رمز> خذ من هنا
    • الاسم> Twilio
  • الإخراج> الرسائل القصيرة
  • إلى> رقم هاتفك
  • الاسم> اسم هذه العقدة.

انقر فوق نشر

الآن التدفق الخاص بك جاهز! يمكنك اختباره عن طريق إرسال طلب POST مع الكائن المحدد!

الخطوة 6: تجميع المشروع بأكمله

تجميع المشروع بأكمله
تجميع المشروع بأكمله
تجميع المشروع بأكمله
تجميع المشروع بأكمله

وصف الخطوة: في هذه الخطوة سنجمع جميع الأجزاء معًا ونجعلها تعمل كنظام منفصل.

بهذه الخطوة عليك أن:

  1. تكوين الهاتف الذكي القديم ككاميرا IP
  2. لديها أجهزة استشعار تعمل
  3. دربت Microsoft Face API
  4. تم تكوين تدفق العقدة الحمراء

الآن علينا تحسين الكود الذي كتبناه في الخطوة 2. وبشكل أكثر تحديدًا عملية الوظيفة () التي تسمى عندما يفتح الشخص الباب. في هذه الوظيفة سنقوم بما يلي:

  1. احصل على صورة من كاميرا IP واحفظها في "/ home / pi /" باسم "image.jpg" (الوظيفة "fromIpCam" في ملف "getImage")
  2. احصل على اسم الشخص الموجود في تلك الصورة (الوظيفة "checkPerson" في ملف "التعرف")
  3. تحقق من إذن الوصول لهذا الشخص (الوظيفة "التحقق" في ملف "الوصول")
  4. بناء على نتيجة وظيفة "تحقق" يؤلف رسالة
  5. إرسال رسالة مؤلفة إلى Node-Red (الوظيفة "toNodeRed" في الملف "sendData")

ملاحظة: للاطلاع على الكود الكامل للوظائف المذكورة ، يرجى تنزيل ملف مضغوط مرفق بهذه الخطوة.

حول وظيفة "fromIpCam". هذه الوظيفة تجعل طلب GET إلى كاميرا IP الخاصة بك ، والحصول على صورة مركزة استجابةً وحفظها في المسار الذي تحدده. يجب عليك تقديم عنوان IP للكاميرا لهذه الوظيفة.

حول وظيفة "checkPerson". تحصل الوظيفة على مسار للصورة والمجموعة التي تريد فيها البحث عن شخص من الصورة كمعلمات. أولاً ، يكتشف وجهًا على الصورة المقدمة (ملف Face.py ، الوظيفة "اكتشاف"). رداً على ذلك ، يتم التعرف عليه إذا تم اكتشاف الوجه. ثم تسمي وظيفة "تحديد" (ملف Face.py) التي تجد أشخاصًا متشابهين في مجموعة محددة. ردا على ذلك يحصل على هوية الشخص إذا تم العثور على الشخص. ثم استدعاء وظيفة "شخص" (ملف Person.py) مع معرف الشخص كمعامل ، تقوم وظيفة "شخص" بإرجاع الشخص بمعرف محدد ، نحصل على اسم الشخص ونعيده.

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

ملاحظة: المشروع الكامل مرفق بالخطوة التالية.

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

في هذه الخطوة ، أرفقت المشروع الكامل الذي يجب عليك فك ضغطه ووضعه في Raspberry Pi الخاص بك.

لجعل هذا المشروع يعمل ، قم بتشغيل ملف "main.py".

إذا كنت تتحكم في Raspberry Pi عبر SSH ، فيجب عليك تشغيل برنامجين من قذيفة واحدة: برنامج python و Node-Red. اكتب ما يلي في الجهاز:

العقدة الحمراء

اضغط على "Ctrl + Z" واكتب:

وظائف

لقد رأيت عملية Node-Red. انظر إلى معرف العملية واكتب:

bg

الآن يجب أن تبدأ Node-Red العمل في الخلفية. ثم انتقل إلى الدليل مع مشروعك وقم بتشغيل البرنامج الرئيسي:

python3 main.py

ملاحظة: لا تنس تغيير KEY في ملفات python (الخطوة 4) وبيانات الاعتماد في تدفق Node-Red (الخطوة 5)

منتهي! ثلاجتك آمنة!

أتمنى أن تكون قد استمتعت بهذا المستعصي! لا تتردد في ترك عقلك في التعليقات.

سأكون ممتنًا إذا قمت بالتصويت لمشروعي =)

شكرا لك!

موصى به: