JavaScript in der Embedded-Welt: von der Glühbirne bis zum IoT
Wenn wir „eingebettete Systeme“ (Embedded Systems) hören, kommen uns meist Assoziationen mit den Sprachen C, C++ oder notfalls Python auf dem Raspberry Pi in den Sinn. Aber was, wenn ich Ihnen sage, dass JavaScript – dieselbe Sprache, mit der Sie Frontend und Backend schreiben – zunehmend in die Welt der Mikrocontroller, Sensoren und intelligenten Geräte vordringt?
Ja, Sie haben richtig gehört. Embedded-Entwicklung mit JavaScript ist kein Scherz, sondern ein durchaus funktionierender Trend, der dank Frameworks wie Espruino und Johnny-Five an Fahrt gewinnt. Heute schauen wir uns an, wie Sie Ihren „Hardware-Freund“ dazu bringen, LEDs blinken zu lassen, Sensordaten auszulesen und sie in die Cloud zu senden – und das alles in reinem JavaScript.
Warum JavaScript im Embedded-Bereich? Drei gewichtige Gründe
Warum sollte man eine Skriptsprache in die Welt begrenzter Ressourcen schleppen? Hier sind drei Argumente, die die Sichtweise verändern:
- Niedrige Einstiegshürde. Wenn Sie bereits JS kennen (und wer kennt es heutzutage nicht?), müssen Sie weder C lernen noch sich mit Zeigern herumschlagen. Ihre gesamte Erfahrung – ob vom Frontend oder Node.js – lässt sich auf die Hardware übertragen.
- Schnelles Prototyping. Eine Firmware in JS zu schreiben, kann an einem Abend erledigt sein. Kein Warten auf Kompilierung oder Neuflashen – viele Plattformen unterstützen das Live-Laden von Code über WLAN oder USB.
- IoT-Ökosystem. JavaScript fügt sich perfekt in die Architektur „intelligenter“ Geräte ein: Sie integrieren sich problemlos mit MQTT, HTTP, WebSockets und Cloud-Diensten (AWS IoT, Google Cloud IoT).
Natürlich bleibt C++ für die Produktion mit strengen Anforderungen an Energieverbrauch und Geschwindigkeit der König. Aber für Prototypen, Hobbyprojekte und Bildungszwecke ist Embedded JavaScript ein echter Glücksgriff.
Werkzeuge: Womit wir arbeiten
Bevor wir Code schreiben, legen wir die „Hardware“ fest. Die beliebtesten Optionen für Embedded mit JS:
- Espruino – ein Mikrocontroller, der „out of the box“ JavaScript versteht. Läuft auf STM32, hat einen JS-Interpreter direkt an Bord. Ideal zum Lernen.
- Raspberry Pi Pico + Espruino – ein günstiger Mikrocontroller (nur 4 $), auf den Sie die Espruino-Firmware flashen können.
- Johnny-Five + Arduino – ein Klassiker. Sie schreiben JS auf dem Computer, und Johnny-Five steuert über das Firmata-Protokoll das Arduino. Geeignet für alle, die bereits ein Arduino besitzen.
- Node.js auf dem Raspberry Pi (vollwertiges Linux) – wenn Sie nicht nur eine LED blinken lassen, sondern einen Webserver betreiben, GPIO und Kameras steuern möchten, nehmen Sie den Pi 4/5.
In diesem Artikel konzentrieren wir uns auf Espruino und Johnny-Five, da sie die reinste JS-Erfahrung ohne unnötige Zwischenschichten bieten.
Code schreiben: Eine LED mit JS blinken lassen
Beginnen wir mit dem „Hello, World!“ der Embedded-Welt – einer blinkenden LED. Schließen Sie eine LED (mit einem 220-Ohm-Widerstand) an Pin D13 des Espruino (oder an Pin 13 des Arduino) an.
Beispiel 1: Espruino (natives JS)
// Pin D13 als Ausgang verbindenvar led = LED1; // Eingebaute LED auf dem Espruino
// Blinkfunktionfunction blink() { led.toggle(); // Zustand umschalten console.log('LED ist', led.read() ? 'AN' : 'AUS');}
// Intervall auf 500 ms setzensetInterval(blink, 500);Laden Sie diesen Code über die Espruino Web IDE (oder über das Terminal). Die LED beginnt mit einer Frequenz von 1 Hz zu blinken. Beachten Sie: Wir verwenden setInterval – genauso wie im Browser oder Node.js. Keine Register, Timer oder Interrupts in C – einfach JS.
Beispiel 2: Johnny-Five + Arduino
Wenn Sie ein Arduino besitzen, installieren Sie die Bibliothek Johnny-Five über npm:
npm install johnny-five