Zyxel NSA 325v2 NAS "okosítás" - 1. rész

írta: Adamyno, 7 éve

Egy ideje már megvan az NSA325v2 nasom, meg vagyok vele elégedve. Szerencsére Linux van rajta, így szinte nincs ami ne lenne rá.

Igazából a probléma, amire a megoldást keres(t)em, onnan ered, hogy tavaly megdöglött az egyik vinyó benne. Nagyon melege lehetett nyáron. Arra gondoltam, hogy jó lenne monitorozni a merevlemezek, cpu hőmérsékletét vagy akár a többi s.m.a.r.t. adatot. Van webes felülete, amin keresztül megtekinthető, de körülményes. Mindig kell hozzá egy gép, telefon, stb amin fut egy böngésző és csatlakozik a hálózatra. Arra gondoltam, hogy csinálok Arduinóból vagy inkább NodeMCU-ból egy olyan eszközt, ami a wifire van csatlakozva, kiírja a fontosabb adatokat egy kijelzőn, ami bizonyos időközönként frissül.

Igen ám, de itt jön a következő probléma.
Egyrészt a NAS dinamikus IP-vel rendelkezik, mivel sokszor cserélgetem a hálózati eszközeimet Így sokszor változik az ip címe, akár a hálózati rész is. Persze az éppen aktuális routerbe be lehetne állłtani egy static bejegyzést a dhcp szerverbe, de nincs kedvem folyamatosan ilyenekkel foglalkozni.
Emiatt aztán azt találtam ki, hogy mivel van az eszköznek serial portja, toljuk rá oda a cuccot. Ott egy busybox fut, tehát nem pontosan ugyanaz a rendszer, mint amit telneten elérek, de az előzetes tesztek alapján jó lesz. A soros port sebessége 115200 bps, aminek a későbbiekben még lesz jelentősége. A lábkiosztás itt található.

2 mikrokontroller közül akarok választani.
Arduino:
+univerzális, szinte mindent meg lehet rá írni és rengeteg könyvtár van hozzá,
+elégséges IO láb.
-lassú lehet a cpu, valamint kevés a memória, kicsi soros buffer
-nincs wifi/ethernet

ESP8266 aka NodeMCU
+sokkal gyorsabb (8-16MHz vs 80-160MHz)
+kb. végtelen memória ilyen léptékben
+van benne wifi
-viszonylag kevés IO láb
-kevesebb könyvtár van hozzá
-SPI busz nem túl megbízható, több periféria nem működik vele

Előkészületek:
Lényegében az FFP és a szükséges csomagok telepítése.
Én úgy emlékszem, anno ez alapján csináltam.
Vannak itt is még problémák, de már egész szépen haladok.

Lesz egy 0. része az írásnak, ahol majd folyamatosan frissítem, hol áll a projekt.

Kijelzőnek több féle lehetőség is felvetődött. Van 0,96" I2C oled kijelzőm (128x64). Ennél nagyobb nem fér el az előlepon komolyabb beavatkozás nélkül. Lehetne az oldalán is a jikelző valahol a Zyxel felirat környékén, mert ott elég nagy a hely belül, de körülményes oda tenni bármit is és akkor nem látszanak az első ledek.

Van egy az előbbihez hasonló oled kijelzőm, csak 1.3". Némileg más library kell hozzá, de nincs nagy eltérés. Előbbihez van könyvtár mindkét mikrokontrollerhez, utóbbihoz már lehet, hogy csak arduinóhoz van.
A nagyobb kijelző előnye ugye, hogy messzebbről is könnyebben olvasható. Ez nem hátrány mondjuk ha rack szekrényben van a cucc.

Van még egy ilyen oled kijelzőm, 1,56". Ez már elég nagy, viszont elvileg tud spi és i2c kommunikációt is, de i2c-re nem jöttem rá hogyan vagy milyen könyvtárral, spi működött. Ez utóbbi viszont csak arduinóval. LINK

Van egy mégnagyobb, mondván "ha már lúd, legyen kövér" :DDD
A mérete 2,7". Pont kitöltené az előlapot, 4 szürkeárnyalatot tud. LINK Viszont ezt elindítani elég kínszenvedés volt, ha jól emlékszem egyedül az u8g lib tudja, de az meg nem kompatíbilis az ESP-vel.

Másik kérdés az OLED-ek fogyasztása és, hogy mekkora áramot képes leadni a NAS 3.3V csatija a soros port mellett. Ha wifit is meg OLED-et is akarok, akkor kelleni fog a szufla. Emiatt gondoltam még a Nokia 5110 kijelzőre, mert minimális a fogyasztása (20mA teljesen bekapcsolt háttérfénnyel, kb. 0.1mA kikapcsolt fénnyel) viszont a felbontás nagyon kicsi. És ez is SPI buszos. Jobban preferálnám az i2c-t ha marad az ESP kontroller.

Wifit azért, hogy a későbbiek során ha esetleg lesz még bármilyen más rendszer, akkor ezeket az adatokat el tudjam küldeni neki LAN-on. De akár egy bash script is elküldheti az adatokat egy hálózaton lévő eszköznek. Majd valamire jó lesz.

Szóval mindent összevetve legjobb egy arduino lenne fogyasztás és sokminden más szempontjából.

Elkezdtem írkálni különböző bash script részeket, amikkel majd lekérdezem a mindenféle adatokat innen-onnan. A megjeleníteni kívánt adatokkal és adott paraméter lekérdezéséhez szükséges paranccsal majd jövök a következő részben.

De mindenek előtt szerintem holnap vagy amikor időm lesz rá, csinálok egy sebesség tesztet, hogy a soros portot elárasztó adatokból mennyire gyorsan és hatékonyan tudja kiválogatni az arduino azt, ami kell. A pro mini 8MHz-en ketyeg, szerintem először azzal próbálom, de a sima mini 16MHz, viszont az 5V-ra van tervezve. Elvileg 3.3V-on is még stabil, de súrolja a határt.

Nemsokára jövök a folytatással.