Taula de continguts:

Sistema d'alarma de detecció de moviment: 11 passos (amb imatges)
Sistema d'alarma de detecció de moviment: 11 passos (amb imatges)

Vídeo: Sistema d'alarma de detecció de moviment: 11 passos (amb imatges)

Vídeo: Sistema d'alarma de detecció de moviment: 11 passos (amb imatges)
Vídeo: Беслан. Помни / Beslan. Remember (english & español subs) 2024, Juny
Anonim
Sistema d'alarma de detecció de moviment
Sistema d'alarma de detecció de moviment

Nota! Reactive Blocks ja no està disponible per descarregar. Es pot utilitzar una càmera USB bàsica per detectar moviments en una habitació. En els passos següents us mostrarem com podeu utilitzar Reactive Blocks per programar una aplicació Java preparada per executar que envia SMS o correu electrònic quan es detecta moviment. Amb Reative Blocks feu aplicacions Java SE perquè l'aplicació d'alarma es pugui desplegar en qualsevol màquina amb Java SE i una càmera connectada o integrada. L'aplicació es desplega fàcilment al Pi, ja que la versió de Raspbian té Oracle Java preinstal·lat..

Això és el que necessiteu:

  1. Raspberry Pi Model B + amb sistema operatiu Raspbian
  2. Càmera USB estàndard
  3. Cable Ethernet
  4. Pantalla i teclat del Pi
  5. Ordinador Windows o MAC amb JDK
  6. Nota! Reactive Blocks ja no està disponible per descarregar. Necessitareu Reactive Blocks, un complement Eclipse, per programar l’aplicació.

Aquesta aplicació d'alarma és un dels diversos exemples de sistemes modificables accessibles després d'instal·lar Reactive Blocks. L'aplicació està preparada per esgotar-se i no necessitareu cap habilitat de programació Java per completar el tutorial. Per crear les vostres pròpies aplicacions de blocs reactius i blocs de construcció, heu de ser un programador de Java competent. Quan es construeixen aplicacions més complexes amb diversos sensors i actuadors, Reactive Blocks facilita la correcta lògica i el flux de dades. Reactive Blocks és gratuït per a projectes de codi obert.

Pas 1: instal·leu blocs reactius

Els blocs reactius s’han interromput

Pas 2: baixeu l'aplicació des de les biblioteques

Baixeu-vos l'aplicació des de les biblioteques
Baixeu-vos l'aplicació des de les biblioteques

Assegureu-vos que heu obert la perspectiva de blocs reactius i que esteu a la vista de blocs. Des de la vista de blocs, seleccioneu el botó d’importació i trieu Aplicacions de referència. Seleccioneu el projecte de detecció de moviment. En aquest moment, se us demanarà que us registreu amb un identificador de Google. Això us donarà accés immediat a les biblioteques de blocs de construcció i als sistemes i tutorials modificables.

El projecte de detecció de moviment que heu baixat inclou tres aplicacions, l’SMS del sistema d’alarma, el correu electrònic del sistema d’alarma i una aplicació de prova, la detecció de moviment de prova. En aquest tutorial us guiarem a través dels SMS del sistema d’alarma. Si preferiu enviar un correu electrònic, podeu fer els mateixos passos amb el correu electrònic del sistema d’alarma

Pas 3: l'aplicació al màxim nivell

L'aplicació al màxim nivell
L'aplicació al màxim nivell

Aquest pas proporciona una explicació de l'aplicació. La primera imatge mostra el diagrama de l’aspecte de l’aplicació completa al nivell superior. Es compon de 7 blocs de construcció; 5 blocs de construcció estàndard de les biblioteques i 2 blocs fets a mida per a aquesta aplicació.

Els blocs estàndard de la biblioteca IoT són:

  • Grabber, agafa imatges de la càmera USB
  • Detecció de moviment, realitza la detecció de la imatge real
  • Temporitzador periòdic, comença amb segells de temps precisos i envia un senyal al marcador de cada punt.
  • Buffer Eager, expulsa automàticament el primer element de la cua. La memòria intermèdia assegura que només s’envia un missatge al bloc d’enviament d’SMS, ja que només pot processar un missatge a la vegada.
  • SMS Send Buffered, envia SMS a través del servei Twilio. Els elements que s’han d’enviar estan emmagatzemats en memòria intermèdia per garantir que només s’enviï un missatge alhora.
  • Limitador, per evitar massa SMS quan es detecta un intrús.
  • Llegiu el fitxer Java Properties, llegeix les dades de configuració del fitxer d’entrada
  • Visualitza, visualitza una imatge a la pantalla.

El bloc de temporitzador periòdic funciona com a motor del sistema. Periòdicament emetrà una marca que envia un senyal al bloc Grabber mitjançant el pin d'agafar. El bloc Grabber utilitza l'Open Intelligent Multimedia Analysis per a Java, OpenIMAJ. Quan s’inicialitza el bloc, s’inicia un fil separat per llegir les dades de la càmera. El fil escolta una cua d’ordres. Quan el bloc rebi una ordre mitjançant el pin d'agafar, farà una foto i la lliurarà al pin d'imatge.

A continuació, la imatge es passa al bloc de detecció de moviment que realitza la detecció de la imatge real. El bloc de detecció de moviment també utilitza OpenIMAJ. Un mètode d’aquest bloc compara dues imatges i marca els canvis en la imatge quan es detecta moviment. El mètode requereix molta CPU i s’ha d’executar en un fil separat. Quan es detecta una imatge, s’assenyala al pin motionDetected que activarà la generació d’un missatge SMS.

Els quadres de color blau clar són mètodes Java específics per a aquesta aplicació. En fer clic en un bloc de mètodes s'obre l'editor de Java.

Quan feu clic a un bloc de construcció podeu veure els detalls de la lògica dins del bloc. Si, per exemple, mireu dins del bloc ReadConfig, veureu que es fa combinant un bloc de construcció existent i 4 mètodes Java.

El limitador limita la quantitat de missatges generats. Fixeu-vos en la P a la cantonada dreta del bloc de construcció. Indica que podeu definir el miniterval quant de temps ha d’esperar l’aplicació abans d’enviar un nou SMS. El valor predeterminat és de 300.000 ms, és a dir, 5 minuts. Per canviar el valor. Feu clic amb el botó dret al bloc i trieu paràmetres i genèrics.

Pas 4: activeu els SMS

Activa els SMS
Activa els SMS

Aquesta aplicació d'alarma utilitza Twilio com a servei de SMS. Per habilitar els SMS, heu d’editar el fitxer config / alarm-system.properties. El podeu trobar a la vista Explorador de paquets a br.ref.motiondetection, veure la imatge.

Aquest fitxer és el mateix que el del correu electrònic del sistema d'alarma. Si preferiu rebre notificacions per correu electrònic, utilitzeu aquesta aplicació i editeu el fitxer amb les vostres credencials de correu electrònic.

Si no disposeu del servei Twilio, podeu modificar l'aplicació per utilitzar el vostre propi servei de SMS. També tenim un bloc de construcció llest per utilitzar per al servei Clickatell. O podeu adjuntar un mòdem per enviar SMS.

Podeu trobar blocs bàsics per al correu electrònic SMTP, AirVantage Cloud, IBM Bluemix i Xively per nomenar alguns.

Tingueu en compte que per fer canvis, primer heu de fer el vostre propi projecte. A continuació, copieu / dupliqueu l'aplicació al vostre projecte recentment creat. Podeu veure com es fa aquí:

No dubti en posar-se en contacte amb mi si necessita ajuda

Pas 5: Creeu i executeu l'aplicació al vostre ordinador portàtil

Creeu i executeu l'aplicació al vostre ordinador portàtil
Creeu i executeu l'aplicació al vostre ordinador portàtil

Heu de crear l'aplicació abans d'executar-la i desplegar-la al Raspberry Pi. Això es fa mitjançant el generador de codis Reactive Blocks que crea un projecte Java complet a partir de l'estructura dels blocs de construcció. El codi que representa els diagrames és el codi de sincronització que gestiona els esdeveniments en l'ordre correcte i en el moment adequat, i normalment representa més del 60% de les línies del codi del vostre programa. Com que els blocs de construcció són estructures matemàtiques precises, el generador pot transformar aquesta lògica en codi molt eficient. Aquesta és una característica molt bona de Reactive Blocks perquè escriure aquest codi manualment és tediós i difícil. Per generar el codi, això és tot el que heu de fer:

Feu clic amb el botó dret del ratolí al projecte SMS del sistema d'alarma a la pestanya Projectes i seleccioneu l'edició estàndard de Java. Assegureu-vos que la informació de registre sigui INFO. El projecte generat s'obrirà automàticament a la pestanya Explorador de paquets. Vegeu la figura per obtenir més informació.

Pas 6: executeu l'aplicació a l'ordinador

Executeu l'aplicació a l'ordinador
Executeu l'aplicació a l'ordinador
Executeu l'aplicació a l'ordinador
Executeu l'aplicació a l'ordinador

Ara podeu executar el projecte generat. A la vista Explorador de paquets al projecte _exe generat, feu clic amb el botó dret a AlarmSystemSMS.launch i seleccioneu RunAs i, a continuació, trieu AlarmSystemSMS.

Mireu la finestra de la pantalla i la vista de la consola. Ha de semblar una cosa semblant a la segona imatge.

Tanqueu l'aplicació tancant la finestra de la càmera.

Per a l'aplicació d'enviament de correu electrònic: si apareix un error d'autenticació, assegureu-vos que l'enviament SMTP estigui permès per al vostre correu electrònic. Consulteu la solució de problemes a la part inferior del tutorial de correu electrònic:

Pas 7: exporteu com a fitxer JAR executable

Exporta com a fitxer JAR executable
Exporta com a fitxer JAR executable

Si voleu executar l'aplicació en un Raspberry Pi, el pas següent és exportar el projecte generat a un fitxer JAR executable. Per fer-ho, feu clic amb el botó dret del ratolí al projecte executable a la vista de l'explorador de paquets i trieu exportar. A continuació, seleccioneu l'opció de fitxer JAR executable i premeu següent. A la finestra següent, seleccioneu la configuració d’inici adequada i exporteu la destinació. A la destinació d’exportació, utilitzeu el botó de navegació perquè pugueu situar el fitxer.jar en un lloc on el pugueu trobar.

Pas 8: prepareu el vostre Raspberry Pi

  • Prepareu la targeta SD amb Raspbian (hem provat amb NOOBS)
  • Inseriu la targeta SD al Raspberry pi
  • Connecteu la càmera
  • Connecteu la xarxa
  • Connecteu una pantalla i un teclat al Pi
  • Inicieu el Raspberry pi connectant el micro USB per a la font d'alimentació.
  • Esbrineu l’adreça IP del vostre Raspberry Pi. Quan es posi en marxa, el vostre Raspberry Pi informarà d'alguna cosa com "La meva adreça IP és 10.10. 15.107"
  • Hem provat amb Raspbian (accés per defecte: pi, contrasenya: raspberry), que inclou Java per defecte.

Pas 9: desplegueu l'aplicació al vostre Raspberry Pi

Per copiar el fitxer jar executable del vostre ordinador al Rapsberry Pi, seguiu aquests passos:

  • Obriu un terminal al vostre equip
  • Aneu al directori on es troba el fitxer JAR generat
  • Escriviu scp alarmsystem.jar [email protected]: ~ /
  • Se us demanarà la combinació de contrasenyes. "pi" és el nom d'usuari per defecte i "raspberry" la contrasenya per defecte
  • Aneu al directori on es troba el fitxer de configuració alarm_system.properties. El més fàcil per a mi és copiar manualment el fitxer de l'editor Eclipse al mateix directori que el fitxer jar.
  • Escriviu scp motiondetection.ini [email protected]: ~ /

10.10.15.107 és l'adreça IP, substituïu-la per l'adreça IP del vostre Raspberry Pi.

- Per descomptat, també podeu utilitzar un llapis de memòria per copiar-lo al Pi

Pas 10: executeu l'aplicació al vostre Raspberry Pi

Ja esteu preparat per executar l'aplicació.

  • Inicieu la sessió al Raspberry Pi directament o remotament mitjançant ssh.
  • Feu un nou directori de configuració: mkdir config
  • Comproveu si el fitxer JAR executable i.ini s'han copiat al Raspberry Pi
  • Mou el fitxer.ini al directori de configuració: mv alarm_system.properties config /
  • Escriviu sudo java -jar alarmsystem.jar
  • Mireu la sortida a la consola
  • Finalitza amb ^ C

Pas 11: Modifiqueu la vostra sol·licitud

Ara podeu modificar i ampliar la vostra aplicació com vulgueu. Si voleu ampliar un sistema importat com aquest sistema d’alarma, primer heu de fer el vostre propi projecte i duplicar el sistema d’alarma al vostre propi projecte.

Tingueu en compte que per fer canvis, primer heu de fer el vostre propi projecte. A continuació, copieu / dupliqueu l'aplicació al vostre projecte recentment creat. Podeu veure com es fa aquí:

Seguiu el rastre tutorial de l'IoT per obtenir descripcions pas a pas sobre com crear o modificar aplicacions específiques de blocs reactius.

Recomanat: