
Een oud-collega belde me een tijd geleden. Hij was bezig met een boot en wil op basis van de Raspberry Pi een dashboard voor zijn boot bouwen en of ik hem kon helpen. Zijn vraag viel samen met een behoefte die ik al een tijd koesterde om meetwaarden rechtstreeks in een grafische ronde meter weer te geven. Ik heb in het verleden meerdere pogingen gedaan, maar geen enkele gaf een bevredigende uitkomst. Inmiddels zijn we verder in de tijd en kunde en lijkt het prima haalbaar om met behulp van Claude Ai de uitdaging aan te gaan.
Ik wil een script bouwen waarbij de indeling en de kleuren van de meter eenvoudig aan te passen zijn zodat je in staat bent een fraai dashboard te bouwen.
Daar gaan we…
Tkinter bibliotheek
Ofschoon de Tkinter bibliotheek standaard in het Pi OS, kan het nodig zijn deze te installeren met:
sudo apt install python3-tk
Grafische mode
Om het (grafische) resultaat te kunnen zien MOET je het script met de Tkinter onderdelen in de terminal van de desktop van de Raspberry Pi starten. Dat kan rechtstreeks op de Pi of via VNC. Probeer je dit vanaf je SSH-terminal te starten, dan krijg je een foutmelding te zien zoals: tkinter.TclError: no display name and no $DISPLAY environment variable
Wat krijg je te zien
- Een donkere gauge met een gekleurde voortgangsboog die van cyaan → geel → rood loopt naarmate de waarde stijgt
- Een vloeiend bewegende naald met animatie (~60 fps)
- Grote cijferweergave in het midden
- Maatstreepjes en getallen langs de boog (0, 25, 50, 75, 100)
- Een ingebouwde simulatie die de waarde realistisch laat variëren
Alles is naar eigen smaak in te stellen.
Download het script
Eigen sensorwaarden koppelen
Als je je eigen sensorwaarden aan het script wilt koppelen. Vervang dan de Simulatie-klasse door je eigen uitlezing, en roep simpelweg aan:
gauge.set_value(jouw_sensorwaarde) # een getal tussen 0 en 100
Kopieer onderstaand demoscript en plak het in je favoriete editor, sla het op als gauge_demo.py.
Het script opstarten doe je met:
gauge_demo.py
Volledig scherm
Wil je het grafische resulaat op het volledige scherm van de Raspberry Pi? Uncomment dan deze regel in main():
root.attributes("-fullscreen", True)
Conclusie
Het resultaat is boven verwachting. Zelfs op mijn Raspberry Pi 3B is het grafisch weergeven snel. Standaard zijn de kleuren wat saai, daar mag ik nog wel wat aan sleutelen. Het project smaakt naar meer zoals het aansluiten van een DHT11/22 met twee tellers of de actuele opbrengst van mijn zonnepanelen…
Have A Nice Day!

Laat een reactie achter