Aufmacher thermostat_lifestyle_5

(Bild: Nest)

Wiced Bild 1

Bild 1: Hausthermostate der nächsten Generation unterstützen mehrere Schnittstellen zur uni- und bidirektionalen Kommunikation. Cypress

Ob durch neue Technologien zur Sprachsteuerung wie Siri Remote von Apple und Alexa Voice Service über Amazon Echo oder durch Systeme zur Fernsteuerung von Haustechnik, wie etwa die Nest-Produkte von Google – die Verbraucher entdecken gerade mehr und mehr die Vorzüge intelligenter Geräte im Haushalt.

Wiced Bild 2

Bild 2: Die Wiced-Softwarearchitektur. Cypress

Damit stehen viele Hersteller von Steuer- und Regeleinrichtungen, wie beispielsweise Thermostaten, vor der Herausforderung, aus ihren konventionellen Produkten intelligente, vernetzte Produkte zu machen (Bild 1). Die notwendige Hardware dafür ist bereits vorhanden. So können die Entwickler von Embedded-Geräten zwischen vielen verschiedene WLAN- und Bluetooth-Transceiver oder Modulen wählen, die von einer Reihe von Halbleiterherstellern angeboten werden. Die Hersteller von HF-ICs liefern dazu einsatzbereite, kostenlose Protokoll-Stacks für die Kommunikation über WLAN und Bluetooth sowie für die Internet-Konnektivität. Und wenn ein Thermostat intelligenter gemacht werden soll, bieten die Mikrocontroller-Hersteller entsprechende Migrationspfade zum Ausbau der Prozessorleistung, des adressierbaren Speichers und der Peripheriefunktionen einer vorhandenen Thermostat-MCU.

Wiced Bild 3

Bild 3: Die von der Wiced-Plattform unterstützten Hardwarearchitekturen. Cypress

Unter reinen Hardwaregesichtspunkten scheint die Erweiterung eines vorhandenen Geräts zu einem intelligenten, vernetzten Produkt also von einem äußerst regen Markt für ICs von der Stange unterstützt zu werden. Die entscheidende Frage für den Entwickler von Embedded-Geräten ist jedoch die nach der besten Möglichkeit, Hardware, Firmware und Anwendungssoftware so zu kombinieren, dass die Erwartungen des Anwenders erfüllt werden und die Interoperabilität zu Plattformen wie Apple Homekit oder „Google Works with Nest“-Technologien gewährleistet ist. Tatsächlich hängt die erfolgreiche Realisierung eines intelligenten Thermostaten von viel mehr als der drahtlosen Konnektivität ab, denn den größten Teil der Zeit des Entwicklungsteams beansprucht die Entwicklung der Software.

Wiced Bild 4

Bild 4: Hardware-Ausgangskonfiguration für die Entwicklung eines neuen intelligenten Thermostaten. Cypress

Daher hilft der Einsatz einer vollintegrierten Hardware/Software-Entwicklungsplattform den Ingenieuren, bei der Implementierung neuer intelligenter Haustechnik Zeit zu sparen und Probleme zu vermeiden. Dieser Artikel beschreibt die Elemente und die Funktion einer solchen Plattform.

Protokolle zur Unterstützung der vernetzten Geräte

Um die verschiedenen Arten von Fern- und Sprachsteuerungsfunktionen sowie die intelligenten Automatisierungsfunktionen mit Plattformen wie Homekit oder Works with Nest zu unterstützen, benötigt der Thermostat eine Internetverbindung, die normalerweise über ein Gateway, etwa einen WLAN-Router bereitgestellt wird.

Das Gerät muss für die Kommunikation mit Web- und Anwendungsservern über das Internet außerdem Protokolle wie HTTP, SMTP, NTP und MQTT unterstützen. Auf der Anwendungsebene können auf dem Thermostaten außerdem spezifische Softwareelemente wie das Apple Homekit Accessory Protocol (HAP) laufen.

Die Sicherheit ist bei vernetzten Geräten eine wesentliche Anforderung, um den Datenschutz des Anwenders zu gewährleisten und ein Eindringen in das Heimnetzwerk zu verhindern. Sichere Transaktionen und Nachrichtenaustausch zwischen dem Gerät und der Cloud sind über SSL (Secure Sockets Layer) mit TLS 1.2 (Transport Layer Security) oder andere sichere Protokolle möglich.

Unterhalb der komplexen Operationen der Anwendungsebene, der Sicherheitsebene und der Kommunikationsebene benötigt die Systemarchitektur ein Betriebssystem OS. In einer Umgebung mit beschränkten Ressourcen, wie einem Thermostaten, ist das ein Echtzeit-OS mit einem sehr geringen Speicherbedarf.

Genau darin liegt die Herausforderung für den Entwickler des Thermostaten. Er muss nicht nur eine robuste WLAN-Verbindung zum Router herstellen, und in einigen Fällen eine Bluetooth-Low-Energy-Verbindung zu Komponenten wie drahtlosen Sensoren, sondern auch verschiedene Protokolle und die Anwendungssoftware in einer Umgebung implementieren, die eine absolut zuverlässige Interoperabilität mit über das Internet verbundenen Geräten und Diensten anderer Anbieter verlangt.

Das ist eine recht umfangreiche Entwicklungsaufgabe mit vielen technischen Herausforderungen. Um diese zu bewältigen, hat Cypress „Wiced“, die „Wireless Internet Connectivity for Embedded Devices“-Technologie entwickelt.

Gemeinsame Plattform für Hard- und Software

Wiced stellt eine gemeinsame Plattform für die Entwicklung mit dem Internet verbundener Geräte bereit, die über WLAN, Bluetooth oder Zigbee kommunizieren. Was bedeutet „gemeinsam“ in diesem Zusammenhang? Die Wiced-Plattform umfasst Hardware- und Softwareelemente, die eine umfassende Interoperabilität unterstützen. Zur Plattform gehören:

  • HF-ICs und Module (einige davon mit Onboard-MCU) von Cypress für die Konnektivität per WLAN, Bluetooth, Bluetooth Low Energy und Zigbee.
  • Eine umfassende Softwarearchitektur für Konnektivität, Sicherheit und Anwendungen (siehe Bild 2).
  • Native Unterstützung für die Echtzeitbetriebssysteme ThreadX, NuttX und FreeRTOS. Die Entwickler können auch andere Echtzeitbetriebssysteme auf die Wiced-Plattform portieren. ThreadX wird zusammen mit Wiced in Form von Binärdateien zur lizenzfreien Verwendung und Weitergabe geliefert.
  • Native Unterstützung für die Netzwerk-Stacks NetX, NetXDuo und LwIP. Andere TCP/IP-Stacks lassen sich leicht auf Wiced portieren. NetX und NetXDuo werden mit Wiced in Form von Binärdateien zur lizenzfreien Verwendung und Weitergabe geliefert.
  • Ein komplettes Software-Entwicklungskit (SDK), das auf der Open-Source-Entwicklungsumgebung (IDE) Eclipse aufbaut, erlaubt es den Entwicklern, alle in Eclipse enthaltenen Features zur Entwicklung und zum Debugging von Anwendungen mit den Cypress-HF-Produkten zu nutzen.
  • Arduino-kompatible Entwicklungsboards, an welche die Anwender Sensor-Shields und andere Peripheriegeräte anschließen können.
  • Referenzentwicklungen von Wiced-Entwicklungspartnern als Drittanbieter.
  • Beispielcode zur Implementierung aller gebräuchlichen Kommunikations-, Netzwerk- und Anwendungsprotokolle.
  • Beispielanwendungen für die Kommunikation mit Anbietern von Cloud-Diensten wie Amazon Web Services, Microsoft Azure und IBM Bluemix.
  • Ein fehlersicherer Prozess für Over-The-Air-Updates (OTA).
  • Umfassende Dokumentation zu den APIs und Beispielanwendungen.

Alle diese Elemente sind gründlich getestet und überprüft worden, sodass der Anwender sicher sein kann, dass beispielsweise der Wiced-HAP-Code in der ThreadX-Softwareumgebung auf einem CYW43907, einem WLAN-IC mit ARM Cortex-R4-Kern, einwandfrei läuft.

Die Wiced-Plattform unterstützt verschiedene Hardwarearchitekturen und lässt dem Anwender die Wahl, ob er Wiced in einem eigenen Modul mit Onboard-MCU, einem vollintegrierten HF-Mikrocontroller oder in einem externen Host-Prozessor implementieren will (Bild 3). Das SDK unterstützt unter anderem die folgenden Mikrocontroller:

  • die Cypress-Serie FM4,
  • die STMicroelectronics-Serien STM32F2 und STM32F4,
  • Microchip AT91SAM4S16B,
  • die NXP-Serien Kinetis K61 und LPC17xx, LPC18xx.

Der Wiced-Entwicklungsprozess

Ein guter Ausgangspunkt für die Entwicklung eines intelligenten Thermostaten ist es, einen Temperatursensor, ein Relais und das Wiced-Modul miteinander zu verbinden. Bild 4 zeigt eine Anordnung aus einem Temperatursensor mit I2C-Schnittstelle am CYW43907AEVAL1F, einem Evaluation-Board mit dem Murata LBWA1UZ1GC-958-Modul auf der Basis des CYW43907 WLAN-System-on-Chip und einem kleinen Display, um den Systemstatus und die Temperatur anzuzeigen.

Der Treiber für den Temperatursensor kann im Verzeichnis „libraries“ des Wiced SDK abgelegt werden, damit auch andere Anwendungen darauf zugreifen können. Dieses Verzeichnis enthält auch den im SDK unterstützten Display-Treiber. Das Verzeichnis mit den Anwendungs-Codebeispielen enthält eine Anwendung für den Einsatz des I2C-Protokolls zum Einlesen des Temperaturwerts vom Sensor. Zum Einlesen der Raumtemperatur lassen sich anschließend einfache API-Aufrufe verwenden.

Die Ein- und Ausgänge können in den Plattform-Dateien konfiguriert werden. Die Datei „platform.c“ enthält alle Anschlussbelegungen und deren jeweiligen Konfigurationen. Bei der Konfiguration der I2C-Anschlüsse muss Folgendes überprüft werden:

  • der I2C-Port, an dem der Temperatursensor angeschlossen ist,
  • die Anschlüsse von SDA und SCL,
  • der zu verwendende Treiber.

Ein weiterer Beispielcode integriert ein Display mit 128 x 128 Pixel in die Entwicklung. Mit der Kombination dieser beiden Anwendungen lässt sich die Raumtemperatur über die I2C-Schnittstelle einlesen und auf dem Display anzeigen.

Daraus ergibt sich folgender Ablauf:

  • Wiced initialisieren,
  • I2C-Baustein initialisieren,
  • Display initialisieren,
  • I2C-Wert des Temperatursensors einlesen,
  • Wert über SPI oder I2C auf dem Minidisplay anzeigen.

Bis hierhin implementiert dieses System simple Thermometerfunktionen ohne jede Intelligenz. Im nächsten Schritt kommt die Intelligenz hinzu, etwa um die gewünschte Temperatur mit der aktuellen Temperatur zu vergleichen und die Heizung über das Relais einzuschalten, falls die Raumtemperatur unter der gewünschten Temperatur liegt.

Anschließend könnte der Entwickler zum Beispiel das Thermometer mit einem WLAN-Netzwerk verbinden wollen. Bei der Initialisierung des Netzwerk-Stacks hat der Anwender die Auswahl unter verschiedenen Betriebsarten:

  • STA-Schnittstelle – stationsbasiert, wobei der Thermostat ein Client ist.
  • Soft AP – wobei im Thermostat ein Webserver gehostet wird.
  • Soft AP und STA – auch als APSTA-Modus bekannt, in dem der Thermostat sowohl im Server- als auch im Client-Modus arbeiten kann.

APSTA ist im Wiced SDK als Beispielanwendung enthalten. Das bedeutet, dass der Thermostat einen Webserver hosten kann, mit dem sich andere Clients verbinden können, während er sich selbst als Client für den Zugang zum Internet mit dem Access Point des Hauses verbinden kann.

Das Wiced SDK macht es dem Entwickler leicht, auf dem Thermostaten einen HTTP-Server zu hosten, um über eine REST-API die gewünschte Temperatur per GET oder POST abzurufen beziehungsweise einzustellen. Diese leistungsfähige Funktion stellt für andere Geräte im Netzwerk den Zugang zum Thermostaten bereit.

So könnte beispielsweise auf einem Mobilgerät eine kleine App laufen, die dazu dient, mit einem POST-Befehl die Temperatur einzustellen. Dieser Befehl sähe etwa so aus:

http://mysmarthome.com/thermostat1/setTemp?value=65

Die App kann den Thermostaten auch auffordern, dem Mobilgerät mitzuteilen, welche Temperatur aktuell eingestellt ist. Hierzu dient ein GET-Befehl, zum Beispiel:

http://mysmarthome.com/thermostat1/getTemp?value=65

Die HTML-Seite zum Hosten eines Webservers befindet sich zusammen mit den benötigten Javascript-, CSS- und Bilddateien im Verzeichnis „resources“. Sie muss unter „Make Target“ der Anwendung als Ressource-Objekt angegeben werden, damit der Server sie rendern und anzeigen kann, wenn sich ein Client mit dem Gerät verbindet.

Für den Verbindungsaufbau zwischen dem Thermostaten und dem gewünschten Access Point gibt es zwei Mechanismen:

  • Eintrag der SSID und des Passworts des Access Points in der Konfigurationsdatei,
  • Eingabe des Passworts für den ausgewählten Access Point über einen beliebigen Client, etwa einem Mobiltelefon, das mit der auf dem Thermostaten gehosteten Soft AP verbunden ist. Der Thermostat speichert die Zugangsdaten für den Access Point in einer Gerätekonfigurationstabelle und führt anschließend einen Neustart aus.

Das Wiced SDK bietet außerdem die Option, über WPS ein neues Gerät beim Access Point anzumelden.

Sobald die Verbindung mit dem Internet hergestellt ist, kann der Thermostat damit beginnen, Temperaturwerte zum Cloud-Datendienst zu übertragen. Natürlich eröffnet die Internetverbindung dem Thermostaten auch den Zugang zu ankommenden Datenströmen, etwa Wetterberichten, Firmware-Updates sowie Uhrzeit und Datum über das NTP-Protokoll. Wiced unterstützt auch das SMTP-Protokoll, das es dem Anwender erlaubt, ein E-Mail-Konto zum Versenden von Nachrichten an die E-Mail-Adresse des Anwenders zu konfigurieren.

 

Eck-DATEN

Die Wiced-Hardware – die von Cypress verfügbaren HF-Module und HF-Mikrocontroller – dient als Grundbaustein für ein intelligentes vernetztes Gerät. Der zusätzliche Wert der Wiced-Plattform liegt jedoch in der Integration einer vollständigen Softwarearchitektur, die von einem SDK, einer Eclipse-IDE und einer Vielzahl von Beispielen für Anwendungssoftware unterstützt wird. Diese Kombination aus Hardware, Software, Beispielen und Werkzeugen macht die Entwicklung von intelligenten Geräten schneller und einfacher als je zuvor.

Vikram Ramanna

Senior Staff Applications Engineer bei Cypress

(ku)

Sie möchten gerne weiterlesen?