Projekt 8: Raspberry Infopaneles kezelő érintőképernyővel
2018. május 22. írta: eNeS

Projekt 8: Raspberry Infopaneles kezelő érintőképernyővel

Már egy ideje gyűlnek az alkatrészek, és készülgetett a következő Raspberry projektem. Nemes egyszerűséggel infopanelnak kereszteltem, de többféle funkció van beleintegrálva, és szoftveresen még bármi lehet, egyszerű kezelő, PIN kód tasztatúra, központi kapcsoló, online rádió streamer, naptár... mindez majd reményeim szerint a Domoticz Dashticz kiegészítőjének segítségével segítségével valósul meg, de először nézzük a vasat!

Mivel még mindig híján vagyok 3D-s nyomtatónak, elzarándokoltam a helyi szaküzletbe, és szereztem egy darab 30 cm szélességre vágott, 1m hosszú, 2mm vastag fehér PVC tömör síklemezt, amiből a megfelelő alakú és méretű "házat" elkészítettem. Természetesen a szokásos érzékelők sem maradhattak ki, miért is ne használnám ki a GPIO-kat?

infopanel1.jpg


Korábbi ház formájú projektem után joggal merülhet fel a kérdés, mi ez a mérhetetlen vonzódás részemről a forma iránt? Nos igazából semmi extra, eredetileg hatszög alakú előlapot terveztem, de aránytalanul több munkával járt volna, és az aljára tervezett eszközök láthatósága nem kívánatos, így tovább gondoltam.
Persze a legjobb egy kör alakú előlap lenne, mint a Google Nest-é, de fúróval és fűrésszel ezt csak nehezen tudnám reprodukálni.
Miért nem volt jó akkor az egyszerű téglatest? Aki rendelkezik HDMI kijelzővel és látott már HDMI kábel csatlakozót, szerintem belátja, hogy a tetején kiálló egy szál kábel nem indokolná a jelentősen megnövelt magasságot, így jött a tetőforma. És igen, még úgy is sok áll ki felfelé, hogy szereztem egy 270 fokos HDMI toldót. Nem mellesleg, így a tetőre helyezett fényérzékelő nagyjából az ablak felé nézhet.
A ház oldalainak dőlésszögét tudományosan megsaccoltam a két mozgásérzékelő 110 fokos látószögének (Igen azért keresztezik egymást a sugarak, pont ahogy a Szellemirtóknál is egyszer!), és a távolságok ismeretében.

Alkatrészlista:

Eszköz Bruttó ár
Raspberry Pi Zero W (szállítási költséggel - GalagoMarket) 5320 Ft
GPIO Male Header 2x20 (GalagoMarket) 495 Ft
8GB Class10 microSD memóriakártya (*) 1990 Ft
5V3A USB fali adapter, kábellel (*) 727 Ft
microUSB DIP panel (*) 100 Ft
USB-microUSB kábel 1m (*) 203 Ft
USB OTG kábel (*) 203 Ft
USB hangkártya (*) 213 Ft
Mini sztereó hangszórópár aktív, okostelefonhoz, 3.5mm jack dugóval (*) /8002B 670 Ft
2x HC-SR501 (*) 2 x 233 Ft
RCWL-0516 (*) 203 Ft
DHT22 (*) 703 Ft
4.7K ellenállás 3 Ft
BH1750 (*) 270 Ft
5” TFT érintőkijelző (*) 6550 Ft
3.3V-os 1 csatornás relémodul (*) 618 Ft
HDMI-Mini HDMI kábel (*) 495 Ft
HMDI Male -> Female jobbos, 270 fokos toldó (*) 203 Ft
PVC tömör síklap 0,3m2, lapvágás munkadíjával 1400 Ft
Összesen: 20.832 Ft


Látható, hogy az ár felét az RPI + kijelző teszi ki, és ennyiből akár egy mezei tabletet is beszerezhettünk volna.. de azon nincsenek szenzorok. Aki nem szeret sokat bütykölni, és csak egy infopanelre van szüksége, vegyen egy tabletet és indítsa el rajta a böngészőt, a Dashticz-et úgy is el tudja érni. Aki ennél többet szeretne, olvasson tovább.

Gondolom lesz, akiben felmerül a kérdés, vajon azért öltem ennyi energiát a projektbe, hogy lássam milyen idő lesz holnap, ami a telefonomon is elérhető lenne? Hát nem, természetesen a Dashticz-ban rengeteg egyéb lehetőség van, amiről majd egy későbbi alkalommal írok részletesebben (ITT). Ízelítőül az MQTT kapcsolók vezérlési ablaka:
infopanel_dashticz.jpg

No de ugorjunk kicsit vissza az időben! A méretre vágott és kifúrt falak:

infopanel2.jpg

Elöl természetesen a kijelzőnek van meghagyva a helye, alul a két lyuk a két aktív hangszórónak van, amit ebből az elemes csodából pattintottam ki:

hangszoro.jpg

Mit ne mondjak egyébként a konstrukció nem túl erős, a be-kikapcsoló gombja körülbelül a harmadik használat után megadta magát és a kezemben maradt. A hangjáról csak annyit, hogy telefonnal teszteltem, amikor a telefonnal játszottam le MP3-at, hangosabb volt a saját hangszórója, mint amikor rádugtam ezt a csodát... szóval önmagában meglehetősen gyengécske cucc. Viszont szétszedése után rájöttem, hogy egy 8002B erősítő chip van benne, ami 2.2-5.5V feszültséggel tápolható meg, szóval a két AAA elem 3V-ja helyett rákötöttem az RPI 5V-os tápjára, és máris jobban muzsikált, de szó szerint! Két 8 ohmos hangszóróval bámulatos 1.8W teljesítményre képes. Mindenesetre komolyabb cucc, mint az általam eddig használt passzív Pillow Speaker, úgyhogy beépítettem.
 

Elvi bekötési rajz:

p8_elvi.jpg

Alkatrészpróba:

infopanel3.jpg

A két oldalára integráltam a HC-SR501 mozgásérzékelőket, mert úgy gondoltam, ha mozgást észlel, bekapcsolja a kijelzőjét, ha egy darabig nincs mocorgás, akkor kikapcsolja, minek menjen pocsékba? Természetesen ezek státuszát MQTT-n is közvetíti majd, hogy egyéb automatizmusok is használhassák az érzékelői státuszát. Az aljára került a szétbontott aktív hangszórópár, a 8002B erősítővel, a jack csatlakozó pedig már nagyon várja az USB hangkártyát.. A DHT22 egy csavarra került felerősítésre, külsőleg az aljára, ebből nem sok látszik.

Itt már némi színt is kapott külsőleg:

infopanel5.jpg

Itt még egész kultúráltan néz ki a kábelezés:

infopanel6.jpg

Éppen szárad a ragasztás, a GPIO-ról vezérelhető 3VDC-s relé fogja kapcsolni a HDMI kijelző tápját, az érintőkijelző frontálisan átmenő csavarokkal kerül rögzítésre, mert a ragasztás nem nagyon bírja a mozgatást. :) A kijelző alatti helyre kerül az RCWL radar.
A tetőbe integrálva a BH1750 fényérzékelő látható, ez a világításvezérléshez szükséges Lux adatokat szolgáltatja MQTT-n keresztül.

Itt már a végleges, kaotikus állapot látható, a HDMI toldó és maga a HDMI kábel megadja a ház bizonyos dimenzióit:

infopanel4.jpg

A Raspberry Zero W meg részegen bedőlt a jobb sarokba, amennyire a HDMI kábel engedi. A kijelző csatlakozóit 5+2 db jumper kábel segítségével csatlakoztattam, a kijelzőnál már leírt módon. Az 5 kábel az érintőkijelző működéséhez kell, a +2 kábel a táp, aminek az 5V ágát átvezettem a relén, így el tudom végezni a be-kikapcsolást. Egyébként szoftveresen is ki lehet kapcsolni a Raspberry HDMI kimenetét, de ettől még ugyanúgy megjelenik valami "folt" az áram alatt levő kijelzőn, valamint eszi az áramot (4.4Wattot), a kijelző nem igazán CEC kompatibilis, így a kikapcsolására a legegyszerűbb megoldás a tápmegvonás. Némi melegragasztóval fixáltam a monitor hátuljába menő jumper kábeleket, amivel elég sokat kínlódtam beüzemeléskor két hiba miatt: 1/ valószínű az egyik kábel kontaktos volt az öt közül, 2/ a ház eleje hozzáért a kijelzőhöz, amit az folyamatos érintésnek vélt, így a távtartón finomítanom kellett.

Az operációs rendszer a Raspbian, ennek telepítéséről már írtam: Raspbian telepítése

Magát a Dashticz-ot nem erre az eszközre, hanem pl a Domoticz szerver mellé, vagy más, állandóan futó dedikált webszerverre célszerű telepíteni, amiről a későbbiekben írok pár gondolatot.
Legyen elég annyi, hogy erre az eszközre egy X felület kell, amire ezúttal az LXDE-t választottam, valamint a Chromium böngészőt. És ami a Dashticz-al elég szépen 20-40% között használja a CPU-t, oldalra lapozáskor még jobban is, tehát ebben a kütyüben nem nagyon van több tartalék.

A nem látható részt, ami az érzékelő adatok begyűjtését és MQTT továbbítását végzi, természetesen itt is python segítségével oldottam meg.

ms_infopanel.py

A mozgásérzékelő kicsit bonyolultabbra sikerült, mivel három érzékelőből áll és a két irányt meg akartam különböztetni, a két PIR közösen használja ÉS kapcsolatban a radart, de egyébként egymástól függetlenek.

unit_motion_tri.py

A kijelzőnél inicializáláskor megkísérlem a képernyőkímélőt lekapcsolni, a képernyő bekapcsolásakor a vgencmd segítségével nemcsak a relét, hanem a HDMI kimenet státuszát is megpróbálja átállítani, e mellett az ads7846 érintőszenzort is ki/bekapcsolja, mert a linux kernel rosszul viseli, ha eltűnik a tápja a már inicializált touch szenzornak, ezért azt rmmod segítségével kikapcsolom a megjelenítésssel együtt és modprobe-al vissza:

unit_backlight_onoff.py

Folytatásban következik: a Dashticz

A bejegyzés trackback címe:

https://bitekmindenhol.blog.hu/api/trackback/id/tr2713990614

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.