Met veel computers en Raspberry Pi’s in huis weet je vaak niet meer welke computer aanstaat en welke niet. Is de fileserver nog online? Of de printer in de andere kamer?
Heb ik de Pi 4 met RetroPie wel afgesloten? Of mijn energieverslindende game-pc? Met een Pi Zero W en de 8 neoleds van de Pimoroni Blinkt!, kun je op elk moment in één oogopslag zien wat er online is (en dus aanstaat) en wat niet.
Kleine aanpassing
Om de Blinkt! netjes op de Pi te monteren hoef je alleen de originele behuizing van de Pi Zero te gebruiken met het meegeleverde dekseltje met de lange gleuf. Knip met een zijkniptang en witte randje aan de buitenkant van het dekseltje af en het dekseltje past naadloos rond de leds (zie foto).
Analoog en digitaal gecombineerd
De ruimte op het witte dekseltje naast de leds leent zich uitstekend voor het plakken van labels die aangeven welke led bij welke computer hoort. Met handgeschreven plakkertjes kun je de aanduidingen ook heel snel en gemakkelijk aanpassen.
Altijd in je ooghoek
Zorg dat de Pi-LAN-monitor in een hoek je van je gezichtsveld zit, maar niet hinderlijk dichtbij. De mijne paste daarom het beste in een hoekje van mijn whiteboard. Een paar gerecyclede neodymium-magneetjes aan de achterkant van de behuizing zorgden voor een stevige bevestiging.
De code
De code is gemaakt door Darren Hill en is erg eenvoudig. Hij pingt elke minuut één keer de gewenste apparaten in het netwerk en update de leds. Daarvoor maken we een lijst aan van de 8 ip-nummers en een lijst van de bijbehorende hostnamen.
lanmonitor.py
#!/usr/bin/python # pingt elke minuut 8 apparaten in het lokale netwerk # en gebruikt Pimoroni Blinkt-leds voor netwerkstatus: # groen > bereikbaar; rood > niet bereikbaar import os,signal from blinkt import clear,set_brightness, set_pixel, show,set_all from time import sleep hostlist = ["192.168.2.22", "192.168.2.8", "192.168.2.17", "192.168.2.19", "192.168.2.36", "192.168.2.57", "192.168.2.63", "192.168.2.29"] pihostid = ["PicShow", "Fileserver", "P4DSK4G", "Printer", "RetroPie", "P4DSK8G", "PiZeroMeteo", "SmartiPi"] clear() set_brightness(0.1) set_all(0,0,100) show() sleep(10) def handler(signum, frame): clear() show() exit(0) signal.signal(signal.SIGTERM, handler) while True: for hostnum, hostname in enumerate(hostlist): response = os.system("ping -c 1 -w2 " + hostname + " > /dev/null 2>&1") if response == 0: # print hostnum, ' - ', hostid[hostnum], 'is up!' set_pixel(hostnum, 0, 50, 0) else: # print hostnum, ' - ', hostid[hostnum], 'is down!' set_pixel(hostnum, 255, 0, 0) show() sleep(60)