Implementierung von Sensormodulen

Von Europäische Herausgeber

Zur Verfügung gestellt von Europäische Fachredakteure von Digi-Key

Das Internet der Dinge (IoT) verspricht viele neue Anwendungen für Verbraucher und Gewerbe. Während das IoT langsam in das Heim von Verbrauchern Einzug hält, glauben viele Experten, dass der Produktionssektor, in dem der Begriff „Industrielles Internet der Dinge“ (IIoT) langsam populär wird, am meisten davon profitiert. Wie bei jeder Anwendung auf IoT-Basis geht es um die Armee von häufig entfernt angebrachten Sensoren und Aktoren, die das IIoT zum Leben erwecken. Das IIoT bewirkt die Sichtbarkeit von Herstellungs- und Prozessdaten in einem bisher nicht gekannten Maß. Darüber hinaus zeigt es die Effizienz und die Leistung der Produktionsanlagen. Die Implementierung einer vorausschauenden Wartung bietet sich dort an. Während es sich bei den für derartige Anwendungen eingesetzten Sensoren oft um einfache, kleine, passive bzw. Halbleiterkomponenten handelt, ist die industrielle Umgebung, in der sie funktionieren müssen, extremen Einflüssen wie Temperatur, Vibration und Feuchtigkeit ausgesetzt. Die Notwendigkeit, Sensoren und Randknoten-Geräte bereitzustellen, die unter diesen Bedingungen betrieben werden können, hat viele IoT-Entwickler dazu bewogen, bei der Integration von Sensoren in ihre Entwicklungen einen auf Modulen basierenden Ansatz zu verfolgen. 

Angesicht der Herausforderungen bei einem diskreten Ansatz gibt es mehrere Gründe zur Verwendung von Modulen. Eine Messung der Temperatur kann beispielsweise mit einem NTC-Thermistor (Negative Temperature Coefficient) durchgeführt werden, der mit einem Widerstand in Reihe geschaltet ist und eine Sperrschichtspannung erzeugt, die sich mit der Umgebungstemperatur ändert. Die entstehende Sperrschichtspannung könnte dann von einem Analog-Digital-Wandler (ADC) des Host-Mikrocontrollers erfasst und mithilfe einer geeigneten Formel in die Temperatur umgerechnet werden. Allerdings ist die Temperatur-Widerstand-Charakteristik von NTC-Thermistoren nicht linear, sodass eine Best-Fit-Linearisierung über den Betriebstemperaturbereich durchgeführt werden muss. Auch müssen die Probleme Temperaturkompensierung und Drift-Charakteristik berücksichtigt werden. Diese vom Host-Mikroprozessor durchgeführte zusätzliche Verarbeitung erfordert weitere MCU-Ressourcen und setzt voraus, dass jedes Sensor-Endgerät bei der Herstellung kalibriert worden ist. Ein weiterer wichtiger Punkt ist das Gehäuse, in das der NTC-Widerstand zum Schutz vor Umgebungseinflüssen gekapselt ist.

Bild des Temperatur- und Feuchtigkeitssensors Sensirion SHT35

Abbildung 1: Temperatur- und Feuchtigkeitssensor SHT35.

Im Gegensatz dazu stehen Temperaturmodule, z. B. der digitale Temperatur- und Feuchtigkeitssensor SHT35 von Sensirion (Abbildung 1). Dieser oberflächenmontierte energiesparende Baustein ist nur 2,5 x 2,5 x 0,9 mm groß, wird mit einer Spannung zwischen 2,4 und 5,5 VDC betrieben, zieht bei der Messung nur 800 µA und im Schlafmodus sogar nur 0,2 µA. Enthalten sind in dem Miniaturgehäuse ein kapazitiver Sensor zur Messung der Feuchtigkeit und ein Bandlückensensor für die Temperatur. Der Messbereich reicht von -40 °C bis +125 °C und von 0 bis +100 % relative Feuchtigkeit. Der Sensor verfügt über einen vollständig kalibrierten Digitalausgang und ist an eine Signalverarbeitungsschaltung und an einen 14-Bit-ADC angeschlossen, dessen Genauigkeit ±0,3 °C bei der Temperatur und ±2 % bei der relativen Feuchtigkeit beträgt.

Diagramm der Kommunikation des Sensirion SHT35 mit dem Host-Mikrocontroller

Abbildung 2: Diagramm der Kommunikation des SHT35 mit dem Host-Mikrocontroller

Abbildung 2 zeigt die Kommunikation mit einem Host-Mikrocontroller. Diese geschieht über eine serielle I2C-Schnittstelle mit Pull-up-Widerständen und einem Entkopplungskondensator als minimale Zusatzkomponenten. Die Messung von Temperatur und Feuchtigkeit geschieht über Befehle wie in Abbildung 3. Sobald die Sensordaten gelesen wurden, werden sie in Form von zwei Bytes sowie einem Byte als CRC-Prüfsumme (Grey-Blöcke) übertragen.

Bild: Messbefehle für den Sensirion SHT3x im Single-Shot-Modus

Abbildung 3: Messbefehle für den Sensirion SHT3x im Single-Shot-Modus.

Als Hilfe für das Prototyping einer Sensorkomponente mit einem Modul der Serie SHT3x ist eine Breakout-Evaluierungsplatine verfügbar. Die von Adafruit hergestellte Platine ermöglicht einen schnellen und einfachen Anschluss des Sensors an eine Arduino- oder dazu kompatible Plattform. Eine ausführliche Anleitung zum Anschließen des SHT3x sowie Arduino Sketch-Codebeispiele finden Sie hier.

Ein weiteres Beispiel für einen digitalen Temperatur- und Feuchtigkeitssensor ist der BME280 von Bosch. Es handelt sich hier um einen vollständig in einem LFA-Gehäuse untergebrachten Baustein mit Metalldeckel, der auch einen Sensor für den absoluten barometrischen Luftdruck enthält. Mit seinem niedrigen Energieverbrauch und den sehr kompakten Abmessungen eignet sich der BME280 für ein breites Spektrum von batteriebetriebenen portablen Anwendungen von der industriellen Automatisierungssteuerung bis zu persönlichen Fitnessmonitoren. Abbildung 4 stellt das Funktionsblockdiagramm des BME280 dar.

Funktionsblockdiagramm des Sensors BME280 von Bosch

Abbildung 4: Funktionsblockdiagramm des kombinierten Feuchtigkeit-, Luftdruck- und Temperatursensors BME280 von Bosch.

Die analogen und digitalen Blöcke des Sensors können je nach den Anforderungen der Anwendung durch ein DC-Netzteil mit 1,7 bis 3,6 V und eine getrennte Stromversorgung mit digitaler Schnittstelle mit 1,2 bis 3,6 V versorgt werden. Es wird sowohl eine SPI- als auch eine I2C-Schnittstelle unterstützt, und der Sensor kann in drei unterschiedlichen Energiemodi betrieben werden. Die Messungen können von der Host-MCU ausgelöst werden oder der Sensor kann Messungen mit vorher festgelegter Häufigkeit durchführen. Der Stromverbrauch beträgt nur 0,1 µA im Schlafmodus, 0,2 µA im Standby-Modus und bis zu 714 µA während einer Luftdruckmessung. Die drei Betriebsmodi des Sensors sind „Schlaf“ (sleep), „Erzwungen“ (forced) und „Normal“ (normal). Während des Standard-Startmodus „Schlaf“ ist der ADC nicht in Betrieb und es kann auf sämtliche Register zugegriffen werden.

Diagramm des Modusübergangs beim Sensor BME280 von Bosch

Abbildung 5: Diagramm des Modusübergangs beim Sensor BME280.

Der erzwungene Modus wird vom Host-Mikrocontroller über eine SPI- oder I2C-Anforderung ausgelöst. Das Ergebnis ist die Durchführung einer Messung. Die Ergebnisse werden gespeichert und der Sensor kehrt in den Schlafmodus zurück. Im Modus „Normal“ wird ein kontinuierlicher Zyklus von Messungen ausgeführt, die Ergebnisse werden gespeichert und der Sensor kehrt in den Modus „Schlaf“ zurück.

Im Datenblatt des BME280 werden die Betriebsmodi, die serielle Kommunikation und der Zugriff auf die Register mit den Messergebnissen eingehend erläutert. Dieses Dokument enthält auch einige empfohlene Einrichtungsprofile für den Sensor für verschiedene Anwendungsfälle von der Wetterbeobachtung bis zu Computerspielen. Diese Profile bieten einen optimalen Ausgleich zwischen Energieersparnis, Messfrequenz und Datenausgabegeschwindigkeit für eine Vielzahl von unterschiedlichen Anwendungen.

Ingenieuren, die einen Prototyp auf der Grundlage des BME280 erstellen möchten, sei die auf Abbildung 6 gezeigte Breakout-Platine für den BME280 von Adafruit empfohlen.

Bild der kombinierten Sensor-Breakout-Platine für den BME280 von Adafruit

Abbildung 6: Kombinierte Sensor-Breakout-Platine für den BME280 von Adafruit.

Die ausführliche Arbeitsanleitung von Adafruit für den Sensor kann hier heruntergeladen werden. Die Anleitung umfasst den Anschluss an einen Arduino UNO oder einen kompatiblen Einplatinencomputer sowie Verweise auf eine Arduino-Bibliothek für den BME280 auf dem Adafruit-Repository auf GitHub. Abbildung 7 zeigt ein Codebeispiel aus dem in der Bibliothek enthaltenen Test-Sketch für den BME280. Oben im Bild wird gezeigt, wie die SPI-Pin-Verbindung an den Arduino zugewiesen wird, und unten im Bild wird gezeigt, wie einfach das Auslesen von Werten mithilfe der Bibliothek ist.

Codebeispiel aus dem BME280-Test-Sketch von Adafruit

Abbildung 7: Codebeispiel aus dem BME280-Test-Sketch von Adafruit.

Differenzial-Drucksensoren sind ein weiterer Typ, der sich in vielen industriellen Anwendungen wie Gasboilern, Brennstoffzellen und Klimaanlagen findet. Ein Beispiel dafür ist die Produktfamilie Sensirion SDP8xx, die zur Messung des Drucks von Luft und nicht aggressiven Gasen in volumenintensiven Anwendungen bestimmt ist. Der Sensor SDP810 ist ein digitaler Differenzial-Drucksensor, der einen Messbereich von ±500 Pa mit einer Genauigkeit von 0,1 Pa hat. Die Kommunikation mit der Host-MCU geschieht über eine I2C-Schnittstelle. Abbildung 8 zeigt ein Funktionsblockdiagramm und ein Bild des Sensors.

Blockdiagramm und Bild des Sensirion SDP810

Abbildung 8: Blockdiagramm und Bild des Sensirion SDP810.

Mit Differenzial-Drucksensoren kann, wie in Abbildung 9 veranschaulicht, die Strömungsgeschwindigkeit eines Gases gemessen werden. In diesem Beispiel wird die Strömung durch den Hauptdurchgang oder das Rohr mithilfe des Nebenstroms gemessen. Die Messung kann als Volumenstrom (l/min) oder Massenstrom (Standard: Kubikzentimeter pro Minute) angegeben werden. Die letztere der beiden Möglichkeiten wird typischerweise bei Heizungen verwendet, wobei der Referenzpunkt bei einer bestimmten Temperatur und einem bestimmten Druck liegt.

Diagramm der Messung der Strömungsgeschwindigkeit mit einem Sensirion-Differenzial-Drucksensor

Abbildung 9: Messung der Strömungsgeschwindigkeit mit einem Differenzial-Drucksensor.

Der Sensor SDP810 kann wie der BME280 ausgelöst werden oder im kontinuierlichen Modus betrieben werden. Zur Strukturierung der Befehlssequenzen über den I2C-Bus wird ein einfaches Protokoll verwendet. Es ist auch eine Version des Sensors SDP810 mit Analogausgang verfügbar, der SDP816. Die Analogausgabe kann so konfiguriert werden, dass eine lineare Beziehung zum Differenzialdruck besteht, oder sie kann in die Quadratwurzel konvertiert werden.

Fazit

In diesem Artikel wurde nur eine kleine Auswahl von Sensormodulen behandelt, die sich für eine Vielzahl von industriellen Anwendungen eignen. Die Entwicklung mit einem digitalen Sensormodul kann dem Entwicklungsteam viel Zeit und Mühe im Vergleich mit den Herausforderungen bei einem diskreten Ansatz ersparen.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der Digi-Key Electronics oder offiziellen Politik der Digi-Key Electronics wider.

Über den Autor

Europäische Herausgeber

Über den Verlag

Europäische Fachredakteure von Digi-Key