Mundarija:

LTE Pi HAT bilan yuzni tanish Smart Lock: 4 qadam
LTE Pi HAT bilan yuzni tanish Smart Lock: 4 qadam

Video: LTE Pi HAT bilan yuzni tanish Smart Lock: 4 qadam

Video: LTE Pi HAT bilan yuzni tanish Smart Lock: 4 qadam
Video: DOOGEE T20 - ОБЗОР и ТЕСТЫ ХОРОШЕГО БЮДЖЕТНОГО ПЛАНШЕТА 2024, Iyul
Anonim
LTE Pi HAT bilan yuzni tanish Smart Lock
LTE Pi HAT bilan yuzni tanish Smart Lock

Yuzni aniqlash tobora ko'proq qo'llanilmoqda, biz undan aqlli qulf yasash uchun foydalanishimiz mumkin.

1 -qadam: Ushbu loyihada ishlatilgan narsalar

Uskuna komponentlari

  • Raspberry Pi 3 modeli B
  • Raspberry Pi kamera moduli V2
  • Grove - estafeta
  • LTE Cat 1 Pi HAT (Evropa)
  • 10,1 dyuymli 1200x1980 HDMI IPS LCD displey

Dasturiy ta'minot va onlayn xizmatlar

  • WinSCP
  • Notepad ++

2 -qadam: Uskuna ulanishi

Uskuna ulanishi
Uskuna ulanishi

Ushbu loyihada biz pikamera yordamida suratga olishni va ulardagi yuzlarni tanib olishni, keyin ekranda tanib olish natijasini ko'rsatishni rejalashtirmoqdamiz. Agar yuzlar ma'lum bo'lsa, eshikni oching va kim eshikni ochganini SMS orqali yuboring.

Shunday qilib, siz Raspberry Pi -ning kamera interfeysiga kamerani ulashingiz va antenna va Grove -LTE Pi shlyapasiga o'rni o'rnatishingiz kerak, keyin HAT -ni Pi -ga ulang. Ekranni Raspberry Pi -ga HDMI kabeli orqali ulash mumkin, ekran va Pi -ga quvvat ulashni unutmang.

3 -qadam: dasturiy ta'minot

Yuzni aniqlash

Adam Geitgey va uning yuzni aniqlash loyihasi uchun rahmat, biz Raspberry Pi -da dunyodagi eng oddiy yuzni aniqlash kutubxonasidan foydalanishimiz mumkin. Quyidagi qadamlar sizga Pi -da yuzni aniqlashni qanday o'rnatishni ko'rsatib beradi.

Qadam 1. Kamera va GPU xotirasini sozlash uchun raspi-config-dan foydalaning.

sudo raspi-config

Pikamerani yoqish uchun interfeys parametrlari - Kamera, keyin GPU xotirasini sozlash uchun Kengaytirilgan imkoniyatlar - Xotirani ajratish -ni tanlang, 64 -ga o'zgartirilishi kerak. Raspberry Pi -ni qayta ishga tushiring.

Qadam 2. Kerakli kutubxonalarni o'rnating.

sudo apt-get yangilanishi

sudo apt-get modernizatsiya 0-dev / libjpeg-dev / liblapack-dev / libswscale-dev / pkg-config / python3-dev / python3-numpy / python3-picamera / python3-pip / zip sudo apt-get clean

3 -qadam. Pikamerani qo'llab -quvvatlovchi qatorlar qiling.

sudo pip3 install -picamera [array] ni yangilang

Qadam 4. Dlib va yuzni aniqlashni o'rnating.

sudo pip3 dlib -ni o'rnating

sudo pip3 face_recognition -ni o'rnating

Qadam 5. Yuklab oling va yuzni aniqlash misolini ishga tushiring

git klon-bitta filial

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

Ogohlantirish: Agar sizda ImportError: libatlas.so.3 bo'lsa: umumiy ob'ekt faylini ochib bo'lmaydi: Bunday fayl yoki katalog yo'q, uni tuzatish uchun quyidagi buyruqni bajaring.

Estafeta

Yuzni aniqlash tayyor bo'lganda, biz qo'shimcha funktsiyalarni qo'shishni davom ettira olamiz. Biz Grove - Relayni LTE Cat 1 Pi HAT -ga uladik, lekin u I2C portidan ko'ra raqamli portdan foydalanadi.

Bu Raspberry Pi 3B uchun ajratilgan, biz SDA pin va SCL pinini 3 va 5-pinlarda ko'rishimiz mumkin.

Rasm
Rasm

Shunday qilib, biz 5-raqamli raqamli signalni chiqarish orqali o'rni nazorat qila olamiz, Raspberry Pi-dagi python dasturini ishga tushiring, agar biror narsa noto'g'ri bo'lsa, siz Ti-Ta-ni eshitasiz.

RPi. GPIO -ni GPIO sifatida import qilish

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

Mana bu fikr, biz papkadan ma'lum yuzlarni yuklaymiz, pikamera bilan tasvirlangan yuzlarni taniymiz, agar papkadagi yuz bo'lsa, eshik qulfini ochish uchun o'z o'rni. Biz ularni sinfga to'plashimiz mumkin, bu erda load_known_faces () usuli va unlock () usuli, tugallangan dasturni maqolaning oxirida yuklab olish mumkin.

def load_known_faces (o'zini):

ma'lum_faces = os.listdir (o'zini._ ma'lum_faces_path) ma'lum_facesda ma'lum_face uchun: o'zini._ ma'lum_faces_name.append (ma'lum_face [0: len (ma'lum_face) - len ('. jpg')]) ma'lum_face_image = face_recognition.load_image_files (o'zini._ ma'lum_face_))._ ma'lum_faces_encoding.append (face_recognition.face_encodings (known_face_image) [0]) qaytish len (self._ ma'lum_faces_encoding) def qulfini ochish (o'zini): agar o'zini._ mos keladigan.sayt (To'g'ri)> 0: GPIO. chiqish (o'zini._ o'rni_pin, GPIO. HIGH) bosib chiqarish ("Eshik ochildi") vaqt. Uxlash (5) GPIO.output (self._ relay_pin, GPIO. LOW) o'zini._ reset_recognise_params () haqiqiy o'zini qaytaradi._ retry_count += 1 chop etish ('Iltimos, qaytadan urinib ko'ring… { } '. format (o'zini._ retry_count)) qaytarish False

O'zingizni o'ylab ko'ring, biz rasmni kim ko'rsatganini ko'rsatishimiz mumkin, PIL va matplotlib kutubxonalari foydali bo'lishi mumkin, ular orasida matplotlibni qo'lda o'rnatish kerak, bu buyruqni Raspberry Pi terminalida ishlating.

sudo pip3 matplotlib -ni o'rnating

Ularni kodingizga import qiling va unlock () blokirovkasini quyidagi kabi o'zgartiring:

img = Image.open ('{}/{}. jpg'.format (o'zini._ ma'lum_faces_path, o'zini._ ma'lum_faces_name [0]))

plt.imshow (img) plt.ion () GPIO.output (self._ röle_pin, GPIO. HIGH) chop etish ("Eshik ochilgan"). LOW) o'zini._ reset_recognise_params () qaytarish True

Endi, agar yuz tanilsa, papkadagi rasm ekranda aks etadi.

Rasm
Rasm

SMS

Ba'zan biz xonamizda kim borligini bilishni xohlaymiz va hozirda LTE Cat 1 Pi HAT uchun joy bor. Unga SIM -kartani ulang va uning ishlash -ishlamasligini tekshirish uchun quyidagi amallarni bajaring.

Qadam 1. Raspberry Pi -da UART0 -ni yoqing

Config.txt faylini tahrir qilish uchun nano -dan foydalaning

sudo nano /boot/config.txt

pastki qismiga dtoverlay = pi3-disable-bt qo'shing va hciuart xizmatini o'chiring

sudo systemctl hciuart -ni o'chirib qo'ying

keyin /bootda cmdline.txt da konsol = serial0, 115200 ni o'chirib tashlang

sudo nano /boot/cmdline.txt

Hammasi tugagandan so'ng, siz Raspberry Pi -ni qayta ishga tushirishingiz kerak.

Qadam 2. Yuklab misol va ishga tushirish.

Raspberry Pi -dagi terminalni oching, unga bu buyruqni satrma -qator kiriting.

CD ~

git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py cd test sudo python test01.py ni o'rnating

Agar siz ushbu chiqishlarni terminalda ko'rsangiz, LTE Cat 1 Pi HAT yaxshi ishlaydi.

40-pinli GPIO sarlavhasi aniqlandi

Uyg'onish paytida CTS0 va RTS0 ni GPIO 16 va 17 rts da yoqish… modul nomi: LARA-R211 RSSI: 3

Endi biz HAT yaxshi ishlashini bilardik, undan qanday qilib SMS yuborish mumkin? Siz bilishingiz kerak bo'lgan birinchi narsa shundaki, Raspberry Pi UART tomonidan AT buyruqlarini yuborish orqali HAT bilan aloqa o'rnatadi. Siz AT buyruqlarini LTE HAT -ga ushbu kodni pythonda ishga tushirish orqali yuborishingiz mumkin

ublox_lara_r2 importidan *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # disk raskadrovka massajini yopish u.debug = noto'g'ri u.sendAT ('')

SMS yuborish uchun AT buyrug'i quyidagicha

AT+CMGF = 1

AT+CMGS =

shuning uchun _send_sms () usuli:

def _send_sms (o'zini):

agar o'z -o'zidan._ phonenum == Yo'q: o'z -o'zidan qulfni ochish uchun "False" ni qaytaring._ tanishlar_face_names (): agar o'zini._ ublox.sendAT ('AT+CMGF = 1 / r / n'): chop eting (o'zini._ ublox. javob) o'z -o'zidan bo'lsa. _ublox.sendAT ('AT+CMGS = "{}" / r / n'.format (self._ phonenum))): bosib chiqarish x1a'.format (qulfdan chiqaruvchi)): chop etish (o'zini._ ublox.response)

Ogohlantirish: LTE Cat 1 Pi HAT kutubxonasi python2 tomonidan yozilgan, u python3 bilan unchalik mos kelmaydi, agar siz uni yuz tanib olishda ishlatmoqchi bo'lsangiz, uni maqolaning oxiridagi havoladan yuklab oling.

Tavsiya: