Ablaufschema der
Target-Anwendung:
![](images/Update%20Mechanismus%20-%20Ablaufdiagramm%20ConSALTing%20Machine.jpg)
Der Ablauf der Targetanwendung auf dem Lolin32 der ConSALTing
Machine
BLE-Kommunikation:
![](images/Blockschaltbild-Kommunikation.png)
Die Kommunikation über Bluetooth-Low-Energy
GUI der App: Die App besteht aus den drei
Fragmenten "Konfiguration", "Sensordaten" und "Info", die über ein
TabLayout verbunden werden.
![](images/gui.png)
![](images/Funktionsprinzip-App.png)
Die Android-App reagiert auf Callback-Funktionen des
Activity-Lifecycles. Die "onCreate"-Funktion wird einmalig beim
Start der Anwendung aufgerufen, hier wird das Layout eingerichtet.
Die Funktion "onResume" wird jedes Mal aufgerufen, wenn die App aus
dem Hintergrund wieder sichtbar wird. In diesem Fall wird zunächst
überprüft, ob alle Berechtigungen erteilt wurden, anschließend wird
die Zustandsmaschine gestartet, sofern sie noch nicht zuvor
gestartet wurde. In der Zustandsmaschine erfolgt schrittweise der
Aufbau einer Bluetooth-Low-Energy-Verbindung. Im Zustand "Connected"
können Anweisungen an die ConSALTingMachine gesendet und Sensordaten
abgefragt werden. Parallel dazu wird in einem separaten Thread
einmalig die Konfigurationsdatei ausgelesen, in der Informationen
über die Salzkonzentrationen von verschiedenen Essen gespeichert
werden. Ist der Lesevorgang abgeschlossen, wird das Layout
aktualisiert. Die Callback-Funktion "onPause" wird aufgerufen,
sobald der Nutzer zu einer anderen App wechselt oder die App
schließt. In diesem Fall wird die BLE-Verbindung getrennt.
Test und Kalibrierung der
Wägezelle:
Um bei der Umsetzung der
Wiegevorgänge mithilfe der im Griff verbauten Wägezelle gute
Messergebnisse zu garantieren wurde eine Messreihe durchgeführt.
Hierzu wurden Rohmesswerte von Wassermengen bis 1,5L im Abstand von
250ml Schritten gemessen. Auf dieser Grundlage konnte die
Genauigkeit der Wägezelle bestimmt und die Kalibrierung durchgeführt
werden.
![](images/Wassermessreihe.png)
Wasserfüllstand-Messreihe
![](images/Wassermessreihe_Diagramm.png)
Wasserfüllstand-Messreihe Diagramm
Um Unterschiedliche
Messergenisse von Wasser und Salzmesswerten vorzubeugen (da die
Schwerpunkte der beiden Medienspeicher etwas voneinander abweichen)
und damit eine noch höhere Genauigkeit zu erzielen, wurde eine
weitere Messreihe mit unterschiedlichen Salztankfüllständen
aufgenommen. Dabei variiert der Füllstand in 10g Schritten bis zu
einem Maximum von 100g.
![](images/Salzmessreihe_und_Diagramm.png)
Salzfüllstand-Messreihe und Diagramm
Da beide Ergenisse
der Messreihen sehr nahe beieinander liegen, wurde für Wasser- und
Salzwiegung dieselben Kalibrierwerte für die Wägezelle verwendet.
Der Offset wurde auf einen Rohwert von 13989 gesetzt, die Steigung
enspricht der Formel ∆ Gewicht [g] / ∆ Ø-Rohwert und damit
einem Faktor von 1,47. Daraus resultiert für die Berechnung des
auszugebenden Salzes in Gramm die Formel: x = (y - 13989)
* 1,47
|