Inhoudsopgave:

Bewegingsdetectie alarmsysteem: 11 stappen (met afbeeldingen)
Bewegingsdetectie alarmsysteem: 11 stappen (met afbeeldingen)

Video: Bewegingsdetectie alarmsysteem: 11 stappen (met afbeeldingen)

Video: Bewegingsdetectie alarmsysteem: 11 stappen (met afbeeldingen)
Video: 30 COOLEST Tech Gadgets you’ll NEED in 2024 – MUST HAVE 2024, Juli-
Anonim
Bewegingsdetectie alarmsysteem
Bewegingsdetectie alarmsysteem

Opmerking! Reactive Blocks is niet langer beschikbaar om te downloaden. Een eenvoudige USB-camera kan worden gebruikt om beweging in een kamer te detecteren. In de volgende stappen laten we u zien hoe u Reactive Blocks kunt gebruiken om een gebruiksklare Java-toepassing te programmeren die sms of e-mail verzendt wanneer beweging wordt gedetecteerd. Met Reative Blocks maakt u Java SE-applicaties zodat de alarmapplicatie kan worden ingezet op elke machine met Java SE en een aangesloten of geïntegreerde camera. De applicatie kan eenvoudig op de Pi worden geïmplementeerd, aangezien Oracle Java vooraf is geïnstalleerd in de Raspbian-release..

Dit is wat je nodig hebt:

  1. Raspberry Pi Model B+ met Raspbian OS
  2. Standaard USB-camera
  3. ethernetkabel
  4. Scherm en toetsenbord voor de Pi
  5. Windows- of MAC-computer met JDK
  6. Opmerking! Reactive Blocks is niet langer beschikbaar om te downloaden. U hebt Reactive Blocks, een Eclipse-plug-in, nodig om de toepassing te programmeren.

Deze alarmtoepassing is een van de vele aanpasbare voorbeeldsystemen die toegankelijk zijn nadat u Reactive Blocks hebt geïnstalleerd. De applicatie is kant-en-klaar gemaakt en je hebt geen Java-programmeervaardigheden nodig om de tutorial te voltooien. Om uw eigen Reactive Blocks-toepassingen en bouwstenen te maken, moet u een bedreven Java-programmeur zijn. Bij het bouwen van complexere applicaties met meerdere sensoren en actuatoren, maakt Reactive Blocks het gemakkelijk om de logica en de gegevensstroom goed te krijgen. Reactive Blocks is gratis voor open source-projecten.

Stap 1: Installeer reactieve blokken

Reactive Blocks is stopgezet

Stap 2: Download de applicatie uit de bibliotheken

Download de applicatie uit de bibliotheken
Download de applicatie uit de bibliotheken

Zorg ervoor dat u het perspectief Reactieve blokken hebt geopend en dat u zich in de weergave Blokken bevindt. Selecteer in de weergave Blokken de knop Importeren en kies Referentietoepassingen. Selecteer het project Bewegingsdetectie. Op dit punt wordt u gevraagd om u te registreren met een Google-ID. Dit geeft je direct toegang tot de bouwstenenbibliotheken en aanpasbare systemen en tutorials.

Het bewegingsdetectie-project dat u hebt gedownload, bevat drie applicaties, de Alarmsysteem SMS, de Alarmsysteem E-mail en een testapplicatie de Test bewegingsdetectie. In deze tutorial leiden we je door het Alarmsysteem SMS. Als u liever e-mail verzendt, kunt u dezelfde stappen uitvoeren met de e-mail van het alarmsysteem

Stap 3: De applicatie op topniveau

De applicatie op topniveau
De applicatie op topniveau

Deze stap geeft uitleg over de toepassing. De eerste afbeelding toont het diagram van hoe de volledige applicatie eruit ziet op het hoogste niveau. Het is samengesteld uit 7 bouwstenen; 5 standaard bouwstenen uit de bibliotheken en 2 op maat gemaakte blokken die voor deze toepassing zijn gemaakt.

Standaardblokken uit de IoT-bibliotheek zijn:

  • Grabber, grijpt beelden van de USB-camera
  • Bewegingsdetectie, voert de daadwerkelijke beelddetectie uit
  • Periodic Timer, start met nauwkeurige tijdstempels en stuurt elke periode een signaal op de tick-pin.
  • Buffer Eager, duwt het eerste element in de wachtrij automatisch naar buiten. De buffer zorgt ervoor dat er maar één bericht naar het SMS Send-blok wordt gestuurd, aangezien er maar één bericht tegelijk kan worden verwerkt.
  • SMS Send Buffered, verzendt SMS via de Twilio-service. De te verzenden elementen worden gebufferd om ervoor te zorgen dat er slechts één bericht tegelijk wordt verzonden.
  • Limiter, om te veel sms'en te vermijden wanneer een indringer wordt gedetecteerd.
  • Lees Java-eigenschappenbestand, leest configuratiegegevens uit invoerbestand
  • Bekijk, bekijkt een afbeelding op het scherm.

Het Periodic Timer-blok werkt als een systeemengine. Het zal periodiek een vinkje geven dat een signaal naar het Grabber-blok stuurt via de grijppin. Het Grabber-blok gebruikt de Open Intelligent Multimedia Analysis voor Java, OpenIMAJ. Wanneer het blok wordt geïnitialiseerd, wordt een aparte thread gestart om gegevens van de camera te lezen. De thread luistert naar een opdrachtwachtrij. Wanneer het blok een commando via de grijppin ontvangt, maakt het één foto en levert deze op de afbeeldingspin.

Het beeld wordt vervolgens doorgegeven aan het bewegingsdetectieblok dat de daadwerkelijke beelddetectie uitvoert. Het bewegingsdetectieblok maakt ook gebruik van OpenIMAJ. Een methode binnen dit blok vergelijkt twee beelden en markeert veranderingen in beeld wanneer beweging wordt gedetecteerd. De methode is erg CPU-intensief en moet in een aparte thread worden uitgevoerd. Wanneer een afbeelding wordt gedetecteerd, wordt dit gesignaleerd op de motionDetected-pin, waardoor een sms-bericht wordt gegenereerd.

De lichtblauwe vakjes zijn allemaal Java-methoden die speciaal voor deze toepassing zijn gemaakt. Als u op een methodeblok klikt, wordt de Java-editor geopend.

Wanneer u op een bouwsteen klikt, kunt u de details van de logica in het blok zien. Als u bijvoorbeeld in het ReadConfig-blok kijkt, ziet u dat het is gemaakt door een bestaande bouwsteen en 4 Java-methoden te combineren.

De Limiter stelt een limiet aan het aantal gegenereerde berichten. Let op de P in de rechterhoek van het bouwblok. Het geeft aan dat je de mini-interval kunt instellen van hoe lang de applicatie moet wachten voordat deze een nieuwe sms verzendt. De standaardinstelling is 300000ms, d.w.z. 5 minuten. Om de waarde te wijzigen. Klik met de rechtermuisknop op het blok en kies parameters en generieke geneesmiddelen.

Stap 4: SMS inschakelen

Sms inschakelen
Sms inschakelen

Deze alarmtoepassing gebruikt Twilio als sms-service. Om SMS in te schakelen, moet u het bestand config/alarm-system.properties bewerken. Je kunt het vinden in de pakketverkenner onder br.ref.motiondetection, zie de afbeelding.

Dit bestand is hetzelfde bestand dat wordt gebruikt in de e-mail van het alarmsysteem. Als u liever e-mailmeldingen heeft, gebruikt u deze applicatie en bewerkt u het bestand met uw e-mailgegevens.

Als je de Twilio-service niet hebt, kun je de applicatie aanpassen om je eigen sms-service te gebruiken. We hebben ook een kant-en-klare bouwsteen voor de Clickatell-service. Of u kunt een modem aansluiten om SMS te verzenden.

U kunt bouwstenen vinden voor SMTP-e-mail, AirVantage Cloud, IBM Bluemix en Xively om er maar een paar te noemen.

Merk op dat om wijzigingen aan te brengen, u eerst uw eigen project moet maken. Kopieer/dupliceer vervolgens de toepassing naar uw nieuw gemaakte project. Je kunt hier zien hoe dit wordt gedaan:

Aarzel niet om contact met mij op te nemen als je hulp nodig hebt

Stap 5: Bouw en voer de applicatie uit op uw laptop

Bouw en voer de applicatie uit op uw laptop
Bouw en voer de applicatie uit op uw laptop

U moet de toepassing bouwen voordat u deze uitvoert en deze implementeren op de Raspberry Pi. Dit gebeurt met behulp van de Reactive Blocks codegenerator die vanuit de structuur van de bouwstenen een compleet Java-project maakt. De code die de diagrammen vertegenwoordigt, is de synchronisatiecode die gebeurtenissen in de juiste volgorde en op het juiste moment afhandelt, en is doorgaans goed voor meer dan 60% van de regels van de code in uw programma. Omdat de bouwstenen nauwkeurige wiskundige structuren zijn, kan de generator deze logica omzetten in zeer efficiënte code. Dit is een erg leuke Reactive Blocks-functie, omdat het handmatig schrijven van dergelijke code vervelend en moeilijk is. Dit is alles wat u hoeft te doen om de code te genereren:

Klik met de rechtermuisknop op het project Alarmsysteem SMS onder het tabblad Projecten en selecteer Java standard edition. Zorg ervoor dat de logboekinformatie INFO is. Het gegenereerde project wordt dan automatisch geopend onder het tabblad Pakketverkenner. Zie de afbeelding voor details.

Stap 6: Start de applicatie op uw computer

Voer de applicatie uit op uw computer
Voer de applicatie uit op uw computer
Voer de toepassing uit op uw computer
Voer de toepassing uit op uw computer

Nu kunt u het gegenereerde project uitvoeren. Klik in de weergave Package Explorer onder het gegenereerde _exe-project met de rechtermuisknop op AlarmSystemSMS.launch en selecteer RunAs en kies vervolgens AlarmSystemSMS.

Bekijk het venster op het scherm en de consoleweergave. Zou er ongeveer uit moeten zien als de tweede foto.

Beëindig de applicatie door het cameravenster te sluiten.

Voor de toepassing voor het verzenden van e-mail: als u een verificatiefout krijgt, zorg er dan voor dat SMTP-verzending is toegestaan voor uw e-mail. Zie probleemoplossing onderaan de e-mailtutorial:

Stap 7: Exporteren als uitvoerbaar JAR-bestand

Exporteren als uitvoerbaar JAR-bestand
Exporteren als uitvoerbaar JAR-bestand

Als u de toepassing op een Raspberry Pi wilt uitvoeren, is de volgende stap om het gegenereerde project naar een uitvoerbaar JAR-bestand te exporteren. Om dit te doen, klikt u met de rechtermuisknop op het uitvoerbare project in de weergave van de pakketverkenner en kiest u exporteren. Selecteer vervolgens de Runnable JAR-bestandsoptie en druk op volgende. Selecteer in het volgende venster de juiste startconfiguratie en exportbestemming. Gebruik in de exportbestemming de bladerknop zodat u het.jar-bestand op een plaats kunt plaatsen waar u het kunt vinden.

Stap 8: Bereid je Raspberry Pi voor

  • Bereid de SD-kaart voor met Raspbian (we hebben getest met NOOBS)
  • Steek de SD-kaart in de Raspberry pi
  • Sluit de camera aan
  • Verbind het netwerk
  • Sluit een scherm en toetsenbord aan op de Pi
  • Start de Raspberry pi door de micro-USB voor de voeding aan te sluiten.
  • Ontdek het IP-adres van uw Raspberry Pi. Bij het opstarten meldt uw Raspberry Pi zoiets als "Mijn IP-adres is 10.10. 15.107"
  • We hebben getest met Raspbian (standaard login: pi, wachtwoord: raspberry), die standaard Java bevat.

Stap 9: Implementeer de applicatie op uw Raspberry Pi

Volg deze stappen om het uitvoerbare jar-bestand van uw computer naar de Rapsberry Pi te kopiëren:

  • Open een terminal op uw machine
  • Ga naar de map waar het gegenereerde JAR-bestand zich bevindt
  • Typ scp alarmsystem.jar [email protected]:~/
  • U wordt gevraagd om de wachtwoordcombinatie. "pi" is de standaard gebruikersnaam en "raspberry" het standaard wachtwoord
  • Ga naar de directory waar het configuratiebestand alarm_system.properties zich bevindt. Het gemakkelijkst voor mij is om het bestand handmatig van de Eclipse-editor naar dezelfde map te kopiëren als het jar-bestand.
  • Typ scp motiondetection.ini [email protected]:~/

10.10.15.107 is het IP-adres, vervang dit door het IP-adres van je Raspberry Pi.

- U kunt natuurlijk ook een geheugenstick gebruiken om deze naar de Pi. te kopiëren

Stap 10: Voer de applicatie uit op uw Raspberry Pi

U bent nu klaar om de toepassing uit te voeren.

  • Log direct of op afstand in op de Raspberry Pi via ssh.
  • Maak een nieuwe configuratiemap: mkdir config
  • Controleer of het uitvoerbare JAR-bestand en.ini zijn gekopieerd naar de Raspberry Pi
  • Verplaats het.ini-bestand naar de config-directory: mv alarm_system.properties config/
  • Typ sudo java -jar alarmsystem.jar
  • Bekijk de uitvoer op de console
  • Beëindigen met ^C

Stap 11: wijzig uw aanvraag

U kunt uw aanvraag nu naar wens aanpassen en uitbreiden. Als u een geïmporteerd systeem zoals dit alarmsysteem wilt uitbreiden, moet u eerst uw eigen project maken en het alarmsysteem dupliceren naar uw eigen project.

Merk op dat om wijzigingen aan te brengen, u eerst uw eigen project moet maken. Kopieer/dupliceer vervolgens de toepassing naar uw nieuw gemaakte project. U kunt hier zien hoe dit wordt gedaan:

Volg de IoT Tuturial-trail voor stapsgewijze beschrijvingen over het bouwen of wijzigen van specifieke Reactive Blocks-applicaties.

Aanbevolen: