Obsah:

Rozpoznání tváře Smart Lock s LTE Pi HAT: 4 kroky
Rozpoznání tváře Smart Lock s LTE Pi HAT: 4 kroky

Video: Rozpoznání tváře Smart Lock s LTE Pi HAT: 4 kroky

Video: Rozpoznání tváře Smart Lock s LTE Pi HAT: 4 kroky
Video: DOOGEE T20 - RECENZE a TESTY TABLETU S DOBRÝM ROZPOČTEM 2024, Listopad
Anonim
Rozpoznání tváře Smart Lock s LTE Pi HAT
Rozpoznání tváře Smart Lock s LTE Pi HAT

Rozpoznávání tváře je stále více používáno, můžeme z něj vytvořit chytrý zámek.

Krok 1: Věci použité v tomto projektu

Hardwarové komponenty

  • Raspberry Pi 3 Model B
  • Modul kamery Raspberry Pi V2
  • Grove - relé
  • LTE Cat 1 Pi HAT (Evropa)
  • 10,1 palcový 1200x1980 HDMI IPS LCD displej

Softwarové aplikace a online služby

  • WinSCP
  • Poznámkový blok ++

Krok 2: Hardwarové připojení

Hardwarové připojení
Hardwarové připojení

V tomto projektu plánujeme pořizovat snímky pomocí pikamery a rozpoznávat v nich tváře a poté na obrazovce zobrazit výsledek rozpoznávání. Pokud jsou tváře známé, otevřete dveře a pošlete, kdo dveře otevřel, na uvedené telefonní číslo prostřednictvím SMS.

Musíte tedy připojit kameru k rozhraní kamery Raspberry Pi a nainstalovat anténu a klobouk Grove - Relay to LTE Pi a poté připojit HAT k vašemu Pi. Obrazovku lze připojit k Raspberry Pi pomocí kabelu HDMI, nezapomeňte připojit napájení k obrazovce a Pi.

Krok 3: Programování softwaru

Rozpoznávání obličejů

Díky Adamovi Geitgeyovi a jeho projektu Face Recognition, můžeme na Raspberry Pi používat nejjednodušší knihovnu rozpoznávání tváří na světě. Následující kroky vám ukážou, jak nastavit rozpoznávání obličejů na Pi.

Krok 1. Ke konfiguraci paměti fotoaparátu a GPU použijte raspi-config.

sudo raspi-config

Výběrem možnosti rozhraní - Fotoaparát povolíte pikameru a poté volbou Upřesnit možnosti - Rozdělení paměti pro nastavení paměti GPU, měla by být změněna na 64. Po dokončení restartujte Raspberry Pi.

Krok 2. Nainstalujte požadované knihovny.

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

Krok 3. Vytvořte picamerea podporuje pole.

sudo pip3 install --upgrade picamera [pole]

Krok 4. Nainstalujte si dlib a rozpoznávání obličeje.

sudo pip3 install dlib

sudo pip3 install face_recognition

Krok 5. Stáhněte a spusťte příklad rozpoznávání tváře

git clone --single-branch

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

UPOZORNĚNÍ: Pokud máte ImportError: libatlas.so.3: nelze otevřít soubor sdíleného objektu: Žádný takový soubor nebo adresář, spusťte následující příkaz a opravte jej.

Relé

Když je rozpoznávání obličeje připraveno, můžeme pokračovat v přidávání dalších funkcí. Připojili jsme Grove - Relay k LTE Cat 1 Pi HAT, ale používá spíše digitální port než I2C port.

Toto je pin-out pro Raspberry Pi 3B, můžeme vidět pin SDA a SCL pin umístěný v pinu 3 a pinu desky.

obraz
obraz

Můžeme tedy ovládat relé výstupy digitálního signálu na pin 5. Spusťte následující program python na vašem Raspberry Pi, pokud se nic nestane, uslyšíte Ti-Ta z relé.

importujte RPi. GPIO jako GPIO

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

Takže tady je myšlenka, načteme známé tváře ze složky, rozpoznáme tváře zachycené pikamerou, pokud je tvář ve složce, ovládací relé odemkne dveře. Můžeme je sbalit do třídy, zde je metoda load_known_faces () a metoda unlock (), dokončený program lze stáhnout na konci tohoto článku.

def load_known_faces (self):

known_faces = os.) 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) tisk („Dveře otevřeny“) time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True self._ retry_count += 1 print ('Please try again … { } '. format (self._ retry_count)) return False

Myslete transcendentálně, můžeme ukázat obrázek, který rozpoznal, knihovny PIL a matplotlib mohou být užitečné, mezi nimi je třeba matplotlib nainstalovat ručně, spusťte tento příkaz v terminálu vašeho Raspberry Pi.

sudo pip3 nainstalujte matplotlib

Importujte je do kódu a změňte if block in unlock () metodou takto:

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) tisk ('Dveře otevřeny') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True

Pokud je nyní rozpoznána tvář, zobrazí se na obrazovce obrázek ve složce.

obraz
obraz

SMS

Někdy chceme vědět, kdo je v našem pokoji, a nyní je místo pro LTE Cat 1 Pi HAT. Připojte k němu SIM kartu a podle níže uvedených kroků vyzkoušejte, zda bude fungovat nebo ne.

Krok 1. Povolte UART0 v Raspberry Pi

Pomocí nano upravte soubor config.txt v /boot

sudo nano /boot/config.txt

na konec přidejte dtoverlay = pi3-disable-bt a deaktivujte službu hciuart

sudo systemctl zakázat hciuart

poté odstraňte konzolu = serial0, 115200 v cmdline.txt v /boot

sudo nano /boot/cmdline.txt

Po dokončení všeho byste měli restartovat Raspberry Pi.

Krok 2. Stáhněte si příklad a spusťte jej.

Otevřete terminál na svém Raspberry Pi, zadejte do něj tyto příkazy řádek po řádku.

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

Pokud ve svém terminálu vidíte tyto výstupy, LTE Cat 1 Pi HAT funguje dobře.

Byla detekována 40pinová hlavička GPIO

Povolení CTS0 a RTS0 na GPIO 16 a 17 rts při probuzení … název modulu: LARA-R211 RSSI: 3

Nyní jsme věděli, že HAT funguje dobře, jak jej používat k odesílání SMS? První věc, kterou potřebujete vědět, je, že Raspberry Pi komunikuje s HAT prostřednictvím příkazů odesílání AT od UART. Příkazy AT můžete odeslat do LTE HAT spuštěním tohoto kódu v pythonu

z ublox_lara_r2 import *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Zavřít ladicí masáž u.debug = False u.sendAT ('')

AT příkaz pro odesílání SMS je následující

AT+CMGF = 1

AT+CMGS =

zde je tedy metoda _send_sms ():

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)

UPOZORNĚNÍ: Knihovna LTE Cat 1 Pi HAT napsaná python2, která není s python3 příliš kompatibilní, pokud ji chcete používat s rozpoznáváním tváří, stáhněte si ji prosím z odkazu na konci tohoto článku.

Doporučuje: