Nachdem das Backend erfolgreich umgesetzt, getestet und implementiert wurde, möchten wir ein paar Informationen über dieses Teilen.
Das Backend für das SmartTransport Projekt wird mit einer ASP.NET Core Web-API umgesetzt. Insgesamt lässt sich dieses in vier Komponenten aufteilen.
- MQTT-Client
Die vom Raspberry Pi an den MQTT-Broker gesendeten Daten werden im Backend über einen MQTT-Client abonniert und von diesem erfasst. Die Funktionalität des Clients wird über das NuGet Package M2MqttDotnetCore ermöglicht.
- Datenbank
Die Datenbank wurde mit dem Entity Framework Core und SQLite erstellt. Die Datenbank besteht aus verschiedenen Tabellen. Neben den beiden Tabellen für die übertragenen Werte des IoT-Gerätes, einmal für die einzelnen Sensoren sowie für die GPS-Daten, sind weitere Tabellen zur Verwaltung des Portals und den Geräten vorhanden. Insgesamt besteht die Datenbank aus 7 Tabellen.
- REST Web-API
Auf die verschiedenen Tabellen der Daten und zusätzlichen Funktionen kann über die Web-API zugegriffen werden. Dafür wurde für jede Tabelle ein eigener API-Controller erstellt.
Die Funktionen der Web-API können über das Tool Postman getestet werden. Über dieses können verschiedene Anfragen an die API gestellt werden. Im nachfolgenden Screenshot ist eine HTTP Get Anfrage an den Customer-Controller zu sehen. Die Anfrage liefert einen Kunden anhand dessen Id.
- SignalR Echtzeitübertragung
Bei einer aktiven Internetverbindung sollen die übertragenen Daten der Geräte sofort beim Eintreffen ins Backend an das Frontend gepusht werden. Hierfür setzen wird SignalR ein. Darüber können wir mit geringem Aufwand im Backend und Frontend die Daten übertragen. Im Backend wird, wie im nachfolgenden Screenshot zu sehen, über dem SignalR Hub die Nachricht an alle Clients versendet.
Im Frontend kommen die Daten folgenderweise an und können über den SignalR Javascript Client verwendet werden.