Sadržaj:

Pametna brava za prepoznavanje lica s LTE Pi HAT: 4 koraka
Pametna brava za prepoznavanje lica s LTE Pi HAT: 4 koraka

Video: Pametna brava za prepoznavanje lica s LTE Pi HAT: 4 koraka

Video: Pametna brava za prepoznavanje lica s LTE Pi HAT: 4 koraka
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Studeni
Anonim
Smart Lock za prepoznavanje lica s LTE Pi HAT
Smart Lock za prepoznavanje lica s LTE Pi HAT

Prepoznavanje lica sve se više koristi, možemo ga upotrijebiti za izradu pametne brave.

Korak 1: Stvari korištene u ovom projektu

Hardverske komponente

  • Raspberry Pi 3 Model B
  • Modul kamere Raspberry Pi V2
  • Grove - Relej
  • LTE Cat 1 Pi HAT (Europa)
  • 10,1 inčni HDMI IPS LCD zaslon rezolucije 1200x1980

Softverske aplikacije i mrežne usluge

  • WinSCP
  • Notepad ++

Korak 2: Povezivanje hardvera

Veza hardvera
Veza hardvera

U ovom projektu planiramo snimiti slike s pikamerom i prepoznati lica u njima, a zatim prikazati rezultat prepoznavanja na ekranu. Ako su poznata lica, otvorite vrata i putem SMS -a pošaljite tko je otvorio vrata na navedeni telefonski broj.

Dakle, morate spojiti kameru na sučelje kamere Raspberry Pi, te instalirati antenu i Grove - relej na LTE Pi šešir, zatim priključiti HAT na svoj Pi. Zaslon se može povezati s Raspberry Pi putem HDMI kabela, ne zaboravite priključiti napajanje na zaslon i Pi.

Korak 3: Programiranje softvera

Prepoznavanje lica

Hvala za Adama Geitgeyja i njegov projekt prepoznavanja lica, možemo koristiti najjednostavniju svjetsku knjižnicu za prepoznavanje lica na Raspberry Pi. Sljedeći koraci pokazat će vam kako postaviti prepoznavanje lica na Pi.

Korak 1. Pomoću raspi-config konfigurirajte kameru i GPU memoriju.

sudo raspi-config

Odabirom opcija sučelja - Kamera za omogućavanje pikamere, zatim odabirom Naprednih opcija - Podjela memorije za postavljanje GPU memorije, treba je promijeniti na 64. Nakon završetka, ponovno pokrenite svoj Raspberry Pi.

Korak 2. Instalirajte potrebne knjižnice.

sudo apt-get ažuriranje

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

Korak 3. Učinite da matrice pikamera podržavaju.

sudo pip3 install --upgrade picamera [niz]

Korak 4. Instalirajte dlib i prepoznavanje lica.

sudo pip3 instalirajte dlib

sudo pip3 instalirajte face_recognition

Korak 5. Preuzmite i pokrenite primjer prepoznavanja lica

git clone-single-branch

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

OBAVIJEST: Ako dobijete ImportError: libatlas.so.3: ne može otvoriti datoteku zajedničkih objekata: Nema takve datoteke ili direktorija, pokrenite sljedeću naredbu da biste je popravili.

Relej

Kad prepoznavanje lica bude spremno, možemo nastaviti dodavati dodatne značajke. Povezali smo Grove - Relay s LTE Cat 1 Pi HAT, ali koristi digitalni port umjesto I2C priključka.

Ovo je pin-out za Raspberry Pi 3B, možemo vidjeti SDA pin i SCL pin smješteni u pin 3 i pin 5 ploče.

Slika
Slika

Tako možemo kontrolirati relej izlazeći digitalni signal na pin 5. Pokrenite slijedeći program python na vašem Raspberry Pi-u, ako ništa ne pođe po redu, čut ćete Ti-Ta iz releja.

uvezite RPi. GPIO kao GPIO

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

Evo ideje, učitavamo poznata lica iz mape, prepoznajemo lica snimljena pikamerom, ako je lice u mapi, upravljački relej za otključavanje vrata. Možemo ih pakirati u klasu, evo metode load_known_faces () i unlock (), dovršeni program se može preuzeti na kraju ovog članka.

def load_known_faces (self):

known_faces = os.listdir (self._ known_faces_path) for known_face in known_faces: self._ known_faces_name.append (known_face [0: len (known_face) - len ('. jpg')]) known_face_image = face_recognition.load_image_file (self._ known_face_path) self._ known_faces_encoding.append (face_recognition.face_encodings (known_face_image) [0]) return len (self._ known_faces_encoding) def unlock (self): if self._ matched.count (True)> 0: GPIO.output (self._ relay_pin, GPIO. HIGH) ispis ('Vrata su otvorena') time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True self._ retry_count += 1 print ('Molimo pokušajte ponovo … { } '. format (self._ retry_count)) return False

Razmislite transcendentalno, možemo pokazati sliku tko je prepoznao, knjižnice PIL i matplotlib mogu biti od pomoći, među njima, matplotlib je potrebno instalirati ručno, pokrenite ovu naredbu na vašem terminalu Raspberry Pi.

sudo pip3 instalirajte matplotlib

Uvezite ih u svoj kôd i promijenite ovu metodu blokiranja u unlock ():

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

plt.imshow (img) plt.ion () GPIO.izlaz (self._ relay_pin, GPIO. HIGH) print ('Vrata su otvorena') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True

Sada, ako je lice prepoznato, slika u mapi bit će prikazana na ekranu.

Slika
Slika

SMS

Ponekad želimo znati tko je u našoj sobi, a sada postoji mjesto za LTE Cat 1 Pi HAT. Priključite SIM karticu na nju i slijedite dolje navedene korake da biste provjerili radi li ili ne.

Korak 1. Omogućite UART0 u Raspberry Pi

Upotrijebite nano za uređivanje config.txt u /boot

sudo nano /boot/config.txt

na dno dodajte dtoverlay = pi3-disable-bt i onemogućite uslugu hciuart

sudo systemctl onemogućiti hciuart

zatim izbrišite konzolu = serial0, 115200 u cmdline.txt u /boot

sudo nano /boot/cmdline.txt

Nakon što sve učinite, trebali biste ponovno pokrenuti svoj Raspberry Pi.

Korak 2. Preuzmite primjer i pokrenite ga.

Otvorite terminal na svom Raspberry Pi, upišite mu ovu naredbu redak po redak.

cd ~

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

Ako vidite ove izlaze na svom terminalu, LTE Cat 1 Pi HAT radi dobro.

Otkriveno 40-pinsko GPIO zaglavlje

Omogućavanje CTS0 i RTS0 na GPIO-ovima 16 i 17 rts cts pri buđenju … naziv modula: LARA-R211 RSSI: 3

Sada smo znali da HAT dobro radi, kako ga koristiti za slanje SMS -a? Prvo što morate znati je da Raspberry Pi komunicira s HAT -om putem naredbi UART za slanje AT. Možete poslati AT naredbe na LTE HAT pokretanjem ovog koda u pythonu

iz ublox_lara_r2 uvoza *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Zatvori otklanjanje pogrešaka u.debug = False u.sendAT ('')

AT naredba za slanje SMS -a je sljedeća

AT+CMGF = 1

AT+CMGS =

pa evo metode _send_sms ():

def _send_sms (self):

if self._ phonenum == None: return False za otključavanje u self._ prepoznati_ime_nazivanja (): if self._ ublox.sendAT ('AT+CMGF = 1 / r / n'): print (self._ ublox.response) if self. _ublox.sendAT ('AT+CMGS = "{}" / r / n'.format (self._ telefonski broj)): ispis (self._ ublox.response) ako self._ ublox.sendAT (' {} uđite u sobu. / x1a'.format (otključavanje)): ispis (self._ ublox.response)

OBAVIJEST: Knjižnica LTE Cat 1 Pi HAT -a koju je napisao python2, koja nije baš kompatibilna s python3, ako je želite koristiti za prepoznavanje lica, preuzmite je s veze s kraja ovog članka.

Preporučeni: