E-ink weer dashboard

Zo af en toe kom je langs wat leuke projecten op het internet die blijven hangen in je achterhoofd achter het deurtje, deze wil ik ook ooit een keer maken. Een "weer dashboard op een E-ink voor in de woonkamer"-project was er zo eentje.

Ik heb ondertussen een aardige verzameling e-ink schermpjes, maar geen van alles zijn groter dan een halve speelkaart. Nu was het gelukkig die tijd van het jaar dat veel winkels aan het stunten waren met prijzen. Zo ook gelukkig het e-ink scherm wat ik op het oog had, een 7.5" grote versie.

Hardware

Raspberry Pi Zero

Het hart van het dashboard draait op een Raspberry Pi Zero W. Een klein en veelzijdige microcomputer die het scherm aanstuurt en programma's kan draaien.

7.5 inch (19.05 cm) E-ink van Waveshare

Het display is een 7.5" e-ink display van Waveshare. Deze displays hebben geen stroom nodig om beeld te blijven geven, ze kunnen ook niet inbranden en geven ook geen hinderlijk licht af (al kan dat ook als nadeel gezien worden omdat je extern licht nodig hebt om het scherm te kunnen lezen in het donker). Het scherm wordt 1x per uur ververst en toont daarbij de laatste weergegevens.

3D geprinte behuizing

Ik hou van kitbashen, waarom zelfs iets gaan lopen uitvinden en prototypen als iemand anders dat al gedaan heeft en het wilt delen met de wereld. Het frame waar de display inzit heb ik gevonden op Thingiverse. De standaard die bij dit model zat vond ik niet mooi dus heb ik die zelf ontworpen in Blender en geprint.

Software

Website

Het dashboard zelf is een klein websitetje dat weerdata ophaalt via een open API van Buienradar. Het bestaat uit een klein beetje PHP, HTML en CSS. Zo ontworpen dat het van een afstand te lezen is op het display.

Python

Het display wordt op de Raspberry Pi aangestuurd via een Python script. Het script heeft eigenlijk maar twee taken. Het eerste is het ophalen van de website en de output daarvan weg te schrijven als een afbeelding (PNG bestand) op de RPi. Dit is een standaard library html2image.

Na het wegschrijven van de afbeelding van de website zorgt het tweede deel van het script ervoor dat de afbeelding getoond wordt op het scherm. Ook hier is een standaard library voor van de makers Waveshare.