Sommario:

Telecamera di sicurezza per esterni con funzionalità complete basata su Raspberry Pi: 21 passaggi
Telecamera di sicurezza per esterni con funzionalità complete basata su Raspberry Pi: 21 passaggi

Video: Telecamera di sicurezza per esterni con funzionalità complete basata su Raspberry Pi: 21 passaggi

Video: Telecamera di sicurezza per esterni con funzionalità complete basata su Raspberry Pi: 21 passaggi
Video: Spostiamo Home Assistant sull'SSD - Nuova Domotica 2021 2024, Luglio
Anonim
Telecamera di sicurezza per esterni completa basata su Raspberry Pi
Telecamera di sicurezza per esterni completa basata su Raspberry Pi
Telecamera di sicurezza per esterni completa basata su Raspberry Pi
Telecamera di sicurezza per esterni completa basata su Raspberry Pi
Telecamera di sicurezza per esterni completa basata su Raspberry Pi
Telecamera di sicurezza per esterni completa basata su Raspberry Pi
Telecamera di sicurezza per esterni completa basata su Raspberry Pi
Telecamera di sicurezza per esterni completa basata su Raspberry Pi

Se hai avuto esperienze deludenti con le webcam economiche, il loro software scritto male e/o l'hardware inadeguato, puoi facilmente costruire una webcam semi-professionale con un Raspberry Pi e pochi altri componenti elettronici facili da trovare su cui eseguire PiWebcam, una webcam gratuita e fittizia software a prova di bomba che trasforma con un solo clic il tuo dispositivo in una webcam potente e completa.

Passaggio 1: ispirazione

Ispirazione
Ispirazione

Dopo aver combattuto contro il software limitato della maggior parte delle telecamere di sicurezza economiche sul mercato (ad esempio visione notturna scarsa, app oscura per la configurazione, nessuna registrazione offline, rilevamento del movimento impreciso, ecc.), Ho deciso di costruire qualcosa da solo e Raspberry Pi mi sembrava la piattaforma più adatta.

Anche se ci sono già in giro un buon numero di progetti per l'utilizzo di un Raspberry Pi come webcam, personalmente li trovo troppo complessi e in generale più soluzioni ad hoc per utenti avanzati piuttosto che prodotti finiti.

Tuttavia, la maggior parte di essi si concentra solo sul software piuttosto che sull'hardware, che è altrettanto importante per il caso d'uso della telecamera di sicurezza.

Passaggio 2: hardware

Hardware
Hardware

Per costruire una webcam per interni, un semplice Raspberry Pi (qualsiasi modello) e una videocamera collegata (qualsiasi modello) con LED IR per la visione notturna funzionerebbero perfettamente. Ci sono già molti kit disponibili con questa combinazione, quindi se questo è ciò che vuoi ottenere, acquista uno di quelli e vai al passaggio 12.

Lo stesso hardware, tuttavia, non andrebbe bene per una fotocamera per esterni: l'immagine scattata dalla fotocamera Raspberry con capacità IR fuori casa sembrerebbe per lo più mignolo (a causa della luce infrarossa catturata dalla fotocamera) e con il piccolo fuori dal -box LED IR non saresti in grado di vedere nulla oltre i 3 piedi / 1 metro.

Per risolvere il primo problema, abbiamo bisogno di qualcosa chiamato filtro IR CUT meccanico che sostanzialmente restituisce i veri colori alla luce del giorno ma consente comunque di catturare le luci IR durante la notte. La maggior parte dei dispositivi sul mercato ha due fili: un breve impulso su un filo sposterà il filtro IR davanti al sensore (modalità giorno), un breve impulso sull'altro filo rimuoverà il filtro (modalità notte). Di solito funzionano tra 3v e 9v e, se collegati al nostro Raspberry, possiamo avere il pieno controllo su quando attivare la modalità notturna. Tuttavia, il filtro IR Cut non può essere controllato direttamente da un pin del Raspberry in quanto la parte meccanica al suo interno richiede molta più corrente di quella che il Pi può fornire. Lavoreremo su questo problema utilizzando un H-Bridge alimentato dal 5v del Raspberry e controllato da due pin.

Per affrontare il secondo problema, avremmo bisogno di una scheda LED IR più potente per ottenere una visione notturna decente. Le schede con meno led ma più grandi sono da preferire a quelle con molti led piccoli. La maggior parte delle schede sul mercato ha anche un LDR (Light Dependent Resistor) collegato che viene utilizzato per determinare quando accendere i LED se sono scuri. Di solito funzionano a 12v e hanno una piccola spina (etichettata "IRC") che può essere utilizzata per collegare un filtro taglia IR. Tuttavia, nessun impulso viene inviato direttamente attraverso questa presa ma durante la notte (LED accesi), viene creata una caduta di tensione (di solito) di 5 V tra i fili e la terra. Se colleghiamo uno dei fili al nostro Raspberry e monitoriamo il segnale del pin, possiamo determinare se stiamo entrando o uscendo dalla modalità notturna (che è esattamente ciò che fa PiWebcam)

Un'ultima cosa da considerare per quanto riguarda l'hardware è come alimentare il Raspberry Pi. Dato che abbiamo un alimentatore a 12v e abbiamo bisogno di 5v per alimentare il Pi, è necessario un regolatore di tensione.

Passaggio 3: software

Software
Software

L'idea alla base di PiWebcam era quella di fornire una potente piattaforma di imaging per tutti, indipendentemente dalle loro conoscenze precedenti. Uno script di installazione si occuperà di configurare completamente il sistema con impostazioni predefinite ragionevoli, consentendo all'utente di personalizzare attraverso un'interfaccia web pulita e mobile-friendly solo un numero molto limitato di parametri rilevanti. Tuttavia, grazie alla sua potente funzione di rilevamento del movimento potenziata dalle capacità di riconoscimento degli oggetti alimentate da un modello di intelligenza artificiale, PiWebcam può notificare all'utente qualsiasi movimento rilevato inviando un'istantanea a un destinatario di posta elettronica o pubblicandolo sul canale Slack preferito dell'utente.

  • Pagina del progetto:
  • Manuale dell'utente:

Passaggio 4: Distinta base

Distinta materiali
Distinta materiali
Distinta materiali
Distinta materiali
Distinta materiali
Distinta materiali

La seguente distinta base è per la webcam per esterni costruita in questo tutorial:

  • Raspberry Pi Zero W
  • Fotocamera Raspberry Pi (qualsiasi modello, questo include un filtro IR cut)
  • Cavo per fotocamera Raspberry Pi Zero
  • Custodia impermeabile per fotocamera (qualsiasi modello in cui si adatterebbe il lampone)
  • Scheda SD (16 GB consigliati)
  • Scheda LED IR (qualsiasi scheda che si adatta all'alloggiamento della telecamera)
  • Filtro IR Cut (solo se non già integrato nella telecamera)
  • Regolatore 12v - 5v (assicurarsi che sia un regolatore buck in grado di fornire almeno 1A)
  • Spina micro USB maschio
  • Spina femmina 12v
  • Alimentatore 12v 3A
  • H-Ponte
  • Cales Dupont femmina-femmina

Passaggio 5: preparazione dei componenti

Preparazione dei componenti
Preparazione dei componenti
Preparazione dei componenti
Preparazione dei componenti
Preparazione dei componenti
Preparazione dei componenti

Il convertitore buck (regolatore di tensione) è responsabile della conversione dell'alimentazione da 12 V ai 5 V richiesti dal Raspberry Pi. La maggior parte dei componenti sul mercato sono regolabili (ad esempio è possibile modificare la tensione di uscita ruotando una vite). Poiché all'interno della webcam la vite potrebbe essere stata accidentalmente spostata, per garantire un'uscita 5v fissa e costante inserire dello stagno nello slot 5v per saldare insieme i due bordi e tagliare il filo sul PCB (con un coltello) che va in "ADJ" (in alto a sinistra della foto)

Poiché vogliamo avere il pieno controllo del filtro IR Cut attraverso il Raspberry (indipendentemente dal fatto che il filtro sia incorporato o meno nella fotocamera come nell'immagine), dobbiamo eliminare il piccolo connettore. Tagliare i due fili e collegare un cavo dupont femmina per ciascun filo. Non buttare via il piccolo spinotto poiché dobbiamo usarlo per ricevere lo stato dell'LDR montato sulla Scheda Led IR. Collegare un altro cavo dupont femmina su uno dei due fili (non importa quale).

Passaggio 6: collegare la scheda LED IR all'alimentatore

Connetti alla scheda LED IR all'alimentatore
Connetti alla scheda LED IR all'alimentatore
Connetti alla scheda LED IR all'alimentatore
Connetti alla scheda LED IR all'alimentatore
Connetti alla scheda LED IR all'alimentatore
Connetti alla scheda LED IR all'alimentatore

Iniziamo collegando ai componenti l'ingresso dell'alimentatore 12v che entra nel nostro alloggiamento nudo della telecamera.

Collegare al filo negativo (nero) quanto segue:

  • Filo negativo della scheda Led IR
  • Filo negativo del convertitore buck
  • Cavo negativo al connettore USB maschio

Collegare al filo positivo (rosso) quanto segue:

  • Il filo positivo (12v) della scheda Led IR
  • Il filo Vin del convertitore buck

Passaggio 7: alimenta il Raspberry Pi

Alimenta il Raspberry Pi
Alimenta il Raspberry Pi
Alimenta il Raspberry Pi
Alimenta il Raspberry Pi

Collega il filo Vout del convertitore buck alla presa USB che alimenterà il Raspberry.

Dopo aver collegato tutti i fili, saldarli insieme o semplicemente fissarli saldamente con del nastro isolante.

Passaggio 8: collegare il filtro IR Cut

Collegare il filtro IR Cut
Collegare il filtro IR Cut
Collegare il filtro IR Cut
Collegare il filtro IR Cut
Collegare il filtro IR Cut
Collegare il filtro IR Cut

Poiché il filtro IR Cut non può essere controllato direttamente da un pin del Raspberry, utilizzeremo un H-Bridge alimentato dal pin 5v del Raspberry e controllato da due pin.

  • Collegare il pin 4 (5v) del lampone al "+" dell'H-Bridge
  • Collegare il pin 5 (GND) del lampone a "-" dell'H-Bridge
  • Collegare il pin 39 (BCM 20) del lampone a INT1 dell'H-Bridge
  • Collegare il pin 36 (BCM 16) del lampone a INT2 dell'H-Bridge
  • Collegare i due fili del filtro IR Cut a MOTOR1 e MOTOR2 o all'H-Bridge

In questo modo, quando verrà inviato un impulso attraverso ad es. il pin 39, 5v verrà fornito al MOTORE1 facendo commutare il filtro.

Passaggio 9: collegare la scheda LED IR al Raspberry

Collega la scheda LED IR al Raspberry
Collega la scheda LED IR al Raspberry

Per sapere quando sta diventando buio stiamo sfruttando l'LDR montato sulla scheda dei LED IR. Utilizzare lo spinotto ritagliato dal filtro IR nei passaggi precedenti, collegare un lato al connettore etichettato "IRC" della scheda LED IR e l'altro al pin 40 (BCM 21) del Raspberry.

Passaggio 10: montare la telecamera sulla scheda LED IR

Montare la telecamera sulla scheda LED IR
Montare la telecamera sulla scheda LED IR
Montare la telecamera sulla scheda LED IR
Montare la telecamera sulla scheda LED IR

Fissare la telecamera sullo slot dedicato della scheda LED IR con nastro isolante o altro. Cose da tenere in considerazione in questa fase:

  • La scheda LED IR diventa molto calda quando è accesa, quindi proteggi la fotocamera di conseguenza;
  • Assicurarsi che nessuna luce IR possa entrare nello slot in cui si trova la telecamera; Il riflesso della luce IR è uno dei motivi più comuni per cui la visione notturna è scarsa (sfocata);
  • Assicurarsi che sia rimasto dello spazio tra l'obiettivo e il vetro dell'alloggiamento della fotocamera, altrimenti potrebbero verificarsi riflessi o distorsioni dell'immagine;

NON chiudere ancora l'alloggiamento della fotocamera:-)

Passaggio 11: Opzione 1 - Flash di un'immagine PiWebcam preconfigurata (consigliata)

Opzione 1 - Flash di un'immagine PiWebcam preconfigurata (consigliata)
Opzione 1 - Flash di un'immagine PiWebcam preconfigurata (consigliata)
  • Scarica l'ultima immagine PiWebcam (PiWebcam_vX. X.img.zip) da
  • Decomprimi il file Scrivi l'immagine su una scheda SD (https://www.raspberrypi.org/documentation/installation/installing-images/)
  • Collega la scheda SD al tuo Raspberry Pi e accendilo
  • Il dispositivo inizierà a fungere da Access Point
  • Continua con le attività post-installazione

Passaggio 12: Opzione 2 - Crea un'immagine PiWebcam

Opzione 2 - Crea un'immagine PiWebcam
Opzione 2 - Crea un'immagine PiWebcam

La creazione di un'immagine PiWebcam richiede una nuova installazione di Raspbian e una scheda SD. Si prega di non riutilizzare un'installazione esistente ma ricominciare da zero:

  • Scarica il sistema operativo Raspbian Stretch Lite
  • Scrivi l'immagine su una scheda SD (ad esempio utilizzando Win32 Disk Imager)

Passaggio 13: Opzione 2 - Copia PiWebcam sulla scheda SD

Opzione 2 - Copia PiWebcam sulla scheda SD
Opzione 2 - Copia PiWebcam sulla scheda SD
Opzione 2 - Copia PiWebcam sulla scheda SD
Opzione 2 - Copia PiWebcam sulla scheda SD
Opzione 2 - Copia PiWebcam sulla scheda SD
Opzione 2 - Copia PiWebcam sulla scheda SD

Scarica l'ultima versione di PiWebcam (PiWebcam_vX. X.zip), estrai e copia la directory "PiWebcam" nella partizione di avvio.

Per una configurazione headless, metti nella partizione di avvio anche un file vuoto chiamato "ssh" e un "wpa_supplicant.conf" con la tua configurazione di rete. In questo modo il Raspberry inizierà a connettersi alla tua rete WiFi all'avvio e non avresti bisogno del cavo HDMI ma puoi connetterti direttamente tramite SSH ad esso.

Passaggio 14: Opzione 2: accendi il Raspberry e connettiti ad esso

Opzione 2: accendi il Raspberry e connettiti ad esso
Opzione 2: accendi il Raspberry e connettiti ad esso
Opzione 2: accendi il Raspberry e connettiti ad esso
Opzione 2: accendi il Raspberry e connettiti ad esso

Collega la scheda SD al tuo Raspberry Pi, accendilo e con un client SSH (o PuTTY su Windows) connettiti ad esso:

  • Nome host: raspberrypi.local
  • Nome utente: pi
  • Parola d'ordine: lampone

Passaggio 15: Opzione 2 - Configura il sistema per PiWebcam

Opzione 2 - Configura il sistema per PiWebcam
Opzione 2 - Configura il sistema per PiWebcam
Opzione 2 - Configura il sistema per PiWebcam
Opzione 2 - Configura il sistema per PiWebcam

Dopo essersi assicurati che il Raspberry sia connesso a Internet, esegui il seguente comando:

sudo /boot/PiWebcam/PiWebcam.sh install

Questo configurerà completamente il sistema e installerà le dipendenze richieste.

Al termine dell'installazione verrà richiesto di riavviare il dispositivo per rendere pienamente effettive le modifiche. Tutte le credenziali verranno riepilogate a schermo.

Si prega di notare che gli ultimi 6 caratteri sono casuali (es. PiWebcam-e533fe) e variano da dispositivo a dispositivo.

Passaggio 16: attività post-installazione - Connetti al punto di accesso WiFi di PiWebcam

Attività post-installazione - Connessione al punto di accesso WiFi di PiWebcam
Attività post-installazione - Connessione al punto di accesso WiFi di PiWebcam
Attività post-installazione - Connessione al punto di accesso WiFi di PiWebcam
Attività post-installazione - Connessione al punto di accesso WiFi di PiWebcam

Una volta acceso, il dispositivo inizierà a fungere da Access Point.

Connettiti alla rete WiFi creata dal dispositivo. La passphrase della rete e la password dell'utente amministratore (sia per l'interfaccia web che per SSH) sono le stesse dell'SSID (es. PiWebcam-XXXXX). Punta il tuo browser su https://PiWebcam.local e autenticati con username "admin" e con password uguale al nome della rete.

Passaggio 17: collega la webcam alla rete WiFi

Collega la webcam alla tua rete WiFi
Collega la webcam alla tua rete WiFi
Collega la webcam alla tua rete WiFi
Collega la webcam alla tua rete WiFi

Se vuoi connettere la webcam a una rete WiFi esistente, vai su Dispositivo / Rete, seleziona "Client WiFi" e inserisci "Rete WiFi" e "Passphrase".

Attendi 1-2 minuti, riconnettiti alla tua rete e punta il tuo browser su https://camera_name.your_network (es.

Passaggio 18: chiudere la custodia della webcam

Chiudi la custodia della webcam
Chiudi la custodia della webcam
Chiudi la custodia della webcam
Chiudi la custodia della webcam

Una volta verificato che la webcam è raggiungibile attraverso la rete ed eseguita la configurazione di base presentata nel passaggio precedente, è giunto il momento di chiudere il caso.

Passaggio 19: iniziare con PiWebcam

Iniziare con PiWebcam
Iniziare con PiWebcam
Iniziare con PiWebcam
Iniziare con PiWebcam
Iniziare con PiWebcam
Iniziare con PiWebcam
Iniziare con PiWebcam
Iniziare con PiWebcam

PiWebcam è già dotato di impostazioni predefinite ragionevoli. Una volta installato, non è richiesta alcuna configurazione aggiuntiva; PiWebcam inizierà a scattare istantanee e registrare video, sia che sia connesso o meno alla rete.

L'intera configurazione del dispositivo (telecamera, rete, notifiche e impostazioni di sistema) può essere eseguita tramite l'interfaccia web. Il file di configurazione può essere facilmente esportato e importato in Dispositivo/Sistema.

Quando viene rilevato un movimento, PiWebcam inizierà la registrazione di un video (che sarà poi reso disponibile tramite il menu "Riproduzione" dell'interfaccia web). Una volta che non ci sarà più movimento, verrà memorizzata anche un'immagine che evidenzia con un riquadro rosso il movimento rilevato. Se la funzione di rilevamento dell'oggetto è abilitata, qualsiasi movimento che non contenga l'oggetto configurato verrà ignorato in modo da ridurre i falsi positivi (ad es. se viene rilevato un movimento ma non viene identificata alcuna persona).

Quando le notifiche sono abilitate, lo snapshot verrà inviato all'indirizzo e-mail dell'utente e/o pubblicato sul canale Slack configurato. Se non è disponibile una connessione Internet, la notifica verrà messa in coda e rilasciata al successivo ripristino della connessione.

Un riepilogo dettagliato di tutte le impostazioni disponibili è riportato nella pagina del progetto.

Passaggio 20: accesso a Internet remoto

Accesso a Internet remoto
Accesso a Internet remoto

Facoltativamente, l'interfaccia web può essere raggiunta da Internet senza alcuna configurazione aggiuntiva nella rete o nel router domestico. Per abilitare questa funzionalità, seleziona la casella appropriata in Dispositivo / Rete.

Se l'accesso a Internet remoto è abilitato, il dispositivo avvia un tunnel SSH tramite serveo.net, senza la necessità di configurare alcun NAT o UPnP nel router. Il nome del dispositivo viene utilizzato come nome host e vengono esposti sia i servizi web che ssh.

Passaggio 21: dettagli tecnici

Tutti i file PiWebcam risiedono nella partizione di avvio della scheda SD, in una directory chiamata PiWebcam. Ciò include un singolo file bash, PiWebcam.sh e le pagine PHP per il pannello di amministrazione.

Durante il processo di installazione, viene eseguita una configurazione di sistema molto semplice, viene creata un'immagine initramfs e lo script PiWebcam.sh viene aggiunto a /etc/rc.local in modo da essere eseguito all'avvio con il parametro "configure".

Al primo riavvio, l'immagine initramfs ridurrà la partizione di root (precedentemente espansa per riempire l'intera scheda SD dal programma di installazione di Raspbian) e creerà una partizione dati subito dopo.

Sia il filesystem di avvio che quello di root sono montati in sola lettura e un filesystem di sovrapposizione viene creato dall'immagine initram sul filesystem di root in modo che qualsiasi modifica al sistema venga archiviata solo in memoria e vada persa al successivo riavvio. In questo modo il dispositivo sarà più robusto in caso di errori di configurazione, potrà essere facilmente ripristinato alle impostazioni di fabbrica e potrà sopravvivere a qualsiasi interruzione di corrente poiché nessun file di sistema viene mai scritto sulla scheda SD durante le normali operazioni. Il filesystem di dati è invece formattato con F2FS (Flash-Friendly File System) che tiene conto delle caratteristiche dei dispositivi di archiviazione basati su memoria flash.

Durante l'avvio, PiWebcam legge il suo file di configurazione archiviato in /boot/PiWebcam/PiWebcam.conf, configura il sistema, la telecamera, la rete e le notifiche in base alle impostazioni trovate e distribuisce l'interfaccia web da /boot/PiWebcam/web in la posizione della radice web.

Sia le immagini in movimento che i filmati sono archiviati nel filesystem di dati e raggruppati in cartelle per anno/mese/giorno/ora in modo da consentire un più facile accesso. Tutte le registrazioni possono essere riviste tramite l'interfaccia web con h5ai un moderno indicizzatore di file che consente di visualizzare file e directory in modo accattivante e fornire anteprime di immagini e video senza la necessità di scaricare preventivamente il contenuto.

Quando viene rilevato un movimento, PiWebcam.sh viene richiamato con il parametro "notify" tramite l'evento di movimento on_picture_save/on_movie_end. Se il rilevamento degli oggetti è abilitato per un'ulteriore analisi dell'immagine, l'immagine viene inviata a Clarifai per riconoscere tutti gli oggetti all'interno dell'immagine. Questo funzionerebbe benissimo per ridurre i falsi positivi, ad es. se ti interessa sapere se c'è qualcuno che ruba in casa tua e non solo un improvviso cambio di luce.

Successivamente, PiWebcam verifica se è disponibile una connessione Internet e, in tal caso, invia la notifica. Oltre alle tradizionali notifiche e-mail, inviate con ssmtp, con in allegato l'immagine in movimento rilevata, PiWebcam può anche caricare la stessa immagine su un canale Slack. Se non conosci Slack, dai un'occhiata (); è un ottimo strumento di collaborazione ma può anche essere utilizzato per creare un gruppo dedicato alla tua famiglia, concedere l'accesso ai membri della tua famiglia, chattare con loro e consentire a PiWebcam o alle utility di automazione domestica (come ad esempio eGeoffrey) di pubblicare aggiornamenti lì. Se non c'è connessione a Internet, la notifica non va persa ma viene messa in coda e inviata al ripristino della connessione.

Una funzionalità di aggiornamento è fornita anche tramite l'interfaccia web.

Consigliato: