Skip to content

Phape/smart-security

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Smart-Security (Ein Projekt der Vorlesung "IoT-Technik und Geschäftsmodelle")

 
Allgemeine Sytemarchitektur Deviceseitige Systemarchitektur  
Grafana-Dashboard Balena Cloud Balena CLI (Livepush)

Kurzbeschreibung

Dies ist das Repository des Projektes "Smart-Security", einem smarten Alarmsystem. Das Projekt ist in folgende Softwarekomponenten gegliedert:

  • backend
    • enthält alle Services, die serverseitig (backendseitig) ausgeführt werden. Für mehr Informationen siehe auch backend readme
    • die Backend Docker-Container können in jeder beliebigen Docker-Engine ausgeführt werden
  • device
    • enthält alle Services, die deviceseitig (bspw. RaspberryPi) ausgeführt werden. Für mehr Informationen siehe auch device readme
    • das Deployment erflogt über die Balena-Cloud
  • misc
    • enthält alles, was nicht zum Backend oder der Deviceseite gehört, bspw. Bilder für diese Readme

Entwicklung der IoT-Devices

Das Balena CLI kann sämtliche Client-Komponenten auf einen lokales Entwicklerboard (hier Rasbperry Pi) ausführen und bei Änderungen am Quellcode automatisch aktualisieren (sog. Livepush). Das erstmalige Starten der Komponenten dauert lange. Dafür werden die betroffenen Komponenten bei jeder Quellcodeänderungen innerhalb weniger Sekunden neugestartet, so dass man fast wie lokal entwickeln kann. Die notwendigen Schritte sind hierfür:

  1. In der Balena Cloud eine neue Anwendung registrieren
  2. Development-Version des Balena OS herunterladen und auf SD-Karte schreiben
  3. Das Entwicklerboard mit dem eben heruntergelandenen Balena OS starten
  4. In der Cloud den „Local Mode“ aktivieren
  5. Auf der Kommandozeile folgende Befehle ausführen:
    • cd device
    • sudo balena scan
    • balena push xxxxxx.local

xxxxxx.local muss hierbei durch den mit sudo balena scan ermittelten Hostnamen ersetzt werden (z.B. 6076a30.local). Alternativ kann auch die IP-Adresse des Boards verwendet werden. Auf der Konsole werden alle Log-Ausgaben der Services und des Devices ausgegeben. Dies kann mit Strg+C beendet werden. Das Device läuft allerdings weiter.

Folgende Befehle können bei der Entwicklung nützlich sein:

  • balena logs xxxxxx.local:
    Wiederaufnahme der Log-Ausgabe in der Konsole

  • balena logs xxxxxx.local --service sensor --service mqtthandler:
    Konsolenausgabe auf einzelne Services einschränken

  • balena ssh xxxxxx.local:
    SSH-Verbindung zum Hostsystem des Devices herstellen

  • balena ssh xxxxxx.local mqtthandler:
    SSH-Verbindung zu einem Containersystem des Devices herstellen

Produktivsetzung der IoT-Devices

Zur Produktivsetzung der Devices muss in der Cloud der „Local Mode” deaktiviert werden (in den Geräteeinstellungen des Entwicklerboards). Anschließend kann das Device wieder über die Balena Cloud verwaltet und konfiguriert werden. Das eigentliche Deployment erfolgt mit folgendem Befehl:

balena push smart-security

Raspberry Pi Sensoren und Aktoren

Für die GPIO-Belegung siehe entsprechenden wiki-Eintrag.

Zigbee-Geräte werden via MQTT eingebunden. Mehr dazu im wiki und im Blog-Eintrag "Zigbee mit dem Raspi"

Entwicklung des Backends

Die Backendkomponenten können zum Test mit Docker Compose lokal gestartet werden. Zum Beispiel mit folgenden Befehlen:

  • docker-compose up:
    Starten aller Backend-Services

  • docker-compose down:
    Stoppen aller Backend-Services

Produktivsetzung des Backends

Die Docker-Container können in einer beliebigen (Cloud-)Container-Umgebung deployed werden.

Copyright

Sämtliche Quellcodes sind lizenziert unter Creative Commons Namensnennung 4.0 International

© 2021 Dennis Schulmeister-Zimolong

E-Mail: [email protected]
Webseite: https://www.wpvs.de

About

Code des Projektes "Smart Security" der Vorlesung IoT Technik und Geschäftsmodelle

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.5%
  • Other 1.5%