Die Community-Version von Visual Studio 2017 ist eine kostenfreie Version, die auf dem Entwicklungsrechner installiert werden kann, um IoT-Anwendungen in Form von „Apps“ für Raspberry Pi 3 zu entwickeln.
Für die Entwicklung von Apps für den Raspberry Pi (oder andere IoT-Geräte) steht zunächst der Projekttyp „Windows Universal App“ zur Verfügung. Damit werden Apps entwickelt, die immer über eine mit WPF programmierbare, sichtbare Benutzeroberfläche verfügen. Diese Apps werden nach dem Übertragen auf den Raspberry als „Foreground Apps“ bezeichnet.
Alternativ dazu können auch sog. „Background Apps“ entwickelt werden; dies setzt aber voraus, dass zunächst die dafür benötigten zusätzlichen Visual Studio Projekt Templates installiert werden. Diese stehen als Download zur Verfügung unter: „Windows IoT Core Project Templates“.
Wichtig: Um eigene Apps zu entwickeln ist das Entwicklungssystem in den sogenannten „Entwickler-Modus“ umzustellen.
Windows Universal App erstellen und debuggen
Visual Studio 2017 wird zum Erstellen und Debuggen der Windows Universal App verwendet. Zunächst werden neue Foreground-Projekte wie folgt erzeugt. Unter File->New->Project... wird ein Visual C# Windows Universal Projekt mit dem Template „Blank App (Windows Universal)“ ausgewählt (Bild 5). In diesem leeren Rahmenprojekt unter TODO kann der eigene Programmcode hinzugefügt werden. Das Testen und Debuggen erfolgt remote über die Ethernet-Schnittstelle.
Windows IoT Core Background Application erstellen
Eine Background Application für Windows IoT Core wird erstellt unter File->New->Projects->Windows IoT Core->Background Application (Bild 6). Dieses Project Template ist nur dann verfügbar, wenn zuvor die Windows IoT Core Project Templates installiert wurden.
Ansteuerung externer Hardware wie Sensoren mittels Raspberry Pi
Neben den vier USB-Schnittstellen und der HDMI-Schnittstelle bietet der Raspberry Pi 3 die Möglichkeit, externe Geräte wie Sensoren, LC-Displays, LEDs, usw. über eine 40-polige Steckerleiste anzusteuern.
Diese Steckerleiste stellt an Pin 1 und 17 eine Spannung von 3,3 V bereit. Pin 2 und 4 führen dagegen 5 V. Insgesamt acht Ground-Anschlüsse stehen mit den Pins 6, 9, 14, 20, 25, 30, 34 und 39 zur Verfügung. Damit verbleiben 28 Pins für die externe Kommunikation (Bild 7). Der Gesamtstrom aller GPIOs sollte 50 mA nicht übersteigen.
Sowohl GPIO als auch SPI, I2C und UART werden durch eine Anzahl von Klassen in entsprechenden Namespaces (Windows Devices) unterstützt. Hierzu muss allerdings zuerst mit Nuget die Bibliothek „Windows.Devices“ in Visual Studio installiert werden. Dadurch werden auch eine Reihe weiterer interessanter Namespaces eingefügt, z.B.
Praxisbeispiel:Einlesen und Abfragen von Telemetriedaten
Zunächst sollen Temperatur- und Luftfeuchte-Messwerte von einem Sensor eingelesen, auf dem Userinterface angezeigt, auf der SD-Karte zwischengespeichert und letztlich in Microsoft Azure als Messages an ein Azure IoT Hub weitergeleitet werden. Hiervon aus sollen diese Telemetriedaten dann von beliebigen Endgeräten abgefragt werden können.
Anschluss des Temperatursensors DHT11 an Raspberry Pi 3
Der DHT11-Sensor ist in zwei Varianten, mit 3 oder 4 Anschlüssen verfügbar (Bild 8). Bei der 3-poligen Bauform, bei welcher der Sensor auf einer kleinen Platine untergebracht ist, ist meist bereits ein Vorwiderstand mit verbaut, welcher bei der alternativen Bauform extern beschaltet werden muss. Der nicht beschaltete 4. Anschluss sollte auf Gnd gelegt werden (Bild 9)
Ansteuerung des Sensors durch die Software
Die meisten Sensoren verwenden, soweit diese nicht einfach binär über GPIO angesteuert werden können, entweder das SPI- oder I2C-Protokoll. Es gibt aber auch Sensoren, wie den weit verbreiteten kombinierten Temperatur- und Luftfeuchte-Sensor DHT11 bzw. DHT22, die ein abweichendes, proprietäres serielles Protokoll einsetzen, das von .Net nicht unterstützt wird. Dieses Protokoll kann mit C# nicht in voller Bandbreite zuverlässig umgesetzt werden, da es mit sehr engen zeitlichen Kommunikationsfenstern arbeitet (zwischen 2 und 80 Microsekunden).
Datensicherung auf SD-Karte und Azure IOT Hub
Die SD-Karte, von der das Betriebssystem des Raspberry gebootet wurde, kann auch als Speichermedium für Messdaten verwendet werden.
Das eigentliche Ziel ist es aber, die gemessenen Telemetrie-Daten möglichst unmittelbar über eine Internetverbindung an das Azure IoT Hub in Form von sog. „Messages“ weiterzuleiten. Von dort lässt sich weltweit auf diese Messages von verschiedensten Endgeräten aus zugreifen.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.