© dawool/Shutterstock.com
Entwickler Magazin
IoT für Webentwickler

Einstieg ins IoT

Der ein oder andere hat vielleicht schon die ersten Schritte mit Maker Boards wie einem Arduino gemacht und erfolgreich erste Projekte umgesetzt. Für die ersten Schritte im Internet der Dinge reichen Maker-Hardware und -Software ebenfalls aus. Dann kommt aber schnell die Frage auf, wie es weitergehen kann. Wo und wie wird eigentlich Code für Mikroprozessoren kompiliert? Kann man dann Unit-Tests erstellen oder die eigene Firmware auf einem CI-Server bauen lassen? Ist der Code auf andere Embedded Boards oder Frameworks transportierbar, braucht man ein Embedded-Betriebssystem? Diesen und anderen Fragen wollen wir in der Artikelserie nachgehen und fangen hier mit den Grundlagen rund um den Technologiestack an.

Andreas Schmidt


Arduino genießt in der Maker-Community ein hohes Ansehen, u. a. wegen der guten und leicht einsetzbaren Kombination aus Entwickler-Boards und den dazu passenden Werkzeugen. Dabei muss man sich als Entwickler fast keine Details zur verwendeten Elektronik anschauen – sowohl das Framework als auch der Beispielcode lassen sich mit den Werkzeugen wie der Arduino IDE direkt einsetzen. Was aber geschieht in der Werkzeugkette „hinter den Kulissen“?

Die Embedded-Hardware ist fast immer über sogenannte Developer-Boards zugänglich. Diese bestehen aus einem Mikrocontroller (MCU) mit integriertem oder zusätzlichem externen Speicher auf dem Board, Ein-/Ausgabe-Pin für den Anschluss von Sensorik bzw. Aktorik und einer Schnittstelle zum Anschluss an und zur Kommunikation mit dem PC, in aller Regel USB. Hierüber wird das Board direkt mit Strom versorgt (5 V über USB) und je nach Board auf eine niedrigere Spannung heruntergeregelt. Damit man die Mikrocontroller über eine serielle Schnittstelle ansprechen kann, bekommen die Boards einen Interfacechip mit, z. B. von FTDI oder Silicon Labs.

Wo liegen die großen Unterschiede zwischen den verfügbaren Optionen? Da sind erst einmal die verwendeten MCUs zu nennen. Sie reichen von 8-Bit-MCUs, beispielsweise beim Arduino Uno [1], über 16-Bit-MCUs, wie einem MSP430 von Texas Instruments [2], bis zu 32-Bit-MCUs, z. B. aus der Reihe ARM Cortex-M. Das Ganze ist mit einer Taktfrequenz gepaart, die vom einstelligen MHz-Bereich bis zu mehreren hundert MHz reichen kann. Ein Mehr an Geschwindigkeit und Rechenleistung der MCU erlaubt schnellere oder leistungsintensivere Anwendungen (wie moderne Verschlüsselung), bedingt aber auch einen höheren Energiebedarf.

Ein weiteres Unterscheidungsmerkmal liegt in den Funkverfahren, die entweder im Chip oder auf dem Board integriert sind. Für erste Projekte im Heimnetz ist es hilfreich, wenn das Entwickler-Board von Haus aus WiFi mitbringt. Andere mögliche Funkausstattungen sind beispielsweise BLE, LoRa oder Sigfox.

Um für diese MCUs bzw. Boards programmieren zu können, braucht es Firmware, also Software, die im Chip eingebettet wird. An dieser Stelle gibt es für Entwickler im Prinzip viel Auswahl. Während „kleine“ MCUs in C oder C++ programmiert werden, stehen für die leistungsstärkeren 32-Bit-Varianten zusätzlich Skriptsprachen zur Verfügung, z. B. Embedded Lua oder Untermengen von Python (MicroPython) und JavaScript (Espruino).

Durch die verwendete Sprache wird häufig das Firmwareframework vorgegeben, d...

Entwickler Magazin
IoT für Webentwickler

Einstieg ins IoT

Der ein oder andere hat vielleicht schon die ersten Schritte mit Maker Boards wie einem Arduino gemacht und erfolgreich erste Projekte umgesetzt. Für die ersten Schritte im Internet der Dinge reichen Maker-Hardware und -Software ebenfalls aus. Dann kommt aber schnell die Frage auf, wie es weitergehen kann. Wo und wie wird eigentlich Code für Mikroprozessoren kompiliert? Kann man dann Unit-Tests erstellen oder die eigene Firmware auf einem CI-Server bauen lassen? Ist der Code auf andere Embedded Boards oder Frameworks transportierbar, braucht man ein Embedded-Betriebssystem? Diesen und anderen Fragen wollen wir in der Artikelserie nachgehen und fangen hier mit den Grundlagen rund um den Technologiestack an.

Andreas Schmidt


Arduino genießt in der Maker-Community ein hohes Ansehen, u. a. wegen der guten und leicht einsetzbaren Kombination aus Entwickler-Boards und den dazu passenden Werkzeugen. Dabei muss man sich als Entwickler fast keine Details zur verwendeten Elektronik anschauen – sowohl das Framework als auch der Beispielcode lassen sich mit den Werkzeugen wie der Arduino IDE direkt einsetzen. Was aber geschieht in der Werkzeugkette „hinter den Kulissen“?

Die Embedded-Hardware ist fast immer über sogenannte Developer-Boards zugänglich. Diese bestehen aus einem Mikrocontroller (MCU) mit integriertem oder zusätzlichem externen Speicher auf dem Board, Ein-/Ausgabe-Pin für den Anschluss von Sensorik bzw. Aktorik und einer Schnittstelle zum Anschluss an und zur Kommunikation mit dem PC, in aller Regel USB. Hierüber wird das Board direkt mit Strom versorgt (5 V über USB) und je nach Board auf eine niedrigere Spannung heruntergeregelt. Damit man die Mikrocontroller über eine serielle Schnittstelle ansprechen kann, bekommen die Boards einen Interfacechip mit, z. B. von FTDI oder Silicon Labs.

Wo liegen die großen Unterschiede zwischen den verfügbaren Optionen? Da sind erst einmal die verwendeten MCUs zu nennen. Sie reichen von 8-Bit-MCUs, beispielsweise beim Arduino Uno [1], über 16-Bit-MCUs, wie einem MSP430 von Texas Instruments [2], bis zu 32-Bit-MCUs, z. B. aus der Reihe ARM Cortex-M. Das Ganze ist mit einer Taktfrequenz gepaart, die vom einstelligen MHz-Bereich bis zu mehreren hundert MHz reichen kann. Ein Mehr an Geschwindigkeit und Rechenleistung der MCU erlaubt schnellere oder leistungsintensivere Anwendungen (wie moderne Verschlüsselung), bedingt aber auch einen höheren Energiebedarf.

Ein weiteres Unterscheidungsmerkmal liegt in den Funkverfahren, die entweder im Chip oder auf dem Board integriert sind. Für erste Projekte im Heimnetz ist es hilfreich, wenn das Entwickler-Board von Haus aus WiFi mitbringt. Andere mögliche Funkausstattungen sind beispielsweise BLE, LoRa oder Sigfox.

Um für diese MCUs bzw. Boards programmieren zu können, braucht es Firmware, also Software, die im Chip eingebettet wird. An dieser Stelle gibt es für Entwickler im Prinzip viel Auswahl. Während „kleine“ MCUs in C oder C++ programmiert werden, stehen für die leistungsstärkeren 32-Bit-Varianten zusätzlich Skriptsprachen zur Verfügung, z. B. Embedded Lua oder Untermengen von Python (MicroPython) und JavaScript (Espruino).

Durch die verwendete Sprache wird häufig das Firmwareframework vorgegeben, d...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang