Teil 2: Eine UWP-App für den Raspberry Pi: Himbeerkuchen auf dem Fensterbrett

Raspberry Pi und Windows 10 IoT: Design und technische Möglichkeiten
Keine Kommentare

Anwendungen im Umfeld von IoT müssen etwas anders aufgebaut werden als klassische Softwareprogramme. Wir beleuchten wichtige Aspekte für die Universal Windows Platform. Als Hardware setzen wir auf einen Raspberry Pi. Dieses Mal geht es um konkrete Fragen des UI-Designs, um die Möglichkeiten der Datenanbindung und um die Ansteuerung von spezifischen Hardwareerweiterungen.

Unser Technologiestack für praktische Experimente im Internet-of-Things-(IoT-)Bereich besteht aus einem Raspberry Pi und Windows 10 IoT. Hier laufen Apps für die Universal Windows Platform (UWP). Den grundsätzlichen Systemaufbau, die Installation von Windows 10 IoT und die durchaus vielfältigen Möglichkeiten der Administration haben wir im ersten Teil der Artikelserie beschrieben. In diesem zweiten Teil geht es darum, welche Möglichkeiten die UWP uns im Rahmen von IoT und speziell auf dem Raspberry Pi bietet. Wichtige Themen sind:Unser Technologiestack für praktische Experimente im Internet-of-Things-(IoT-)Bereich besteht aus einem Raspberry Pi und Windows 10 IoT. Hier laufen Apps für die Universal Windows Platform (UWP). Den grundsätzlichen Systemaufbau, die Installation von Windows 10 IoT und die durchaus vielfältigen Möglichkeiten der Administration haben wir im ersten Teil der Artikelserie beschrieben. In diesem zweiten Teil geht es darum, welche Möglichkeiten die UWP uns im Rahmen von IoT und speziell auf dem Raspberry Pi bietet. Wichtige Themen sind:

  • Das User Interface gestalten
  • Mit Daten arbeiten
  • Hardwareerweiterungen anschließen

Wir betrachten diese Themen aus dem Blickwinkel einer IoT-Anwendung und stellen die Unterschiede zu einer klassischen Softwareapplikation heraus.

Artikelserie
Teil 1: Internet of Things und Windows 10
Teil 2: Eine UWP-App für den Raspberry Pi

Das User Interface

Hier ist als Erstes die Frage zu beantworten, ob das gewählte Einsatzszenario für eine IoT-Anwendung überhaupt eine Benutzeroberfläche im klassischen Sinn benötigt. IoT besagt, dass wir die unterschiedlichsten Alltags- und Produktionsgegenstände mit dem Internet vernetzen. Auf diese Weise bekommen sie ein Stück weit „Intelligenz“ eingehaucht und sind in der Lage, mit ihrer Umwelt zu kommunizieren. Diese Kommunikation ist durchaus bidirektional, d. h. Daten werden vom IoT-Gerät an ein Backend oder einen Server gesendet, und man sendet Daten vom Server an das IoT-Gerät, um es zu steuern. Für diese Aufgaben ist nicht zwingend ein eigenständiges User Interface (UI) notwendig. Eine Wetterstation beispielsweise kann in regelmäßigen Zeitabständen die ermittelten Daten zu Temperatur, Luftfeuchtigkeit usw. automatisch an das Backend übermitteln. Ggf. können die Daten auch über ein Webinterface abgerufen werden. Erfolgt über das IoT-Gerät eine Steuerung externer Hardware – zum Beispiel die Heizung eines Einfamilienhauses – dann ist dazu auch zunächst kein eigenes UI im klassischen Sinn notwendig. Die Systemsoftware läuft auf dem IoT-Gerät gewissermaßen im Verborgenen. In diesem Fall werden die Sensoren zur Messung und die Aktoren zur Steuerung an den Raspberry Pi angeschlossen. Eine Steuersoftware übernimmt die Funktion eines Regelkreises. Dabei werden Messwerte (Istwerte) wie beispielsweise die Raumtemperatur mit vorgegebenen Zielgrößen (Sollwerten) verglichen. Je nach Ergebnis der Messung wird dann reagiert, d. h. die Heizung wird angestellt bzw. abgeschaltet.

BASTA! 2018

Elegante und performante WebAPIs und Webanwendungen (MVC & Razor Pages) mit ASP.NET Core 2.1?

mit Dr. Holger Schwichtenberg (IT-Visions.de / 5Minds IT-Solutions.de)

Machine Learning mit TensorFlow

mit Max Kleiner (kleiner kommunikation)

Angular Kickstart: von 0 auf 100

mit Christian Liebel (Thinktecture AG) und Peter Müller (Freelancer)

JavaScript für Softwareentwickler – für Einsteiger und Umsteiger

mit Yara Mayer (evia) und Sebastian Springer (MaibornWolff)

Diese Art von Systemaufbau war schon vor Jahren in dieser Form üblich. Mit IoT hat das noch nichts zu tun. Neu ist heute, dass über das Internet ein Zugriff auf den Steuerrechner möglich ist, sodass man die aktuellen Daten des Systems abrufen bzw. interaktiv in den Regelkreis eingreifen kann. Der Zugriff kann beispielsweise über eine Webschnittstelle oder noch komfortabler über eine App von einem mobilen Gerät aus erfolgen. Diese Art von IoT-Anwendungen werden im privaten Umfeld als Smart-Home- bzw. als Hausautomation-Anwendungen bezeichnet. Das Feld möglicher Steuerungen ist breit und beschränkt sich natürlich nicht auf die Heizungsanlage. Gewissermaßen sind alle elektrischen Geräte potenzielle Kandidaten für eine IoT-Anwendung.

Kommen wir zurück zur Benutzerschnittstelle. Das UI zur Bedienung ist jedoch jetzt wenig IoT-spezifisch. Im einfachsten Fall wird durch den Raspberry Pi eine Webschnittstelle angeboten. In anderen Fällen erfolgt der Zugriff zum Beispiel über eine App, und die Daten werden über ein zentrales Backend bzw. einen Server an das IoT-Gerät weitergeleitet. Es wird jedoch auch Anwendungen geben, bei denen das IoT-Gerät mit einem eignen UI ausgestattet ist. Um diese soll es jetzt noch etwas genauer gehen.

Technisch ist die Angelegenheit klar, sofern wir Windows 10 IoT auf dem Raspberry Pi installiert haben. Das UI wird deklarativ mithilfe der Beschreibungssprache XAML erstellt. Uns stehen hier alle Möglichkeiten der UWP mit ihren vielfältigen Controls und deren Erweiterungsmöglichkeiten durch Drittanbieter zur Verfügung. Die größten Unterschiede zur Gestaltung der Benutzeroberflächen gegenüber klassischer Software sind konzeptioneller Natur. Wie soll die Benutzerschnittstelle gestaltet werden? Welche Besonderheiten sind im Umfeld von IoT zu beachten? Neben der konkreten Verwendung sind u. a. die folgenden Aspekte ausschlaggebend:

  • Dient das UI nur der Anzeige von Informationen im Sinne eines Infodisplays oder findet auch eine Kommunikation in entgegengesetzter Richtung statt?
  • Auf welche Art und Weise interagiert der Nutzer mit dem IoT-Gerät? Tastatur und Maus dürften hier nahezu nie anzutreffen sein. Häufiger haben wir es mit einem Touch-Monitor zu tun.
  • In welches Umfeld ist das IoT-Gerät eingebunden? Gibt es hier bestimmte Dinge zu beachten, zum Beispiel Vorgaben hinsichtlich Design, Farben, Schriftart usw.?
  • Welche Größe hat die Anzeigefläche? Das Spektrum ist umfassend und reicht von einem wenige Zoll großen Display wie bei einem Haushaltsgerät beispielsweise, bis hin zu einem großflächigen Bildschirm eines Kiosksystems.
  • Welche technischen Parameter, wie zum Beispiel die Bildschirmauflösung, sind zu berücksichtigen?
  • Welche Entfernung liegt üblicherweise zwischen dem IoT-Gerät und dem Nutzer? Bei einem kleineren Display an einem Haushaltsgerät oder einer technischen Produktionsanlage kann man davon ausgehen, dass sich der Nutzer direkt vor dem Gerät befindet. Bei einem Infoscreen ist der Nutzer einige Meter entfernt.

All diese Aspekte haben einen wesentlichen Einfluss auf die Gestaltung des UI: Auf die Anordnung der Controls, die Farbauswahl und die Festlegung der richtigen Schriftgröße.

Nehmen wir an, wir müssen die Benutzerschnittstelle für ein IoT-Gerät gestalten, das über einen Touch-Monitor verfügt. Welche allgemeinen Empfehlungen bzw. Vorgaben sind hier zwingend zu beachten? Verabschieden Sie sich von der Vorstellung einer üblichen Vorgehensweise zur Gestaltung von Benutzeroberflächen nach dem Prinzip traditioneller Software. Menüs, Auswahlfelder, umfassende Texteingaben, filigrane Arbeit mit der Maus – all das ist passé und funktioniert hier nicht! Aus dem Mobile-Bereich kennen wir bereits den Grundsatz Content First. Dieser besagt, dass der Inhalt, nicht die Bedienung, im Vordergrund steht. Hier gilt das noch viel mehr. Das UI für ein IoT-Gerät sollte nur Inhalt präsentieren. Die Bedienelemente – sofern überhaupt notwendig – müssen absolut in den Hintergrund rücken. Nutzer von IoT wollen mit den Geräten ein alltägliches Problem wie Hausautomation, Heizungsteuerung, Zustände überwachen oder Spielzeugsteuerung lösen. Sie möchten keinen Computer bedienen. Statt Content First können wir hier auch etwas überspitzt formulieren: Content Only. Die Steuerung der Software erfolgt direkt über den Content, d. h. Content und Control verschmelzen hier meist vollständig miteinander.

Mit Daten arbeiten

Egal welches Anwendungsszenario Sie verfolgen: Höchstwahrscheinlich werden Daten anfallen, die gespeichert und ausgetauscht werden müssen. Beispielsweise werden Daten durch Sensoren am IoT-Gerät erfasst, die zur Auswertung auf einen Server übertragen werden müssen. Also lautet die Frage: Wohin mit den Daten? Die zeitgemäße Antwort: In die Cloud! Außer vielleicht einer Zwischenspeicherung auf dem IoT-Gerät – beim Raspberry Pi im Arbeitsspeicher oder auf der SD-Karte – werden die Daten in der Cloud gespeichert.

Auch hier muss man nicht bei null anfangen. Beispielsweise steht mit dem Microsoft Azure IoT Hub eine leistungsfähige und umfassende Plattform zur Verfügung, um IoT-Geräte an eine in der Cloud gehostete Datenwelt zu binden. Wie man sich einen solchen grundlegenden Aufbau vorzustellen hat, zeigt Abbildung 1.

Abb. 1: Architektur der Datenspeicherung in der Cloud mit Microsoft Azure IoT Hub

In dieser Architektur werden Daten von IoT-Geräten erfasst und an ein Cloud-Gateway übermittelt. Die Daten können sowohl für andere Branchenanwendungen als auch über ein Dashboard für menschliche Bediener oder auch für andere Darstellungsgeräte bereitgestellt werden. Azure IoT Hub bietet die folgenden Funktionen:

  • Gerätezwillinge: Mithilfe von Gerätezwillingen können Sie die Metadaten und Statusinformationen von Geräten speichern, synchronisieren und abfragen. Es handelt sich um JSON-Dokumente, in denen Statusinformationen zu den IoT-Devices gespeichert werden. Für jedes Gerät wird ein solches Dokument angelegt. Zu den gespeicherten Daten gehören u. a. Ort, Zustandsinformationen und Status des Geräts.
  • Authentifizierung und Verbindung: Für jedes Gerät kann ein eigener Sicherheitsschlüssel bereitgestellt werden, damit es eine Verbindung mit dem IoT-Hub eingehen kann.
  • Weiterleiten von Nachrichten vom Device zur Cloud (D2C): Es können Nachrichtenrouten definiert werden.
  • Überwachung der Konnektivität: Es können Verbindungsprobleme zwischen den Geräten und der Cloud festgestellt werden, zum Beispiel wenn ein Device eine Nachricht zu oft sendet oder zu empfangende Nachrichten ablehnt (nicht quittiert).
  • Umfassende SDK-Unterstützung: Der IoT-Hub arbeitet mit vielfältigen Systemumgebungen (Linux, Windows) zusammen. Ebenso wird eine breite Palette an Programmiersprachen unterstützt (C#, Java, JavaScript).
  • IoT-Protokolle: Breite Unterstützung von IoT-Protokollen und die Möglichkeit, benutzerdefinierte Protokolle zu hinterlegen.
  • Skalierung: Nach den Aussagen von Microsoft ist man in der Lage, mit dem IoT-Hub sogar Millionen von Geräten zu unterstützen und ebenso viele Nachrichten zwischen den Devices und der Cloud abzuwickeln.

Der Azure IoT Hub wird damit zur zentralen Schnittstelle, um die IoT-Devices zu verwalten. Ebenso wird über den IoT Hub der gesamte Datenaustausch abgewickelt. Das gilt für das Senden von Nachrichten aus der Cloud an die Geräte, wie auch umgekehrt, also das Empfangen von Daten von den Devices. Auf den umfangreichen Dokumentationsseiten des Portals von Azure IoT finden sich viele einführende Beispiele, wie man dazu im Einzelnen vorgeht. Zu einem ist über das Dashboard der IoT Hub zu konfigurieren und u. a. auch das Preismodell festzulegen; außerdem muss Code für das IoT-Gerät geschrieben werden. In unserem Fall geschieht das in C#, da wir mit Apps für die UWP und Windows 10 IoT arbeiten.

Mit Windows 10 IoT und dem Raspberry Pi sind Sie keineswegs auf Azure festgelegt. Sie können natürlich auch andere Cloud-Dienste nutzen oder Ihr eigenes Backend bzw. Ihren eigenen Server ansprechen. Da auf Windows 10 IoT mit der UWP die gesamte Bandbreite der Systembibliotheken von .NET Core zur Verfügung steht, gibt es hier keine Einschränkungen. Für sehr einfache Szenarien kann ein Onlinespeicher wie Dropbox oder OneDrive genügen.

IoT-Hardwareerweiterungen

Ein Raspberry Pi ist kein Ersatz für einen herkömmlichen Computer. Das muss er auch nicht sein, im IoT-Umfeld glänzt er mit anderen Vorzügen. Zu seinen Stärken zählt, dass man direkt weitere Hardware anschließen kann. Dazu verfügt der Raspberry Pi über vierzig Kontakte, die zur Messung von Signalen und zur Steuerung von elektronischen Geräten verwendet werden können. Auf der Platine befindet sich eine Steckerleiste mit 2 x 20 Kontakten. Die genaue Anschlussbelegung kann man Abbildung 2 entnehmen. Nicht alle Kontakte sind sogenannte GPIO-Pins (General Purpose Input/Output). Insgesamt stehen davon 26 Stück zur Verfügung. Diese Pins können frei als Eingang oder Ausgang programmiert werden und bieten damit vielfältige Möglichkeiten. Wir können diese Pins direkt aus einer UWP-App ansteuern. Das geht recht einfach, wir kommen gleich darauf zurück.

Abb. 2: Die Anschlussbelegung des GPIO-Ports [4]

An die Pins kann man natürlich keine größeren Verbraucher als LEDs anschließen. Größere Lasten kann man beispielsweise über Relais schalten. Für viele Zwecke, auf jeden Fall für das Prototyping, sind universelle Relaisplatinen geeignet. Mit einer solchen Relaisplatine kann man alle Arten von Verbrauchern schalten. Zu beachten sind dabei die maximale Schaltspannung und der Schaltstrom. Möchte man tatsächlich Netzspannung schalten, ist auf die Einhaltung der Sicherheitsbestimmungen zu achten. Hat das Projekt das Entwurfsstadium verlassen, wird man wahrscheinlich dazu übergehen, eine spezielle Platine mit der exakt benötigten Anzahl an Relais zu entwerfen. Für erfolgreiche IoT-Projekte bewegt man sich also ständig zwischen den Welten Elektronik und Programmierung. Ein paar Hinweise zum Thema Schaltungsentwurf haben wir Ihnen im Textkasten „Harte Sachen“ zusammengestellt.

Harte Sachen
Symbolbibliotheken. Insbesondere Standardbauteile sollten vorhanden sein. Ein durchaus als professionell und insbesondere in der Bedienung an die Bedürfnisse des Praktikers angelehntes Programm ist die Software sPlan. Auf der anderen Seite existieren Programmpakete, die einen größeren Teil bzw. den gesamten Entwicklungsprozess einer elektronischen Schaltung unterstützen. Dieser umfasst neben dem Zeichnen des Schaltplans auch bestimmte Tests. Um zu überprüfen, ob die Schaltung zumindest theoretisch funktioniert, sind Simulationswerkzeuge integriert. Nach dem Erstellen des Schaltplans ist im Regelfall eine Leiterplatte zu erstellen. Dazu sind die zunächst virtuellen Bauteile zu spezifizieren, d. h. mit physikalischen Kennzahlen und Größenangaben zu versehen. Anders ausgedrückt: Es ist ab jetzt mit konkreten Typen der Bauteile zu arbeiten. Das Erstellen der Leiterplatte wird dann – je nach Software – unterschiedlich unterstützt. Ein integrierter Autorouter kann beispielsweise nach Platzierung der Bauteile das automatische Verlegen der Leiterbahnen weitgehend übernehmen. Gerade für den Einsteiger können die Programmvielfalt und die dadurch bedingte Komplexität eher abschreckend wirken. Hier sollten verschiedene Werkzeuge ausprobiert werden. Den professionellen Einstieg kann man beispielsweise mit Target 3001! wagen. Die Leiterplatte lässt man i. d. R. von einem Dienstleister anfertigen. Die Layoutdateien der gängigen Programme können dort verarbeitet werden. Je nach Hersteller funktioniert dieser Vorgang nach den folgenden Schritten:

  1. Spezifikation der Leiterplatte, d. h. Festlegung von Größe, Material, Bohrungen, Bestückungsdruck usw.
  2. Übertragung der Layoutdaten und Auslösen des Auftrags.

Wenige Tage später hat man die Leiterplatte zur Bestückung im Briefkasten, und das Projekt kann fortgesetzt werden. Bei umfassenderen und professionellen Projekten muss man für die Arbeiten einen Elektroniker in das Team holen.

Egal ob man auf eine Eigenentwicklung oder auf eine fertige Erweiterungsplatine zurückgreift, das Grundschaltbild zur Ansteuerung eines Relais über die GPIO-Anschlüsse des Raspberry Pi ist in Abbildung 3 zu sehen.

Abb. 3: Anschluss eines Relais an einen Pin des GPIO-Ports

Diese Grundschaltung bildet auch die Basis für die programminterne Ansteuerung, in diesem Fall aus der UWP mit C#. Wie versprochen, sehen wir uns das jetzt noch etwas genauer an. Für den Zugriff auf die GPIO-Pins geht man folgendermaßen vor:

1: GpioController myGPIO = GpioController.GetDefault();
2: myPin = myGPIO.OpenPin(4);
3: myPin.SetDriveMode(GpioPinDriveMode.Output);

Dazu folgende kurze Erläuterung:

  • Zeile 1: Der GPIO-Controller wird ermittelt.
  • Zeile 2: Es wird der betreffende Pin geöffnet, in unserem Fall Pin 4, da dort die Hardware angeschlossen ist.
  • Zeile 3: Der Modus wird auf Ausgabe für den betreffenden Pin gesetzt.

Damit sind die vorbereitenden Tätigkeiten auch schon abgeschlossen, d. h. wir können ab jetzt aus dem Programm heraus den Pegel des Pins ändern. Ein positiver Pegel könnte also bedeuten, dass das Relais schließt und der daran angeschlossene Verbraucher eingeschaltet wird. Mittels eines einfachen write-Befehls erfolgt das Setzen der Pins, hier zum Beispiel:

myPin.Write(GpioPinValue.High);

oder mittels

myPin.Write(GpioPinValue.Low);

Hinterlegen Sie diesen Code zum Beispiel in das Click-Event eines Buttons, sodass sich der Pegel beim Betätigen des Schalters ändert. So können Sie testen, ob die Einstellung funktioniert. Zum Experimentieren und zum Testen der Software muss man natürlich keine umfassende Hardwareerweiterung angeschlossen haben. Es genügt, die Pins des GPIO-Ports mit LEDs auf einem Testboard zu beschalten. Lassen sich die LEDs über die Software an- und ausschalten, wird das später auch mit den Relais funktionieren. Ein einfacher Experimentaufbau erlaubt es uns bereits, erste Ideen mit der Software auszuprobieren.

Das Schalten von externen Verbrauchern über das IoT-Gerät und damit schlussendlich über das Internet ist sicherlich eine häufige Anwendung. Dennoch gibt es gerade im Umfeld des Raspberry Pi noch viel mehr Möglichkeiten. Sehen wir uns noch ein paar Nutzungsoptionen der GPIO-Pins an:

  • Umweltzustände erfassen: Mithilfe spezieller Sensoren ist es möglich, die typischen Umweltdaten wie Temperatur, Luftfeuchtigkeit und Luftdruck zu messen. Ein Beispiel sind die Sensoren DHT11 und DHT22. Sie können neben der Temperatur auch die Luftfeuchtigkeit messen. Dabei wird nur ein GPIO-Pin belegt. Der Sensor DHT22 kann alle Luftfeuchtigkeitsbereiche von 0-100 % messen und hat dabei eine Genauigkeit von 2 %. Der DHT11 misst lediglich Bereiche von 20-90 % Luftfeuchtigkeit, und die Genauigkeit beträgt hier nur 5 % und ist damit schlechter als der DHT22. Mithilfe dieser Sensoren kann man zum Beispiel das Raumklima oder die Umgebungstemperatur eines Geräts erfassen und Daten zyklisch an ein Backend wie zum Beispiel den IoT Hub senden.
  • Bewegungssensoren/Standortdaten: Der PIR-Bewegungssensor sendet erst dann ein Signal an die GPIO-Pins, wenn sich etwas im Umfeld bewegt. Man kann über ihn zum Beispiel die Beleuchtung einschalten, wenn eine Person ein Gebäude betritt. Mithilfe von Navigationsmodulen wie dem GPS NEO-6M-Modul kann der Raspberry Pi GPS-Positionsdaten bestimmen.
  • Funk und Infrarot: Neben externen WLAN-und Bluetooth-Modulen (ab Version 3 des Raspberry Pi sind W-LAN und Bluetooth auf der Platine vorhanden) gibt es Module für Funk- oder GSM-Verbindungen. Damit können Sie Daten zwischen dem IoT-Device und einem Server auch austauschen, wenn kein W-LAN zur Verfügung steht.
  • Motoren/ Servos: Direkte Steuerungsaufgaben können durch den Anschluss von Motoren, Schrittmotoren oder Servos übernommen werden. Üblicherweise „zapft“ jedoch ein IoT-Gerät eine vorhandene Steuerung an, macht sie über das Internet verfügbar und stattet so das Gerät mit einer gewissen Intelligenz aus.
  • Displays: Der Raspberry Pi bietet zwar die Möglichkeit, einen externen Monitor per HDMI anzuschließen, aber das ist meist überdimensioniert. Daher stehen speziellere Displays für den direkten Anschluss zur Verfügung. Viele dieser Displays verfügen auch über die Möglichkeit einer Touch-Eingabe. Dabei werden die Displays unterschiedlich angeschlossen, beispielsweise über den GPIO-Port.

Welche externen Umweltzustände können wir mithilfe des Raspberry Pi messen? Welche Geräte können wir fernsteuern, über das Internet managen bzw. mit „Intelligenz“ ausstatten? Diese Liste kann nicht nur als Inspirationsquelle, sondern auch als Lösungsansatz dienen. Soll ein konkretes IoT-Szenario umgesetzt werden, kann man die Lösung oft auf Basis der einzelnen Hardwaremodule erarbeiten. Die Vielfalt der verfügbaren Module und Erweiterungen macht den Raspberry Pi vielfältig einsetzbar.

Fazit und Ausblick

Unserer Wahrnehmung nach ist die Kombination von Raspberry Pi und Windows 10 IoT nicht ausreichend repräsentiert. Windows 10 IoT lässt sich schnell auf der SD-Karte einrichten, und für die Administration aus der Ferne stehen genügend Tools zur Verfügung. Eine App im Kioskmodus auszuführen, ist für viele IoT-Zwecke passend. Vergessen wir nicht: Unsere Nutzer wollen an dieser Stelle keinen PC bedienen, sondern eine einfachere Lösung für bestimmte Aufgaben erhalten. Für die Gestaltung des UI – sofern vorgesehen – gilt also: Content only. Der Entwicklungsprozess ist dank Visual Studio, .NET Core, C#, XAML und einem leistungsfähigen Remote-Debugging erprobt. Für den Raspberry Pi spricht dessen Leistungsfähigkeit. Insbesondere ein Monitor ist fix über HDMI angeschlossen, und WLAN ist ab dem Modell 3 bereits an Bord. Die Außenwelt wird über Sensoren und Aktoren angebunden. Die Vielfalt fertiger Erweiterungsplatinen ist geradezu erdrückend. Die Datenwelt bindet man über Cloud-Dienste wie beispielsweise den IoT Hub von Microsoft Azure an.

Entwickler Magazin

Entwickler Magazin abonnierenDieser Artikel ist im Entwickler Magazin erschienen.

Natürlich können Sie das Entwickler Magazin über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. In unserem Shop ist das Entwickler Magazin ferner im Abonnement oder als Einzelheft erhältlich.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -