JavaScript ist eine der häufigsten verwendeten Sprachen - zumindest auf GitHub!
Da stellt man sich doch die Frage, warum man nicht auch Microcontroller mit JavaScript programmieren kann, wo die meisten Entwickler doch eh die Sprache kennen und können.
Es gibt gute Nachrichten! Neben ein paar Board-Plattformen wie Tessel.io(?) gibt es auch ein wunderbares Projekt namens Espruino(?), welches die wohl günstigsten Microcontroller "ESP8266" oder "ESP32" in die Lage versetzen JavaScript zu interpretieren. Dieses bietet eine Gelegenheit viele IOT-Geräten mit schon bestehenden Wissen zu entwickeln.
Hardware
Zum Entwickeln würde ich auf jeden Fall die NodeMCU Entwicklungsboards nutzen, da man diese leichter Flashen und erstmal mit USB anschließen kann.
- ESP8266 ESP-12F WIFI Wifi Development Board ( Preislich leicht erhöhter Nachfolger, welchen ich mittlerweile eher empfehlen würde, da zukunftssicherer: ESP32 NodeMCU Module WLAN WiFi Development Board Im Vergleich zum ESP8266 kommt er mit mehr Speicher, um auch HTTPS oder Grafik-Anwendungen (OLED Displays) gut zu bedienen.)
Software
Espurino verfügt über eine eigene kleine IDE, welche das Programmieren von ESP8266 sehr bequem und einfach macht. Die IDE läuft als Browser App für Chrome und kann hier heruntergeladen werden: https://chrome.google.com/webstore/detail/espruino-web-ide/bleoifhkdalbjfbobjackfdifdneehpo
Um die kleinen ESP32 oder ESP8266 Chips zu flashen, empfehle ich das Python Tool esptool.py. Dafür müsst ihr Python installieren. Die Treiber für den ESP8266 für Windows gibts hier: http://www.wch.cn/download/CH341SER_ZIP.html
Die Anleitung zum Flashen gibts direkt auf Espurino:
https://www.espruino.com/ESP8266_Flashing oder https://www.espruino.com/ESP32 für den ESP32.
Wenn Ihr alles richtig gemacht habt, könnt ihr euch jetzt über die Espurino Web IDE zu eurem ESP8266 oder ESP32 verbinden. Dazu oben links auf das gelbe Steckerkabel klicken. Als nächstes sagt die IDE auch schon Found ESP8266_BOARD, 2v03 .
Wenn Ihr den Befehlt reset() eintippt startet euer Chip neu und ihr seht auch noch mal die Willkommens-Meldung + System Informationen.

Bereit für Happy-Hacking
Und schon kann es losgehen und ihr könnt eure ersten Anwendungen schreiben.
Zum Beispiel könnt Ihr so eine WLAN-Verbindung aufbauen:
var wifi = require("Wifi");
// Verbindung mit dem WLAN herstellen
wifi.connect("WLAN-NAME", {password:"WLAN-PASSWORD"}, function(err){
console.log("connected? err=", err, "info=", wifi.getIP());
});
Erzeugt folgendes Ergebnis, nach erfolgreicher WLAN-Verbindung:

Weitere klasse Beispiele gibt es hier im Blog!