Software

Da in der Sonde viele unterschiedliche Elemente verbaut wurden, die durch den Adalogger ausgelesen werden müssen, findet dies alles in der Software statt. Diese vereint das Initialisieren, Auslesen und das anschließende Speichern der Daten sowie das Kontrollieren der integrierten Heizung.

Initialisierung

Im Prozess der Initialisierung wird zuerst die Verwendung des Radiation-Boards aktiviert. Anschließend wird das GPS-System eingeschaltet. Dieses braucht allerdings einige Sekunden, um genügend Satelliten zu finden, bevor es funktionstüchtig ist. Daraufhin wird der BME-Sensor initialisiert, der für das Messen der wetterabhängigen Daten in der Sonde zuständig ist. Hierbei besteht auch die Möglichkeit, dass der Initialisierungsprozess fehlschlägt und der Adalogger in eine Fehlerschleife übergeht. Falls die Initialisierung aber erfolgreich war, wird der DHT-Sensor vorbereitet, der für das Messen von Temperatur und Luftfeuchtigkeit außerhalb der Sonde zuständig ist. Anschließend wird die SD-Karte vorbereitet und für die Verwendung angepasst. Falls keine SD-Karte vorhanden ist, geht der Adalogger wie bei einer fehlgeschlagenen Initialisierung des BME-Sensors in eine Fehlerschleife über. Wenn die gesamte Initialisierung erfolgreich war, wird die Heizungsanlage vorbereitet und sichergestellt, dass diese ausgeschaltet ist.

Hauptschleife

In der eigentlichen Hauptschleife des Adaloggers werden die Sensoren ausgelesen und deren Messergebnisse auf die SD-Karte geschrieben. Hierfür wird zuerst darauf gewartet, dass fünf Sekunden vergehen, da die Messungen in Intervallen von fünf Sekunden gespeichert werden. Während hier gewartet wird, wird die Heizung kontrolliert. Dabei wird sowohl auf die letzte Messung der Innentemperatur zurückgegriffen, als auch auf das Spannungsniveau der Batterie. Wenn die Innentemperatur unter 20°C liegt und die anliegende Spannung ausreicht, wird die Heizung eingeschaltet. Unter allen anderen Umständen wird sie ausgeschaltet. Wenn die fünf Sekunden verstrichen sind, wird die Heizung aus Sicherheitsgründen ausgeschaltet und das Messen der Daten wird eingeleitet. Zuerst wird hier die Zeit seit Einschalten des Adaloggers in Klartextformat als ein Datensatz gespeichert. Anschließend wird der BME-Sensor ausgelesen und ebenfalls in Klartextformat demselben Datensatz beigefügt. Hierbei wird auch die letzte gemessene Innentemperatur, die später für die Heizung verwendet wird, aktualisiert. Daraufhin wird der DHT-Sensor ausgelesen und im selben Format dem Datensatz zugefügt. Dann werden alle Daten des GPS-Systems in den Datensatz eingefügt. Dieses liefert die Uhrzeit im UTC-Format und das Datum sowie die Position in Längengrad, Breitengrad und Höhe. Dazu kommen noch Informationen des GPS-System über dessen Datenpräzision. Als vorletzter Sensor wird das Radiation-Board ausgelesen. Hierbei wird gespeichert, wie viele geladene Teilchen in dem letzten Intervall im GM-Zählrohr registriert wurden. Zum Schluss wird zur Kontrolle gespeichert, ob die Heizung in diesem Intervall eingeschaltet war. Bevor die Hauptschleife von neuem beginnt, wird dieser Datensatz, der alle Messungen nun in Klartextformat gespeichert hat, auf die SD-Karte geschrieben. Hierbei wird kontrolliert, dass nicht die maximale Anzahl an Dateien überschritten wird, die zur Prävention eines Speicherüberlaufes eingefügt wurde und bei 100 Dateien liegt, die jeweils 120 Datensätze enthalten. Falls das Speichern auf der SD-Karte fehlschlägt oder das genannte Limit erreicht wurde, geht der Adalogger in die Fehlerschleife über. Sonst beginnt er mit der Hauptschleife von neuem.  

Fehlerschleife

Gelangt das Programm einmal in die Fehlerschleife, bleibt es dort, bis der Adalogger ausgeschaltet wird. Der Adalogger wird zwangsläufig früher oder später in dieser Fehlerschleife landen. Falls die Initialisierung des BME-Sensors gelang, bevor der Fehler auftrat, wird dieser ausgelesen und die Temperatur innerhalb der Sonde gegen 20°C verglichen. Wenn die Spannung an der Batterie ausreicht und die Temperatur unter 20°C liegt, dann wird die Heizung eingeschaltet. Sonst wird sie ausgeschaltet. Wenn der BME-Sensor nicht initialisiert werden konnte, wird die Heizung konsequent ausgeschaltet. Als Feedback an den Anwender wird auch eine LED auf dem Adalogger zum Blinken gebracht, damit der Aufenthalt in der Fehlerschleife von außen zu erkennen ist.

Speichern der Messdaten

Die Messdaten werden in einer acht Bit extended ASCII Kodierung in Klartextformat auf die SD-Karte geschrieben. Hierbei wird immer ein zwei Buchstaben langes Kürzel, zum Identifizieren des Wertes, sowie der dazugehörige Wert gespeichert. Diese werden alle durch Leerzeichen getrennt.

Folgende Kürzel treten in den Dateien auf:
  • LS: Zeit in Sekunden seit dem Start
  • BP: Druck in der Sonde
  • BH: Luftfeuchtigkeit in der Sonde
  • BT: Temperatur in der Sonde
  • DH: Luftfeuchtigkeit außerhalb der Sonde
  • DT: Temperatur außerhalb der Sonde
  • GT: Uhrzeit im UTC-Format (Über das GPS empfangen)
  • GD: Datum im UTC-Format (Über das GPS empfangen)
  • GF: GPS Fix Data
  • GS: GPS Anzahl an Satelliten
  • GL: GPS Längengrade
  • GB: GPS Breitengrade
  • GH: GPS Höhe
  • RA: Anzahl geladener Teilchen seit letzter Speicherung
  • HO: Heizung eingeschaltet
Wie die Messdaten tatsächlich auf der SD-Karte gespeichert werden, verdeutlicht der folgende Ausschnitt aus den Original-Messdateien:



Der folgende Programmablaufplan skizziert das Programm:

© 2018, Jonathan Knoll