Nicht greifbare Daten zu visualisieren finde ich sehr spannend. Darum hatte ich schon lange die Idee eine Anzeige für meine aktuellen Blogbesucher zu bauen. Und als mir dann kürzlich bei Jugendhackt eine NodeMCU in die Hände viel, musste ich dann endlich an’s Werk:

 

verwendete Materialien:

Die Hardware:

Zuerst kann man die Servos an die NodeMCU stecken. Ground and Ground und Strom an den 3V Pin. Die Datenkabel habe ich auf D2 und D4 gelegt. Das war’s eigentlich schon.

Dann braucht man noch ein nettes Gehäuse. Hier habe ich mich für sehr schickes und modernes Multiplex entschieden. Die Einzelteile wurden auf einer CNC-Fräse ausgesägt. Dabei braucht man vom Mittelteil 3 Stück. In eines davon kommen dann noch die Löcher für die Magneten. Die Rückplatte erhält ebenfalls die Magnetlöcher und noch einen kleinen Schlitz um das Stromkabel herauszuführen. Die Front und die drei Mittelteile werden mit Holzleim verklebt. Die Magneten habe ich mit Superkleber in die Löcher eingesetzt. Achtung: auf die Polaroität achten! Ich spreche aus Erfahrung ;)
Zum Schluss kann man die Rückseite aufsetzen und alles etwas glatt schleifen. Dann sieht das Gehäuse aus wie aus einem Guss.

Die beiden Zeiger habe ich kurz auf meinem Ultimaker gedruckt. Oft sind bei Servos aber auch kleine Zeigerchen dabei.

Alle Dateien zum Fräsen oder Drucken finden sich auch auf Github. Siehe Link unten.

Die Software:

Die NodeMCU habe ich mit der ArduinoIDE programmiert. Dazu braucht man die passende Library, die sich über den Librarymanager installieren lässt. Danach einfach die  NodeMCU aus den Boards auswählen und schon kann’s los gehen.
Die NodeMCU verbindet sich mit meinem WLAN und holt sich danach alle 20 Sekunden die aktuellen Besucherzahlen von meinem Blog ab. Diese Zahl wird dann in Grad umgerechnet und die Servos auf die Position gefahren. Anfangs hatte ich das Problem, dass die Servos sehr laut gebrummt haben. Das passiert, wenn der Servo eine für ihn ungünstige Position halten soll. nach langem hin und her habe ich dann endlich eine schnelle Lösung gefunden: detach() am Servo aufgerufen, stoppt die Positionierung des Servos. Und nachdem er ja nur ein kleines Zeicherchen halten muss, kann man den Servo getrost abschalten.

Auf der Serverseite habe ich mit ein kleines PHP-Skript geschrieben, dass sich über die Google Analytics API die aktuellen Besucher abholt und dann einfach nur die Zahlen ausgibt.