Innholdsfortegnelse:

Bevegelsesdeteksjon alarmsystem: 11 trinn (med bilder)
Bevegelsesdeteksjon alarmsystem: 11 trinn (med bilder)

Video: Bevegelsesdeteksjon alarmsystem: 11 trinn (med bilder)

Video: Bevegelsesdeteksjon alarmsystem: 11 trinn (med bilder)
Video: Fungerer Brilliant kontroll virkelig | En ærlig anmeldelse av Ultimate Smart Home Hub! 2024, Juli
Anonim
Bevegelsesdeteksjon alarmsystem
Bevegelsesdeteksjon alarmsystem

Merk! Reactive Blocks er ikke lenger tilgjengelig for nedlasting. Et grunnleggende USB -kamera kan brukes til å oppdage bevegelse i et rom. I de følgende trinnene viser vi deg hvordan du kan bruke reaktive blokker til å programmere et Java -program som er klart til å kjøre og sender SMS eller e -post når det oppdages bevegelse. Med Reative Blocks lager du Java SE -applikasjoner slik at alarmprogrammet kan distribueres på hvilken som helst maskin med Java SE og et kamera tilknyttet eller integrert. Programmet distribueres enkelt på Pi siden Raspbian-versjonen har forhåndsinstallert Oracle Java..

Dette er hva du trenger:

  1. Raspberry Pi Model B+ med Raspbian OS
  2. Standard USB -kamera
  3. Ethernet -kabel
  4. Skjerm og tastatur for Pi
  5. Windows- eller MAC -datamaskin med JDK
  6. Merk! Reactive Blocks er ikke lenger tilgjengelig for nedlasting. Du trenger Reactive Blocks, en Eclipse -plugin, for å programmere programmet.

Denne alarmprogrammet er et av flere eksempler som kan endres etter at du har installert Reactive Blocks. Søknaden er klar til å gå tom for eske, og du trenger ikke noen Java -programmeringskunnskaper for å fullføre opplæringen. For å lage dine egne Reactive Blocks -applikasjoner og byggeklosser, må du være en dyktig Java -programmerer. Når du bygger mer komplekse applikasjoner med flere sensorer og aktuatorer, gjør Reactive Blocks det enkelt å få logikken og dataflyten riktig. Reactive Blocks er gratis for åpen kildekode -prosjekter.

Trinn 1: Installer reaktive blokker

Reactive Blocks er avviklet

Trinn 2: Last ned programmet fra bibliotekene

Last ned programmet fra bibliotekene
Last ned programmet fra bibliotekene

Sørg for at du har åpnet perspektivet for reaktive blokker og at du er i blokkeringsvisningen. Fra blokkeringsvisningen velger du importknappen og velger Referanseapplikasjoner. Velg prosjektet Bevegelsesdeteksjon. På dette tidspunktet blir du bedt om å registrere deg med en Google ID. Dette gir deg umiddelbar tilgang til byggeklossens biblioteker og modifiserbare systemer og opplæringsprogrammer.

Bevegelsesdeteksjon -prosjektet du lastet ned inkluderer tre applikasjoner, alarmsystemet SMS, alarmsystemets e -post og en testapplikasjon Test bevegelsesdeteksjon. I denne opplæringen guider vi deg gjennom alarmsystemet SMS. Hvis du heller sender e -post, kan du gjøre de samme trinnene med alarmsystemets e -post

Trinn 3: Søknaden på toppnivå

Søknaden på toppnivå
Søknaden på toppnivå

Dette trinnet gir en forklaring på applikasjonen. Det første bildet viser diagrammet over hvordan den komplette applikasjonen ser ut på øverste nivå. Den består av 7 byggesteiner; 5 standard byggeklosser fra bibliotekene og 2 skreddersydde blokker som ble laget for denne applikasjonen.

Standardblokker fra IoT -biblioteket er:

  • Grabber, tar bilder fra USB -kameraet
  • Bevegelsesdeteksjon, utfører den faktiske bildedeteksjonen
  • Periodisk tidtaker, starter med nøyaktige tidsstempler og sender et signal på flåttnålen hver periode.
  • Buffer ivrig, skyver ut det første elementet i køen automatisk. Bufferen sikrer at bare én melding sendes til SMS Send -blokken siden den bare kan behandle én melding om gangen.
  • SMS Send Bufret, sender SMS gjennom Twilio -tjenesten. Elementene som skal sendes, er bufret for å sikre at bare én melding blir sendt om gangen.
  • Begrensning, for å unngå for mange SMS når en inntrenger blir oppdaget.
  • Les Java Properties -filen, leser konfigurasjonsdata fra inndatafilen
  • Vis, viser et bilde på skjermen.

Periodic Timer -blokken fungerer som en systemmotor. Det vil med jevne mellomrom gi ut et kryss som sender et signal til Grabber -blokken via gripepinnen. Grabber -blokken bruker Open Intelligent Multimedia Analysis for Java, OpenIMAJ. Når blokken initialiseres, startes en egen tråd for å lese data fra kameraet. Tråden lytter til en kommandokø. Når blokken mottar en kommando via gripepinnen, tar den ett bilde og leverer det på bildepinnen.

Bildet sendes deretter til bevegelsesdeteksjonsblokken som utfører den faktiske bildedeteksjonen. Bevegelsesdeteksjonsblokken bruker også OpenIMAJ. En metode i denne blokken sammenligner to bilder og vil merke endringer i bildet når bevegelse oppdages. Metoden er veldig CPU -intensiv og må kjøres i en egen tråd. Når et bilde oppdages, blir det signalisert på motionDetected -pinnen som vil utløse generering av en SMS -melding.

De lyseblå boksene er alle Java -metoder spesielt laget for denne applikasjonen. Ved å klikke på en metodeblokk åpnes Java -editoren.

Når du klikker på en byggekloss kan du se detaljene i logikken inne i blokken. Hvis du for eksempel ser inne i ReadConfig -blokken, vil du se at den er laget ved å kombinere en eksisterende byggestein og 4 Java -metoder.

Limiter setter en grense for mengden genererte meldinger. Legg merke til P i høyre hjørne av byggeklossen. Det indikerer at du kan angi minimumsverdien for hvor lenge applikasjonen må vente før den sender en ny SMS. Standardinnstillingen er 300000 ms, dvs. 5 minutter. For å endre verdien. Høyreklikk på blokken og velg parametere og generikk.

Trinn 4: Aktiver SMS

Aktiver SMS
Aktiver SMS

Denne alarmprogrammet bruker Twilio som SMS -tjeneste. For å aktivere SMS må du redigere filen config/alarm-system.properties. Du finner den i pakkeutforskervisningen under br.ref.motiondetection, se bildet.

Denne filen er den samme filen som ble brukt i alarmsystemets e -post. Hvis du heller vil ha e -postvarsler, bruker du dette programmet og redigerer filen med e -postopplysningene dine.

Hvis du ikke har Twilio -tjenesten, kan du endre programmet for å bruke din egen SMS -tjeneste. Vi har også en byggeklart som er klar til bruk for Clickatell -tjenesten. Eller du kan legge ved et modem for å sende SMS.

Du kan finne byggeklosser for SMTP -e -post, AirVantage Cloud, IBM Bluemix og Xively for å nevne noen.

Vær oppmerksom på at for å gjøre endringer må du først lage ditt eget prosjekt. Kopier/dupliser deretter applikasjonen til det nyopprettede prosjektet ditt. Du kan se hvordan dette gjøres her:

Ikke nøl med å kontakte meg hvis du trenger hjelp

Trinn 5: Bygg og kjør programmet på den bærbare datamaskinen

Bygg og kjør programmet på den bærbare datamaskinen
Bygg og kjør programmet på den bærbare datamaskinen

Du må bygge programmet før du kjører det, og distribuere det til Raspberry Pi. Dette gjøres ved hjelp av Reactive Blocks -kodegeneratoren som lager et komplett Java -prosjekt fra strukturen i byggesteinene. Koden som representerer diagrammene er synkroniseringskoden som håndterer hendelser i riktig rekkefølge og til rett tid, og utgjør vanligvis mer enn 60% av linjene i koden i programmet. Siden byggeklossene er presise matematiske strukturer, kan generatoren transformere denne logikken til en veldig effektiv kode. Dette er en veldig fin Reactive Blocks -funksjon fordi det er kjedelig og vanskelig å skrive slik kode manuelt. Dette er alt du trenger å gjøre for å generere koden:

Høyreklikk på prosjektalarmsystemet SMS under kategorien Prosjekter og velg Java standardutgave. Sørg for at logginformasjon er INFO. Det genererte prosjektet åpnes deretter automatisk under Package Explorer -fanen. Se figuren for detaljer.

Trinn 6: Kjør programmet på datamaskinen

Kjør programmet på datamaskinen
Kjør programmet på datamaskinen
Kjør programmet på datamaskinen
Kjør programmet på datamaskinen

Nå kan du utføre det genererte prosjektet. I Package Explorer -visningen under det genererte _exe -prosjektet, høyreklikk AlarmSystemSMS.launch og velg RunAs og velg deretter AlarmSystemSMS.

Se på vinduet på skjermen og konsollvisningen. Skal se ut som det andre bildet.

Avslutt programmet ved å lukke kameravinduet.

For programmet Send e -post: Hvis du får autentiseringsfeil, må du kontrollere at SMTP -sending er tillatt for e -posten din. Se feilsøking nederst i e-postopplæringen:

Trinn 7: Eksporter som kjørbar JAR -fil

Eksporter som kjørbar JAR -fil
Eksporter som kjørbar JAR -fil

Hvis du vil kjøre programmet på en Raspberry Pi, er neste trinn å eksportere det genererte prosjektet til en JAR -fil som kan kjøres. For å gjøre dette, høyreklikker du på det kjørbare prosjektet i pakkeutforskervisningen og velger eksport. Velg deretter filalternativet Runnable JAR og klikk på Neste. Velg riktig startkonfigurasjon og eksportdestinasjon i det følgende vinduet. I eksportdestinasjonen bruker du bla gjennom -knappen slik at du kan sette.jar -filen et sted hvor du kan finne den.

Trinn 8: Forbered din Raspberry Pi

  • Forbered SD -kortet med Raspbian (vi har testet med NOOBS)
  • Sett inn SD -kortet i Raspberry pi
  • Koble til kameraet
  • Koble til nettverket
  • Koble en skjerm og et tastatur til Pi
  • Start Raspberry pi ved å koble til mikro -USB for strømforsyning.
  • Finn ut IP -adressen til din Raspberry Pi. Når du starter opp, vil Raspberry Pi rapportere noe sånt som "Min IP -adresse er 10.10. 15.107"
  • Vi har testet med Raspbian (standard pålogging: pi, passord: bringebær), som inkluderer Java som standard.

Trinn 9: Distribuer programmet til din Raspberry Pi

Følg disse trinnene for å kopiere den kjørbare jar -filen fra datamaskinen til Rapsberry Pi:

  • Åpne en terminal på maskinen din
  • Gå til katalogen der den genererte JAR -filen befinner seg
  • Skriv inn scp alarmsystem.jar [email protected]: ~/
  • Du vil bli bedt om passordkombinasjonen. "pi" er standard brukernavn og "bringebær" standard passord
  • Gå til katalogen der konfigurasjonsfilen alarm_system.properties ligger. Det enkleste for meg er å manuelt kopiere filen fra Eclipse -editoren til den samme katalogen som jar -filen.
  • Skriv inn scp motiondetection.ini [email protected]: ~/

10.10.15.107 er IP -adressen, erstatt den med IP -adressen til din Raspberry Pi.

- Du kan selvfølgelig også bruke en minnepinne til å kopiere den over til Pi

Trinn 10: Kjør programmet på din Raspberry Pi

Du er nå klar til å kjøre programmet.

  • Logg inn på Raspberry Pi enten direkte eller eksternt via ssh.
  • Lag en ny konfigurasjonskatalog: mkdir config
  • Kontroller om JAR -filen og.ini som kan kjøres, er kopiert til Raspberry Pi
  • Flytt.ini -filen til config -katalogen: mv alarm_system.properties config/
  • Skriv sudo java -jar alarmsystem.jar
  • Se utgangen på konsollen
  • Avslutt med ^C

Trinn 11: Endre søknaden din

Du kan nå endre og utvide søknaden din slik du vil. Hvis du vil utvide et importert system som dette alarmsystemet, må du først lage ditt eget prosjekt og duplisere alarmsystemet til ditt eget prosjekt.

Vær oppmerksom på at for å gjøre endringer må du først lage ditt eget prosjekt. Kopier/dupliser deretter applikasjonen til det nyopprettede prosjektet ditt. Du kan se hvordan dette gjøres her:

Følg IoT Tuturial-stien for å få trinnvise beskrivelser av hvordan du bygger eller endrer spesifikke Reactive Blocks-applikasjoner.

Anbefalt: