Innholdsfortegnelse:

Ansiktsgjenkjenning Smart lås med LTE Pi HAT: 4 trinn
Ansiktsgjenkjenning Smart lås med LTE Pi HAT: 4 trinn

Video: Ansiktsgjenkjenning Smart lås med LTE Pi HAT: 4 trinn

Video: Ansiktsgjenkjenning Smart lås med LTE Pi HAT: 4 trinn
Video: Låssmed Stockholm #låssmed Låssmed & Låsbyte AB https://g.co/kgs/2Mo349 2024, November
Anonim
Ansiktsgjenkjenning Smart Lock Med LTE Pi HAT
Ansiktsgjenkjenning Smart Lock Med LTE Pi HAT

Ansiktsgjenkjenning blir mer og mer mye brukt, vi kan bruke den til å lage en smart lås.

Trinn 1: Ting som brukes i dette prosjektet

Maskinvarekomponenter

  • Raspberry Pi 3 Model B
  • Raspberry Pi kameramodul V2
  • Grove - stafett
  • LTE Cat 1 Pi HAT (Europa)
  • 10,1 tommer 1200x1980 HDMI IPS LCD -skjerm

Programvare -apper og online -tjenester

  • WinSCP
  • Notisblokk ++

Trinn 2: Maskinvaretilkobling

Maskinvaretilkobling
Maskinvaretilkobling

I dette prosjektet planlegger vi å ta bilder med picamera og gjenkjenne ansikter i dem, og deretter vise gjenkjenningsresultat på skjermen. Hvis ansiktene er kjent, åpner du døren og sender hvem som åpnet døren til et spesifisert telefonnummer via SMS.

Så du må koble et kamera til Raspberry Pi's kamera grensesnitt, og installere antenne og Grove - Relé til LTE Pi hat, og koble deretter HAT til Pi. Skjermen kan kobles til Raspberry Pi via en HDMI -kabel, ikke glem å koble strøm til skjermen og Pi.

Trinn 3: Programvareprogrammering

Ansiktsgjenkjenning

Takk for Adam Geitgey og hans ansiktsgjenkjenningsprosjekt, vi kan bruke verdens enkleste ansiktsgjenkjenningsbibliotek på Raspberry Pi. Følgende trinn viser deg hvordan du konfigurerer ansiktsgjenkjenning på Pi.

Trinn 1. Bruk raspi-config til å konfigurere kamera og GPU-minne.

sudo raspi-config

Velge grensesnittalternativer - Kamera for å aktivere picamera, deretter velge Avanserte alternativer - Memory Split for å sette GPU -minne, bør det endres til 64. Etter at du er ferdig, starter du Raspberry Pi på nytt.

Trinn 2. Installer nødvendige biblioteker.

sudo apt-get oppdatering

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

Trinn 3. Lag picamerea støtter array.

sudo pip3 install -oppgrader picamera [array]

Trinn 4. Installer dlib og ansiktsgjenkjenning.

sudo pip3 installer dlib

sudo pip3 installer face_recognition

Trinn 5. Last ned og kjør ansiktsgjenkjenning

git clone --single-branch

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

MERKNAD: Hvis du har ImportError: libatlas.so.3: kan ikke åpne delt objektfil: Ingen slik fil eller katalog, kjør følgende kommando for å fikse den.

Stafett

Når ansiktsgjenkjenning er klar, kan vi fortsette å legge til flere funksjoner. Vi koblet Grove - Relay til LTE Cat 1 Pi HAT, men den bruker digital port i stedet for I2C -port.

Dette er pin-out for Raspberry Pi 3B, vi kan se SDA-pin og SCL-pin plassert i brettets pin 3 og pin 5.

Bilde
Bilde

Så vi kan kontrollere reléet ved å sende ut digitalt signal til pin 5. Kjør ned python-programmet på Raspberry Pi, hvis ingenting går galt, vil du høre en Ti-Ta fra relé.

importer RPi. GPIO som GPIO

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

Så her er ideen, vi laster kjente ansikter fra en mappe, gjenkjenner ansikter fanget av picamera, hvis ansiktet i mappen, kontrollrelé for å låse opp døren. Vi kan pakke dem til en klasse, her er metoden load_known_faces () og unlock (), det ferdige programmet kan lastes ned på slutten av denne artikkelen.

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._ kjent_felt_side)) 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) print ('Dør åpnet') time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True True._ retry_count += 1 print ('Prøv igjen … { } '. format (self._ retry_count)) return False

Tenk transcendentalt, vi kan vise bildet hvem som gjenkjente, biblioteker PIL og matplotlib kan være nyttige, blant dem må matplotlib installeres manuelt, kjør denne kommandoen i Raspberry Pi -terminalen.

sudo pip3 installer matplotlib

Importer dem i koden din, og endre hvis blokkering i unlock () -metoden som denne:

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

plt.imshow (img) plt.ion () GPIO.output (self._ relay_pin, GPIO. HIGH) print ('Door opens') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True

Hvis et ansikt gjenkjennes, vil bildet i mappen vises på skjermen.

Bilde
Bilde

tekstmelding

Noen ganger vil vi vite hvem som er i rommet vårt, og nå er det et sted for LTE Cat 1 Pi HAT. Koble et SIM -kort til det, og følg trinnene for å teste om det fungerer eller ikke.

Trinn 1. Aktiver UART0 i Raspberry Pi

Bruk nano til å redigere config.txt i /boot

sudo nano /boot/config.txt

legg til dtoverlay = pi3-disable-bt til bunnen av den, og deaktiver hciuart-tjenesten

sudo systemctl deaktiver hciuart

slett deretter console = serial0, 115200 i cmdline.txt in /boot

sudo nano /boot/cmdline.txt

Etter at alt er gjort, bør du starte Raspberry Pi på nytt.

Trinn 2. Last ned eksempel og kjør det.

Åpne en terminal på Raspberry Pi, skriv inn denne kommandoen linje for linje.

cd ~

git-klon https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py installer cd test sudo python test01.py

Hvis du ser disse utgangene i terminalen din, fungerer LTE Cat 1 Pi HAT godt.

40-pinners GPIO-topptekst oppdaget

Aktiverer CTS0 og RTS0 på GPIO 16 og 17 rt cts på å våkne … modulnavn: LARA-R211 RSSI: 3

Nå visste vi at HAT fungerer godt, hvordan bruke den til å sende SMS? Det første du trenger å vite er at Raspberry Pi kommuniserer med HAT via send AT -kommandoer av UART. Du kan sende AT -kommandoer til LTE HAT ved å kjøre denne koden i python

fra ublox_lara_r2 import *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Lukk feilsøkingsmassasje u.debug = Falsk u.sendAT ('')

AT -kommandoen for å sende SMS er som følger

AT+CMGF = 1

AT+CMGS =

så her er _send_sms () -metoden:

def _send_sms (self):

if self._ phonenum == None: return False for unlocker in self._ Recognise_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 (' {} enter the room. / x1a'.format (unlocker)): print (self._ ublox.response)

MERKNAD: LTE Cat 1 Pi HATs bibliotek skrevet av python2, som ikke er veldig kompatibelt med python3, hvis du vil bruke det med ansiktsgjenkjenning, kan du laste det ned fra lenken fra slutten av denne artikkelen.

Anbefalt: