Dies ist ein Update zu meinem Beitrag [“Hypriot, wiringPI und eine blinkende LED”]({% post_url 2015-12-06-hypriot-wiringpi-and-a-blinking-light %}).

Es gibt zwei wesentliche Aenderungen an der ganzen Sache.

  1. Der GPIO-Service ist jetzt ein Webservice, implementiert mit Node.js und Express. Fuer die Schnittstelle zu den GPIO-Pins des Raspberry Pi verwende ich eine Bibliothek namens “onoff”.

  2. Das Shell-Skript, das fuer das ganze Blinken verantwortlich war, wurde durch ein Stueck JavaScript ersetzt, das “unirest” verwendet, um den GPIO-Service ueber HTTP aufzurufen.

Sowohl der GPIO-Service als auch das JavaScript, das die HTTP-Anfragen sendet, laufen in ihren eigenen Docker-Containern und werden wie gewohnt mit docker-compose eingerichtet.

Das Einrichten war nicht so schwierig, aber da ich mit JavaScript nicht sehr vertraut bin, war mein groesstes Problem, die LED in einem gleichmaessigen Intervall blinken zu lassen. Da ich nicht an die asynchrone Natur von JavaScript gewoehnt war, brauchte ich eine Weile und eine sehr hilfreiche StackOverflow-Antwort, um es zum Laufen zu bringen: “How to create a sleep/delay in nodejs that is Blocking?“.

Hole es dir von GitHub mit

git clone https://github.com/twissmueller/docker-pi.git
cd docker-pi
git checkout tags/2016-01-13

Starte das Ganze mit

docker-compose --x-networking up -d

Fertig fuer heute!