Einführung

Prototypische Projekte im Kontext von IoT, im speziellen IIoT (Industrial IoT) oder Industrie 4.0, erfordern mitunter neben softwareseitiger Anbindung an ein Cloud-System einen entsprechenden Gegenpart in der realen Welt.

Gilt es beispielsweise eine Maschine oder ein Frachtstück mit der Cloud zu verbinden und eine Reihe unterschiedlichster Daten zu erfassen, kann ein solcher Aufbau rasch übermäßig komplex werden und die separate Anbindung multipler Sensoren erfordern, deren Messwerte zusammengeführt und an die Cloud übermittelt werden müssen.

Dass dieser Aufwand nicht unbedingt notwendig ist, zeigt Bosch mit einem Gerät namens Bosch Connected Industrial Sensor Solution, kurz Bosch CISS.

Dabei handelt es sich um ein mit verschiedensten Sensoren ausgestattetes Device, das speziell für ein industrielles Umfeld konzipiert wurde und dementsprechend gemäß IP54 zertifiziert wurde.

In diesem Beitrag gehen wir auf die Möglichkeiten des Bosch CISS Sensors und der Anwendung in der Praxis ein. Des Weiteren zeigen wir über Beispielcode den Zugriff auf den Sensor mittels NodeJS.

Bosch CISS Sensor

Das Gerät wird mit einem IP67-konformen Kabel ausgeliefert, das mindestens zur Spannungsversorgung erforderlich ist, aber auch zur Kommunikation mit dem Gerät genutzt werden kann. Die benötigte Versorgungsspannung entspricht dabei dem USB-Standard von 5V, womit der Bosch CISS sowohl bei der Entwicklung, als auch im Feld – beispielsweise über ein IoT-Gateway – über die USB-Schnittstelle betrieben werden kann.

Als Schnittstellen stehen sowohl die bereits erwähnte USB-Schnittstelle, als auch Bluetooth Low Energy (BLE) zur Verfügung, wobei vor allem letztere – ein geeignetes Umfeld vorausgesetzt – im Falle einer Umsetzung der Spannungsversorgung mittels Batterien erhöhte Flexibilität bietet.

Die im Bosch CISS verbauten Sensoren lassen sich grob in Umgebungssensoren und Trägheitssensoren unterteilen. Insgesamt enthalten sind folgende Sensoren:

  • Umgebungssensoren
    • Temperatur
    • Luftfeuchtigkeit
    • Luftdruck
    • Licht
    • Lautstärke
  • Trägheitssensoren
    • Beschleunigung
    • Neigung
    • Magnetfeldstärke

Bezüglich der verbauten Sensoren ist zu beachten, dass die Messung der Lautstärke ausschließlich bei Anbindung des Sensors über Bluetooth LE zur Verfügung steht und die Messwerte nicht in Dezibel, sondern in Standardabweichungen übermittelt werden.

Neben dem bloßen Übermitteln der Messwerte ist es auch möglich, bereits auf dem Gerät Aggregationen beziehungsweise die Erkennung von Events (Grenzwertüberschreitungen) zu realisieren.

Die Montage des Sensors kann über die im Lieferumfang enthaltenen Magnete realisiert werden, wobei zu beachten ist, dass diese die Messergebnisse des Magnetometers verfälschen und daher der Sensor deaktiviert werden sollte.

Ansteuerung

Der Bosch CISS muss, um Daten zu übermitteln, zunächst initialisiert werden. Hierfür liegen Dokumentationen für die beiden Protokolle (USB bzw. BLE) vor, die zumindest teilweise implementiert werden müssen. Zur Orientierung bietet Bosch zusätzlich zur Dokumentation eine beispielhafte Umsetzung der Anbindung über USB mittels Python 2.7 auf der eigenen Produktseite zum Download an.

Im Zuge eines prototypischen Projekts, bei dem der Bosch CISS bei der com2m zum Einsatz kam, haben wir zwei Bibliotheken zur Ansteuerung des Sensormoduls für NodeJS in TypeScript entwickelt, um beide Arten der Kommunikation – USB und Bluetooth LE – abzudecken.

Diese Bibliotheken stehen über unser GitHub-Repository zur Verfügung.

Die von uns implementierten Bibliotheken enthalten unterstützten die „normale“ Initialisierung des Devices sowie eine grundlegende Konfiguration der Sensoren und das Empfangen neu vorliegender Messwerte; nicht aber die eingangs beschriebenen Funktionen im Hinblick auf die Konfiguration der Grenzwertüberschreitung oder Aggregation der Messwerte.

Mit Hilfe der  Libraries können die aktuellen Messwerte auf einfache Art ausgelesen werden:

// Auslesen via USB:
const boschCiss = new BoschCiss('tty.usbmodem000000');
boschCiss.subject.subscribe(console.log);

// Auslesen via BLE:
const boschCiss = new BoschCiss('00:00:00:00:00:00');
boschCiss.subject.subscribe(console.log);

Aufbau

Aufbauend auf der NodeJS Library haben wir  für den prototypischen Betrieb und das Auslesen der Sensordaten des Bosch CISS eine Anwendung entwickelt und auf einem IoT-Gateway in Betrieb genommen. Von dort werden die Daten in diesem Fall in einem sekündlichen Intervall per MQTT in unsere IoT-Cloud übermittelt, wo sie weiter ausgewertet und über ein Dashboard zur Verfügung gestellt werden.
Als Gateway haben wir uns bei diesem Anwendungsfall für das Dell Edge 3000 in der Version mit Ubuntu Core 16 entschieden. Ubuntu Core ist eine spezielle auf die Anforderungen des Internet of Things zugeschnittene Linux-Distribution, die im Gegensatz zu einem herkömmlichen Linux-System keinen Paketmanager unterstützt, sondern vorsieht, dass Software in Form von Snaps ausgeliefert wird. Dies bietet neben der Modularität und der Einbettung der erforderlichen Dependencies außerdem zusätzliche Mechanismen, um beispielsweise Updates ausrollen zu können sowie die Herkunft von Snaps zu verifizieren.
Dell Edge 3000 Gateway
Ein detaillierterer Erfahrungsbericht zum Dell Edge 3000 wird in einem Folgeartikel erscheinen, welcher sich mit den verschiedenen, von uns erprobten Gateways befasst.

Fazit

Der Bosch CISS überzeugt als robustes, industrietaugliches Gerät. Während die Abtastrate der Umgebungssensoren – verständlicherweise – nicht allzu hoch ausfällt (≤ 1Hz), kann für die Trägheitssensoren eine Abtastrate im sogenannten „Streaming-Mode“ von bis zu 2kHz gewählt werden, was für viele Anwendungsfälle – vor allem im prototypischen Kontext – ausreichend sein sollte.

Dass die Nutzung der Lautstärkemessung lediglich in Verbindung mit der Übertragung via Bluetooth LE möglich ist, erscheint unverständlich und kann sofern diese Messung von Interesse sind, in einem für BLE nicht geeignetem Umfeld zu Problemen führen.

Allerdings fanden wir die Messung der Lautstärke generell nur bedingt überzeugend, da die Messwerte ausschließlich in Standardabweichungen vorliegen. In den meisten Fällen werden eher Dezibel von Interesse sein, um exakte Rückschlüsse auf den Geräuschpegel ziehen zu können.

Im Hinblick auf die Ansteuerung ist festzuhalten, dass seitens Bosch lediglich ein Beispiel zur Anbindung des Sensors über USB mittels Python 2.7 bereitgestellt wird. Es existiert zwar eine App für Android- und iOS-Geräte, die über Bluetooth LE mit dem Bosch CISS kommuniziert; diese ist allerdings nur als Kompilat verfügbar und kann somit nicht als Beispiel angesehen werden.

Andererseits sind in den Dokumentationen sämtliche Datenpakete und sonstige Informationen zum BLE-Protokoll (Services, Characteristics, etc.) enthalten und erklärt.

Sofern die angesprochenen Punkte im Hinblick auf die Messung des Geräuschpegels sowie die möglichen Abtastraten keinen Hinderungsgrund darstellen, findet man im Bosch CISS eine geeignete, industrietaugliche Multisensorlösung, mit der sich schnell Ergebnisse erzielen lassen.