Java Microservice zum Verarbeiten von Daten eines Arduinos

Manchmal möchte man die Daten eines Arduinos am PC (oder MAC oder, oder…) weiter verarbeiten oder Visualisieren. Im Projekt Projekt: Ardudoro habe ich dieses erfolgreich eingesetzt und nun möchte ich dieses als Microservice bereitstellen.

Was ist ein Microservice?

Ein Microservice ist ein Stück Programm was genau eine Aufgabe erledigt. Wenn man zbsp. einen Taschenrechner als Microservice sieht dann ist jede Rechenoperation ein einzelner Microservice.

Was sind die Vorteile von Microservices?

Mit Microservices kann man die Architekturen trennen, und ermöglichen einen einfachen Technologiewelchsel. Des Weiteren ist es einfacher die Vorteile verschiedener Programmiersprachen zu nutzen.

 

Eine Präsentation und ein Beispiel zum Thema „Microservice“ habe ich als Download bereitgestellt.

 

Installation & Konfiguration

Download

Das Projekt „MicroArduinoSer“ habe ich auf GitHub bereitgestellt und kann von dort geladen werden.

Bauen des Projektes

Wenn das gesamte Projekt geladen wurde muss dieses noch mit Apache Maven gebaut werden. Dazu wird auf der Konsole der Befehl

aufgerufen. Nachdem ggf. die Abhängigkeiten herruntergeladen und das gesamte Projekt gebaut wurde wird in dem Verzeichnis „target“ ein Java Archive Bereitgestellt „MicroArduinoSer-0.0.1-SNAPSHOT.jar“.

Wenn Sie dieses nicht möchten so können Sie sich auch das Release laden und durch die beiliegende Batchdatei starten.

 

Starten des Projektes

Zum starten des erstellen Java Archives wird die Batchdatei „start_Service.cmd“ aufgerufen oder es wird wiederum auf der Konsole der Befehl

aufgerufen. Wobei ggf. noch die Pfadangaben ergänzt werden müssen.

 

Aufrufen des Services

Der Service kann nun nachdem erfolgreichen starten über die Adresse „http://localhost:8080/arduino“ aufgerufen werden. Sollte der Port 8080 bereits durch einen anderen Service belegt sein so kann dieser über die Datei „config.yml“ angepasst werden.

Konfiguration

Per Default ist der Service auf folgende Parameter eingestellt:

Die Daten können in der Datei „config.yml“ angepasst werden oder aber über Parameter in der URL.

Anpassen der Parameter über die URL

An der URL „http://localhost:8080/arduino“ können die Parameter geändert werden ohne das der Service extra beendet und neu gestartet werden muss.

Beispiel

Im folgenden Beispiel soll auf dem Port „COM12“ gelesen werden und alle Daten bis zum ersten Buchstaben „B“ ausgegeben werden.

Dieses kann für alle Parameter erfolgen.

Ausgabe im Browser

Wenn man nun die URL „http://localhost:8080/arduino?portname=COM12&lastCharacter=B“ im Browser aufruft erhält man folgende Ausgabe im JSON Format.

Ausgabe des Microservices "MicroArduinoSer"
Ausgabe des Microservices „MicroArduinoSer“

Es wird der Zeitstempel  („recievedAt“) bereitgestellt wann die Daten („value“) gelesen wurden und die Daten selbst.

Durch das JSON Format können diese Daten zbsp. mit JavaScript oder jeder anderen beliebigen Sprache weiterverarbeitet werden.

Der Arduino Sketch

Hier nun das kleine Arduino Sketch welches ich als anhalt für das Projekt verwendet habe:

Hier ist gut zu erkennen das die Zeile mit dem Großbuchstaben „A“ beginnt und mit dem Buchstaben „B“ endet. Diese beiden Zeichen verwende ich in dem Service um den Anfang und das Ende zu bestimmen.

Die Pause (delay) und das Sleep aus dem Microservice sollten sich annähernd gleichen da sonst Daten verloren gehen bzw. „verschluckt“ werden. (Dieses werde ich in einer späteren Version fixen.)

Exceptionhandling

Sollte einmal eine Exception „geworfen“ werden so wird dieses im Browser mit der Meldung

quittiert.

Nun kann man mit der ID „269b244a843ca1b9“ in der Konsole prüfen welcher Fehler aufgetreten ist.

In diesem Falle habe ich einen falschen Port eingegeben:

 

Ersten Kommentar schreiben

Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht.


*