Innehållsförteckning:

Rörelsedetekteringslarmsystem: 11 steg (med bilder)
Rörelsedetekteringslarmsystem: 11 steg (med bilder)

Video: Rörelsedetekteringslarmsystem: 11 steg (med bilder)

Video: Rörelsedetekteringslarmsystem: 11 steg (med bilder)
Video: Голубая стрела (1958) фильм 2024, November
Anonim
Rörelsedetekteringslarmsystem
Rörelsedetekteringslarmsystem

Notera! Reactive Blocks är inte längre tillgängligt för nedladdning. En vanlig USB -kamera kan användas för att upptäcka rörelse i ett rum. I följande steg visar vi dig hur du kan använda reaktiva block för att programmera ett Java -program som är klart att köra som skickar SMS eller e -post när rörelse detekteras. Med Reative Blocks gör du Java SE -applikationer så att larmprogrammet kan distribueras på vilken dator som helst med Java SE och en kamera ansluten eller integrerad. Programmet distribueras enkelt på Pi eftersom Raspbian-versionen har Oracle Java förinstallerat..

Detta är vad du behöver:

  1. Raspberry Pi Model B+ med Raspbian OS
  2. Standard USB -kamera
  3. Ethernet -kabel
  4. Skärm och tangentbord för Pi
  5. Windows- eller MAC -dator med JDK
  6. Notera! Reactive Blocks är inte längre tillgängligt för nedladdning. Du behöver Reactive Blocks, ett Eclipse -plugin, för att programmera programmet.

Denna larmapplikation är ett av flera modifierbara exempelsystem som är tillgängliga efter att du har installerat Reactive Block. Programmet är redo att köras ur rutan och du behöver inte några Java -programmeringskunskaper för att slutföra handledningen. För att skapa egna Reactive Blocks -applikationer och byggstenar måste du vara en skicklig Java -programmerare. När man bygger mer komplexa applikationer med flera sensorer och ställdon gör Reactive Blocks det enkelt att få logiken och dataflödet rätt. Reactive Blocks är gratis för projekt med öppen källkod.

Steg 1: Installera reaktiva block

Reactive Blocks har avbrutits

Steg 2: Ladda ner programmet från biblioteken

Ladda ner programmet från biblioteken
Ladda ner programmet från biblioteken

Se till att du har öppnat perspektivet för reaktiva block och att du är i blockvyn. Från blockvyn väljer du importknappen och väljer Referensprogram. Välj projektet Motion Detection. Vid denna tidpunkt kommer du att bli ombedd att registrera dig med ett Google ID. Detta ger dig omedelbar tillgång till byggblockens bibliotek och modifierbara system och självstudier.

Rörelsedetekteringsprojektet du laddade ner innehåller tre applikationer, larmsystemets SMS, larmsystemets e -post och en testapplikation teströrelsedetektering. I denna handledning guidar vi dig genom larmsystemets SMS. Om du hellre skickar e -post kan du göra samma steg med alarmsystemets e -post

Steg 3: Ansökan på toppnivå

Ansökan på toppnivå
Ansökan på toppnivå

Detta steg ger en förklaring av applikationen. Den första bilden visar diagrammet över hur hela applikationen ser ut på översta nivån. Den består av 7 byggstenar; 5 standard byggstenar från biblioteken och 2 skräddarsydda block som gjordes för denna applikation.

Standardblock från IoT -biblioteket är:

  • Grabber, tar bilder från USB -kameran
  • Rörelsedetektering, utför den faktiska bilddetekteringen
  • Periodisk timer, startar med exakta tidsstämplar och skickar en signal på fästingnålen varje period.
  • Buffer ivrig, skjuter ut det första elementet i kön automatiskt. Bufferten säkerställer att endast ett meddelande skickas till blocket SMS Send eftersom det bara kan behandla ett meddelande i taget.
  • SMS Send Buffered, skickar SMS via Twilio -tjänsten. Elementen som ska skickas buffras för att säkerställa att endast ett meddelande skickas åt gången.
  • Begränsare, för att undvika för många SMS när en inkräktare upptäcks.
  • Läs Java Properties -fil, läser konfigurationsdata från indatafilen
  • Visa, visar en bild på skärmen.

Periodic Timer -blocket fungerar som en systemmotor. Det kommer regelbundet att utfärda en bock som skickar en signal till Grabber -blocket via gripstiftet. Grabber -blocket använder Open Intelligent Multimedia Analysis för Java, OpenIMAJ. När blocket initieras startas en separat tråd för att läsa data från kameran. Tråden lyssnar på en kommandokö. När blocket tar emot ett kommando via gripstiftet tar det en bild och levererar det på bilden e pin.

Bilden överförs sedan till rörelsedetekteringsblocket som utför den faktiska bilddetekteringen. Rörelsedetekteringsblocket använder också OpenIMAJ. En metod inom detta block jämför två bilder och kommer att flagga ändringar i bilden när rörelse detekteras. Metoden är mycket CPU -intensiv och måste köras i en separat tråd. När en bild detekteras signaleras den på motionDetected -stiftet som kommer att utlösa generering av ett SMS -meddelande.

De ljusblå rutorna är alla Java -metoder specifikt gjorda för denna applikation. Om du klickar på ett metodblock öppnas Java -redigeraren.

När du klickar på en byggsten kan du se detaljerna i logiken inuti blocket. Om du till exempel tittar in i ReadConfig -blocket ser du att det är gjort genom att kombinera en befintlig byggsten och 4 Java -metoder.

Begränsaren sätter en gräns för mängden genererade meddelanden. Lägg märke till P i det högra hörnet av byggstenen. Det indikerar att du kan ställa in miniminivå för hur länge programmet måste vänta innan det skickar ett nytt SMS. Standardinställningen är 300000ms, dvs 5 minuter. För att ändra värdet. Högerklicka på blocket och välj parametrar och generika.

Steg 4: Aktivera SMS

Aktivera SMS
Aktivera SMS

Detta larmprogram använder Twilio som SMS -tjänst. För att aktivera SMS måste du redigera filen config/alarm-system.properties. Du hittar den i paketutforskaren under br.ref.motiondetection, se bilden.

Denna fil är samma fil som används i larmsystemets e -post. Om du hellre har e -postaviseringar kommer du att använda det här programmet och redigera filen med dina e -postuppgifter.

Om du inte har Twilio -tjänsten kan du ändra programmet för att använda din egen SMS -tjänst. Vi har också en färdig att använda byggsten för Clickatell -tjänsten. Eller så kan du bifoga ett modem för att skicka SMS.

Du hittar byggstenar för SMTP -e -post, AirVantage Cloud, IBM Bluemix och Xively för att nämna några.

Observera att för att göra ändringar måste du först göra ditt eget projekt. Kopiera/kopiera sedan applikationen till ditt nyskapade projekt. Du kan se hur detta görs här:

Tveka inte att kontakta mig om du behöver hjälp

Steg 5: Bygg och kör programmet på din bärbara dator

Bygg och kör programmet på din bärbara dator
Bygg och kör programmet på din bärbara dator

Du måste bygga programmet innan du kör det och distribuera det till Raspberry Pi. Detta görs med hjälp av Reactive Blocks -kodgeneratorn som skapar ett komplett Java -projekt från byggstenens struktur. Koden som representerar diagrammen är synkroniseringskoden som hanterar händelser i rätt ordning och vid rätt tidpunkt och som vanligtvis står för mer än 60% av raderna i koden i ditt program. Eftersom byggstenarna är exakta matematiska strukturer kan generatorn förvandla denna logik till mycket effektiv kod. Det här är en mycket bra funktion för reaktiva block eftersom det är tråkigt och svårt att skriva sådan kod manuellt. Detta är allt du behöver göra för att generera koden:

Högerklicka på projektlarmsystemet SMS under fliken Projekt och välj Java standardutgåva. Se till att loggningsinformation är INFO. Det genererade projektet öppnas sedan automatiskt under fliken Paketutforskare. Se figuren för detaljer.

Steg 6: Kör programmet på din dator

Kör programmet på din dator
Kör programmet på din dator
Kör programmet på din dator
Kör programmet på din dator

Nu kan du köra det genererade projektet. I paketutforskaren under det genererade _exe -projektet, högerklicka på AlarmSystemSMS.launch och välj RunAs och välj sedan AlarmSystemSMS.

Se fönstret på skärmen och konsolvyn. Ska se ut ungefär som den andra bilden.

Avsluta programmet genom att stänga kamerafönstret.

För programmet Skicka e -post: Om du får ett autentiseringsfel, se till att SMTP -sändning är tillåten för din e -post. Se felsökning längst ner i e-posthandledningen:

Steg 7: Exportera som körbar JAR -fil

Exportera som körbar JAR -fil
Exportera som körbar JAR -fil

Om du vill köra programmet på en Raspberry Pi är nästa steg att exportera det genererade projektet till en JAR -fil som kan köras. För att göra detta, högerklicka på det körbara projektet i paketutforskaren och välj exportera. Välj sedan alternativet Runnable JAR file och tryck på nästa. I det följande fönstret väljer du rätt startkonfiguration och exportdestination. I exportdestinationen använder du bläddringsknappen så att du kan placera.jar -filen på en plats där du kan hitta den.

Steg 8: Förbered din Raspberry Pi

  • Förbered SD -kortet med Raspbian (vi har testat med NOOBS)
  • Sätt i SD -kortet i Raspberry pi
  • Anslut kameran
  • Anslut nätverket
  • Anslut en skärm och tangentbord till Pi
  • Starta Raspberry pi genom att ansluta mikro -USB för strömförsörjning.
  • Ta reda på IP -adressen för din Raspberry Pi. När den startas kommer din Raspberry Pi att rapportera något i stil med "Min IP -adress är 10.10. 15.107"
  • Vi har testat med Raspbian (standardinloggning: pi, lösenord: hallon), som inkluderar Java som standard.

Steg 9: Distribuera programmet till din Raspberry Pi

Följ dessa steg för att kopiera filen som kan köras från din dator till Rapsberry Pi:

  • Öppna en terminal på din maskin
  • Gå till katalogen där den genererade JAR -filen finns
  • Skriv scp alarmsystem.jar [email protected]: ~/
  • Du kommer att bli ombedd att ange lösenordskombinationen. "pi" är standardanvändarnamnet och "hallon" standardlösenordet
  • Gå till katalogen där konfigurationsfilen alarm_system.properties finns. Enklast för mig är att manuellt kopiera filen från Eclipse -redigeraren till samma katalog som burkfilen.
  • Skriv scp motiondetection.ini [email protected]: ~/

10.10.15.107 är IP -adressen, ersätt den med IP -adressen till din Raspberry Pi.

- Du kan naturligtvis också använda ett minneskort för att kopiera det till Pi

Steg 10: Kör programmet på din Raspberry Pi

Du är nu redo att köra programmet.

  • Logga in på Raspberry Pi antingen direkt eller på distans via ssh.
  • Skapa en ny konfigurationskatalog: mkdir config
  • Kontrollera om den körbara JAR -filen och.ini har kopierats till Raspberry Pi
  • Flytta.ini -filen till konfigurationskatalogen: mv alarm_system.properties config/
  • Skriv sudo java -jar alarmsystem.jar
  • Se utgången på konsolen
  • Avsluta med ^C

Steg 11: Ändra din ansökan

Du kan nu ändra och utöka din ansökan som du vill. Om du vill förlänga ett importerat system som detta larmsystem måste du först göra ditt eget projekt och kopiera larmsystemet till ditt eget projekt.

Observera att för att göra ändringar måste du först göra ditt eget projekt. Kopiera/kopiera sedan applikationen till ditt nyskapade projekt. Du kan se hur detta görs här:

Följ IoT Tuturial-spåret för att få steg-för-steg-beskrivningar om hur du bygger eller modifierar specifika Reactive Blocks-applikationer.

Rekommenderad: