Vulpecula
Commander
- Registriert
- Nov. 2007
- Beiträge
- 2.241
Hallo zusammen!
Ich habe hier ein Arduino-Projekt am Wickel, welches nun auch eine etwas aufwändigere grafische Ausgabe bekommen soll.
Konkret bedeutet dies, dass der Arduino via serieller Schnittstelle diverse Werte liefert, die ich nun parsen muss, bevor sie dann weiterverarbeitet werden. Im Moment habe ich noch keinen konkreten Code, sondern bin viel mehr am überlegen, wie ich das jetzt möglichst adäquat umsetze.
Mir schwebt eine Lösung vor, bei der ich innerhalb des Arduinos einen String zusammensetze, ungefähr so:
Ich könnte natürlich auch alle Werte in einen riesigen String schmeißen und dann mit RegEx kommen. Allerdings habe ich nicht für alle Werte die gleiche Updatefrequenz (den Klimasensor lese ich z.B. nur einmal die Sekunde aus; häufiger ist schlicht nicht nötig). Wenn ich die Werte einzeln verpacke und rausschicke, brauche ich sie tatsächlich nur dann senden, wenn auch eine Änderung vorliegt; ergo weniger Stress auf dem Arduino. (Da muss ich unter anderem noch einen RFID-Chip pollen und ggf. einen Tag auslesen, was schon ziemlich ätzend ist). Die Last auf der Seite des Computers macht mir weniger sorgen.
Aber: Dies ist das erste Mal, dass ich Daten von einem Arduino via Serial rausschicken und in einem eigenen Programm weiterverarbeiten will und vielleicht hat ja schon jemand Erfahrungen diesbezüglich sammeln können, die er mit mir teilen mag.
Grüße,
Vulpecula
P.S.: Ich werde das Ganze in Java umsetzen, da ich hier bereits Erfahrung mit der RXTX Library und dem jSSC habe. Sobald das erledigt ist, kippe ich eine nette JavaFX GUI drauf. Qt bleibt eine Option, allerdings müsste ich mich da erst einarbeiten.
Ich habe hier ein Arduino-Projekt am Wickel, welches nun auch eine etwas aufwändigere grafische Ausgabe bekommen soll.
Konkret bedeutet dies, dass der Arduino via serieller Schnittstelle diverse Werte liefert, die ich nun parsen muss, bevor sie dann weiterverarbeitet werden. Im Moment habe ich noch keinen konkreten Code, sondern bin viel mehr am überlegen, wie ich das jetzt möglichst adäquat umsetze.
Code:
TEMPERATURE SENSORS
- Motor: 12°C
- Amplifier: 34°C
ENVIROMENTAL SENSOR
- Temperature: 12.3°C
- Humidity: 45.6 %RH
- Barometric Pressure: 7890hPa
BATTERY MONITOR
- Voltage 1: 12.3V
- Voltage 2: 45.6V
- Voltage 3: 78.9V
- Voltage 4: 12.3V
- Voltage 5: 45.6V
- Power: 7890W
COUNTDOWN TIMER
- Status: Active
- Program: 15 Minutes
- Remainung Time: 12:34
Mir schwebt eine Lösung vor, bei der ich innerhalb des Arduinos einen String zusammensetze, ungefähr so:
ID + Delimiter + SUB_ID + Delimiter + Wert
. Konkret würde dann z.B. folgender String übertragen werden: DS18B20#Motor#12
. Das Ganze würde ich dann im Programmablauf selbst via RegEx wieder auseinanderpflücken und dementsprechend weiterverarbeiten.Ich könnte natürlich auch alle Werte in einen riesigen String schmeißen und dann mit RegEx kommen. Allerdings habe ich nicht für alle Werte die gleiche Updatefrequenz (den Klimasensor lese ich z.B. nur einmal die Sekunde aus; häufiger ist schlicht nicht nötig). Wenn ich die Werte einzeln verpacke und rausschicke, brauche ich sie tatsächlich nur dann senden, wenn auch eine Änderung vorliegt; ergo weniger Stress auf dem Arduino. (Da muss ich unter anderem noch einen RFID-Chip pollen und ggf. einen Tag auslesen, was schon ziemlich ätzend ist). Die Last auf der Seite des Computers macht mir weniger sorgen.
Aber: Dies ist das erste Mal, dass ich Daten von einem Arduino via Serial rausschicken und in einem eigenen Programm weiterverarbeiten will und vielleicht hat ja schon jemand Erfahrungen diesbezüglich sammeln können, die er mit mir teilen mag.
Grüße,
Vulpecula
P.S.: Ich werde das Ganze in Java umsetzen, da ich hier bereits Erfahrung mit der RXTX Library und dem jSSC habe. Sobald das erledigt ist, kippe ich eine nette JavaFX GUI drauf. Qt bleibt eine Option, allerdings müsste ich mich da erst einarbeiten.