Prof. J. Walter - Informationstechnik, Mikrocomputertechnik, Digitale Medien Ausgewählte Lösung
Hochschule Karlsruhe Logo F/E-Projekt / Energieeffiziente Mikrocontroller
ConSALTing Machine
Wintersemester 2021/22
scti1053@h-ka.de
kakn1011@h-ka.de

Ausgewählte Lösung


Zum Projektvideo der ausgearbeiteten Lösung gelangen sie hier



Bedienung und Funktionsweise der ConSALTing Machine

Targetanwendung:

Der erste Schritt dient zur Kalibrierung des Salztankfüllstands. Er ist also nur nötig, falls der Salztank zuvor neu aufgefüllt wurde. Durch einen doubletab des Buttons wird der Salzfüllstand kalibriert und abgespeichert. Während des Vorgangs leuchtet die Status-LED zur Überprüfung weiß auf.

Der erste Schritt der eigentlichen Salzdosierung erfolgt, nachdem die erwünschte Wassermenge in die ConSALTing MAchine eingefüllt wurde. Nun kann ein Wiegevorgang durch ein kurzes Drücken des Buttons gestartet werden. Dabei misst eine Wägezelle, die im Griff des Geräts verbaut ist, wie viel Wasser sich im Becher befindet. Dieser Vorgang wird mit der blau leuchtenden Status-LED bestätigt.

Im letzten Schritt wird der Dosiermotor durch ein längeres Halten des Buttons eingeschaltet, welcher die individuell angepasste Salzmenge ausgibt. Während des Dosiervorgangs leuchtet die Status-LED gedimmt grün und das Geräusch des Motors ist hörbar.

Das dosierte Salz kann nun anschließend ganz einfach durch einen federrückgestellten Mechanismus in den Topf ausgegeben werden.

Eine Übersicht zum Controlbutton und der Status-LED befindet sich in der Bedienungsanleitung.

Android App:

Die App besteht aus den drei Fragmenten "Konfiguration", "Sensordaten" und "Info", die über ein TabLayout verbunden werden.

Um beim Start der App erste Aktionen auszuführen, implementiert die App die wichtigsten Methoden des Android-Activity-Lifecycles:

onCreate (Aufruf einmalig nach dem Start der App): Einrichtung des Layouts

onResume (Aufruf immer dann, wenn die App aus dem Hintergrund nach vorne kommt): Zunächst wird geprüft, ob der Benutzer alle Berechtigungen erteilt hat. Die App erfordert den Zugriff auf das Dateisystem für das Lesen und Schreiben der Konfigurationsdatei, sowie die Berechtigung zur Verwendung von Bluetooth. Für die Suche nach Bluetooth-Low-Energy-Geräten erfordert das Sicherheitskonzept von Android zusätzlich die Standort-Berechtigung und aktivierte Standortdienste. Falls noch nicht alle Berechtigungen erteilt wurden, erhält der Benutzer Hinweise von der App. Andernfalls wird die Zustandsmaschine gestartet. Parallel dazu wird ein zweiter Thread gestartet, der die Konfigurationsdatei ausliest und anschließend den Spinner aktualisiert. Die Konfigurationsdatei ermöglicht es, weitere Gerichte in der App einzufügen, ohne dass die App neu kompiliert werden muss.

onPause (Aufruf, wenn die App in den Hintergrund kommt oder wenn das Gerät in den StandBy-Modus wechselt): Trennung der BLE-Verbindung.

Die Zustandsmaschine umfasst die vier Zustände "Disconnected", "Searching", "Connecting" und "Connected". Bei jedem Zustandswechsel wird das Layout der App entsprechend angepasst. Im Zustand "Connected" können verschiedene Aktionen ausgeführt werden, beispielsweise die Abfrage der Sensordaten oder die Übertragung der eingestellten Salzkonzentration an die ConSALTingMachine.


Umsetzung der Energieeffizienz:

Da EEM das Modul das erste war, in dem wir im Studium mit der Thematik Energieeffizienz konfrontiert wurden, war es uns anfangs noch nicht ganz klar, an welchen Stellen diese softwaretechnisch überhaupt umgesetzt werden kann. Diese Frage beantwortete sich im Laufe der Vorlesung mit der Gegenfrage, was denn die größten Stromverbraucher des Systems sind. Diese galt es also folglich zu optimieren und somit die Energieeffizienz zu maximieren.

Dazu wurde als erste Maßnahme der Dosiermotor betrachtet, da dieser nicht nur im laufenden Betrieb eine Menge Strom verbrauchte, sondern auch wenn er nicht gebraucht wurde ein Stillstands- und Haltestrom floss. Dies wurde softwaretechnisch mithilfe eines Sleep-Modes der Treiberplatine, sowie einer An-/Ausschaltung realisiert, die dafür sorgte, dass der Dosiermotor immer nur dann Strom verbraucht, wenn er auch benötigt wird.

Anschließend wurden auch die weiteren Komponenten der ConSALTing Machine auf ihre Energieeffizienz untersucht und anschließend weitestgehend optimiert. So wurden auch die Wägezelle und die Kalibrier-Referenz-LED nur dann wirklich versorgt, wenn sie auch in Gebrauch waren. Dies schient zwar ein banaler Punkt zu sein, jedoch machten wir anfangs den Fehler die LED direkt mit 5V anzuschließen, weshalb sie permanent unnötig Strom verbrauchte.

Ein weiterer Ansatz war die Optimierung der Kommunikationsvariante. Hierbei kam Bluetooth Low Energy (BLE) anstatt der normalen Bluetooth Variante zum Einsatz, da diese alle nötigen Anforderungen an die Kommunikationsart erfüllte und dabei nur einen Bruchteil des Stromverbrauches aufwies. Zudem wurde im Programmcode des Targets vermehrt auf callback-Funktionen und Interrupts gesetzt, anstatt durch Polling unnötige Rechenzeit zu verbrauchen.

Zu Beginn des Projekts war es angedacht, den Lolin in einen Deep-Sleep Modus zu versetzen, wenn das Gerät nicht im Gebrauch ist. Um die Energieeffiziez jedoch noch weiter zu steigern, wurde stattdessen ein hardware-technischer Ausschalter verbaut, der den Stromverbrauch auf Null setzt.

Die Auswirkungen dieser Maßnahmen wurden im Fazit genauer ausgewertet.

 


  Mit Unterstützung von Prof. J. Walter Wintersemester 2021/22