Componentz

Hogyan alakíts át egy olcsó e-ink kijelzőt és egy ESP32-t élő, valós idejű szerver-statisztikai monitorrá, ami sosem merül le?

2026-02-24
Hogyan alakíts át egy olcsó e-ink kijelzőt és egy ESP32-t élő, valós idejű szerver-statisztikai monitorrá, ami sosem merül le?

Már régóta éreztem, hogy a szervereim állapota valahogy csak akkor kerül a látómezőmbe, amikor már késő, és valami összeomlott. Ülök a gép előtt, a monitoromon ezer ablak, a terminál pedig valahol mélyen eltemetve. Arra gondoltam, milyen jó lenne egy dedikált kis eszköz, ami csendben, energiatakarékosan teszi a dolgát az asztalomon, és csak a lényeget mutatja. Így született meg a terv, hogy hogyan alakíts át egy olcsó e-ink kijelzőt és egy ESP32-t élő, valós idejű szerver-statisztikai monitorrá, ami sosem merül le. Ez az apró szerkezet nemcsak hasznos, de a technikai kíváncsiságomat is kielégíti minden egyes pillantással.

Miért pont ez a párosítás a nyerő?

A projekt szíve egy ESP32 fejlesztői panel, ami azért zseniális, mert beépített Wi-Fi és Bluetooth képességekkel rendelkezik, miközben az áramfogyasztása töredéke egy Raspberry Pi-ének. Az e-ink kijelzők, vagyis az elektronikus papír technológia pedig azért különleges, mert csak akkor fogyasztanak áramot, ha frissítik a képet. Ha a kijelzőn marad a statisztika, az gyakorlatilag nullát eszik.

Így oldottam meg a tápellátás kérdését:

  • Egy kisebb LiPo akkumulátort kötöttem rá, amit egy apró napelemes panellel kombináltam.
  • Az ESP32 mélyalvás üzemmódját használtam ki, így az eszköz csak percenként ébred fel.
  • A kijelzőn megjelenő adatok frissítése után a chip visszatér a hibernált állapotba.

Ezzel a módszerrel a szerkezet hónapokig képes működni anélkül, hogy a töltőkábel után kellene kutatnom. A tapasztalat azt mutatja, hogy ha jól optimalizálod a kódot, a napfény ereje is bőven elég az akkumulátor szinten tartásához.

A hardveres összerakás trükkjei

Nem kell mérnöki diploma ahhoz, hogy össze tudd kötni ezt a kettőt. A legtöbb e-ink kijelző SPI protokollt használ, ami az ESP32-n könnyen konfigurálható. Fontos, hogy figyelj a feszültségszintekre, mert az ESP32 3.3V-on üzemel. Ha véletlenül 5V-ot kapna a kijelző vezérlője, az könnyen tönkreteheti a panelt.

A fizikai kivitelezésnél ezekre figyeltem:

  • Jól szigetelt kábeleket használtam a forrasztásoknál, hogy a rövidzárlat esélye nulla legyen.
  • A kijelzőt egy vékony, 3D nyomtatott keretbe illesztettem, ami tartást ad neki az asztalon.
  • A LiPo töltésvezérlő modult rejtve helyeztem el a hátoldalon.

A kijelző mérete bőven elég ahhoz, hogy a CPU terhelést, a RAM használatot és a hálózati forgalmat is kényelmesen leolvasd. Én még a szerver uptime idejét is rátettem, mert jó látni, mennyi ideje futnak stabilan a szolgáltatásaim.

A szerveroldali adatok begyűjtése

A legnagyobb móka az, ahogy az adatokat eljuttatod a kijelzőre. A szervereden futtathatsz egy egyszerű Python szkriptet, ami lekéri a statisztikákat. Én a psutil könyvtárat használom, ami pillanatok alatt kigyűjti a rendszerinformációkat.

A folyamat lényege:

  • A Python szkript egy JSON fájlba gyűjti az aktuális mérőszámokat.
  • Az ESP32 egy HTTP GET kéréssel lekérdezi ezt a fájlt a belső hálózatról.
  • A kapott adatokat az e-ink kijelzőhöz tartozó könyvtár (például a GxEPD2) kirajzolja a képernyőre.

Itt jön a képbe a hatékonyság. Ne próbáld meg folyamatosan streamelni az adatokat, mert a Wi-Fi kapcsolat kiépítése fogyasztja a legtöbb energiát. Érdemes a lekérdezéseket időzíteni, például tíz vagy harminc másodperces időközönként. Így a rádió csak egy rövid pillanatra kapcsol be, elvégezi a dolgát, aztán már alszik is tovább.

Hibaelhárítás és finomhangolás

Amikor először összeraktam a rendszert, a kijelző néha furcsa szellemképeket mutatott. Az e-ink technológia sajátossága, hogy a frissítés után néha ott maradnak az előző karakterek körvonalai. Ezt úgy küszöböltem ki, hogy minden tizedik frissítésnél egy teljes képernyős villantást (full refresh) vezéreltem be a kódba.

Néhány dolog, amire érdemes figyelni a hosszú távú üzemeltetés során:

  • A Wi-Fi kapcsolat minősége nagyban befolyásolja az akkumulátor élettartamát. Ha gyenge a jel, az ESP32 sokkal tovább próbálkozik a csatlakozással, ami gyorsan lemeríti az telepet.
  • Érdemes statikus IP-címet adni az eszköznek a routeredben, így nem kell minden alkalommal DHCP-s címkéréssel bíbelődnie a modulnak.
  • A hőmérséklet ingadozás az e-ink kijelzőknél lassíthatja a frissítést, de egy szoba hőmérsékletű környezetben ez nem okozhat gondot.

Miért éri meg ezzel foglalkozni?

Ez a projekt nem csak a szerverstatisztikákról szól. Arról szól, hogy olyan eszközt hoztál létre, ami pontosan azt tudja, amire neked szükséged van, felesleges sallangok nélkül. Nincs benne hirdetés, nem kell hozzá havidíjas felhőszolgáltatás, és ha a net elmegy, a szervereden lévő adatok még mindig elérhetőek a helyi hálózaton keresztül.

Ráadásul megtanulod, hogyan működik a gyakorlatban az alacsony fogyasztású hardverek programozása. Ez a fajta tudás később más projekteknél is hasznos lesz, legyen szó okosotthon-automatizálásról vagy éppen környezeti szenzorok építéséről. Az asztalomon most ott a kis kijelző, és ha ránézek, látom a szervereim "lélegzetvételét". Nem egy bonyolult dolog, de őszintén szólva, a legegyszerűbb megoldások szoktak a leghasznosabbak lenni.

A kód megírása közben arra is rájöttem, hogy az egész folyamat végtelenül testreszabható. Lehet benne éjszakai mód, amikor a kijelző nem frissül, vagy akár színkódolhatod is az adatokat, ha olyan e-ink kijelzőt választasz, ami képes a fekete és fehér mellett például vörös vagy sárga megjelenítésére is. A lehetőségek tárháza csak a képzeleteden múlik.