Arcfelismerés Smart Lock LTE Pi HAT segítségével: 4 lépés
Arcfelismerés Smart Lock LTE Pi HAT segítségével: 4 lépés
Anonim
Intelligens arcfelismerő zár az LTE Pi HAT segítségével
Intelligens arcfelismerő zár az LTE Pi HAT segítségével

Egyre szélesebb körben használják az arcfelismerést, ebből intelligens zárat készíthetünk.

1. lépés: A projektben használt dolgok

Hardver alkatrészek

  • Raspberry Pi 3 B modell
  • Raspberry Pi kamera modul V2
  • Grove - Váltó
  • LTE Cat 1 Pi HAT (Európa)
  • 10,1 hüvelykes 1200x1980 HDMI IPS LCD kijelző

Szoftveralkalmazások és online szolgáltatások

  • WinSCP
  • Notepad ++

2. lépés: Hardvercsatlakozás

Hardver kapcsolat
Hardver kapcsolat

Ebben a projektben azt tervezzük, hogy picamerával készítünk képeket, és felismerjük az arcokat, majd megjelenítjük a felismerés eredményét a képernyőn. Ha ismertek az arcok, nyissa ki az ajtót, és SMS -ben küldje el a megadott telefonszámra, hogy ki nyitotta az ajtót.

Tehát csatlakoztatnia kell egy kamerát a Raspberry Pi kamera interfészéhez, és telepítenie kell az antennát és a Grove - Relay -t az LTE Pi kalaphoz, majd csatlakoztatnia kell a HAT -ot a Pi -hez. A képernyő HDMI -kábelen keresztül csatlakoztatható a Raspberry Pi -hez, ne felejtse el csatlakoztatni a tápellátást a képernyőhöz és a Pi -hez.

3. lépés: Szoftverprogramozás

Arcfelismerés

Köszönet Adam Geitgey -nek és arcfelismerő projektjének, használhatjuk a világ legegyszerűbb arcfelismerő könyvtárát a Raspberry Pi -n. A következő lépések bemutatják, hogyan állíthatja be az arcfelismerést a Pi -n.

1. lépés: A raspi-config használatával konfigurálja a kamera és a GPU memóriáját.

sudo raspi-config

Az interfész opciók - Kamera kiválasztásával engedélyezze a pikamerat, majd válassza a Speciális beállítások - Memória felosztás lehetőséget a GPU memória beállításához, és ezt 64 -re kell változtatni. Miután befejezte, indítsa újra a Raspberry Pi -t.

2. lépés: Telepítse a szükséges könyvtárakat.

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. lépés. Készítse el a picamerea támogató tömbjét.

sudo pip3 telepítés -frissítse a picamera [tömb]

4. lépés. Telepítse a dlib és az arcfelismerőt.

sudo pip3 install dlib

sudo pip3 install face_recognition

5. lépés Töltse le és futtassa az arcfelismerő példát

git klón-egyetlen ág

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

FIGYELMEZTETÉS: Ha az ImportError hibaüzenetet kapta: libatlas.so.3: nem tudja megnyitni a megosztott objektumfájlt: Nincs ilyen fájl vagy könyvtár, futtassa a következő parancsot a javításához.

Relé

Ha kész az arcfelismerés, folytathatjuk a további funkciók hozzáadását. Csatlakoztattuk a Grove - Relay -t az LTE Cat 1 Pi HAT -hoz, de az digitális portot használ az I2C port helyett.

Ez a Raspberry Pi 3B tűje, láthatjuk az SDA és az SCL csapokat a tábla 3. és 5. lábában.

Kép
Kép

Így a relét úgy tudjuk vezérelni, hogy a digitális jelet az 5-ös érintkezőre továbbítja. Futtassa a Raspberry Pi-n lefelé irányuló python programot, ha semmi baj nem történik, Ti-Ta-t hall a reléből.

importálja az RPi. GPIO -t GPIO -ként

RELAY_PIN = 5 GPIO.setmód (GPIO. BOARD) GPIO.setup (RELAY_PIN, GPIO. OUT) GPIO. kimenet (RELAY_PIN, GPIO. HIGH)

Tehát itt az ötlet, betöltünk egy ismert mappát egy mappából, felismerjük a picamera által rögzített arcokat, ha az arc a mappában, vezérlőrelé az ajtó kinyitásához. Csomagolhatjuk őket egy osztályba, itt a load_known_faces () metódus és az unlock () metódus, a befejezett program a cikk végén letölthető.

def load_known_faces (self):

ismert_felületek = os.listdir (saját._ ismert_felületek_útvonala) ismert_archoz ismert_felületekben: saját._ ismert_felületek_neve.független (ismert_arc [0: len (ismert_arc) - len ('. jpg']) ismert_arc_kép_arc = arc_felismerés.terhelés_kép_fájl (saját._ ismert_felületek_útvonal +) self._ ismert_felületek_kódolás.append (face_recognition.face_encodings (ismert_arc_kép) [0]) return len (self._ ismert_felületek_kódolása) def feloldás (self): if self._ matched.count (True)> 0: GPIO.output (self._ relay_pin, GPIO. HIGH) print ('Ajtó nyitva') time.sleep (5) GPIO.output (self._ relé_pin, GPIO. LOW) self._ reset_recognise_params () return true self._ retry_count += 1 print ('Kérjük, próbálja újra… { } '. format (self._ retry_count)) return Hamis

Gondoljon transzcendensen, megmutathatjuk a képet, aki felismerte, a PIL és a matplotlib könyvtárak hasznosak lehetnek, köztük a matplotlib -et manuálisan kell telepíteni, futtassa ezt a parancsot a Raspberry Pi terminálján.

sudo pip3 telepítse a matplotlib programot

Importálja őket a kódjába, és módosítsa, ha blokkolja az unlock () metódust, mint ez:

img = Image.open ('{}/{}. jpg'.format (self._ ismert_felületek_útvonala, saját._ ismert_felületek_neve [0]))

plt.imshow (img) plt.ion () GPIO.output (self._ relé_pin, GPIO. HIGH) print ('Ajtó nyitva') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return true

Most, ha felismert egy arcot, a mappában lévő kép megjelenik a képernyőn.

Kép
Kép

SMS

Néha szeretnénk tudni, ki van a szobánkban, és most van egy hely az LTE Cat 1 Pi HAT számára. Csatlakoztassa a SIM -kártyát, és kövesse az alábbi lépéseket annak ellenőrzésére, hogy működik -e vagy sem.

1. lépés: Engedélyezze az UART0 használatát a Raspberry Pi alkalmazásban

A nano használatával szerkesztheti a config.txt fájlt a /boot fájlban

sudo nano /boot/config.txt

adja hozzá a dtoverlay = pi3-disable-bt alját, és tiltsa le a hciuart szolgáltatást

sudo systemctl letiltja a hciuart

majd törölje a konzolt = serial0, 115200 a cmdline.txt fájlban a /boot -ban

sudo nano /boot/cmdline.txt

Miután mindent megtett, indítsa újra a Raspberry Pi -t.

2. lépés: Töltse le a példát, és futtassa.

Nyisson meg egy terminált a Raspberry Pi -n, írja be ezeket a parancsokat soronként.

cd ~

git klón https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py telepítse a cd tesztet sudo python test01.py

Ha ezeket a kimeneteket látja a terminálon, az LTE Cat 1 Pi HAT jól működik.

40 tűs GPIO-fejlécet észleltünk

A CTS0 és az RTS0 engedélyezése GPIO 16 és 17 rts cts ébredéskor… modul neve: LARA-R211 RSSI: 3

Most már tudtuk, hogy a HAT jól működik, hogyan lehet SMS -t küldeni? Az első dolog, amit tudnia kell, hogy a Raspberry Pi az UART által küldött AT parancsokon keresztül kommunikál a HAT -tal. AT parancsokat küldhet az LTE HAT -nak, ha ezt a kódot futtatja pythonban

az ublox_lara_r2 importból *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Zárja be a hibakeresési masszázst u.debug = Hamis u.sendAT ( )

Az SMS küldésére vonatkozó AT parancs a következő

AT+CMGF = 1

AT+CMGS =

tehát itt a _send_sms () módszer:

def _send_sms (saját):

ha ön._ phonenum == Nincs: return False for unlocker in self._ elismerés_arc_nevek (): 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 (' {} belép a szobába. / x1a'.format (unlocker)): print (self._ ublox.response)

FIGYELMEZTETÉS: Az LTE Cat 1 Pi HAT könyvtára, amelyet a python2 írt, és nem túl kompatibilis a python3 -mal, ha arcfelismeréssel szeretné használni, kérjük, töltse le a cikk végén található linkről.

Ajánlott: