Tartalomjegyzék:

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

Videó: Arcfelismerés Smart Lock LTE Pi HAT segítségével: 4 lépés

Videó: Arcfelismerés Smart Lock LTE Pi HAT segítségével: 4 lépés
Videó: CS50 2013 - Week 10 2024, December
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: