Skip to content
Snippets Groups Projects
Commit 4a37a70e authored by Armin Co's avatar Armin Co
Browse files

Readme mit Installationsanleitung

parent 37e3439d
Branches
No related tags found
No related merge requests found
# Smart-Grid-Modell (SGM)
## Installation
Voraussetzungen und Abhängigkeiten
## Voraussetzungen und Abhängigkeiten
Dieses Repository [https://gitlab.cvh-server.de/aco/smart-grid-modell](https://gitlab.cvh-server.de/aco/smart-grid-modell)
Darin werden die Bibliotheken [spdlog](https://github.com/gabime/spdlog) für das Loggen von Benachritigungen und
Darin werden die Bibliotheken [spdlog](https://github.com/gabime/spdlog) für das Loggen von Benachrichtigungen und
[freeopcua](https://github.com/FreeOpcUa/freeopcua) für OPC-UA Server und Client.
Für freeopcua werden zusätzliche Pakete benötigt. Für Debian sind diese in der Datei 'debain.soft' aufgelistet.
Die Git-Submodules müssen vor dem kompilieren mit
'git submodule init && git submodule update' heruntergeladen werden.
Die derzeitig auf dem Pi installierte Version von Raspbian hat nur Zugriff auf die alte CMake Version 3.6.2
für 'spdlog' wird jedoch 3.10 erwartet.
`git submodule init && git submodule update` heruntergeladen werden.
Alternativ kann beim erstmaligen Clonen des Repositories die Option `--recurse-submodules` mir übergeben werden.
Für die vollständige Erzeugung aller Bestandteile der FreeOpcUa Bibliothek (nicht notwendig) werden noch die folgenden Pakete benötigt.
Weitere, wernn diese Pakete auf Raspbian nicht zur Verfügung stehen, dann kann TLS deaktiviert werden:
Weitere, wenn diese Pakete auf Raspbian nicht zur Verfügung stehen, dann kann TLS deaktiviert werden:
- libmbedx509-0
- libmbedcrypto1
- libmbedtls-dev
## Installation druchführen
Sind alle Abhängigkeiten für das Projekt installiert kann mit dem bereitgestellten Skript `install.sh`
das gesamte Projekt gebaut werden.
Auf dem Raspberry-Pi dauert das Kompilieren der FreeOpcUa Bibliothek einige Minuten,
die Entwicklungsarbeit kann jedoch ohne Probleme auf einem anderen Linux-Desktop durchfegührt werden und nur zum finalen
ausführen auf dem Pi kompiliert werden.
Während der Installation wird das Verzeichnis `build` angelegt.
Darin finden sich alle generierten Dateien von CMake die zum kompilieren benötigt werden, sowie die
fertig kompilierten Programme.
# Durchgeführte Arbeiten
* Systemupdate des Raspberry Pi
* updaten der WiringPi Library auf den aktuellen Stand 2.32 -> 2.60 aufgrund von Kompatibilitätsproblemen
Zum manuellen kompilieren kann in das `build` Verzeichnis gewechselt werden,
mit dem Befehl `cmake ..` wird dann das Makefile generiert und anschließend kann mit dem Befehl
`make` kompiliert werden.
Auf einem Desktop-Linux Rechner kann mit der Option `-j14` die Anzahl der zu verwenden Threads angegeben werden,
dies beschleunigt den Kompiliervorgang.
Auf dem Raspberry-Pi sollten nicht mehr als zwei Threads gewählt werden, da der Arbeitsspeicher knapp werden kann.
Beim manuellen Kompilieren ist zu beachten, dass die ausführbare Datei unter `build/libs/freeopcua/bin` abgelegt wird.
Diese muss anschließend manuell in das `build` Verzeichnis kopiert werden, damit die Skripte zum ausführen verwendet werden können.
# Notwendige Änderungen
## Ausführen
* Neues Build-System mit aktuellem Stand (CMake & C++)
* Aufteilen in eine SGM-Runnable mit API für GUI, CLI oder OPC UA.
* Überarbeiten der Simulationsparameter
Mit dem beigelegten Skript `start_server.sh` kann der OPC UA Server einfach gestartet werden.
Beendet werden kann der Server dann mit dem Drücken der Taste `q`.
Wird die `smart_grid.exe` manuell ausgeführt, dann werden die Ausgänge des Modells beim Beenden nicht deaktiviert.
Dies kann bei Bedarf mit den Skripten `all_off.sh` oder `windmill_off.sh` nachgeholt werden.
# Tools
- kleines Kommandozeilen-Programm zur manuellen Kommunikation mit dem Arduino (i2c_control.exe)
## Infos
Der OPC UA Server ist unter der lokalen ihm per DHCP zugewiesenen IP-Adresse auf dem Port 4840 zu erreichen.
Alternativ kann auch der Hostname raspberrypi.local verwendet werde.
# Notizen
Der angelegte Benuzter auf dem Raspberry Pi ist: "pi"
das zugehörige Passwort ist ebenfalls "pi"
- Adresse des Arduinos: 0x14
- Adresse des Lux-Sensors: 0x23
\ No newline at end of file
So kann man sich zum Beispiel per ssh mit dem Pi verbinden.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment