Platine-Gassensor

Bluetooth Low Energy Gaswarntransmitter

Autor: Michaela Holtus

Entwicklung einer App zur Kalibrierung von mikrocontrollergestützten Gassensoren
über eine Bluetooth Low Energy Verbindung

Zur vereinfachten Kalibrierung der Gassensoren, gehört neben dem Mikrocontroller auch ein Programm, das von einem mobilen Gerät wie Tablet und Smartphone oder einem Laptop verwendet werden kann. Die Erwartungen an die App sind das Finden des Sensors, das Lesen und Darstellen der Daten, der Kalibriervorgang und das Zurückgeben bzw. Schreiben von Parametern, um einen kalibrierten Wert zu erhalten.

Daten Empfangen über Bluetooth Low Energy

Über einen sogenannten DeviceWatcher, einer Objektinstanz, ist es der App möglich, alle über Bluetooth verfügbaren Sensoren ausfindig zu machen. Weiterhin benötigt die App Adressen von dem benötigten Service und dessen Charakteristiken. Der hier verwendete Service besitzt 28 Charakteristiken. Jede Charakteristik sowie jeder Service hat eine eigene Adresse, beschrieben durch einen Universal Unique Identifier (UUID). Dieser besteht aus einer 128Bit Zeichenfolge. Von den 28 bereitgestellten Charakteristiken benötigt die App 3.

Die erste Charakteristik beinhaltet neben den Messdaten des Sensors drei weitere Werte. Zum einen eine Temperaturangabe des Sensors, einen Zähler und einen Timer. Diese befinden sich in einem 8 Byte Datenpaket. Jeweils zwei Byte bilden einen 16 Bit Wert, aufgeteilt in ein Low und ein High Byte. Zum Auslesen dieser Charakteristik wird ein Ereignishandler verwendet. Jedes Mal wenn sich der Wert der Charakteristik ändert, springt dieser Handler in einen Lesevorgang. Dort werden die Werte in ein Array gespeichert.

Die zwei Charakteristiken, welche die Kalibrierparameter enthalten, werden jeweils über eine eigene Methode aufgerufen. Da sie sich nicht stetig ändern, ist kein Ereignishandler nötig. Es genügt, sie zu Beginn und nach Änderung abzurufen. Auch hier werden die Daten jeweils in ein Array gespeichert.

Eine bessere Übersicht des Lesevorganges ist dem Ablaufdiagramm zu entnehmen.

Ablaufdiagramm-Lesevorgang
Ablaufdiagramm Lesevorgang

Zur Kalibrierung benötigt der Mikrocontroller zwei Parameter: als erstes einen Offset, der die Abweichung des Sensorwertes vom Nullpunkt angibt, als zweites einen Faktor, der sich aus dem Verhältnis zwischen Soll- und Istwert in Umgebungsluft ergibt. Durch die Verwendung eines Analog-Digital-Wandlers muss der Messbereich angepasst werden. Dazu wird der Faktor berechnet.

Zur Darstellung werden dem digitalen Messwert die Parameter hinzugerechnet, um den kalibrierten Wert zu erhalten.

𝑆𝑒𝑛𝑠𝑉𝑎𝑙𝑛𝑒𝑢 = (𝑆𝑒𝑛𝑠𝑉𝑎𝑙 + 𝑂𝑓𝑓𝑠𝑒𝑡) ∙ 𝐹𝑎𝑘𝑡𝑜𝑟

Dieser Wert wird nach der Verrechnung in einem Textfeld ausgegeben. Neben diesem wird auch die Temperatur sowie der Wert umgerechnet in Vol.-% O2 ausgegeben.

Kalibrierung

Zur Kalibrierung müssen die zwei Parameter neu berechnet werden.

Zur Bestimmung des Offsets muss das Signal auf Null gesetzt werden. Um diesen Nullpunkt zu erreichen, wird durch die Abgabe eines Nullgases der gesamte Sauerstoff aus dem Sensor entfernt. Durch die Abgabe des Gases sinkt das Signal gegen Null. Die Abweichung zu diesem Nullpunkt ist der Offset. 

Hat sich während der Nullgasabgabe ein stabiles Signal gegen Null eingestellt, wird der Offset als digitaler Wert abgegriffen.

Nach der Nullgasabgabe pendelt sich das Signal innerhalb der Umgebungsluft für den O2 Gehalt wieder ein. Die Umgebungsluft enthält 20.9 Vol.-% Ound hat daher einen ungefähren Sollwert von 17.37 mA.

Der benötigte Faktor wird über das Verhältnis zwischen dem Sollwert und dem derzeitigen Sensorwert in digitaler Form, hier bezeichnet als „SensVal“, ermittelt. Die Berechnung des Faktors wird in nachstehender Formel dargestellt.

Diese beiden Werte werden dann an die entsprechenden Charakteristiken des Mikrocontrollers zurück geschickt. Dort werden die aktuellen Sensordaten durch die erhaltenen Parameter wiederum angepasst.

Ergebnis

Das Ergebnis wird anhand einer Testmessung vorgestellt

Da das Signal der Sensoren erst nach einiger Zeit schwächer wird, wurde zu Testzwecken ein Fehler über den Mikrocontroller einprogrammiert. Dadurch sendete der Sensor ein abgeschwächtes Signal. Das abgeschwächte Signal soll in Folge der Kalibrierung wieder in dem gewünschten Wertebereich von 0 Vol.-% O2 = 4 mA und 20,9 Vol.-% O2 = 17,34 mA liegen.

Beginn der Testmessung

Nach dem Verbindungsaufbau, wurde der Button „Sensorwerte auslesen“ betätigt. Dies führte zu der visuellen Darstellung des empfangenen Signals. Wie in „Darstellung der aktuellen Sensorwerte, währen einer Testmessung“ abgebildet ist, lag das Signal zu Beginn der Testmessung bei 16,868 mA und damit bei 20,221 Vol.-% O2.

Darstellung-aktuellen-Sensorwerte-Testmessung
Darstellung der aktuellen Sensorwerte, währen einer Testmessung

Über eine Gasglocke wurde, wie es der Kommentar der App fordert, das Nullgas Stickstoff aufgegeben. Der Sauerstoff wurde dadurch aus dem Sensor verdrängt und das Signal sank gegen Null (Abb.: „Nullgasabgabe – O2Wert sinkt“), da entsprechend weniger Sauerstoff detektiert werden konnte.

Nullgasabgabe-über-Glocke
Nullgasabgabe über Glocke
Nullgasabgabe-O2Wert-sinkt
Nullgasabgabe – O2Wert sinkt

Nach einer Wartezeit von ca. 60 Sekunden stellte sich ein stabiler Wert um etwa 4 mA ein. Daraufhin wurde der Button „Kalibrierung“ betätigt. Durch das Auslösen der Funktion hinter dem Button „Kalibrierung“ wurde der Offset abgegriffen. In diesem Fall betrug der Offset umgerechnet etwa 18 mV (Abb.: „Oberfläche nach der Offset-Bestimmung“). Nachdem Erhalt des Offsets wurde die Nullgasabgabe abgebrochen und der O2-Wert stieg, wie in Abb. „Anstieg des Sensor Signals nach Beendigung der Nullgasabgabe“ abgebildet, wieder an.

Oberfläche-nach-Offset-Bestimmung
Oberfläche nach der Offset-Bestimmung
Anstieg-Sensor-Signals-Beendigung-Nullgasabgabe
Anstieg des Sensor Signals nach Beendigung der Nullgasabgabe

Sobald sich ein stabiler Wert eingestellt hatte, wurde der Button „Kalibrieren“ erneut betätigt um den Faktor zu berechnen. Es wurde ein Faktor von 150,91 errechnet (Abb.:Oberfläche nach der Faktor-Berechnung ). Durch den Offset und den Faktor wird aus dem Start-Signal von 16,868 mA ein Signal von 17,419 mA. Somit ist die Kalibrierung abgeschlossen.

Oberfläche-nach-Faktor-Berechnung
Oberfläche nach der Faktor-Berechnung

Seiten: 1 2