Raspberry Pi Security Camera App – technische Details
In diesem Artikel fasse ich die technischen Details meines Raspberry Pi Security Camera App Projekts zusammen. Details dazu habe ich in einem früheren Artikel zum Thema Raspberry Pi Security Camera App bereits im Detail erklärt.
Raspberry Pi Security Camera App – technische Details
Dieser Artikel soll die Erklärungen für das Setup der Raspberry Pi Security Camera App durch einige Highlights der Implementierung und einigen techischen Details dazu erweitern. Der Source Code ist auf meiner GitHub Seite zu finden, jeder Lust und Laune hat kann das Projekt klonen oder mir Änderungsvorschläge schicken.
Dieses Projekt besteht aus 3 Teilen:
- Frontend
Das Frontend ist in diesem Fall eine Android App die Daten von einem Backend laufen abrufen und darstellen kann. Es lädt eine Datei mit Metadaten und die Informationen (Bilder) aus beliebig vielen Datenquellen (IOT Knoten). - Backend
Das Backend bietet einen Endpunk über diesen Daten von einem (IOT Knoten) hochgeladen und gespeichert werden. Jeder erfolgreiche Upload führt zu einer aktualisierten Metadaten Datei. - IOT Knoten
Man kann beliebig viele Raspberry Pis mit angeschlossenen Kamera als Internet Of Things Knoten konfigurieren. So lange diese Daten (Bilder) erstellen und hochladen sind diese auch jederzeit über die App abrufbar.
Die einzelnen Komponenten im Detail erklärt.
IOT Knoten (Raspberry Pi und Kamera)
Die IOT Knoten bestehen jeweils aus einem Raspberry Pi an dem eine Kamera angeschlossen ist. Über einen Cronjob wird ein Shell Skript automatisch jede Minute gestartet, welches ein Bild macht und dieses auf einem im Script definierten Ort ablegt (lokal im Netzwerk und/oder auf einem Webhost). Sofern man das Bild auf einem Webhost ablegt kann man dieses Minuten aktuell über die App jederzeit abrufen. Getestet ist sowohl das offizielle Raspberry Pi Kameramodul wie auch eine 0815 USB Webcam. Linux unterstützt sehr viele Geräte ohne weitere Konfiguration.
Backend (Webserver)
Das Backend hat nur eine zentrale Aufgabe: es wir ein neues Bild hochgeladen. Der Prozess besteht aus dem Überschreiben des alten Bilds im Ordner auf dem Webserver und der Aktualisierung der Metadaten. Nach erfolgreichem Upload liegt das Bild im Ordner bereit und das Metadata *.json File enthält den korrekten Dateinamen und die Uhrzeit des letzten Uploads. Diese Daten kann bei einem Reload die Android App abrufen. Implementiert wurde der Code in PHP in einem einzigen File. Eine solches Backend kann man auf einem beliebigen Webhosting auch unter sehr günstigen Konditionen hosten.
Frontend (Android App)
Die PiCam Android App kann sich jeder gerne im PlayStore herunterladen. Die App wurde mit React Native erstellt. Bei React Native handelt es sich um das React Framework von Facebook (sorry: Meta) für Webseiten, welches speziell für die Erstellung von Android und iOS Apps adaptiert wurde. Mit TypeScript Code lässt sich so fast jede vorstellbare mobile App entwickeln. Für meine PiCam App benötigt man nur wenig wissen, mit den lediglich 2 Frames ist es eine minimale App. Der spannende Teil ist die Kommunikation mit dem Backend und das laden der aktuellen Informationen (Metadaten und Bilder). Alles weitere lernt man vermutlich nach den ersten 2 Stunden eines guten React Native Tutorials.
Fazit
Eine Zusammenfassung der technischen Details meiner Raspberry Pi Security Camera App für Android. Ich habe kurz und knapp die wesentlichen Details erklärt und relevante Links zu weiteren Quellen insbesondere der App im Play Store und meines ausführlichen Tutorials hinzugefügt. Weiters findet man auf GitHub den kompletten Source Code damit man die Komponenten und auch die App an die eigenen Bedürfnisse anpassen kann.