Entwicklung eines mikrocontrollergestützen Gaswarnsystems

mit drahtloser Anbindung mittels Bluetooth Low Energy (BLE)

zur Diagnose und Kalibrierung von Sensoren

 

Development of a microcontroller based gas detection system with

wireless connectivity via Bluetooth Low Energy (BLE)

for diagnostics and calibration of sensors

 

Eugen Götz

 

 

platine4

Einführung

 

In vielen Branchen werden Gase gelagert oder verwendet, die schon in kleinen Mengen schädlich sein können, wenn sie beim Austreten unbemerkt bleiben. Daher ist es notwendig, die Gaskonzentration in der Umgebung ständig und zuverlässig zu überwachen. Die für diesen Zweck eingesetzten Gaswarnanlagen dienen dazu, Gefahrenpotenziale zu erkennen, ggf. Alarme auszulösen und somit die Menschen und die Umwelt zu schützen. Diese Gaswarnanlagen bestehen aus Transmittern, einer Gaswarnzentrale und den Alarmmitteln. Die Transmitter messen ständig die Gaskonzentration und senden die Messwerte an die Gaswarnzentrale. Diese verarbeitet die Messwerte, und falls die Gaskonzentration einen Grenzwert überschreitet, löst die Zentrale einen Alarm aus. 

Die Gassensoren der Transmitter haben eine begrenzte Lebensdauer. Mit andauerndem Einsatz verschlechtert sich ihr Ausgangssignal, sodass in regelmäßigen Abständen eine Kalibrierung durchgeführt werden muss, um die Sicherheit zu gewährleisten. Da die Technik der eingesetzten Gaswarntransmitter oft auf analogen Schaltungen basiert, werden deren Ausgangssignale mit Trimmpotentiometern justiert. Dafür müssen die Transmitter für einen Kalibrierungsvorgang abgenommen und deren Gehäuse aufgeschraubt werden. Viele Transmitter sind jedoch an schwer zugänglichen Stellen angebracht, weswegen die Kalibrierung sich oft als zeit- und arbeitsintensiver Vorgang herausstellt, besonders wenn sie mehrfach durchgeführt werden muss.

 

Zielsetzung

 

Ziel dieses Projekts war es, eine Sensorplattform für ein Gaswarnsystem zu entwickeln, die Messwerte elektrochemischer Gassensoren erfasst und direkt weiterverarbeitet. Des Weiteren sollte in diese Plattform ein Kommunikationsmodul integriert werden, mit dessen Hilfe mobile Geräte wie Smartphones und Tablets drahtlos auf das System zugreifen können. Dies wird vor allem den Ablauf der Wartungsarbeiten vereinfachen, da dadurch auch schwer zugängliche Sensoreinheiten über die Funkschnittstelle diagnostiziert und kalibriert werden können. Zusätzlich soll die Möglichkeit geschaffen werden, alle relevanten Daten eines Kalibrationsvorgangs wie Sensordaten, Kalibrationsdatum oder wer die Wartung durchgeführt hat, zu dokumentieren. Diese Daten sollen entweder in einer Cloud abgelegt werden können, indem das Smartphone oder Tablet als Internet-Gateway dient oder direkt in eine lokale Datenbank übertragbar sein. Für die drahtlose Datenübertragung soll Bluetooth Low Energy (BLE) genutzt werden. BLE ist ein stromsparender und kostengünstiger Funkstandard, welcher zudem einfach zu implementieren ist. Dadurch eignet sich BLE besonders für Embedded Anwendungen.

 

Konzept

Abbildung 1: Das Konzept der drahtlosen BLE-Sensorplattform

 

 

Die Steuerung und die Kalibrierung der Sensorplattform sollten mithilfe eines Mikrocontrollers realisiert werden. Hierfür sollte eine Lösung gefunden werden, die Sensorsignale ohne analoge Beschaltung aufzubereiten und zu kalibrieren, damit sie direkt mit einem AD-Wandler digitalisiert und weiterverwendet werden können. Die Aufbereitung des Stromsignals sollte über die Funkschnittstelle vom Nutzer konfigurierbar sein. Um das zu realisieren war eine Softwarelösung zu entwickeln, die sich aus zwei Hauptteilen zusammensetzt. Zum einen muss das BLE- Kommunikationsprotokoll implementiert werden, welches einen drahtlosen Zugriff auf die Sensorplattform und ihre Funktionen ermöglicht. Zum anderen war eine Firmware zu erstellen, die neben der digitalen Signalverarbeitung als Schnittstelle zwischen der eigentlichen Sensoranwendung und dem drahtlosen Protokoll dient.

 

Messprinzip

 

Zur Gaskonzentrationsmessung wird ein elektrochemischer O-Sensor verwendet. Der Sensor beruht auf dem amperometrischen Messprinzip. Dabei löst das zu messende Gas chemische Reaktionen im Sensor aus, die einen Elektronenstrom als Messsignal im Bereich von einigen µA generieren. Die Reaktionen finden an zwei Elektroden statt: einer Messelektrode, die aus porösen PTFE-Scheibe besteht und mit katalytischem Metall beschichtet ist und einer massiven Blei-Anode. Die Elektroden befinden sich in einer Elektrolytlösung und sind durch einen Isolator galvanisch voneinander getrennt. An der Messelektrode wird der Sauerstoff zu Hydroxidionen reduziert. Diese Ionen werden über den Elektrolyten zur Blei-Anode transportiert, an der sie wieder oxidieren:

Über diese Redox-Vorgänge wird ein elektrischer Strom generiert, welcher an Stromkollektoren gesammelt und an die Anschlusspins weitergeleitet wird, damit er von einer Messeinrichtung erfasst werden kann. Dieser Strom ist proportional zu der Reaktionsrate. Daher ermöglicht dessen Messung eine genaue Bestimmung der Sauerstoffkonzentration. Aufgrund des Oxidationsvorgangs an der Anode hat diese Art von Sensoren eine begrenzte Lebensdauer. Sobald das ganze Material der Gegenelektrode oxidiert ist, ist der Sensor nicht mehr funktionsfähig. Um die Lebensdauer zu verlängern, wird eine Diffusionsbarriere genutzt, welche die Gaszufuhr und damit die Reaktionsrate begrenzt.

 

 

O2 Sensor

Abbildung 2: Schematische Darstellung eines elektrochemischen Sensors

 

Hardware

 

Die Abbildung 3 zeigt den Aufbau der Sensorplatine. Ein Gassensor liefert einen elektrischen Strom der proportional zu der vorhandenen Gaskonzentration ist. Dieses Stromsignal wird durch einen Analog Front-End Baustein (AFE) aufbereitet und als Spannungssignal ausgegeben, welches wiederum direkt mit einem AD-Wandler des Mikrocontrollers digitalisiert werden kann. Der AFE verfügt über verschiedene Einstellmöglichkeiten, die über eine serielle I2C-Schnittstelle des Mikrocontrollers programmiert werden können. Dadurch lässt sich das Ausgangssignal des Sensors digital kalibrieren und die analoge Beschaltung mit Potentiometern entfällt somit.

Das Herzstück der Sensorplattform ist ein Mikrocontroller, welcher sämtliche Aufgaben der Plattform steuert. Dabei handelt es sich um ein System on Chip, welches über einen BLE-Transceiver verfügt. Dieser ermöglicht den drahtlosen Datenaustausch zwischen dem System und den mobilen Geräten wie z. B. Smartphones und Tablets.

Um die Kompatibilität mit den bestehenden Gaswarnsystemen, die die 4 -20mA Technik nutzen, zu erhalten, wird ein programmierbarer DA-Wandler verwendet. Dieser generiert  aus den digitalisierten Messwerten einen 4 – 20mA Ausgangssignal, welcher in die vorhandene Stromschleife eingespeist wird. Zusätzlich verfügt der DA-Wandler über Verstärkungs- und Biasfunktion, über die das Ausgangssignal weiter angepasst werden kann. Die Mess- und Einstelldaten werden über eine serielle SPI-Schnittstelle übertragen. Des Weiteren wurde eine optionale Funktionalität implementiert, die den digitalen Datenaustausch über 4-20 mA Stromschleife ermöglicht. Dies geschieht mithilfe eines HART FSK-Modems, welcher die digitalen Daten auf das 4 - 20mA Signal aufmoduliert. Auf diese Weise verfügt die Sensorplattform über eine zusätzliche Möglichkeit, die Daten digital zu übertragen, während gleichzeitig die analoge Signalübertragung stattfindet.

 

Sensor Schema

Abbildung 3: Schematische Darstellung der Sensorplatine

PCB-Design

 

Für die Sensorplattform wird eine vierlagige Platine verwendet. Diese Platine besteht aus vier Kupferschichten, die durch ein Isoliermaterial voneinander getrennt werden. Das Leiterplattenmaterial besteht aus dem Verbundwerkstoff FR-4. Außerdem ist die Platine an ihren Außenflächen mit dem Lötstopplack beschichtet, der als Korrosionsschutz dient und das Benetzen mit Lötzinn außerhalb der Lötpads verhindert. Die zusätzlichen inneren Kupferschichten werden als VDD- und GND-Flächen verwendet. Der Vorteil dabei ist, dass Bauteile über sehr kurze Wege mit Masse- und VDD-Potential verbunden werden können, wodurch die Schaltung störunempfindlicher wird. Des Weiteren wird damit der Verdrahtungsaufwand vermindert und der benötigte Bauraum reduziert.  Außerdem bilden die Schichten einen großflächigen Kondensator, welcher die EM-Verträglichkeit zusätzlich erhöht.

Abbildung 4 zeigt das Layoutdesign der Platine. Auf dem Toplayer werden sämtliche Bauteile platziert. Dadurch wird sowohl der Bestückungs- als auch Lötvorgang beschleunigt, da die Leiterplatte beim Fertigen nicht umgedreht werden muss. Die zu platzierenden Bauelemente werden entsprechend den dazugehörigen Schaltplänen zu Funktionsgruppen zusammengefasst. Der Toplayer wurde zur Abschirmung mit einer großen Massefläche bedeckt, die über zahlreiche Vias mit der GND-Ebene verbunden ist. Des Weiteren befinden sich auf diesem Layer Testpoints und Anschlüsse, mit denen das Ausgangssignal des Analog-Front-End und die seriellen Signale überprüft werden können.

Die Platine wurde so entwickelt, dass sowohl Gassensoren mit zwei als auch mit drei Anschlusspins verwendet werden können. Dies kann über eine Lötbrücke eingestellt werden. Da das Analog-Front-End einen Eingangssignalbereich von 5 µA bis 750 µA weiterverarbeiten kann, ist es möglich eine breite Auswahl an elektrochemischen Sensoren zu nutzen. An der Ausgangssignalleitung wurden zwei optionale Lötpads platziert, die dazu genutzt werden können, einen passiven Tiefpassfilter hinzuzufügen, welcher das Ausgangssignal des AFE zusätzlich glättet.

 

PCB Design

Abbildung 4: PCB-Design der Sensorplatine

Software

 

Die Firmware der Sensorplattform basiert auf einem einfachen Betriebssystem, welches für die Abarbeitung von Ereignissen zuständig ist. Um dies zu ermöglichen, wird allen Funktionalitäten der Software eine Task zugewiesen, die eine eigene ID und Bearbeitungsroutine hat. Die Task ID legt gleichzeitig die Priorität der jeweiligen Task fest. Je niedriger die ID-Kennung, umso höher ist die Priorität. Der BLE-Protocolstack hat dabei die höchste Priorität als die restlichen Funktionen. Das garantiert, dass ein BLE-Gerät immer erreichbar ist.

Jede Task benötigt eine Initialisierungsroutine. Die Routinen der einzelnen Tasks werden von einer Init-Funktion nacheinander aufgerufen. Während des Aufrufs wird den Tasks eine ID zugewiesen. Sobald die Initialisierung durchgeführt ist, wird  eine Endlosschleife gestartet, welche die Task ID inkrementiert. Dabei wird überprüft, ob für die dazugehörige Task ein Ereignis vorliegt. Ist dies der Fall, wird die Routine der jeweiligen Task aufgerufen, die dieses Ereignis bearbeitet. Wenn die Routine beendet ist, wird der ID-Zähler zurückgesetzt und die Überprüfung beginnt erneut. Sollte vor Ablauf des ID-Zählers kein Ereignis vorliegen, kann das System sich für eine gewisse Zeit in den Ruhemodus begeben und nach Ablauf eines Sleep-Timers die Überprüfung wieder starten.

Während der Endlosschleife gibt es zwei Möglichkeiten ein Ereignis auszulösen. Die erste Möglichkeit ist, die set_event() Funktion zu nutzen, die unverzüglich ein Ereignis veranlasst. Mit dieser Funktion werden die Task ID und der Event flag als Parameter übergeben. Event flag ist dabei eine eindeutige 16-Bit Kennung, die einem bestimmten Ereignis zugeordnet ist. Die andere Möglichkeit ist es einen Ereignis nach Ablauf eines Timers auszulösen. Dazu wird die start_timer () Funktion verwendet. Abbildung 6 zeigt das Funktionsdiagramm und die Prioritätenliste der Firmware.

 

Software

Abbildung 5: Task-Prioritätenliste und Ablaufdiagram der Firmware

Ergebnis

 

Durch die Verwendung des System-On-Chip, welcher über einen integrierten Bluetooth Low Energy Transceiver verfügt, wurde eine Möglichkeit geschaffen, mit der Sensorplattform drahtlos zu kommunizieren. Mit der Implementierung des BLE-Protocolstacks ist es möglich, die Prozesswerte wie Gaskonzentration oder Temperatur über eine Funkverbindung auszulesen. Abbildung 6 zeigt an ein Tablet übertragene Messwerte, welche mit einer App aufgezeichnet wurden. Weiterhin wurde die Möglichkeit geschaffen, eine Kalibrierung ohne analoge Schaltungen zu realisieren. Das Gassensorsignal kann über einstellbare Parameter wie Verstärkung oder BIAS-Spannung angepasst werden. Diese Parameter sind über die Funkschnittstelle konfigurierbar.

app

 

Abbildung 6: Darstellung der über Bluetooth übertragenen Messwerte


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

Michaela Holtus

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 (Abbildung 1) zu entnehmen:

Abb1

Abbildung 1: 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.-% O2 und 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 Abbildung 2 abgebildet ist, lag das Signal zu Beginn der Testmessung bei 16,868 mA und damit bei 20,221 Vol.-% O2.

Abb2

Abbildung 2:        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 (Abbildung 4), da entsprechend weniger Sauerstoff detektiert werden konnte.

Sensor Gasglocke 2

Abbildung 3:        Nullgasabgabe über Glocke

Abb4

Abbildung 4:        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 (Abbildung 5). Nachdem Erhalt des Offsets wurde die Nullgasabgabe abgebrochen und der O2-Wert stieg, wie in Abbildung 6 abgebildet, wieder an.

Abb5

Abbildung 5:        Oberfläche nach der Offset-Bestimmung

Abb6

Abbildung 6:        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 (Abbildung 7). 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.

Abb7

Abbildung 7:        Oberfläche nach der Faktor-Berechnung