Low-Cost-Hardware Arduino als IoT-Maschine - Teil 1

Mit einem netzwerkfähigen Arduino-Board und der passenden Software gelingt es, die Arduino-Plattform als Antriebsaggregat für Internet-of-Things-Geräte zu verwenden. Dazu wird es in dieser dreiteiligen Serie zunächst in Teil 1 um die geeignete Hardware gehen, in Teil 2 um die Inbetriebnahme und in Teil 3 um die Software-Umgebung.

Beagle Bone, Raspberry Pi und vergleichbare Computermodule haben es geschafft, dass Embedded-Linux als Betriebssystem für Embedded-Systeme nicht mehr ausschließlich den Spezialisten vorbehalten bleibt, sondern allen Interessierten zur Nutzung zur Verfügung steht. Damit ist der Weg bereitet, eine Klasse vollkommen neuer Aufgabenstellungen in Angriff zu nehmen. Es sind die Grundlagen für die Kommunikation unterschiedlichster Komponenten gelegt und die Möglichkeit gegeben, Geräte für das Internet der Dinge (Internet of Things, IoT) zu entwickeln.

Wikipedia beschreibt das sehr treffend: „Das Internet der Dinge beschreibt, dass der Computer zunehmend als Gerät verschwindet und durch ‚intelligente Gegenstände‘ ersetzt wird. Statt – wie derzeit – selbst Gegenstand der menschlichen Aufmerksamkeit zu sein, soll das ‚Internet der Dinge‘ den Menschen bei seinen Tätigkeiten unmerklich unterstützen. Die immer kleineren Computer sollen Menschen unterstützen ohne abzulenken oder überhaupt aufzufallen.“ In seinem Aufsatz von 1991 „The Computer for the 21st Century“ [1] sprach Mark Weiser zum ersten Mal von dieser Vision (http://de.wikipedia.org/wiki/Internet_der_Dinge).

Als „Real World“ Front End dienen in der Regel Mikrocontroller, die Signale von Sensoren auswerten und durch Aktoren auf die Umgebung zurückwirken. Für Anwendungen, in denen der Zugriff auf die Umgebung ein zentrales Moment darstellt, wurde der Begriff des „Physical Computing“ geprägt. Schaut man in die einschlägigen Foren und Portale zur Mikrocontroller-Technologie, dann kommt man heute am Thema Arduino kaum vorbei. Ein weiterer Impuls kam von der Firma Google, die sich für Arduino als „Android Open Accessory” Kit entschieden hat [2].

Mit der heute ca. 20 Boards umfassenden Arduino-Familie (Arduino Clones sind hier nicht mitgezählt) steht eine ausgereifte Plattform zur Verfügung, mit der auch professionelle Prototypen entwickelt werden. Die Komplexität heutiger Anforderungen an Elektronikkomponenten ist aber an vielen Stellen mit den klassischen Konzepten um Mikrocontroller allein kaum mehr umsetzbar. In vielen Fällen kann heute auf eine Vernetzung nicht mehr verzichtet werden. Das Internet der Dinge bliebe ohne diese Voraussetzung Wunschdenken. Um diese Voraussetzung zu erfüllen, werden in dieser Artikelserie drei Hard- und Software-Komponenten genutzt:

  • UDOO kombiniert den klassischen Arduino auf Basis eines Atmel-Mikro­controllers SAM3X8E mit ARM Cortex-M3 (wie beim Arduino Due) mit einer Freescale-i.MX-6-CPU mit ARM Cortex-A9 Dual/Quad Core, welche eine Linux-Distribution, wie Debian oder Ubuntu, oder Android als Betriebssystem nutzt. Das Betriebssystem bietet Schnittstellentreiber, Dateisystem, Multi-Threading u.a. und übernimmt damit wiederkehrenden Aufgaben, für die stabile Software-Komponenten zur Verfügung stehen.
  • Die Temboo-Plattform (www.temboo.com) vereinheitlicht den Zugang zu mehr als 100 APIs, die eine Vielzahl von Web Services verfügbar machen.
  • Mit Hilfe der Choreo Library kann über ein Web Interface mit den APIs experimentiert und Code erzeugt werden. Die Choreo Library enthält mehr als 2000 vorgefertigte Prozesse, die sogenannten Choreos, die in den eigenen Code integriert werden können.

Die später beschriebenen Quelltexte stehen auf der Webpräsenz von Sourceforge.net, zum Download zur Verfügung.