فهرست مطالب:

قفل هوشمند تشخیص چهره با LTE Pi HAT: 4 مرحله
قفل هوشمند تشخیص چهره با LTE Pi HAT: 4 مرحله

تصویری: قفل هوشمند تشخیص چهره با LTE Pi HAT: 4 مرحله

تصویری: قفل هوشمند تشخیص چهره با LTE Pi HAT: 4 مرحله
تصویری: HOTWAV NOTE 12 - بررسی و تست های دقیق 2024, جولای
Anonim
قفل هوشمند تشخیص چهره با LTE Pi HAT
قفل هوشمند تشخیص چهره با LTE Pi HAT

تشخیص چهره روز به روز بیشتر مورد استفاده قرار می گیرد ، ما می توانیم از آن برای ایجاد یک قفل هوشمند استفاده کنیم.

مرحله 1: موارد مورد استفاده در این پروژه

اجزای سخت افزاری

  • رزبری پای 3 مدل B
  • ماژول دوربین رزبری پای V2
  • گروو - رله
  • LTE Cat 1 Pi HAT (اروپا)
  • صفحه نمایش 10.1 اینچی 1200x1980 HDMI IPS LCD

برنامه های نرم افزاری و خدمات آنلاین

  • WinSCP
  • دفترچه یادداشت ++

مرحله 2: اتصال سخت افزار

اتصال سخت افزار
اتصال سخت افزار

در این پروژه ، ما قصد داریم با picamera عکس بگیریم و چهره ها را در آنها تشخیص دهیم ، سپس نتیجه تشخیص را در صفحه نمایش دهیم. اگر چهره ها مشخص هستند ، در را باز کنید و کسانی را که در را باز کرده اند به شماره تلفن مشخص شده از طریق پیامک ارسال کنید.

بنابراین باید یک دوربین را به رابط دوربین رزبری پای متصل کرده و آنتن و Grove - Relay to LTE Pi را نصب کرده و سپس HAT را به Pi خود وصل کنید. صفحه را می توان از طریق کابل HDMI به رزبری پای متصل کرد ، فراموش نکنید که برق را به صفحه و Pi خود وصل کنید.

مرحله 3: برنامه نویسی نرم افزار

تشخیص چهره

با تشکر از آدام گیتگی و پروژه تشخیص چهره او ، می توانیم از ساده ترین کتابخانه تشخیص چهره جهان در رزبری پای استفاده کنیم. مراحل زیر نحوه تنظیم تشخیص چهره در Pi را به شما نشان می دهد.

مرحله 1. برای پیکربندی دوربین و حافظه GPU از raspi-config استفاده کنید.

sudo raspi-config

انتخاب گزینه های رابط - دوربین برای فعال کردن picamera ، سپس انتخاب گزینه های پیشرفته - Memory Split برای تنظیم حافظه GPU ، باید به 64 تغییر کند. پس از اتمام ، Raspberry Pi خود را راه اندازی مجدد کنید.

مرحله 2. کتابخانه های مورد نیاز را نصب کنید.

sudo apt-get update

sudo apt-get upgrade sudo apt-get install build-essential / 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 install -ارتقاء picamera [array]

مرحله 4. dlib و تشخیص چهره را نصب کنید.

sudo pip3 dlib را نصب کنید

sudo pip3 face_recognition را نصب کنید

مرحله 5. نمونه تشخیص چهره را بارگیری و اجرا کنید

git clone-تک شاخه

cd./face_recognition/example 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 کنترل کنیم. با دنبال کردن برنامه پایتون روی رزبری پای خود ، اگر مشکلی پیش نیامد ، صدای 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):

چهره های شناخته شده = os.listdir (خود._ شناخته شده_صورت_صفحه) برای چهره_شناخته در چهره های_شناخته: خود._معروف_نام_شخص.افزوده (چهره_معروف [0: len (چهره_شناخته شده) - len ('. jpg')]) چهره_معروف_معنی = face_recognition.load_image_file (self_) self._ شناخته شده_صفحات_کنکدینگ. پیوست (face_recognition.face_encodings (known_face_image) [0]) بازگشت len (self._ شناخته شده_صورتهای_شخصیتی) def unlock (self): اگر self._ مطابقت دارد.شمارش (True)> 0: GPIO.output (self._ relay_pin ، GPIO. HIGH) چاپ ("درب باز شد") time.sleep (5) GPIO.output (self._ relay_pin، GPIO. LOW) self._ reset_recognise_params () return true self._ retry_count += 1 چاپ ('لطفاً دوباره امتحان کنید … {{ } '. format (self._ retry_count)) return False

به صورت متعالی فکر کنید ، ما می توانیم عکسی را که تشخیص داده است نشان دهیم ، PIL و matplotlib کتابخانه ها می توانند مفید باشند ، در این میان matplotlib باید به صورت دستی نصب شود ، این دستور را در ترمینال رزبری پای خود اجرا کنید.

sudo pip3 matplotlib را نصب کنید

آنها را در کد خود وارد کنید ، و در صورت مسدود کردن روش unlock () مانند این را تغییر دهید:

img = Image.open ('{}/{}. jpg'.format (خود._ مسیر_روشهای شناخته شده ، خود._نام_صاحب_شخص [0]))

plt.imshow (img) plt.ion () GPIO.output (self._ رله_پین ، GPIO. HIGH) چاپ ("درب باز شد") plt.pause (3) plt.close () GPIO.output (خود._ رله_پین ، GPIO. LOW) self._ reset_recognise_params () return True

اکنون ، اگر چهره ای شناخته شود ، تصویر موجود در پوشه روی صفحه نمایش داده می شود.

تصویر
تصویر

پیامک

گاهی اوقات ما می خواهیم بدانیم چه کسانی در اتاق ما هستند ، و اکنون جایی برای LTE Cat 1 Pi HAT وجود دارد. سیم کارت را به آن وصل کنید و مراحل زیر را دنبال کنید تا آزمایش شود که آیا کار می کند یا خیر.

مرحله 1. در رزبری پای UART0 را فعال کنید

از nano برای ویرایش config.txt در /boot استفاده کنید

sudo nano /boot/config.txt

dtoverlay = pi3-disable-bt را به انتهای آن اضافه کنید و سرویس hciuart را غیرفعال کنید

sudo systemctl hciuart را غیرفعال کنید

سپس کنسول = serial0 ، 115200 را در cmdline.txt در /boot حذف کنید

sudo nano /boot/cmdline.txt

پس از انجام همه کارها ، باید رزبری پای خود را مجدداً راه اندازی کنید.

مرحله 2. نمونه را بارگیری کرده و اجرا کنید.

یک پایانه در رزبری پای خود باز کنید ، این دستور را خط به خط در آن تایپ کنید.

سی دی

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 rt cts هنگام بیدار شدن … نام ماژول: LARA-R211 RSSI: 3

اکنون می دانیم که HAT خوب کار می کند ، چگونه می توان از آن برای ارسال پیامک استفاده کرد؟ اولین چیزی که باید بدانید این است که رزبری پای از طریق ارسال دستورات AT توسط UART با HAT ارتباط برقرار می کند. با اجرای این کد در پایتون می توانید دستورات AT را به LTE HAT ارسال کنید

از واردات ublox_lara_r2 *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # بستن ماساژ اشکال زدایی u.debug = u.sendAT غلط ('')

دستور AT برای ارسال پیامک به شرح زیر است

AT+CMGF = 1

AT+CMGS =

بنابراین در اینجا روش _send_sms () است:

def _ send_sms (self):

if self._ phonenum == هیچکدام: return False for unlocker in self._ognise_face_names (): if self._ ublox.sendAT ('AT+CMGF = 1 / r / n'): print (self._ ublox.response) if self _ublox.sendAT ('AT+CMGS = "{}" / r / n'.format (self._ phonenum)): print (self._ ublox.response) if self._ ublox.sendAT (' {} وارد اتاق شوید. / x1a'.format (unlocker)): چاپ (self._ ublox.response)

توجه: کتابخانه LTE Cat 1 Pi HAT نوشته python2 ، که با python3 سازگار نیست ، اگر می خواهید از آن با تشخیص چهره استفاده کنید ، لطفاً آن را از پیوند انتهای این مقاله بارگیری کنید.

توصیه شده: