2024. április 24., szerda

Gyorskeresés

Digitális off/online képkeret

Írta: | Kulcsszavak: Digitális . képkeret . google drive . dropbox . raspberry pi

[ ÚJ BEJEGYZÉS ]

Sziasztok,

készítettem egy digitális képkeretet hogy a nagymamám is tudja értékelni a digitális fényképezés örömeit.

Az eredeti ötlet innen származik.

Tulajdonságai:
- Nagy megjelenített fényképméretek (2db 21x14 és 2db 14x9)
Így viszonylag messziről is jól látható.

- Fekvő képben csak fekvőkép, állóban csak álló kép megjelenése.
Maximális helykihasználás :)

- Automatikus szinkronizáció a saját google drive és dropbox felhőtárhellyel (akár többel is)
Hát mert ki akar pendriveval, memóriakártyával futkosni, feltöltögetni, visszadugni...

- Képmegjelenítés offline módban is működik.
Így nem kell mindig a neten lógnia főleg ha valahol nincs.

- Automatikus fénykép átmásolás pendrive csatlakoztatásakor.
Ha már nincs net legyen elég rádugni ne kelljen még másolgatni ...

- A felső két képmegjelenítőn csak a frissen feltöltött képek jelennek meg.
Így könnyen észrevehető a friss képek érkezése. Főleg ha már több száz van rajta.

- Kettő vagy több helyen sosem jelenik meg egyszerre ugyanaz a kép.
Jól sem nézne ki meg értelme sem lenne.

- Automatikus status info (képek száma, üres tárhely,…) készítése pendrivera csatlakoztatásakor
- Internet kapcsolat: Wifi, Ethernet vagy 3G (opcionális)
- Szinkronizálás minden bekapcsoláskor és/vagy tetszőlegesen beállítható időközönként.
- 32gb tárhely
Vagy amennyit akarsz ill veszel bele az sd kártyának.
- Standard 40x50 képkeret
Csak mert az olcsó és sokféle van. így tényleg egyedi lesz.
- Teljesen egyedi megjelenés

Ha ezek után építenél te is egyet ezekre lesz szükséged:

- Raspberry pi3 (Valószínű a kettővel is elmegy. de ebbe már van wifi meg Bluetooth)
Táp
Sd-kártya
Ház
-Monitor
-Képkeret
Paszpartu
-Ragasztópisztoly
-Csatlakozó a monitor és a Pi közé (DVI-HDMI)

Először képekkel hogy áll össze:
Tehát fogunk egy monitort meg egy képkeretet.
A monitorról levesszük az első műanyag borítást. Ill kivesszük a képkeretből a hátsó falapot. Itt én 3mm-es bútorhátlapot használtam mert volt itthon és stabilabbnak tűnt.

Majd körberajzoljuk a monitort és a keretet is. Jó ha van segítség :DD

Majd kivágjuk és ráragasztjuk a monitorra (én ehhez ragasztópisztolyt használtam)

Mivel nem szerettem volna több madzagot kijönni a gépből, max. 1-et, így én a monitor tápkábel bemeneteléhez forrasztottam egy 230-as vezetéket, aminek a végére tettem egy dugót. Ebbe megy majd a pinek a tápja.

Így néz ki hátulról összeragasztva 230 kivezetve:

Paszpartu felragasztása (mind a 4 sarokba egy-egy csepp pillanatragasztóval) A "milliméter papír" (monitorral kivetítve) segített pontosan beállitani a vízszintest és függőlegest. Ill később is jól jön a képek pontos pozícióba hozásában.

És végül az elkészült hátulja és eleje a rendszernek:

Ha ezzel megvagyunk nincs más hátra mint feltölteni ill beállitani a programokat.

Szoftver lépésenként:
1. installáljuk a raspbiant (idő, időzóna, nyelv beállítás)
2. Képernyőkímélő ill a sleepmod kiiktatása
Megnyitjuk a config filet:
sudo nano /etc/kbd/config

majd ezt két bejegyzést "0"-ra állítjuk
BLANK_TIME=0
POWERDOWN_TIME=0

3. Egérmutató, szemetes menü eltüntetése

Bár az egeret a képnézegető is tudja tüntetni, de én beállítottam alapból, hogy ha nem használjuk az egeret, tűnjön el. Azt hiszem így:

sudo apt-get install unclutter
unclutter -display :0 -noevents -grab

4. Programok installálása:
Először:
sudo apt-get update

-feh Ez tulajdonképpen a képmegjelenítő
sudo apt-get install feh

-exiftool Ezzel olvassuk ki az exif adatokat
sudo apt-get install exiftool
-convert Sajna a feh képmegjelenítő nem forgatja a képeket. Így ezt ezzel kell megtenni.
sudo apt-get install imagemagick

-rclone Ez szinkronizál a google drive ill a dropboxal
http://rclone.org/install/

-crontab gui Ez csak akkor kell ha grafikus környezetben szeretnéd állogatni mondjuk a szinkronizálási időközt
sudo apt-get install gnome-schedule

-mc Ez meg akkor ha ssh keresztül is egy felhasználó barátabb filekezelőt akarsz használni :)
sudo apt-get install mc

5. Gdrive / Dropbox regisztráció
Azt hiszem ezt nem kell ecsetelni.

6. Rclone beállitása
http://rclone.org/docs/

7. Szinkronizáló szkript megírása/ helyére tevése (/home/pi/Script/)
nano ~/Script/StartSync.sh
Tartalmát tekintve nálam igy néz ki:
http://pastebin.com/mrsaLS5y

Figyelem, ez a szkript csak egy irányba szinkronizálja a képeket. Tehát mindig csak az számít ami a neten van.

8. Képnézegető indító szkript
nano ~/Script/StartSlideshow.sh

Tartalma nem bonyolult:

#!/bin/sh

DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority /usr/local/bin/feh --zoom fill -B white -Y -r -g724x490+7+7 -D40 -x -z -f ~/Script/FrissFekvo &

DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority /usr/local/bin/feh --zoom fill -B white -Y -r -g325x490+948+7 -x -D45 -z -f ~/Script/FrissAllo &

DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority /usr/local/bin/feh --zoom fill -B white -Y -r -g724x490+550+531 -x -D30 -z -f ~/Script/RegiFekvo &

DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority /usr/local/bin/feh --zoom fill -B white -Y -r -g325x490+7+531 -x -D35 -z -f ~/Script/RegiAllo &


exit

a "-g" kapcsoló után adjuk meg a megjelenített képek pontos méretét illetve helyét a képernyőn.
A többi kapcsolót a feh manuáljából keresd ki ha érdekel...

9. Crontab beállítása hogy mikor szinkronizáljon.
10. Képnézegető automatikus indítás beállítása.

Képnézegető automatikus indítása induláskor:
nano /home/pi/.config/autostart/startSlideShow.desktop

Tartalma:

[Desktop Entry]
Name=Slideshow
Type=application
Exec=/home/pi/Script/StartSlideshow.sh

Szinkronizálás automatikus inditása induláskor:
nano /home/pi/.config/autostart/startSync.desktop

Tartalma:

[Desktop Entry]
Name=StartSync
Type=application
Exec=/home/pi/Script/StartSync.sh

11. Szkript indítás beállítása usb fogadásakor. Ill Szkript megírása.

Ehhez kell egy szkript, ami lekezeli a bedugott usb-t:
Ez mindig ugyanoda mountolja a bedugott pendrive-ot. Majd elindítja a "/home/pi/Script/Usb.sh" szkriptet. Kihúzáskor unmountolja a pendrive-ot.

sudo nano /etc/udev/rules.d/20-myusb.rules
Tartalma

ACTION=="add", KERNEL=="sd[a-d][0-9]", SYMLINK+="usbdisk%n"
ACTION=="add", KERNEL=="sd[a-d][0-9]", RUN+="/bin/mkdir -p /media/usb"
ACTION=="add", KERNEL=="sd[a-d][0-9]", RUN+="/bin/mount /dev/%k /media/usb"
ACTION=="add", KERNEL=="sd[a-d][0-9]", SUBSYSTEMS=="usb", RUN+="/home/pi/Script/Usb.sh"
ACTION=="remove", KERNEL=="sd[a-d][0-9]", RUN+="/bin/umount /media/usb"
ACTION=="remove", KERNEL=="sd[a-d][0-9]", RUN+="/bin/rmdir /media/usb"

Na innen kicsit belekeveredtem meg jött a határidő is szóval kusza lesz.
De figyel... :)

Szóval a fenti sorok biztosítják azt hogy ha bedug egy pendrive-ot, lefut egy szkript, de mint root.
A "/home/pi/Script/Usb.sh"
Tartalma:

#!/bin/sh

echo "Usb csatlakoztatva" > /tmp/usb.txt
chmod -R 777 /tmp/usb.txt
date >> /tmp/usb.txt

su - -c /home/pi/Script/UsbSync.sh pi

echo "Usb Sync végzet" >> /tmp/usb.txt
date >> /tmp/usb.txt

exit

Tehát ez csak annyit csinál, hogy elinditja a "/home/pi/Script/UsbSync.sh" -t, de a "pi" felhasználó nevében :)

A "/home/pi/Script/UsbSync.sh" tratalma:

#!/bin/sh

DATE=`date +%Y%m%d_%H%M%S`
mkdir /home/pi/Pictures/Local/$DATE
chown -R pi /home/pi/Pictures/Local/$DATE

find /media/usb/ -name '*' -exec file {} \; | grep -o -P '^.+: \w+ image' | cut -d':' -f1 | xargs -I{} cp -v {} /home/pi/Pictures/Local/$DATE

chown -R pi /home/pi/Pictures/Local/$DATE
chmod -R 777 /home/pi/Pictures/Local/$DATE


echo "----------------Digitális képkeret informásiós file.--------------------" > /media/usb/Info.txt
chmod -R 777 /media/usb/Info.txt
echo "Az Usb stick ekkor csatlakozott utoljára a képkerethez:" >> /media/usb/Info.txt
date >> /media/usb/Info.txt
echo "" >> /media/usb/Info.txt
echo "-------------------------Tárhely adatok---------------------------------" >> /media/usb/Info.txt
echo "" >> /media/usb/Info.txt
echo "Filesystem Size Used Avail Use% Mounted on" >> /media/usb/Info.txt
df -h | grep root >> /media/usb/Info.txt

echo "" >> /media/usb/Info.txt
echo "---------------------Részletes adatok a képekről------------------------" >> /media/usb/Info.txt

ls -C -s -h -R /home/pi/Pictures/ >> /media/usb/Info.txt


/home/pi/Script/StartSync.sh


exit

Tehát ez nem csinál egyebet, mint az összes képet a penről átmásolja egy frissen létrehozott könyvtárba. Majd ha végzett, ráindítja a szinkronizálást, hogy megjelenjenek a képek a kijelzőn.
Meg persze pár adatot kiir a pendrivera.

12. Örülés :)
Hát ennyi lenne az egész...

Ha valami nem megy, vagy bővebb magyarázatra szorul, kérdezzetek, próbálok segíteni.
Örülnék, ha többen építenétek hasonlót, szerintem az is aki kapja. Persze lehet kreativkodni, képkerettel elrendezéssel...stb.
Programon is van még mit fejleszteni. Ha van jobb, egyszerűbb megoldásod, esetleg beleirsz valami plusz dolgot, oszd meg velünk.
Pl eszembe jutott, hogy ennek a pinek van Bluetooth-ja is. Meg lehetne csinálni, hogy telefonnal rácsatlakozzunk. Bekér egy előre beállitott jelszót. Azt beütve automatikusan küldené a logfilet. Ill igy lehetne rá küldeni képeket is.
Erre már nem volt időm a "leadási határidő" miatt. :)

Mindenkinek sikeres megvalósítást.
2016.06.24

Hozzászólások

(#1) MineFox54


MineFox54
őstag

Jó ötlet, jó tutorial. Építek egyet majd a nagyiéknak, örülnének neki biztosan :)

(#2) csasaKKP


csasaKKP
senior tag

Ez címlapost írás lehetne simán! Nagyon ötletes, és szép kivitelezés. :)

"Life isn't some cartoon musical where you sing a little song and all your insipid dreams magically come true! So let...it...go!"

(#3) tindisco


tindisco
csendes tag

Szia,

nagyon köszönöm a leírást, remek ötlet!

Grat!

(#4) sztanozs


sztanozs
veterán

Nagyon jó cucc lett. Tetszik nagyon :)

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.