Auf der Basis eines Mikrocontrollers mit integriertem Funktransceiver von Nordic Semiconductor entsteht mit Sensoren und Erweiterungsmodulen ein Baukasten für IoT-Geräte. Ergänzt mit leistungsfähigen Tools lassen sich damit Prototypen und Proof of Concepts schnell realisieren.
Die Entwicklung von Geräten für das Internet der Dinge (IoT) stellt Firmen oftmals vor eine Reihe von neuen Herausforderungen. IoT-Geräte zeichnen sich durch unterschiedliche Arten der Kommunikation untereinander oder mit einem Gateway aus. In der Regel wird diese Kommunikation per Funk erfolgen. Sensoren erfassen unterschiedliche Daten – Aktoren wirken auf zu steuernde Prozesse. Die Sensoren und Aktoren sind in ein IoT-Gerät zu integrieren, was weitgehend über standardisierte Interfaces, wie zum Beispiel SPI, I2C, I2S, UART oder GPIO, erfolgt.
Die meisten IoT-Geräte kommunizieren nicht nur per Funk, sondern sollen vollständig autonom, also ohne externe Spannungsversorgung im Batteriebetrieb arbeiten. Stromsparende Schaltungen auf der Basis von Low-Power-Mikrocontrollern ermöglichen heute den Batteriebetrieb über Jahre hinaus. Auch der Einsatz von Akkus, die per Solarzelle geladen werden, ist eine Option.
Dem reduzierten Strombedarf entgegen steht bei einer bestimmten Klasse von IoT-Geräten die Forderung nach erhöhter Rechenleistung (Edge-Computing), d.h. digitale Vorverarbeitung direkt im IoT-Gerät – z. B. hinsichtlich Security- und Safety-Aspekten, Datenkonzentration u.a.m.
Für dieses Aufgabenfeld stellt die Dresdner Firma Sensry mit Kallisto eine universelle Sensorplattform für IoT-Anwendungen bereit, die einen nahtlosen Übergang vom Konzept zum Massenprodukt ermöglicht. Kallisto bietet Entwicklungsunterstützung über das geschilderte Spektrum von IoT-Anwendungen.
Kallisto ist eine auf einem Prozessor Cortex-M4F von ARM basierende Smart-Node-Plattform für IoT-Sensorikanwendungen. Sie ist in verschiedenen Versionen erhältlich, wird beständig erweitert und zeichnet sich durch die komplette Integration aller notwendigen Komponenten als ein autarkes und energieeffizientes IoT-System aus, sodass sich Anwendungen »out of the box« umsetzen lassen.
Mit einer solchen Sensorplattform für IoT-Anwendungen steht ein effektives Werkzeug zur Verfügung, das es auch dem nicht auf IoT-Anwendungen spezialisierten Entwickler aus dem Bereich der Maker oder des Mittelstandes die Umsetzung seiner Produktidee oder eines damit einhergehenden neuen Geschäftsmodells ermöglicht [1–3].
Das Kallisto-SY010-Starterkit ist ein IoT-Gerät, mit dem anfangs das Konzept der Smart-Node-Plattform als Basis kundenspezifischer IoT-Entwicklungen gezeigt werden sollte.
Basis der Schaltung ist ein Mikrocontroller von Nordic, der nRF52832. Der Cortex-M4F-Prozessorkern – mit Hardware für Gleitkommaarithmetik – ist mit 64 MHz getaktet und weist mit 512 KB Flash und 64 KB SRAM genügend Ressourcen für viele IoT-Anwendungen auf. Bild 1 zeigt die Ausstattung des Starterkitmoduls mit zahlreichen Sensoren sowie BLE-Antenne auf der Leiterplatte und Schaltung für die induktiven Energieübertragung (Qi) zum Laden des internen LiPo-Akkus.
Beim Blick in das geöffnete Gehäuse des Kallisto SY010 (Bild 2) ist die dreigeteilte Kallisto-Platine und der darüber platzierte 110-mAh-LiPo-Akku zu erkennen. Die Spule für den Qi-Wireless-Power-Empfänger ist verdeckt. Die drei in einer Platine vereinten Module sind in Bild 3 dargestellt.
Das Kallisto-Modul ist mit den in der Tabelle aufgeführten Sensoren ausgerüstet. Der Mikrocontroller ist von Hause aus mit einer Standard-Firmware programmiert, die den Zugriff auf alle Sensoren gestattet.
Die Entwicklung eigener Firmware für das Kallisto-Modul kann unter Windows mit einer der bekannten Entwicklungsumgebungen, wie Segger Embedded Studio (SES), MDK (Microcontroller Development Kit) von ARM, Keil mit µVision IDE (Integrated Development Environment), GCC (GNU Compiler Collection) oder der Embedded Workbench von IAR, erfolgen. Die Programmierung selbst erfolgt über das JTAG-Interface.
Funktion | Sensor | Hersteller | Typ |
---|---|---|---|
Bewegungserfassung | 3-Achsen-Beschleunigungssensor | Bosch | BMI160 |
3-Achsen-Gyroskop | |||
3-Achsen Magnetometer | Bosch | BMM150 | |
Umgebungserfassung | Temperatursensor | Bosch | BME280 |
Rel. Luftfeuchtigkeitssensor | |||
Luftdrucksensor | |||
Helligkeitssensor | Texas Instruments | OPT3002 | |
Luftqualitätssensor | AMS | CC811 |
Tabelle: Fünf Sensoren auf dem Kallisto-Modul erfassen acht verschiedene Messwerte. (Quelle: Sensry)
Mit dem Kallisto-Modul sind zwei Entwicklungsszenarien denkbar:
Im ersten Szenario können beispielsweise andere Sensoren integriert und der vorhandene Bluetooth-LE-Protokoll-Stack (BLE Stack) zur Kommunikation mit einem zentralen BLE-Knoten (Central Device) verwendet oder ein anderes Kommunikationsmodul, z. B. LoRaWAN, eingesetzt werden.
Im zweiten Szenario wird das Kallisto-Modul als Sensorknoten genutzt, der einem zentralen BLE-Knoten Daten zur Verarbeitung bzw. Weiterleitung übermittelt. Sensry stellt ein API für den Zugriff auf den vorhandenen BLE-Stack zur Verfügung.
GATT ist ein Akronym für das Generic Attribute Profile und definiert die Art und Weise, wie zwei BLE-Knoten Daten mithilfe von Services und Characteristics bidirektional übertragen. Ein generisches Datenprotokoll namens Attribut Protocol (ATT) wird verwendet, um Services, Characteristics und zugehörige Daten in einer einfachen Tabelle (Look-up Table) zu speichern (Bild 4). GATT kommt ins Spiel, sobald eine dedizierte Verbindung zwischen zwei Geräten hergestellt wurde. Das bedeutet, dass der Advertising-Prozess bereits durchlaufen ist.
Verbindungen über BLE sind exklusiv, d. h. dass ein BLE-Peripheriegerät (BLE Peripheral) immer nur an ein zentrales Gerät (BLE Central, Mobiltelefon etc.) angeschlossen werden kann. Sobald sich ein Peripheriegerät mit einem zentralen Gerät verbindet, stoppt es sein Advertising und ist damit für andere Geräte nicht mehr sichtbar, bis die bestehende Verbindung unterbrochen wird.
Dieser Verbindungsaufbau ist die einzige Möglichkeit, eine Zwei-Wege-Kommunikation zu ermöglichen, bei der ein zentraler BLE-Knoten aussagekräftige Daten an ein BLE-Peripheriegerät senden bzw. von diesem empfangen kann.