Sommario:
- Passaggio 1: cose utilizzate in questo progetto
- Passaggio 2: connessione hardware
- Passaggio 3: Programmazione software
- Passaggio 4: fatto
Video: Smart Lock con riconoscimento facciale con LTE Pi HAT: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Il riconoscimento facciale sta diventando sempre più diffuso, possiamo usarlo per creare una serratura intelligente.
Passaggio 1: cose utilizzate in questo progetto
Componenti hardware
- Raspberry Pi 3 Modello B
- Modulo fotocamera Raspberry Pi V2
- Grove - Staffetta
- CAPPELLO LTE Cat 1 Pi (Europa)
- Display LCD IPS HDMI 1200x1980 da 10,1 pollici
App software e servizi online
- WinSCP
- Blocco note++
Passaggio 2: connessione hardware
In questo progetto, abbiamo in programma di scattare foto con picamera e riconoscere i volti in esse, quindi visualizzare i risultati del riconoscimento sullo schermo. Se noti volti, apri la porta e invia chi ha aperto la porta al numero di telefono specificato tramite SMS.
Quindi è necessario collegare una fotocamera all'interfaccia della fotocamera di Raspberry Pi e installare l'antenna e il cappello Grove - Relay su LTE Pi, quindi collegare HAT al Pi. Lo schermo può essere collegato a Raspberry Pi tramite un cavo HDMI, non dimenticare di collegare l'alimentazione allo schermo e al Pi.
Passaggio 3: Programmazione software
Riconoscimento facciale
Grazie per Adam Geitgey e il suo progetto Face Recognition, possiamo utilizzare la libreria di riconoscimento facciale più semplice al mondo su Raspberry Pi. I seguenti passaggi ti mostreranno come impostare il riconoscimento facciale su Pi.
Passaggio 1. Utilizzare raspi-config per configurare la memoria della fotocamera e della GPU.
sudo raspi-config
Scegliendo Opzioni interfaccia - Fotocamera per abilitare la picamera, quindi scegliendo Opzioni avanzate - Divisione memoria per impostare la memoria GPU, dovrebbe essere cambiato in 64. Dopo aver terminato, riavvia il tuo Raspberry Pi.
Passaggio 2. Installa le librerie richieste.
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
Passaggio 3. Fare in modo che picamerea supporti l'array.
sudo pip3 install --upgrade picamera[array]
Passaggio 4. Installa dlib e il riconoscimento facciale.
sudo pip3 install dlib
sudo pip3 install face_recognition
Passaggio 5. Scarica ed esegui l'esempio di riconoscimento facciale
git clone --single-branch
cd./face_recognition/examples python3 facerec_on_raspberry_pi.py
AVVISO: se hai ricevuto ImportError: libatlas.so.3: impossibile aprire il file oggetto condiviso: nessun file o directory di questo tipo, esegui il seguente comando per risolverlo.
relè
Quando il riconoscimento facciale è pronto, possiamo continuare ad aggiungere funzionalità aggiuntive. Abbiamo collegato Grove - Relay a LTE Cat 1 Pi HAT, ma utilizza la porta digitale anziché la porta I2C.
Questo è il pin-out per Raspberry Pi 3B, possiamo vedere il pin SDA e il pin SCL situati nei pin 3 e 5 della scheda.
Quindi possiamo controllare il relè inviando il segnale digitale al pin 5. Esegui seguendo il programma Python sul tuo Raspberry Pi, se nulla va storto, sentirai un Ti-Ta dal relè.
importa RPi. GPIO come GPIO
RELAY_PIN = 5 GPIO.setmode(GPIO. BOARD) GPIO.setup(RELAY_PIN, GPIO. OUT) GPIO.output(RELAY_PIN, GPIO. HIGH)
Quindi ecco l'idea, carichiamo i volti noti da una cartella, riconosciamo i volti catturati da picamera, se il volto è nella cartella, controlliamo il relè per sbloccare la porta. Possiamo impacchettarli in una classe, ecco il metodo load_known_faces() e il metodo unlock(), il programma completato può essere scaricato alla fine di questo articolo.
def load_known_faces(self):
volti_noti = os.listdir(self._percorso_facce_conosciute) for volto_noto in volti_noti: self._nome_facce_conosciute.append(faccia_nota[0: len(faccia_nota) - len('.jpg')]) immagine_faccia_conosciuta = riconoscimento_faccia.load_image_file(self._facce_conosciute)) 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('Porta aperta') time.sleep(5) GPIO.output(self._relay_pin, GPIO. LOW) self._reset_recognise_params() return True self._retry_count += 1 print('Riprova…{ }'.format(self._retry_count)) restituisce False
Pensa in modo trascendentale, possiamo mostrare l'immagine che ha riconosciuto, le librerie PIL e matplotlib possono essere utili, tra queste, matplotlib deve essere installato manualmente, esegui questo comando nel terminale del tuo Raspberry Pi.
sudo pip3 install matplotlib
Importali nel tuo codice e cambia if block nel metodo unlock() in questo modo:
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('Porta aperta') plt.pause(3) plt.close() GPIO.output(self._relay_pin, GPIO. LOW) self._reset_recognise_params() return True
Ora, se viene riconosciuto un volto, l'immagine nella cartella verrà visualizzata sullo schermo.
sms
A volte vogliamo sapere chi c'è nella nostra stanza, e ora c'è un posto per LTE Cat 1 Pi HAT. Collega una scheda SIM e segui i passaggi per verificare se funziona o meno.
Passaggio 1. Abilita UART0 in Raspberry Pi
Usa nano per modificare config.txt in /boot
sudo nano /boot/config.txt
aggiungi dtoverlay=pi3-disable-bt in fondo e disabilita il servizio hciuart
sudo systemctl disabilita hciuart
quindi elimina console=serial0, 115200 in cmdline.txt in /boot
sudo nano /boot/cmdline.txt
Dopo aver fatto tutto, dovresti riavviare il tuo Raspberry Pi.
Passaggio 2. Scarica l'esempio ed eseguilo.
Apri un terminale sul tuo Raspberry Pi, digita questi comandi riga per riga.
cd ~
git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py installa cd prova sudo python test01.py
Se vedi queste uscite nel tuo terminale, LTE Cat 1 Pi HAT funziona bene.
Intestazione GPIO a 40 pin rilevata
Abilitazione CTS0 e RTS0 su GPIO 16 e 17 rts cts al risveglio… nome modulo: LARA-R211 RSSI: 3
Ora sapevamo che il HAT funziona bene, come usarlo per inviare SMS? La prima cosa che devi sapere è che il Raspberry Pi comunica con l'HAT tramite i comandi send AT di UART. Puoi inviare comandi AT a LTE HAT eseguendo questo codice in python
da ublox_lara_r2 import *
u = Ublox_lara_r2() u.initialize() u.reset_power() # Chiudi il messaggio di debug u.debug = False u.sendAT('')
Il comando AT per l'invio di SMS è il seguente
AT+CMGF=1
AT+CMGS=
quindi ecco il metodo _send_sms():
def _send_sms(self):
if self._phonenum == Nessuno: restituisce False per lo sblocco 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('{} entra nella stanza.\ x1a'.format(unlocker)): print(self._ublox.response)
AVVISO: la libreria LTE Cat 1 Pi HAT scritta da python2, che non è molto compatibile con python3, se vuoi usarla con riconoscimento facciale, scaricala dal link alla fine di questo articolo.
Consigliato:
Abellcadabra (Sistema di blocco porta con riconoscimento facciale): 9 passaggi
Abellcadabra (Sistema di blocco della porta di riconoscimento facciale): Sdraiato durante la quarantena, ho cercato di trovare un modo per ammazzare il tempo costruendo il riconoscimento facciale per la porta di casa. L'ho chiamato Abellcadabra - che è una combinazione tra Abracadabra, una frase magica con campanello che prendo solo il campanello. LOL
Specchio per riconoscimento facciale con scomparto segreto: 15 passaggi (con immagini)
Specchio per il riconoscimento facciale con scomparto segreto: sono sempre stato incuriosito dagli scomparti segreti sempre creativi utilizzati in storie, film e simili. Così, quando ho visto il Secret Compartment Contest, ho deciso di sperimentare io stesso l'idea e creare uno specchio dall'aspetto ordinario che apra una s
Campanello con riconoscimento facciale: 7 passaggi (con immagini)
Campanello con riconoscimento facciale: motivazione Di recente, c'è stata un'ondata di rapine nel mio paese che hanno come obiettivo gli anziani nelle loro stesse case. Di solito, l'accesso è concesso dagli stessi occupanti poiché i visitatori li convincono di essere caregiver/infermieri. Esso
Riconoscimento facciale CAM ESP32 con supporto MQTT - AI-Thinker: 4 passaggi
Riconoscimento facciale CAM ESP32 con supporto MQTT | AI-Thinker: Ciao! Volevo condividere il mio codice per un progetto dove avessi bisogno di una CAM ESP con riconoscimento facciale, che potesse inviare dati a MQTT. Quindi bene .. dopo forse 7 ore di ricerca attraverso più esempi di codice e cercando cosa è cosa, ho finito
Sistema di sicurezza con riconoscimento facciale per un frigorifero con Raspberry Pi: 7 passaggi (con immagini)
Sistema di sicurezza a riconoscimento facciale per frigorifero con Raspberry Pi: Navigando in internet ho scoperto che i prezzi dei sistemi di sicurezza variano da 150$ a 600$ e oltre, ma non tutte le soluzioni (anche quelle molto costose) sono integrabili con altre strumenti intelligenti a casa tua! Ad esempio, non è possibile impostare