Sommario:

Sistema di allarme di rilevamento del movimento: 11 passaggi (con immagini)
Sistema di allarme di rilevamento del movimento: 11 passaggi (con immagini)

Video: Sistema di allarme di rilevamento del movimento: 11 passaggi (con immagini)

Video: Sistema di allarme di rilevamento del movimento: 11 passaggi (con immagini)
Video: #9 SISTEMA D'ALLARME: Rivelatori Infrarossi da ESTERNO, come funzionano? 2024, Luglio
Anonim
Sistema di allarme di rilevamento del movimento
Sistema di allarme di rilevamento del movimento

Nota! Reactive Blocks non è più disponibile per il download. Una fotocamera USB di base può essere utilizzata per rilevare il movimento in una stanza. Nei passaggi seguenti ti mostreremo come utilizzare Reactive Blocks per programmare un'applicazione Java pronta per l'esecuzione che invia SMS o e-mail quando viene rilevato un movimento. Con Reative Blocks crei applicazioni Java SE in modo che l'applicazione di allarme possa essere distribuita su qualsiasi macchina con Java SE e una telecamera collegata o integrata. L'applicazione è facilmente implementabile sul Pi poiché la versione Raspbian ha Oracle Java preinstallato..

Questo è quello di cui hai bisogno:

  1. Raspberry Pi Modello B+ con sistema operativo Raspbian
  2. Fotocamera USB standard
  3. cavo Ethernet
  4. Schermo e tastiera per il Pi
  5. Computer Windows o MAC con JDK
  6. Nota! Reactive Blocks non è più disponibile per il download. Avrai bisogno di Reactive Blocks, un plugin Eclipse, per programmare l'applicazione.

Questa applicazione di allarme è uno dei numerosi sistemi di esempio modificabili accessibili dopo l'installazione di Reactive Blocks. L'applicazione è pronta per l'esecuzione e non avrai bisogno di alcuna competenza di programmazione Java per completare il tutorial. Per creare le tue applicazioni e blocchi predefiniti Reactive Blocks, devi essere un abile programmatore Java. Quando si creano applicazioni più complesse con diversi sensori e attuatori, Reactive Blocks rende facile ottenere la logica e il flusso di dati corretti. Reactive Blocks è gratuito per i progetti open source.

Passaggio 1: installa i blocchi reattivi

Reactive Blocks è stato interrotto

Passaggio 2: scarica l'applicazione dalle biblioteche

Scarica l'applicazione dalle biblioteche
Scarica l'applicazione dalle biblioteche

Assicurati di aver aperto la prospettiva Blocchi reattivi e di essere nella vista Blocchi. Dalla vista Blocchi seleziona il pulsante di importazione e scegli Applicazioni di riferimento. Seleziona il progetto Motion Detection. A questo punto ti verrà chiesto di registrarti con un google ID. Questo ti darà accesso immediato alle librerie di blocchi predefiniti e ai sistemi e tutorial modificabili.

Il progetto Motion Detection che hai scaricato include tre applicazioni, Alarm System SMS, Alarm System Email e un'applicazione di test Test motion detection. In questo tutorial ti guidiamo attraverso gli SMS del sistema di allarme. Se preferisci inviare e-mail, puoi eseguire gli stessi passaggi con l'e-mail del sistema di allarme

Passaggio 3: l'applicazione al massimo livello

L'applicazione al massimo livello
L'applicazione al massimo livello

Questo passaggio fornisce una spiegazione dell'applicazione. La prima immagine mostra il diagramma di come appare l'applicazione completa al livello superiore. È composto da 7 blocchi di costruzione; 5 blocchi standard dalle librerie e 2 blocchi personalizzati creati per questa applicazione.

I blocchi standard della libreria IoT sono:

  • Grabber, cattura le immagini dalla fotocamera USB
  • Rilevamento del movimento, esegue l'effettivo rilevamento dell'immagine
  • Timer periodico, si avvia con timestamp precisi e invia un segnale sul segno di spunta ogni periodo.
  • Buffer Eager, espelle automaticamente il primo elemento nella coda. Il buffer assicura che venga inviato un solo messaggio al blocco di invio SMS poiché può elaborare solo un messaggio alla volta.
  • SMS Send Buffered, invia SMS tramite il servizio Twilio. Gli elementi da inviare sono bufferizzati per garantire che venga inviato un solo messaggio alla volta.
  • Limiter, per evitare troppi SMS quando viene rilevato un intruso.
  • Leggi il file delle proprietà Java, legge i dati di configurazione dal file di input
  • Visualizza, visualizza un'immagine sullo schermo.

Il blocco Timer periodico funziona come motore di sistema. Emetterà periodicamente un segno di spunta che invia un segnale al blocco Grabber tramite il pin di acquisizione. Il blocco Grabber utilizza l'analisi Open Intelligent Multimedia per Java, OpenIMAJ. Quando il blocco viene inizializzato, viene avviato un thread separato per leggere i dati dalla telecamera. Il thread ascolta una coda di comandi. Quando il blocco riceve un comando tramite il pin di acquisizione, scatterà una foto e la consegnerà sul pin dell'immagine.

L'immagine viene quindi passata al blocco Motion Detection che esegue l'effettivo rilevamento dell'immagine. Anche il blocco di rilevamento del movimento utilizza OpenIMAJ. Un metodo all'interno di questo blocco confronta due immagini e contrassegnerà i cambiamenti nell'immagine quando viene rilevato un movimento. Il metodo è molto impegnativo per la CPU e deve essere eseguito in un thread separato. Quando viene rilevata un'immagine, viene segnalata sul pin motionDetected che attiverà la generazione di un messaggio SMS.

Le caselle azzurre sono tutti metodi Java creati appositamente per questa applicazione. Facendo clic su un blocco di metodo si apre l'editor Java.

Quando fai clic su un blocco predefinito puoi vedere i dettagli della logica all'interno del blocco. Se, ad esempio, guardi all'interno del blocco ReadConfig vedrai che è stato creato combinando uno dei blocchi predefiniti esistenti e 4 metodi Java.

Il Limiter pone un limite alla quantità di messaggi generati. Notare la P nell'angolo destro del blocco costitutivo. Indica che è possibile impostare il miniintervallo di tempo che l'applicazione deve attendere prima di inviare un nuovo SMS. L'impostazione predefinita è 300000 ms, ovvero 5 minuti. Per modificare il valore. Fare clic con il pulsante destro del mouse sul blocco e scegliere parametri e generici.

Passaggio 4: abilita gli SMS

Abilita SMS
Abilita SMS

Questa applicazione di allarme utilizza Twilio come servizio SMS. Per abilitare gli SMS è necessario modificare il file config/alarm-system.properties. Puoi trovarlo nella vista di Esplora pacchetti sotto br.ref.motiondetection, guarda l'immagine.

Questo file è lo stesso file utilizzato nell'e-mail del sistema di allarme. Se preferisci ricevere notifiche e-mail, utilizzerai questa applicazione e modificherai il file con le tue credenziali e-mail.

Se non disponi del servizio Twilio, puoi modificare l'applicazione per utilizzare il tuo servizio SMS. Abbiamo anche un blocco di costruzione pronto per l'uso per il servizio Clickatell. Oppure puoi collegare un modem per inviare SMS.

Puoi trovare elementi costitutivi per e-mail SMTP, AirVantage Cloud, IBM Bluemix e Xively per citarne alcuni.

Nota che per apportare modifiche, devi prima creare il tuo progetto. Quindi copia/duplica l'applicazione nel progetto appena creato. Puoi vedere come si fa qui:

Non esitare a contattarmi se hai bisogno di aiuto

Passaggio 5: crea ed esegui l'applicazione sul tuo laptop

Crea ed esegui l'applicazione sul tuo laptop
Crea ed esegui l'applicazione sul tuo laptop

Devi creare l'applicazione prima di eseguirla e distribuirla sul Raspberry Pi. Questo viene fatto utilizzando il generatore di codice Reactive Blocks che crea un progetto Java completo dalla struttura dei building block. Il codice che rappresenta i diagrammi è il codice di sincronizzazione che gestisce gli eventi nell'ordine giusto e al momento giusto e in genere rappresenta più del 60% delle righe del codice nel programma. Poiché gli elementi costitutivi sono strutture matematiche precise, il generatore può trasformare questa logica in un codice molto efficiente. Questa è una funzionalità molto interessante di Reactive Blocks perché scrivere tale codice manualmente è noioso e difficile. Per generare il codice, questo è tutto ciò che devi fare:

Fare clic con il pulsante destro del mouse sull'SMS del sistema di allarme del progetto nella scheda Progetti e selezionare l'edizione standard Java. Assicurati che le informazioni di registrazione siano INFO. Il progetto generato verrà quindi aperto automaticamente nella scheda Package Explorer. Vedere la figura per i dettagli.

Passaggio 6: esegui l'applicazione sul tuo computer

Esegui l'applicazione sul tuo computer
Esegui l'applicazione sul tuo computer
Esegui l'applicazione sul tuo computer
Esegui l'applicazione sul tuo computer

Ora puoi eseguire il progetto generato. Nella vista Package Explorer sotto il progetto _exe generato, fare clic con il pulsante destro del mouse su AlarmSystemSMS.launch e selezionare RunAs, quindi scegliere AlarmSystemSMS.

Guarda la finestra sullo schermo e la vista Console. Dovrebbe assomigliare alla seconda immagine.

Termina l'applicazione chiudendo la finestra della fotocamera.

Per l'applicazione di invio e-mail: se ricevi un errore di autenticazione, assicurati che l'invio SMTP sia consentito per la tua e-mail. Vedere la risoluzione dei problemi in fondo al tutorial e-mail:

Passaggio 7: esporta come file JAR eseguibile

Esporta come file JAR eseguibile
Esporta come file JAR eseguibile

Se desideri eseguire l'applicazione su un Raspberry Pi, il passaggio successivo consiste nell'esportare il progetto generato in un file JAR eseguibile. Per fare ciò, fai clic con il pulsante destro del mouse sul progetto eseguibile nella vista Esplora pacchetti e scegli Esporta. Quindi seleziona l'opzione File JAR eseguibile e premi Avanti. Nella finestra seguente selezionare la configurazione di avvio corretta e la destinazione di esportazione. Nella destinazione di esportazione, usa il pulsante Sfoglia in modo da poter inserire il file.jar in un posto dove puoi trovarlo.

Passaggio 8: prepara il tuo Raspberry Pi

  • Prepara la scheda SD con Raspbian (abbiamo testato usando NOOBS)
  • Inserisci la scheda SD nel Raspberry pi
  • Collega la fotocamera
  • Connetti la rete
  • Collega uno schermo e una tastiera al Pi
  • Avvia il Raspberry pi collegando la micro USB per l'alimentazione.
  • Scopri l'indirizzo IP del tuo Raspberry Pi. All'avvio, il tuo Raspberry Pi riporterà qualcosa come "Il mio indirizzo IP è 10.10. 15.107"
  • Abbiamo testato con Raspbian (accesso predefinito: pi, password: raspberry), che include Java per impostazione predefinita.

Passaggio 9: distribuire l'applicazione sul tuo Raspberry Pi

Per copiare il file jar eseguibile dal tuo computer sul Rapsberry Pi segui questi passaggi:

  • Apri un terminale sulla tua macchina
  • Vai alla directory in cui si trova il file JAR generato
  • Digita scp alarmsystem.jar [email protected]:~/
  • Ti verrà chiesta la combinazione della password. "pi" è il nome utente predefinito e "raspberry" la password predefinita
  • Passare alla directory in cui si trova il file di configurazione alarm_system.properties. La cosa più semplice per me è copiare manualmente il file dall'editor Eclipse nella stessa directory del file jar.
  • Digita scp motiondetection.ini [email protected]:~/

10.10.15.107 è l'indirizzo IP, sostituiscilo con l'indirizzo IP del tuo Raspberry Pi.

- Ovviamente puoi anche usare una memory stick per copiarlo sul Pi

Passaggio 10: esegui l'applicazione sul tuo Raspberry Pi

Ora sei pronto per eseguire l'applicazione.

  • Accedi al Raspberry Pi direttamente o in remoto tramite ssh.
  • Crea una nuova directory di configurazione: mkdir config
  • Controlla se il file JAR eseguibile e.ini è stato copiato sul Raspberry Pi
  • Sposta il file.ini nella directory config: mv alarm_system.properties config/
  • Digita sudo java -jar alarmsystem.jar
  • Guarda l'output sulla console
  • Termina con ^C

Passaggio 11: modifica la tua applicazione

Ora puoi modificare ed estendere la tua applicazione come preferisci. Se vuoi estendere un sistema importato come questo sistema di allarme, devi prima creare il tuo progetto e duplicare il sistema di allarme nel tuo progetto.

Nota che per apportare modifiche, devi prima creare il tuo progetto. Quindi copia/duplica l'applicazione nel progetto appena creato. Puoi vedere come si fa qui:

Segui il percorso IoT Tuturial per ottenere descrizioni dettagliate su come creare o modificare applicazioni Reactive Blocks specifiche.

Consigliato: