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

قفل ذكي للتعرف على الوجه مع LTE Pi HAT: 4 خطوات
قفل ذكي للتعرف على الوجه مع LTE Pi HAT: 4 خطوات

فيديو: قفل ذكي للتعرف على الوجه مع LTE Pi HAT: 4 خطوات

فيديو: قفل ذكي للتعرف على الوجه مع LTE Pi HAT: 4 خطوات
فيديو: ميزة رائعة في هاتف كوندور p6 pro LTE 2024, شهر نوفمبر
Anonim
قفل التعرف على الوجه الذكي مع LTE Pi HAT
قفل التعرف على الوجه الذكي مع LTE Pi HAT

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

الخطوة 1: الأشياء المستخدمة في هذا المشروع

مكونات الأجهزة

  • Raspberry Pi 3 موديل بي
  • وحدة كاميرا Raspberry Pi V2.0
  • غروف - تتابع
  • LTE Cat 1 Pi HAT (أوروبا)
  • 10.1 بوصة 1200x1980 HDMI IPS شاشة LCD

تطبيقات البرمجيات والخدمات عبر الإنترنت

  • WinSCP
  • برنامج Notepad ++

الخطوة 2: توصيل الأجهزة

اتصال الأجهزة
اتصال الأجهزة

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

لذلك تحتاج إلى توصيل كاميرا بواجهة كاميرا Raspberry Pi ، وتثبيت هوائي و Grove - Relay to LTE Pi hat ، ثم توصيل HAT بـ Pi الخاص بك. يمكن توصيل الشاشة بـ Raspberry Pi عبر كابل HDMI ، ولا تنس توصيل الطاقة بشاشتك و Pi.

الخطوة الثالثة: برمجة البرمجيات

تمييز الوجوه

شكرًا لآدم جيتجي ومشروعه للتعرف على الوجوه ، يمكننا استخدام أبسط مكتبة للتعرف على الوجوه في العالم على Raspberry Pi. ستوضح لك الخطوات التالية كيفية إعداد التعرف على الوجوه على Pi.

الخطوة الأولى. استخدم raspi-config لتكوين الكاميرا وذاكرة وحدة معالجة الرسومات.

sudo raspi-config

اختيار خيارات الواجهة - الكاميرا لتمكين picamera ، ثم اختيار Advanced Options - Memory Split لضبط ذاكرة GPU ، يجب تغييرها إلى 64. بعد الانتهاء ، أعد تشغيل Raspberry Pi.

الخطوة 2. تثبيت المكتبات المطلوبة.

sudo apt-get update

sudo apt-get Upgrade sudo apt-get install build-basic / cmake / gfortran / git / wget / curl / graphicsmagick / libgraphicsmagick1-dev / libatlas-dev / libavcodec-dev / libavformat-dev / libboost-all-dev / libgtk2. 0-dev / libjpeg-dev / liblapack-dev / libswscale-dev / pkg-config / python3-dev / python3-numpy / python3-picamera / python3-pip / zip sudo apt-get clean

الخطوة 3. جعل مجموعة picamerea يدعم.

تثبيت sudo pip3 - ترقية picamera [مجموعة]

الخطوة 4. تثبيت dlib والتعرف على الوجوه.

sudo pip3 تثبيت dlib

تثبيت sudo pip3 face_recognition

الخطوة 5. قم بتنزيل مثال التعرف على الوجوه وتشغيله

git clone - فرع واحد

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

إشعار: إذا حصلت على ImportError: libatlas.so.3: لا يمكن فتح ملف كائن مشترك: لا يوجد مثل هذا الملف أو الدليل ، قم بتشغيل الأمر التالي لإصلاحه.

تناوب

عندما تكون ميزة التعرف على الوجوه جاهزة ، يمكننا الاستمرار في إضافة ميزات إضافية. لقد قمنا بتوصيل Grove - Relay بـ LTE Cat 1 Pi HAT ، لكنها تستخدم منفذًا رقميًا بدلاً من منفذ I2C.

هذا دبوس خارجي لـ Raspberry Pi 3B ، يمكننا أن نرى دبوس SDA ودبوس SCL الموجود في دبوس اللوحة 3 والدبوس 5.

صورة
صورة

حتى نتمكن من التحكم في الترحيل عن طريق مخرجات الإشارة الرقمية إلى الرقم 5. قم بتشغيل متابعة برنامج python على Raspberry Pi الخاص بك ، إذا لم يحدث أي خطأ ، فسوف تسمع Ti-Ta من التتابع.

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

RELAY_PIN = 5 GPIO.setmode (GPIO. BOARD) GPIO.setup (RELAY_PIN ، GPIO. OUT) GPIO.output (RELAY_PIN ، GPIO. HIGH)

إذن هذه هي الفكرة ، نقوم بتحميل الوجوه المعروفة من مجلد ، والتعرف على الوجوه التي تم التقاطها بواسطة picamera ، إذا كان الوجه في المجلد ، فقم بالتحكم في التتابع لفتح الباب. يمكننا حزمها في فصل دراسي ، وهنا طريقة load_known_faces () وطريقة unlock () ، يمكن تنزيل البرنامج المكتمل في نهاية هذه المقالة.

def load_known_faces (self):

known_faces = os.listdir (self._ known_faces_path) for known_faces in known_faces: self._ known_faces_name.append (known_faces_name.append (known_face [0: len (known_face) - len ('. jpg')]) known_face_image = face_recognition.load_image_file (self._ known_file_file)) self._ known_faces_encoding.append (face_recognition.face_encodings (known_face_image) [0]) إرجاع len (self._ known_faces_encoding) def unlock (self): if self._ matched.count (True)> 0: GPIO.output (self._ relay_pin، GPIO. HIGH) print ('Door open') time.sleep (5) GPIO.output (self._ relay_pin، GPIO. LOW) self._ reset_recognise_params () إرجاع True self._ retry_count + = طباعة واحدة ('يرجى المحاولة مرة أخرى … { } '. format (self._ retry_count)) إرجاع False

فكر بطريقة متعالية ، يمكننا إظهار الصورة التي تعرف عليها ، يمكن أن تكون مكتبات PIL و matplotlib مفيدة ، من بينها ، يجب تثبيت matplotlib يدويًا ، قم بتشغيل هذا الأمر في محطة Raspberry Pi الخاصة بك.

sudo pip3 تثبيت matplotlib

قم باستيرادها في التعليمات البرمجية الخاصة بك ، وقم بتغيير طريقة block in unlock () مثل هذا:

img = Image.open ('{} / {}. jpg'.format (self._ known_faces_path، self._ known_faces_name [0]))

plt.imshow (img) plt.ion () GPIO.output (self._ relay_pin، GPIO. HIGH) print ('door open') plt.pause (3) plt.close () GPIO.output (self._ relay_pin، GPIO. LOW) self._ reset_recognise_params () إرجاع صحيح

الآن ، إذا تم التعرف على وجه ، فسيتم عرض الصورة الموجودة في المجلد على الشاشة.

صورة
صورة

رسالة قصيرة

في بعض الأحيان نريد أن نعرف من في غرفتنا ، والآن يوجد مكان لـ LTE Cat 1 Pi HAT. قم بتوصيل بطاقة SIM بها ، واتبع الخطوات التالية لاختبار ما إذا كانت ستعمل أم لا.

الخطوة 1. قم بتمكين UART0 في Raspberry Pi

استخدم nano لتحرير config.txt في / boot

sudo نانو / boot/config.txt

أضف dtoverlay = pi3-disable-bt إلى أسفله ، وقم بتعطيل خدمة hciuart

sudo systemctl تعطيل hciuart

ثم احذف وحدة التحكم = serial0، 115200 in cmdline.txt in / boot

sudo نانو / التمهيد / cmdline.txt

بعد كل شيء ، يجب عليك إعادة تشغيل Raspberry Pi.

الخطوة 2. قم بتنزيل المثال وتشغيله.

افتح محطة طرفية على Raspberry Pi ، واكتب هذه الأوامر سطراً بسطر.

مؤتمر نزع السلاح ~

git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py install cd test sudo python test01.py

إذا رأيت هذه المخرجات في جهازك ، فإن LTE Cat 1 Pi HAT يعمل بشكل جيد.

تم اكتشاف رأس GPIO ذو 40 سنًا

تمكين CTS0 و RTS0 على GPIOs 16 و 17 rts cts عند الاستيقاظ … اسم الوحدة: LARA-R211 RSSI: 3

الآن عرفنا أن HAT يعمل بشكل جيد ، كيف نستخدمه لإرسال الرسائل القصيرة؟ أول شيء تحتاج إلى معرفته هو أن Raspberry Pi يتواصل مع HAT عبر إرسال أوامر AT بواسطة UART. يمكنك إرسال أوامر AT إلى LTE HAT عن طريق تشغيل هذا الرمز في لغة python

من استيراد ublox_lara_r2 *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # إغلاق تدليك تصحيح الأخطاء u.debug = خطأ u.sendAT ('')

أمر AT لإرسال الرسائل القصيرة هو كما يلي

في + CMGF = 1

في + CMGS =

إذن هنا طريقة _send_sms ():

def _send_sms (ذاتي):

if self._ phonenum == لا شيء: إرجاع False for unlocker in self._ Recognise_face_names (): if self._ ublox.sendAT ('AT + CMGF = 1 / r / n'): print (self._ ublox.response) إذا كانت ذاتية. _ublox.sendAT ('AT + CMGS = "{}" / r / n'.format (self._ phonenum)): print (self._ ublox.response) إذا كانت self._ ublox.sendAT (' {} أدخل الغرفة. / x1a'.format (unlocker)): print (self._ ublox.response)

إشعار: مكتبة LTE Cat 1 Pi HAT المكتوبة بواسطة python2 ، وهي غير متوافقة تمامًا مع python3 ، إذا كنت تريد استخدامها مع التعرف على الوجه ، فيرجى تنزيلها من الرابط من نهاية هذه المقالة.

موصى به: