Den Arduino programmieren: So gelingt Ihr IoT-Projekt optimal

Technologie

Technologie

Datum 17.05.2021
Lesezeit 7 Min.

Den Arduino programmieren: So gelingt Ihr IoT-Projekt optimal

Der Arduino ist ein Kleinstcomputer im Format einer Packung Spielkarten, oder sogar noch kleiner. Er erfreut sich gerade im IoT-Umfeld großer Beliebtheit und ist in der Lage, verschiedene Sensoren abzufragen und beispielsweise Motoren oder Schalter anzusteuern. Wie der Einstieg in die Arduino-Programmierung gelingt, erfahren Sie hier. 

Über die Programmierung des Raspberry Pi und was man mit ihm alles machen kann, haben wir bereits berichtet. An dieser Stelle geht es um einen ähnlichen Kleinstcomputer: den Arduino. Von ihm gibt es ebenfalls mehrere Varianten, die unterschiedlich leistungsstark sind und verschiedene Möglichkeiten bieten. Allen gemeinsam ist jedoch die Eigenschaft, Ihnen einen einfachen Einstieg in die Welt der IoT-Programmierung zu ermöglichen.


Den Arduino programmieren: Das brauchen Sie

Vereinfacht ausgedrückt handelt es sich beim Arduino um eine Platine, auf der ein Mikrocontroller sitzt und Befehle ausführt, die Sie zuvor festgelegt haben. Neben der Zentraleinheit, also dem Mikrocontroller, besitzt der Arduino einen kleinen, nicht-flüchtigen Speicher ähnlich einer Festplatte (damit Ihre Programmierung auch nach Trennung der Stromversorgung erhalten bleibt), sowie verschiedene Anschlüsse für Sensoren und Aktoren. Des weiteren besitzt der Arduino eine Buchse für die USB-Verbindung mit einem „normalen” Computer und einen Anschluss für eine externe Stromversorgung.

Während der Programmierphase können Sie den Arduino normalerweise ganz einfach über die USB-Buchse mit Spannung versorgen. Soll er jedoch später „alleine”, also ohne Anwesenheit eines steuernden Rechners arbeiten, oder wenn der benötigte Strom aufgrund vieler angeschlossener Nebenbauteile zu hoch wird, empfehlen wir Ihnen die Verwendung eines passenden Netzteils. Alternativ können Sie den Arduino auch mit Hilfe einer Batterie betreiben.

Um mit dem Arduino loslegen zu können, brauchen Sie Folgendes:

  • Einen Arduino-Kleinstcomputer, wie beispielsweise den Arduino Uno
  • Ein USB-Verbindungskabel (A auf B), wie es häufig bei Druckern verwendet wird
  • Einen Laptop oder PC mit USB-Anschluss
  • Die Arduino-Software des Herstellers (kostenlos)
  • Hardwarekomponenten, die Sie ansteuern möchten, wie beispielsweise Leuchtdioden (LEDs), entsprechende Vorwiderstände (für LED: 220 Ohm) und/oder eines oder mehrere Potentiometer zur Spannungsregulierung (10 Kilo-Ohm)
  • Falls relevant: eine LCD-Anzeige zur Ausgabe von Statusmeldungen
  • Eventuell ein sogenanntes Breadboard, um Nebenschaltungen zu realisieren

Viele Hersteller bieten hier spezielle Arduino-Kits an, die neben dem Arduino gleich auch gängige Bauteile, sowie das USB-Kabel, ein Breadboard und gegebenenfalls Handbücher beinhalten.

Mit Hilfe der optionalen, normalerweise zweizeiligen LCD-Anzeige können Sie wichtige Zustandsmeldungen ausgeben, wie beispielsweise Temperaturwerte oder die Drehzahl eines angeschlossenen Motors. Hierfür verfügt der Arduino über einen entsprechenden Anschluss. 

Das erwähnte Breadboard (der Name leitet sich tatsächlich vom englischen Wort für „Frühstücksbrett” ab) wiederum dient dazu, zusätzliche Komponenten mit dem Arduino zu verbinden. Hierüber ist es beispielsweise möglich, LED-basierte Zustandsanzeigen zu realisieren, oder ein Drehpotentiometer, Piezo-Lautsprecher oder ähnliches zu verwenden. Es wird meist eher zu Testzwecken verwendet, bevor in einem späteren Schritt eine „richtige” Platine geätzt und mit den entsprechenden Bauteilen versehen wird.

 

Breadboard mit verschiedenen Bauteilen

Ein solches Breadboard kommt bei der IoT-Programmierung mit dem Arduino häufig zum Einsatz.

Wie Sie Ihr eigenes Projekt mit dem Arduino in wenigen Schritten umsetzen

Zuerst laden Sie die Programmierumgebung (IDE) für PC oder Mac herunter. Nach der Installation schließen Sie Ihren Arduino per USB-Kabel an und wählen im Menü „Werkzeuge“ den zugehörigen USB-Port unter „Port“ aus. Achten Sie darauf, dass Sie im Menü „Werkzeuge“ auch den korrekten Arduino-Typ eingestellt haben, sonst gibt es später beim Übertragen der Software eine Fehlermeldung. Einige Arduino-Boards gibt es mit unterschiedlichen Prozessor- und Bootloader-Versionen. Notfalls probieren Sie unter „Werkzeuge“ im Punkt „Prozessor“ die Varianten durch, bis die Datenübertragung auf das Board fehlerfrei funktioniert. Zerstören können Sie dabei nichts.

Arduino-Projekte und viele Tipps finden Sie im Internet, zum Beispiel bei All3D, bei Bastlergruppen wie Kreative Kiste, auf Github oder auch im Roboternetz. Zur IDE gehört im Menü „Sketch“ ein Downloader, mit dem Sie sogenannte Libraries finden. Das sind Befehlsbibliotheken, die Ihren Arduino um wertvolle Befehle erweitern, etwa zur Ansteuerung von bestimmten LED-Typen oder von Servo- und Schrittmotoren. GSM-Libraries enthalten hingegen Befehle, über die Sie sich mittels eines optionalen GSM-Shields und einer SIM-Karte ins Mobilfunknetz einwählen und SMS versenden oder Anrufe absetzen. Die MobaLedLib wiederum ist eine Library, über die Sie Signale, LED und Geräuschfunktionen auf Ihrer Modellbahn ansteuern.

Mit Strom versorgt wird Ihr Arduino entweder über den USB-Anschluss vom PC oder Mac, über die entsprechenden beschrifteten Pins auf der Platine oder – je nach Board-Version – mittels eines Netzteils mit passendem Rundstecker. Achtung: Einige Anschlüsse benötigen 3,3 Volt, andere 5 Volt Spannung. Die Einzelheiten entnehmen Sie der Anleitung Ihres Arduinos.

Nach dem Übertragen Ihres Programms auf den Arduino startet die übertragene Software sogleich.




Youtube / MaxTechTV

Die Arduino-Programmiersprache: C beziehungsweise C++

Die Programmierung des Arduino-Kleinstcomputers erfolgt grundsätzlich in der Programmiersprache C beziehungsweise C++. Jedes Arduino-Programm verfügt über eine bestimmte, festgelegte Programmstruktur. Diese besteht immer aus dem Initialisierungsteil („setup”) und den Befehlen, die im laufenden Betrieb wiederholt werden sollen („loop”). Davor stehen die benötigten Variablen und deren Typen.

Ein beispielhafter Quellcode für den Arduino sieht in etwa so aus:

int LED=5 // An Pin 5 ist eine LED angeschlossen

int Taster=8 // An Pin 8 ist ein Taster angeschlossen

void setup() { // Initialisierungsroutine

  pinMode(Taster, INPUT); // Pin 8 dient für Eingaben

  pinMode(LED, OUTPUT); // Pin 5 dient zur Ausgabe

}

void loop() { // Wird solange wiederholt, wie der Arduino mit Strom versorgt bleibt

  if (digitalRead(Taster)==HIGH){ // Abfrage: Ist der Taster aktuell gedrückt?

    digitalWrite(LED, HIGH); // Falls ja, schalte die LED ein

  } else {

    digitalWrite(LED, LOW); // Falls nicht, schalte die LED aus

  }

}

Grundsätzlich besteht die Arduino-Programmierung aus drei Bereichen: der Programmstruktur, den Variablen (beziehungsweise Konstanten) und den Funktionen. Während die Struktur im Wesentlichen durch die oben beschriebene Setup- und Loop-Konstruktion vorgegeben ist und sich die möglichen Variablen an der Standarddefinition in C beziehungsweise C++ orientieren, gibt es spezielle Funktionen, von denen wir einige kurz vorstellen wollen:

  • digitalRead(): Liest den aktuellen Zustand eines Digital-Pins aus (HIGH (1) oder LOW (0))
  • digitalWrite(): Setzt den Zustand eines Digital-Pins (HIGH oder LOW)
  • pinMode(): Konfiguriert die verfügbaren Pins als Ein- oder Ausgänge
  • delay(): Verzögert den weiteren Programmablauf um einen Wert in Millisekunden
  • random(): Generiert eine Zufallszahl

Welche Arduino-Befehle Sie im Einzelnen wie intensiv nutzen werden, hängt natürlich von Ihren konkreten Anforderungen ab. Hier leistet die Arduino-Herstellerseite im Bereich der Sprach-Referenz wertvolle Dienste. 

Neben verschiedenen, spezialisierten Zusatzbibliotheken für den Arduino, die den Befehlssatz erweitern, gibt es für die IoT-Versionen des Arduino sogar eine entsprechende Arduino IoT Cloud API. Diese können Sie für die Sensor-Anbindung Ihres Kleinstcomputers an das Internet, beispielsweise via IoT-SIM-Karte nutzen. 

Eine wesentliche Stärke der Arduino-Programmierwelt insgesamt besteht darin, dass es eine riesige Entwickler-Community gibt und jede einzelne Funktionen ausführlich dokumentiert ist. 

 

Welche Arduino-Typen gibt es?

Je nach Entwicklungsvorhaben ergeben sich für Sie unterschiedliche Anforderungen an die Abmessungen und die Leistungsdaten Ihres Arduino. Insgesamt gibt es mehr als 50 verschiedene Modelle inklusive entsprechender Erweiterungen für jeden Bedarf. Im Gegensatz zum Raspberry Pi werden Arduino-Boards nicht nur vom Hersteller selbst, sondern teils auch von Drittanbietern weiterentwickelt. Ein paar Gemeinsamkeiten weisen jedoch alle Arduinos auf (Stand: Mai 2021):

  • 3,3- oder 5-Volt-Betriebsspannung bei unterschiedlichen Eingangsspannungen
  • Digitale sowie analoge I/O-Pins für den Anschluss von Sensoren und Aktoren
  • CPU-Takt zwischen acht und 84 Megahertz
  • Arbeitsspeicher bis maximal 96 Kilobyte
  • Flash-Speicher bis maximal 512 Kilobyte

Zudem sind die meisten Arduinos durch sogenannte „Shields” erweiterbar, die direkt auf das Arduino-Board gesteckt werden. Hierzu zählen beispielsweise OLED-Displays für Statusausgaben, aber auch Zusatzmodule für besondere Anforderungen mit eigenen Schaltungen.

Zu den gängigsten Arduino-Boards zählen derzeit:

  • Arduino Uno
  • Arduino Leonardo
  • Arduino Due
  • Die Arduino-Nano-Reihe
  • Die Arduino-MKR-Boards

 

Perfekt für den IoT-Einstieg: der Arduino Uno

Der Arduino Uno ist sozusagen das Standard-Arduino-Board für Einsteiger und vor allem für IoT-Anwendungen geeignet, die vergleichsweise wenig Prozessorleistung erfordern. Er arbeitet mit einer 5-Volt-Betriebsspannung, bietet 14 digitale I/O-Pins, sowie sechs analoge Input-Pins und verträgt Eingangsspannungen zwischen sechs und 20 Volt. Sein Systemtakt liegt bei 16 Megahertz, der Flash-Speicher bietet 32 Kilobyte Platz für Programme und die Platine ist 6,86 mal 5,34 Zentimeter groß. Eine Besonderheit beim Arduino Uno ist, dass sechs seiner digitalen I/O-Pins die sogenannte Pulsweitenmodulation (PWM) unterstützen, was beispielsweise beim Dimmen von LEDs hilfreich sein kann.

Für Maus und Tastatur geeignet: der Arduino Leonardo

Viele IoT-Anwendungen kommen in der Praxis ohne Maus und Tastatur aus. Sollen derartige Eingabegeräte jedoch mit dem Arduino funktionieren, sollten Sie zum Modell Leonardo greifen. Er ist mit dem Uno weitgehend identisch – bietet aber eine eingebaute USB-Schnittstelle für Eingabegeräte und ein paar I/O-Pins mehr.

Top-Ausstattung im Mini-Format: der Arduino Due

Der Arduino Due bietet gegenüber den Modellen Uno und Leonardo einen deutlich leistungsstärkeren Prozessor mit ganzen 84 Megahertz Arbeitstakt. Dafür arbeitet er intern jedoch nicht mit fünf, sondern mit 3,3 Volt Betriebsspannung. Außerdem verfügt er über zwölf analoge Input- und zwei analoge Output-Pins, sowie 54 digitale I/O-Pins, von denen zwölf die oben erwähnte Pulsweitenmodulation unterstützen. Außerdem bietet er gleich zwei Micro-USB-Ports.

Kleiner geht es kaum: die Arduino-Nano-Reihe

Weiterhin interessant ist sicherlich die Nano-Baureihe, die mit besonders geringen Abmessungen daherkommt, ohne bei der Leistung (große) Abstriche zu machen. Die Boards dieser Reihe bringen es auf Abmessungen von gerade einmal 1,8 mal 4,5 Zentimetern, was ihren Einsatz speziell in Kleinstgehäusen und als Add-on für bestehende Anlagen interessant macht. Der Prozessortakt liegt beispielsweise beim Nano 33 IOT bei 48 Megahertz und er verfügt über acht analoge Eingänge, einen analogen Ausgang und 14 digitale I/O-Ports (11 davon mit PWM-Unterstützung). Er bietet darüber hinaus trotz der kompakten Abmessungen ein Wi-Fi- und Bluetooth-Modul von u-blox, beispielsweise für Smart-Home-Anwendungen.

Besondere Arduinos für besondere Anforderungen: die MKR-Reihe

Die Arduinos der MKR-Reihe wurden für besondere Anforderungen konzipiert. Der MKR Zero beispielsweise ist speziell für Musik gedacht und kann etwa für die Beschallung von Räumen wie Aufzügen oder Wartezimmern genutzt werden. Er verfügt über einen eingebauten SD-Karten-Slot und kann ohne zusätzliche Hardware bereits WAV-Dateien in 8-Bit Mono abspielen. Der MKR WIFI 1010 wiederum verfügt wie der Nano 33 IOT über Konnektivitätsmöglichkeiten per WLAN oder Bluetooth, was ihn ebenfalls für Smart-Home-Anwendungen interessant macht.

 

Ausklappbare Informationsgrafik

Hohe Leistung oder kompakte Bauform? Arduinos gibt es in vielen Varianten.

 

Die typischen Arduino-Einsatzfelder

Da Sie den Arduino-Kleinstcomputer weitgehend frei programmieren können und er anschließend „autark” weiterläuft, sind den Anwendungsmöglichkeiten kaum Grenzen gesetzt. Ganz gleich, ob Sie eine Türsteuerung, eine Maschinenüberwachung oder eine intelligente Wetterstation mit Beregnungsautomatik realisieren wollen: Alles, was Sie brauchen, sind der Computer, passende Sensoren (und eventuell Aktoren) und eine dauerhafte Stromversorgung. 

In Verbindung mit einer IoT-SIM-Karte wiederum können Sie Daten auch unabhängig von einer Ethernet-, USB- oder WLAN-Anbindung in Ihre Cloud-Lösung oder einen privaten Server übertragen. Der Stromverbrauch für diese Art von Anbindung fällt gegenüber herkömmlicher Übertragung per Mobilfunk dank Narrowband- oder LTE-M-Übertragung besonders gering aus.

Mehr zum Thema Hardware-Auswahl haben wir für Sie bereits in unserem separaten Beitrag zu IoT-Geräten zusammengestellt. Hier erfahren Sie, welche IoT-Sensoren es gibt und wie genau Sie Ihr Vorhaben via Mobilfunk an das Internet anbinden.

 

+++ Jetzt ganz einfach buchen und mit IoT durchstarten: Der sorgenfreie IoT-Prepaid-Tarif IoT Easy Connect bietet Ihnen die Möglichkeit, Ihre Geräte für einmalig 12,99 EUR mit 750 MB und 250 SMS zu vernetzen. +++

 

Übrigens: Wer nicht auf den Arduino setzen will, findet in Geräten wie dem Banana Pi, einem Cubieboard oder dem Raspberry Pi interessante Hardware-Alternativen im Kleinstformat. Projekte, die auf dem Raspberry Pi umgesetzt wurden, lassen sich mit wenig Aufwand meist auch auf dem Arduino realisieren oder hierhin übertragen.

 

Welches Arduino-Projekt haben Sie aktuell im Sinn? Wie haben Sie Ihr erstes IoT-Projekt realisiert? Wir freuen uns auf Ihren Kommentar.

 

 


Ihre Digitalisierungs-Berater:innen für den Mittelstand

Sie haben Fragen zur Digitalisierung? Unser Expert:innen-Team hilft Ihnen kostenlos
und unverbindlich im Chat (Mo.-Fr. 8-20 Uhr). Oder am Telefon unter 0800 5054512

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Facebook Twitter WhatsApp LinkedIn Xing E-Mail