Përmbajtje:

Kyçja Smart e Njohjes së Fytyrës Me LTE Pi HAT: 4 hapa
Kyçja Smart e Njohjes së Fytyrës Me LTE Pi HAT: 4 hapa

Video: Kyçja Smart e Njohjes së Fytyrës Me LTE Pi HAT: 4 hapa

Video: Kyçja Smart e Njohjes së Fytyrës Me LTE Pi HAT: 4 hapa
Video: OSCAL C60: сверхдоступный смартфон // Обзор из реальной жизни 2024, Nëntor
Anonim
Kyçja Smart e Njohjes së Fytyrës Me LTE Pi HAT
Kyçja Smart e Njohjes së Fytyrës Me LTE Pi HAT

Njohja e fytyrës po përdoret gjithnjë e më shumë, ne mund ta përdorim atë për të bërë një bllokim të zgjuar.

Hapi 1: Gjërat e përdorura në këtë projekt

Komponentët e harduerit

  • Raspberry Pi 3 Model B
  • Raspberry Pi Kamera Moduli V2
  • Grove - Stafetë
  • LTE Cat 1 Pi HAT (Evropë)
  • Ekran 10.1 inç 1200x1980 HDMI IPS LCD

Aplikacionet softuerike dhe shërbimet online

  • WinSCP
  • Notepad ++

Hapi 2: Lidhja e harduerit

Lidhja e harduerit
Lidhja e harduerit

Në këtë projekt, ne planifikojmë të bëjmë fotografi me picamera dhe të njohim fytyrat në to, pastaj të shfaqim rezultatin e njohjes në ekran. Nëse fytyrat janë të njohura, hapni derën dhe dërgoni atë që e hapi derën në numrin e caktuar të telefonit me SMS.

Kështu që ju duhet të lidhni një aparat fotografik me ndërfaqen e kamerës së Raspberry Pi dhe të instaloni antenë dhe Grove - Relay to LTE Pi, pastaj lidhni HAT në Pi tuaj. Ekrani mund të lidhet me Raspberry Pi përmes një kabllo HDMI, mos harroni të lidhni fuqinë me ekranin tuaj dhe Pi.

Hapi 3: Programimi i softuerit

Njohja e Fytyrës

Faleminderit për Adam Geitgey dhe projektin e tij të Njohjes së Fytyrës, ne mund të përdorim bibliotekën më të thjeshtë në botë të njohjes së fytyrës në Raspberry Pi. Hapat e mëposhtëm do t'ju tregojnë se si të konfiguroni njohjen e fytyrës në Pi.

Hapi 1. Përdorni raspi-config për të konfiguruar kamerën dhe kujtesën GPU.

sudo raspi-config

Zgjedhja e Opsioneve të Ndërfaqes - Kamera për të aktivizuar fotografinë, pastaj zgjedhja e Opsioneve të Avancuara - Memory Split për të vendosur kujtesën GPU, duhet të ndryshohet në 64. Pas përfundimit, rindizni Raspberry Pi tuaj.

Hapi 2. Instaloni bibliotekat e kërkuara.

përditësim sudo apt-get

sudo apt-get upgrade sudo apt-get install build-thelbësore / 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-pastrohuni

Hapi 3. Bëni një grup mbështetësish picamerea.

instaloni sudo pip3 -azhurnoni picamera [grup]

Hapi 4. Instaloni dlib dhe njohjen e fytyrës.

sudo pip3 instaloni dlib

sudo pip3 instaloni face_recognition

Hapi 5. Shkarkoni dhe ekzekutoni shembullin e njohjes së fytyrës

git klon-një degë

cd./face_recognition/shembuj python3 facerec_on_raspberry_pi.py

SH NOTNIM: Nëse keni marrë ImportError: libatlas.so.3: nuk mund të hapni skedarin e objektit të përbashkët: Asnjë skedar ose drejtori e tillë, ekzekutoni komandën e mëposhtme për ta rregulluar atë.

Stafetë

Kur njohja e fytyrës të jetë gati, ne mund të vazhdojmë të shtojmë veçori shtesë. Ne e lidhëm Grove - Relay me LTE Cat 1 Pi HAT, por ai përdor port dixhital në vend të portit I2C.

Kjo është pin-out për Raspberry Pi 3B, ne mund të shohim pin SDA dhe SCL pin të vendosura në pin 3 të bordit dhe pin 5.

Imazhi
Imazhi

Kështu që ne mund të kontrollojmë stafetën me daljen e sinjalit dixhital në pin 5. Drejtoni programin python poshtë në Raspberry Pi tuaj, nëse asgjë nuk shkon keq, do të dëgjoni një Ti-Ta nga stafeta.

importoni RPi. GPIO si GPIO

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

Pra, këtu është ideja, ne ngarkojmë fytyrat e njohura nga një dosje, njohim fytyrat e kapura nga picamera, nëse fytyra në dosje, stafetë e kontrollit për të zhbllokuar derën. Ne mund t'i paketojmë ato në një klasë, këtu është metoda load_known_faces () dhe metoda e zhbllokimit (), programi i përfunduar mund të shkarkohet në fund të këtij artikulli.

def load_known_faces (vetja):

fytyrat e njohura = os.listdir (vetja._pathët_të njohura) për fytyrën e njohur në fytyrat e njohura: vetja._njofta_fytyra_emri.append (fytyra e njohur [0: len (fytyra e njohur) - len ('. jpg')]) e njohur_face_image = face_recognition.load_image_file (self._) vetë._ njohje_fytyra_kodimi.append (face_recognition.face_encodings (known_face_image) [0]) return len (self._ njohur_faces_encoding) def zhbllokuar (vetja): nëse vetja._ përputhet. numërimi (E vërtetë)> 0: GPIO.output (vetja._ relay_pin, GPIO. HIGH) print ("Dera e hapur") time.sleep (5) GPIO.output (vetja._strela_pin, GPIO. LOW) vetja._ reset_recognise_params () return vetja e vërtetë._ retry_count += 1 printim ('Ju lutemi provoni përsëri … { } '. format (vetë._ retry_count)) return False

Mendoni në mënyrë transcendente, ne mund të tregojmë figurën se kush e njohu, bibliotekat PIL dhe matplotlib mund të jenë të dobishme, ndër to, matplotlib duhet të instalohet me dorë, drejtojeni këtë komandë në terminalin tuaj Raspberry Pi.

sudo pip3 instaloni matplotlib

Importojini ato në kodin tuaj dhe ndryshoni nëse bllokoni në metodën e zhbllokimit () si kjo:

img = Image.open ('{}/{}. jpg'.format (vetja._rruga e njohur_fytyrave, vetja._emri_fytyruesve_njohur [0]))

plt.imshow (img) plt.ion () GPIO.putput (vetë._style_pin, GPIO. HIGH) print ("Dera u hap") plt.pause (3) plt.close () GPIO.output (vetë._ stafetë_pin, GPIO. LOW) vet._ reset_recognise_params () return True

Tani, nëse njihet një fytyrë, fotografia në dosje do të shfaqet në ekran.

Imazhi
Imazhi

SMS

Ndonjëherë ne duam të dimë se kush është në dhomën tonë, dhe tani ka një vend për LTE Cat 1 Pi HAT. Lidheni një kartë SIM me të dhe ndiqni hapat për të provuar nëse funksionon apo jo.

Hapi 1. Aktivizoni UART0 në Raspberry Pi

Përdorni nano për të redaktuar config.txt në /boot

sudo nano /boot/config.txt

shtoni dtoverlay = pi3-disable-bt në fund të tij dhe çaktivizoni shërbimin hciuart

sudo systemctl çaktivizo hciuart

pastaj fshini tastierën = serial0, 115200 në cmdline.txt në /boot

sudo nano /boot/cmdline.txt

Pasi të keni bërë gjithçka, duhet të rindizni Raspberry Pi tuaj.

Hapi 2. Shkarkoni shembullin dhe ekzekutojeni.

Hapni një terminal në Raspberry Pi tuaj, shkruani këto komanda në të rresht pas rreshti.

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

Nëse i shihni këto rezultate në terminalin tuaj, LTE Cat 1 Pi HAT funksionon mirë.

U zbulua titulli GPIO me 40 kunja

Aktivizimi i CTS0 dhe RTS0 në GPIO 16 dhe 17 rts cts kur zgjoheni … emri i modulit: LARA-R211 RSSI: 3

Tani e dinim që HAT funksionon mirë, si ta përdorim atë për të dërguar SMS? Gjëja e parë që duhet të dini është se Raspberry Pi komunikon me HAT përmes dërgimit të komandave AT nga UART. Ju mund t'i dërgoni komandat AT te LTE HAT duke e ekzekutuar këtë kod në python

nga importi ublox_lara_r2 *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Mbyll masazhin e korrigjimit u.debug = U.sendAT e rreme ('')

Komanda AT për dërgimin e SMS është si më poshtë

AT+CMGF = 1

AT+CMGS =

kështu që këtu është metoda _send_sms ():

def _dërgo_sms (vetë):

nëse vetë._ phonenum == Asnjë: kthim False për zhbllokuesin në vetvete._ njohin_emrat_faqe (): nëse vetë._ ublox.sendAT ('AT+CMGF = 1 / r / n'): printoni (vetë._ ublox.përgjigje) nëse vetja. _ublox.sendAT ('AT+CMGS = "{}" / r / n'.format (vet._ fonen)): print (vetë._ ublox.përgjigje) nëse vetë._ ublox.sendAT (' {} hyni në dhomë. / x1a'.format (zhbllokues)): print (vetë._ ublox.përgjigje)

SH NOTNIM: Biblioteka e LTE Cat 1 Pi HAT e shkruar nga python2, e cila nuk është shumë e pajtueshme me python3, nëse doni ta përdorni me njohjen e fytyrës, ju lutemi shkarkojeni nga lidhja nga fundi i këtij artikulli.

Recommended: