Inhaltsverzeichnis:
- Schritt 1: Reaktive Blöcke installieren
- Schritt 2: Laden Sie die Anwendung aus den Bibliotheken herunter
- Schritt 3: Die Bewerbung auf Top-Level
- Schritt 4: SMS aktivieren
- Schritt 5: Erstellen und Ausführen der Anwendung auf Ihrem Laptop
- Schritt 6: Führen Sie die Anwendung auf Ihrem Computer aus
- Schritt 7: Als ausführbare JAR-Datei exportieren
- Schritt 8: Bereiten Sie Ihren Raspberry Pi vor
- Schritt 9: Stellen Sie die Anwendung auf Ihrem Raspberry Pi bereit
- Schritt 10: Führen Sie die Anwendung auf Ihrem Raspberry Pi. aus
- Schritt 11: Ändern Sie Ihre Anwendung
Video: Bewegungserkennungs-Alarmsystem - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Notiz! Reactive Blocks steht nicht mehr zum Download zur Verfügung. Eine einfache USB-Kamera kann verwendet werden, um Bewegungen in einem Raum zu erkennen. In den folgenden Schritten zeigen wir Ihnen, wie Sie mit Reactive Blocks eine lauffähige Java-Anwendung programmieren können, die bei Bewegungserkennung SMS oder E-Mail versendet. Mit Reative Blocks erstellen Sie Java SE-Anwendungen, sodass die Alarmanwendung auf jedem Computer mit Java SE und einer angeschlossenen oder integrierten Kamera bereitgestellt werden kann. Die Anwendung lässt sich problemlos auf dem Pi bereitstellen, da in der Raspbian-Version Oracle Java vorinstalliert ist..
Das brauchen Sie:
- Raspberry Pi Model B+ mit Raspbian OS
- Standard-USB-Kamera
- Ethernet Kabel
- Bildschirm und Tastatur für den Pi
- Windows- oder MAC-Computer mit JDK
- Notiz! Reactive Blocks steht nicht mehr zum Download zur Verfügung. Sie benötigen Reactive Blocks, ein Eclipse-Plugin, um die Anwendung zu programmieren.
Diese Alarmanwendung ist eines von mehreren modifizierbaren Beispielsystemen, auf die nach der Installation von Reactive Blocks zugegriffen werden kann. Die Anwendung ist sofort einsatzbereit und Sie benötigen keine Java-Programmierkenntnisse, um das Tutorial abzuschließen. Um Ihre eigenen Reactive Blocks-Anwendungen und -Bausteine zu erstellen, müssen Sie ein erfahrener Java-Programmierer sein. Beim Aufbau komplexerer Anwendungen mit mehreren Sensoren und Aktoren macht es Reactive Blocks einfach, die Logik und den Datenfluss richtig zu machen. Reactive Blocks ist für Open-Source-Projekte kostenlos.
Schritt 1: Reaktive Blöcke installieren
Reaktive Blöcke wurden eingestellt
Schritt 2: Laden Sie die Anwendung aus den Bibliotheken herunter
Stellen Sie sicher, dass Sie die Perspektive Reaktive Blöcke geöffnet haben und sich in der Ansicht Blöcke befinden. Wählen Sie in der Ansicht Blöcke die Schaltfläche Importieren und wählen Sie Referenzanwendungen. Wählen Sie das Bewegungserkennungsprojekt aus. An dieser Stelle werden Sie aufgefordert, sich mit einer Google-ID zu registrieren. Dadurch erhalten Sie sofortigen Zugriff auf die Bausteinbibliotheken und modifizierbaren Systeme und Tutorials.
Das von Ihnen heruntergeladene Bewegungserkennungsprojekt enthält drei Anwendungen, die Alarmsystem-SMS, die Alarmsystem-E-Mail und eine Testanwendung, die Testbewegungserkennung. In diesem Tutorial führen wir Sie durch die Alarmsystem-SMS. Wenn Sie lieber E-Mails senden, können Sie die gleichen Schritte mit der Alarmsystem-E-Mail ausführen
Schritt 3: Die Bewerbung auf Top-Level
In diesem Schritt wird die Anwendung erläutert. Das erste Bild zeigt das Diagramm, wie die vollständige Anwendung auf der obersten Ebene aussieht. Es besteht aus 7 Bausteinen; 5 Standardbausteine aus den Bibliotheken und 2 benutzerdefinierte Bausteine, die für diese Anwendung erstellt wurden.
Standardblöcke aus der IoT-Bibliothek sind:
- Grabber, greift Bilder von der USB-Kamera
- Bewegungserkennung, führt die eigentliche Bilderkennung durch
- Periodischer Timer, startet mit genauen Zeitstempeln und sendet in jeder Periode ein Signal an den Tick-Pin.
- Buffer Eager, schiebt das erste Element in der Warteschlange automatisch heraus. Der Puffer stellt sicher, dass nur eine Nachricht an den SMS Send-Block gesendet wird, da er jeweils nur eine Nachricht verarbeiten kann.
- SMS Send Buffered, sendet SMS über den Twilio-Dienst. Die zu sendenden Elemente werden gepuffert, um sicherzustellen, dass jeweils nur eine Nachricht gesendet wird.
- Limiter, um zu viele SMS zu vermeiden, wenn ein Eindringling erkannt wird.
- Java-Eigenschaftendatei lesen, Konfigurationsdaten aus der Eingabedatei lesen
- Anzeigen, zeigt ein Bild auf dem Bildschirm an.
Der Periodic Timer-Block arbeitet als System-Engine. Er gibt regelmäßig einen Tick aus, der über den Grab-Pin ein Signal an den Grabber-Block sendet. Der Grabber-Block verwendet die Open Intelligent Multimedia Analysis for Java, OpenIMAJ. Wenn der Block initialisiert wird, wird ein separater Thread gestartet, um Daten von der Kamera zu lesen. Der Thread hört auf eine Befehlswarteschlange. Wenn der Block einen Befehl über den Grab-Pin erhält, nimmt er ein Bild auf und liefert es an den Bild-Pin.
Das Bild wird dann an den Bewegungserkennungsblock übergeben, der die eigentliche Bilderkennung durchführt. Der Bewegungserkennungsblock verwendet auch OpenIMAJ. Eine Methode in diesem Block vergleicht zwei Bilder und markiert Änderungen im Bild, wenn eine Bewegung erkannt wird. Die Methode ist sehr CPU-intensiv und muss in einem separaten Thread ausgeführt werden. Wenn ein Bild erkannt wird, wird dies auf dem motionDetected-Pin signalisiert, wodurch die Generierung einer SMS-Nachricht ausgelöst wird.
Die hellblauen Kästchen sind alle Java-Methoden, die speziell für diese Anwendung entwickelt wurden. Ein Klick auf einen Methodenblock öffnet den Java-Editor.
Wenn Sie auf einen Baustein klicken, können Sie die Details der Logik innerhalb des Bausteins sehen. Wenn Sie beispielsweise in den ReadConfig-Block schauen, werden Sie feststellen, dass er durch die Kombination eines vorhandenen Bausteins und 4 Java-Methoden erstellt wurde.
Der Limiter begrenzt die Anzahl der generierten Nachrichten. Beachten Sie das P in der rechten Ecke des Bausteins. Es zeigt an, dass Sie das Miniintervall festlegen können, wie lange die Anwendung warten muss, bevor sie eine neue SMS sendet. Die Standardeinstellung ist 300000ms, also 5 Minuten. Um den Wert zu ändern. Klicken Sie mit der rechten Maustaste auf den Block und wählen Sie Parameter und Generics.
Schritt 4: SMS aktivieren
Diese Alarmanwendung verwendet Twilio als SMS-Dienst. Um SMS zu aktivieren, müssen Sie die Datei config/alarm-system.properties bearbeiten. Sie finden es in der Paket-Explorer-Ansicht unter br.ref.motiondetection, siehe Bild.
Diese Datei ist dieselbe Datei, die in der E-Mail des Alarmsystems verwendet wird. Wenn Sie lieber E-Mail-Benachrichtigungen haben, verwenden Sie diese Anwendung und bearbeiten Sie die Datei mit Ihren E-Mail-Anmeldeinformationen.
Wenn Sie den Twilio-Dienst nicht haben, können Sie die Anwendung ändern, um Ihren eigenen SMS-Dienst zu verwenden. Wir haben auch einen gebrauchsfertigen Baustein für den Clickatell-Dienst. Oder Sie können ein Modem anschließen, um SMS zu senden.
Sie finden Bausteine für SMTP-E-Mail, AirVantage Cloud, IBM Bluemix und Xively, um nur einige zu nennen.
Beachten Sie, dass Sie zum Vornehmen von Änderungen zuerst Ihr eigenes Projekt erstellen müssen. Anschließend kopieren/duplizieren Sie die Anwendung in Ihr neu erstelltes Projekt. Wie das geht, sehen Sie hier:
Zögern Sie nicht, mich zu kontaktieren, wenn Sie Hilfe benötigen
Schritt 5: Erstellen und Ausführen der Anwendung auf Ihrem Laptop
Sie müssen die Anwendung erstellen, bevor Sie sie ausführen, und sie auf dem Raspberry Pi bereitstellen. Dies geschieht mit dem Codegenerator Reactive Blocks, der aus der Struktur der Bausteine ein komplettes Java-Projekt erstellt. Der Code, der die Diagramme darstellt, ist der Synchronisationscode, der Ereignisse in der richtigen Reihenfolge und zum richtigen Zeitpunkt verarbeitet und normalerweise mehr als 60 % der Codezeilen in Ihrem Programm ausmacht. Da die Bausteine präzise mathematische Strukturen sind, kann der Generator diese Logik in sehr effizienten Code umwandeln. Dies ist eine sehr nette Funktion für reaktive Blöcke, da es mühsam und schwierig ist, solchen Code manuell zu schreiben. Um den Code zu generieren, müssen Sie nur Folgendes tun:
Klicken Sie mit der rechten Maustaste auf das Projekt Alarm System SMS unter der Registerkarte Projekte und wählen Sie Java Standard Edition aus. Stellen Sie sicher, dass die Protokollierungsinformationen INFO sind. Das generierte Projekt wird dann automatisch unter der Registerkarte Paket-Explorer geöffnet. Details finden Sie in der Abbildung.
Schritt 6: Führen Sie die Anwendung auf Ihrem Computer aus
Nun können Sie das generierte Projekt ausführen. Klicken Sie in der Package Explorer-Ansicht unter dem generierten _exe-Projekt mit der rechten Maustaste auf AlarmSystemSMS.launch und wählen Sie RunAs und dann AlarmSystemSMS.
Beobachten Sie das Fenster auf dem Bildschirm und die Konsolenansicht. Sollte ungefähr so aussehen wie auf dem zweiten Bild.
Beenden Sie die Anwendung, indem Sie das Kamerafenster schließen.
Für die Anwendung E-Mail senden: Wenn Sie einen Authentifizierungsfehler erhalten, stellen Sie sicher, dass SMTP-Senden für Ihre E-Mail zulässig ist. Siehe Fehlerbehebung am Ende des E-Mail-Tutorials:
Schritt 7: Als ausführbare JAR-Datei exportieren
Wenn Sie die Anwendung auf einem Raspberry Pi ausführen möchten, besteht der nächste Schritt darin, das generierte Projekt in eine lauffähige JAR-Datei zu exportieren. Klicken Sie dazu mit der rechten Maustaste auf das ausführbare Projekt in der Paket-Explorer-Ansicht und wählen Sie Exportieren. Wählen Sie dann die Option Runnable JAR-Datei und klicken Sie auf Weiter. Wählen Sie im folgenden Fenster die richtige Startkonfiguration und das Exportziel aus. Verwenden Sie im Exportziel die Schaltfläche Durchsuchen, damit Sie die.jar-Datei an einem Ort ablegen können, an dem Sie sie finden können.
Schritt 8: Bereiten Sie Ihren Raspberry Pi vor
- Bereiten Sie die SD-Karte mit Raspbian vor (wir haben mit NOOBS getestet)
- Stecken Sie die SD-Karte in den Raspberry pi
- Schließen Sie die Kamera an
- Verbinden Sie das Netzwerk
- Verbinden Sie einen Bildschirm und eine Tastatur mit dem Pi
- Starten Sie den Raspberry Pi, indem Sie den Micro-USB zur Stromversorgung anschließen.
- Finden Sie die IP-Adresse Ihres Raspberry Pi heraus. Beim Start meldet Ihr Raspberry Pi etwa "Meine IP-Adresse ist 10.10.15.107".
- Wir haben mit Raspbian (Standard-Login: pi, Passwort: raspberry) getestet, das standardmäßig Java enthält.
Schritt 9: Stellen Sie die Anwendung auf Ihrem Raspberry Pi bereit
Um die ausführbare JAR-Datei von Ihrem Computer auf den Rapsberry Pi zu kopieren, gehen Sie wie folgt vor:
- Öffnen Sie ein Terminal auf Ihrem Computer
- Gehen Sie in das Verzeichnis, in dem sich die generierte JAR-Datei befindet
- Geben Sie scp alarmsystem.jar [email protected]:~/ ein
- Sie werden nach der Passwortkombination gefragt. "pi" ist der Standardbenutzername und "raspberry" das Standardpasswort
- Wechseln Sie in das Verzeichnis, in dem sich die Konfigurationsdatei alarm_system.properties befindet. Am einfachsten ist es für mich, die Datei manuell aus dem Eclipse-Editor in das gleiche Verzeichnis wie die JAR-Datei zu kopieren.
- Geben Sie scp motiondetection.ini [email protected]:~/ ein
10.10.15.107 ist die IP-Adresse, ersetzen Sie sie durch die IP-Adresse Ihres Raspberry Pi.
- Sie können es natürlich auch mit einem Memory-Stick auf den Pi. kopieren
Schritt 10: Führen Sie die Anwendung auf Ihrem Raspberry Pi. aus
Sie können nun die Anwendung ausführen.
- Melden Sie sich entweder direkt oder remote über ssh am Raspberry Pi an.
- Erstellen Sie ein neues Konfigurationsverzeichnis: mkdir config
- Überprüfen Sie, ob die ausführbare JAR-Datei und die.ini auf den Raspberry Pi kopiert wurden
- Verschieben Sie die.ini-Datei in das Konfigurationsverzeichnis: mv alarm_system.properties config/
- Geben Sie sudo java -jar alarmsystem.jar. ein
- Sehen Sie sich die Ausgabe auf der Konsole an
- Mit ^C. beenden
Schritt 11: Ändern Sie Ihre Anwendung
Sie können Ihre Anwendung nun nach Belieben modifizieren und erweitern. Wenn Sie ein importiertes System wie dieses Alarmsystem erweitern möchten, müssen Sie zunächst ein eigenes Projekt erstellen und das Alarmsystem in Ihr eigenes Projekt duplizieren.
Beachten Sie, dass Sie zum Vornehmen von Änderungen zuerst Ihr eigenes Projekt erstellen müssen. Anschließend kopieren/duplizieren Sie die Anwendung in Ihr neu erstelltes Projekt. Wie das geht, sehen Sie hier:
Folgen Sie dem IoT-Tutorial-Trail, um Schritt-für-Schritt-Beschreibungen zum Erstellen oder Ändern bestimmter Reactive Blocks-Anwendungen zu erhalten.