Indholdsfortegnelse:

Ansigtsgenkendelse Smart Lock Med LTE Pi HAT: 4 trin
Ansigtsgenkendelse Smart Lock Med LTE Pi HAT: 4 trin

Video: Ansigtsgenkendelse Smart Lock Med LTE Pi HAT: 4 trin

Video: Ansigtsgenkendelse Smart Lock Med LTE Pi HAT: 4 trin
Video: CS50 2014 – 9-я неделя 2024, Juli
Anonim
Ansigtsgenkendelse Smart Lock Med LTE Pi HAT
Ansigtsgenkendelse Smart Lock Med LTE Pi HAT

Ansigtsgenkendelse bliver mere og mere udbredt, vi kan bruge den til at lave en smart lås.

Trin 1: Ting, der bruges i dette projekt

Hardware komponenter

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

Software -apps og onlinetjenester

  • WinSCP
  • Notesblok ++

Trin 2: Hardwareforbindelse

Hardwareforbindelse
Hardwareforbindelse

I dette projekt planlægger vi at tage billeder med picamera og genkende ansigter i dem og derefter vise genkendelsesresultat på skærmen. Hvis ansigter kendes, skal du åbne døren og sende, hvem der åbnede døren til det angivne telefonnummer via SMS.

Så du skal tilslutte et kamera til Raspberry Pi's kameragrænseflade og installere antenne og Grove - Relæ til LTE Pi hat, og tilslut derefter HAT til din Pi. Skærmen kan tilsluttes Raspberry Pi via et HDMI -kabel, glem ikke at slutte strøm til din skærm og Pi.

Trin 3: Software programmering

Ansigtsgenkendelse

Tak for Adam Geitgey og hans ansigtsgenkendelsesprojekt, vi kan bruge verdens enkleste ansigtsgenkendelsesbibliotek på Raspberry Pi. Følgende trin viser dig, hvordan du konfigurerer ansigtsgenkendelse på Pi.

Trin 1. Brug raspi-config til at konfigurere kamera og GPU-hukommelse.

sudo raspi-config

Valg af grænsefladeindstillinger - Kamera for at aktivere picamera, derefter vælge Avancerede indstillinger - Memory Split for at indstille GPU -hukommelse, det skal ændres til 64. Efter afslutning skal du genstarte din Raspberry Pi.

Trin 2. Installer nødvendige biblioteker.

sudo apt-get opdatering

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

Trin 3. Lav picamerea understøtter array.

sudo pip3 install -opgrader picamera [array]

Trin 4. Installer dlib og ansigtsgenkendelse.

sudo pip3 installer dlib

sudo pip3 installer face_recognition

Trin 5. Download og kør ansigtsgenkendelseseksempel

git-klon-enkeltfilial

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

BEMÆRK: Hvis du har ImportError: libatlas.so.3: kan ikke åbne delt objektfil: Ingen sådan fil eller bibliotek, skal du køre følgende kommando for at rette den.

Relæ

Når ansigtsgenkendelse er klar, kan vi fortsætte med at tilføje yderligere funktioner. Vi tilsluttede Grove - Relay til LTE Cat 1 Pi HAT, men den bruger digital port frem for I2C port.

Dette er pin-out til Raspberry Pi 3B, vi kan se SDA pin og SCL pin placeret i boardets pin 3 og pin 5.

Billede
Billede

Så vi kan styre relæet ved at udsende digitalt signal til pin 5. Kør efterfølgende python-program på din Raspberry Pi, hvis intet 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 indlæser kendte ansigter fra en mappe, genkender ansigter fanget af picamera, hvis ansigtet i mappen, kontrolrelæ for at låse døren op. Vi kan pakke dem til en klasse, her er metoden load_known_faces () og unlock (), det færdige program kan downloades i slutningen af denne artikel.

def load_known_faces (self):

known_faces = os.listdir (self._ known_faces_path) for kendt_face i kendt_faces: self._ known_faces_name.append (kendt_face [0: len (kendt_flade) - len ('. jpg')]) kendt_flade_billede = ansigtsgenkendelse.load_image_fil (selv._ kendt_flade_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 åbnet') time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True True._ retry_count += 1 print ('Prøv igen … { } '. format (self._ retry_count)) return False

Tænk transcendentalt, vi kan vise billedet, hvem der genkendte, biblioteker PIL og matplotlib kan være nyttige, blandt dem skal matplotlib installeres manuelt, kør denne kommando i din Raspberry Pi's terminal.

sudo pip3 installer matplotlib

Importer dem i din kode, og skift hvis blok 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 ('Dør åbnet') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True

Nu, hvis et ansigt genkendes, vises billedet i mappen på skærmen.

Billede
Billede

SMS

Nogle gange vil vi gerne vide, hvem der er i vores værelse, og nu er der et sted til LTE Cat 1 Pi HAT. Slut et SIM -kort til det, og følg trinene for at teste, om det virker eller ej.

Trin 1. Aktiver UART0 i Raspberry Pi

Brug nano til at redigere config.txt i /boot

sudo nano /boot/config.txt

tilføj dtoverlay = pi3-deaktiver-bt til bunden af det, og deaktiver hciuart-service

sudo systemctl deaktiver hciuart

derefter slette konsol = serial0, 115200 i cmdline.txt i /boot

sudo nano /boot/cmdline.txt

Efter alt er gjort, skal du genstarte din Raspberry Pi.

Trin 2. Download eksempel og kør det.

Åbn en terminal på din Raspberry Pi, skriv disse kommandoer til den 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 udgange i din terminal, fungerer LTE Cat 1 Pi HAT godt.

40-benet GPIO-header fundet

Aktivering af CTS0 og RTS0 på GPIO'er 16 og 17 rts cts ved vågning … modulnavn: LARA-R211 RSSI: 3

Nu vidste vi, at HAT'en fungerer godt, hvordan man bruger den til at sende SMS? Den første ting du skal vide er, at Raspberry Pi kommunikerer med HATEN via send AT -kommandoer fra UART. Du kan sende AT -kommandoer til LTE HAT ved at køre denne kode i python

fra ublox_lara_r2 import *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Luk fejlretningsmassage u.debug = Falsk u.sendAT ('')

AT -kommandoen til afsendelse af SMS er som følger

AT+CMGF = 1

AT+CMGS =

så her er _send_sms () metode:

def _send_sms (selv):

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) hvis self._ ublox.sendAT (' {} indtast rummet. / x1a'.format (unlocker)): print (self._ ublox.response)

BEMÆRK: LTE Cat 1 Pi HATs bibliotek skrevet af python2, som ikke er særlig kompatibelt med python3, hvis du vil bruge det med ansigtsgenkendelse, skal du downloade det fra linket fra slutningen af denne artikel.

Anbefalede: