Përmbajtje:

Nisni Slideshow -in e Pikturave tuaja të Festave! Me një prekje magjike!: 9 hapa (me fotografi)
Nisni Slideshow -in e Pikturave tuaja të Festave! Me një prekje magjike!: 9 hapa (me fotografi)

Video: Nisni Slideshow -in e Pikturave tuaja të Festave! Me një prekje magjike!: 9 hapa (me fotografi)

Video: Nisni Slideshow -in e Pikturave tuaja të Festave! Me një prekje magjike!: 9 hapa (me fotografi)
Video: Në ekspozitën e artit figurativ 2024, Nëntor
Anonim
Nisni Slideshow -in e Pikturave tuaja të Festave me një prekje magjike!
Nisni Slideshow -in e Pikturave tuaja të Festave me një prekje magjike!
Nisni Slideshow -in e Pikturave tuaja të Festave me një prekje magjike!
Nisni Slideshow -in e Pikturave tuaja të Festave me një prekje magjike!

Me kalimin e viteve, unë kam krijuar një zakon të marr një figurinë të vogël me vete kur udhëtoj: unë shpesh blej një arto të vogël, të zbrazët (si ajo në foto) dhe e pikturoj që të përputhet me flamurin dhe temën e vendit që unë m vizitë (në këtë rast, Sicili).

Ideja është atëherë të bëni fotografi të figurinës para skenave ose monumenteve të famshme nga vendi në fjalë: më duket shumë më qesharake sesa të kesh fotografi vetëm me vetë monumentin (ka Google për këtë dhe është shumë më e lirë), por akoma më e lehtë sesa të kesh të jem në çdo fotografi vetë (jo tifoz, të jem i sinqertë)

Meqenëse është gjithmonë argëtuese të mblidhni njerëzit me të cilët keni shkuar në pushime disa ditë pasi të ktheheni për të parë fotografitë, mendova se do të ishte mirë nëse çdo figurinë do të mund të niste disi automatikisht një shfaqje të fotografive nga udhëtimi për të cilin ishin bërë Me

Ky udhëzues do të shpjegojë se si e bëra atë, duke përdorur NFC, një pi mjedër, nodejs dhe osmc

Hapi 1: Vështrim i përgjithshëm i zgjidhjes

Pasqyrë e Zgjidhjes
Pasqyrë e Zgjidhjes
Pasqyrë e Zgjidhjes
Pasqyrë e Zgjidhjes

Meqenëse i gjithë konfigurimi përfshin disa gjëra, këtu është një përmbledhje e përgjithshme e asaj që përfshihet për t'ju ndihmuar të kuptoni gjithçka që vijon:

Hardware

- figurina është e bërë në shtëpi: meqenëse po i shkruaj këto udhëzime në mes të një udhëtimi njëjavor në Kopenhagen/Oslo/Stokholm/Helsinki, do të përfshijë disa fotografi të figurinës që po bëhen për këtë udhëtim

- nën secilën figurinë është një çip NFC: Unë jam duke përdorur afishe të rrumbullakëta që mund t'i vendos nën secilën figurinë, por ju mund të përdorni çdo faktor tjetër të formës - thjesht sigurohuni që çipi që përdorni është i pajtueshëm me lexuesin tuaj

- për të shfaqur fotografitë, unë do të përdor një mjedër pi me OSMC të instaluar: është media player -i im i zgjedhur për shfaqje televizive dhe filma, kështu që tashmë është i lidhur me televizorin tim

- në mënyrë që mjedra pi të lexojë etiketat NFC, shtova një lexues NFC - ai që kam përdorur është Explore -NFC nga NXP, i disponueshëm në shumë faqe interneti: lidhet me Pi dhe vepron si një mburojë

Softuer

Në Raspberry Pi, një skenar NodeJS pret që një etiketë NFC të lexohet: pasi të ketë mbaruar, skripti kontrollon ID -në e tij kundrejt një liste vlerash/çifte me çdo dosje nga burimi i fotografive në OSMC dhe ID përkatëse NFC siç është konfiguruar nga perdoruesi.

Kur etiketa lexohet, nëse ID është në listë, skripti Node i thotë OSMC të nisë shfaqjen e diapozitivëve për këtë dosje të veçantë. Për të ndërtuar/konfiguruar atë listë, i njëjti skenar NodeJS nis një funksion skanimi çdo 5 minuta: skanon për çdo drejtori brenda burimit "Fotografitë" në OSMC (duke përdorur API JSON-RPC që ofron Kodi) dhe e shton atë në një listë që më pas ruhet në disk. Duke redaktuar këtë skedar teksti drejtpërdrejt, përdoruesi është në gjendje të shtojë ID -në përkatëse NFC për çdo album.

Hapi 2: Krijimi i Figurinës

Krijimi i Figurinës
Krijimi i Figurinës
Krijimi i Figurinës
Krijimi i Figurinës
Krijimi i Figurinës
Krijimi i Figurinës
Krijimi i Figurinës
Krijimi i Figurinës

Ju mund të përdorni pothuajse çdo gjë që ju pëlqen për figurinë tuaj: Më pëlqen t'i përdor ato lodra arti vinyl sepse ato janë - relativisht - të lehta për t'u vizatuar edhe për dikë si unë që nuk i pëlqen të vizatojë, dhe mjaft lehtë për t'u mbajtur me vete. Unë i porosis ato në versionin e tyre bosh, DIY, në madhësinë më të vogël që ata vijnë, dhe i tërheq mbi to duke përdorur shënuesit Posca. Këtu mund të shihni atë që kam bërë për këtë udhëtim, me flamujt e katër vendeve që vizituam - ato ndodhën të ishin aq të ngjashme sa unë për t'i kombinuar ato krah për krah. Ju mund të përdorni disa shtresa bojë për aq kohë sa e lini secilën të thahet para se të lyeni tjetrën. Pasi kam mbaruar pikturën, më pëlqen të përdor një armë ngrohëse në bojë për disa minuta, pasi kam lexuar se në fakt është nxehtësia ajo që ndihmon në vendosjen e bojës Posca.

Në foton e fundit mund të shihni Sven - unë gjithmonë u jap atyre emra - duke pushuar në Oslo pas një mëngjesi mjaft të gjatë. Ai nuk e ka kokën nga lodra origjinale, pasi arrita ta ngatërroj atë një minutë para se të largohesha: më duhej të çmontoja një lodër të mëparshme për të përdorur kokën e saj në vend. Nuk mund të them që nuk ka ndodhur kurrë më parë…

Hapi 3: Instaloni OSMC

Instaloni OSMC
Instaloni OSMC

Gjëja e parë që bëra ishte instalimi i OSMC në një kartë mikro SD për Raspberry Pi: në konfigurimin tonë, do të shërbejë si media player për të parë fotografitë tuaja. Unë nuk do të hyj në shumë detaje në këtë aspekt pasi është mjaft mirë i dokumentuar (ka disa udhëzime në dispozicion nëse keni nevojë për ndihmë). Thjesht shkarkoni instaluesin në kompjuterin tuaj dhe ndiqni udhëzimet. Pasi mbarova, thjesht futa një tastierë dhe një mi dhe futa HDMI në televizor dhe ndoqa magjistarin e konfigurimit për të konfiguruar zonën kohore etj.

Së fundi, shtova drejtorinë ku ruaj fotografitë e mia në burimet: në rastin tim ato ruhen në një NAS me një IP fikse në të njëjtin rrjet, por gjithashtu mund t'i ruani ato në një USB drive ose në vetë dosjen kryesore, me kusht që mikro SD juaj të jetë mjaft e madhe.

Kur shtoni burimin, do t'ju kërkohet të vendosni një emër për të: mund të lini parazgjedhjen ose ta ndryshoni, por sigurohuni që ta shkruani sepse do të kemi nevojë për atë më vonë. Në rastin tim e quajta "Fotografitë e mia"

Tani duhet të shihni përmbajtjen e drejtorisë që keni shtuar dhe të shfletoni fotografitë tuaja: në rastin tim, unë kam një nën-drejtori për çdo udhëtim.

Urime, tani keni një qendër mediatike me fotografitë tuaja dhe mund të hapni një shfaqje rrëshqitëse për një dosje të caktuar (si bonus, gjithashtu mund ta përdorni për të luajtur videot ose muzikën tuaj)

Hapi 4: Konfiguroni lexuesin

Për pjesën tjetër të udhëzueshme, ne do të lidhemi me Pi duke përdorur vijën e komandës mbi SSH. Për ta bërë këtë, thjesht lidhni Pi me rrjetin tuaj duke përdorur një kabllo Ethernet dhe përdorni terminalin ose një sotware të dedikuar për t'u lidhur me Pi. Në Mac OS dhe Linux, komanda është

ssh [email protected]

Do t'ju kërkohet të futni një fjalëkalim, është përsëri osmc

Që lexuesi të jetë në gjendje të funksionojë, SPI duhet të aktivizohet: në shumicën e shpërndarjeve të tilla si Raspbian kjo mund të bëhet duke përdorur raspi-config, një mjet konfigurimi që ju lejon të ndryshoni disa vlera konfigurimi.

OSMC, megjithatë, nuk përfshin raspi-config, për sigurinë tuaj kur e përdorni atë. Në vend të kësaj, mbyllni Raspberry, nxirrni kartën micro SD dhe thjesht montojeni atë në kompjuterin tuaj: ndarja "boot" tani duhet të jetë e dukshme. Atje, në rrënjën e vëllimit, do të shihni një skedar të quajtur "config.txt" - thjesht hapeni dhe shtoni këtë rresht në fund:

"dtparam = spi = aktiv"

Tani mund ta ruani skedarin, rindezja dhe SPI duhet të jenë të aktivizuara.

Pas kësaj, do t'ju duhet të shkarkoni skedarin ZIP të bashkangjitur dhe ta hapni atë në mjedër - unë rekomandoj krijimin e një dosje Projektet dhe zbërthimin e tij atje. Për ta bërë këtë, ose mund të lidheni me Raspberry duke përdorur FTP përmes SSH (unë përdor CyberDuck për ta bërë këtë) ose ta vendosni skedarin në një USB Drive dhe të përdorni menaxherin e skedarëve të Kodi për ta kopjuar atë në Raspberry Pi.

Sido që të jetë, pasi të keni kopjuar skedarin zip në Pi, atëherë mund të lundroni te dosja ku e keni kopjuar dhe ta zbërtheni, të kaloni në dosjen që rezulton dhe të instaloni paketën:

zbërtheni SW2827.zipcd SW2827sudo dpkg -i libneardal0_0.14.3-1_armhf.deb neard-explorenfc_1.2-1_armhf.deb

Nëse gjithçka shkon mirë, duhet të jeni në gjendje të lidhni lexuesin, rindizni dhe pastaj futni

explorenfc-bazë

Nëse i afroheni një çipi NFC lexuesit, ai tani duhet të shfaqë një mori informacionesh nga çipi (ndër të tjera, ID e tij)

Hapi 5: Instaloni Nyjen dhe Krijoni Projektin

Tjetra, ne do të instalojmë NodeJS në mjedër për të shkruar aplikacionin tonë.

Ne duam të instalojmë nodejs, por versioni i depozitës së paracaktuar është vërtet i vjetër, kështu që ju duhet të kaloni një hap të parë më parë: në ndërfaqen e linjës së komandës, shkruani

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

Pastaj mund të shtypni

sudo apt install nodejs

për të instaluar versionin më të fundit të nodejs dhe npm në dispozicion.

Për të kontrolluar KODI nga brenda nodejs, ne do të përdorim një paketë npm të quajtur kodi-ws.

Le të fillojmë duke krijuar një projekt të ri: thjesht shkruani komandën

npm init

Do t'ju bëhen një numër pyetjesh: për shumicën e tyre mund të lini parazgjedhjen, thjesht zgjidhni një emër për aplikacionin tuaj dhe futni emrin tuaj në fund. Kur pyeteni për pikënisjen, thjesht lini index.js

Kjo do të krijojë një skedar package.json që do të përmbledhë karakteristikat e paketës tuaj, siç janë varësitë e saj.

Tani mund të hyni

sudo npm install kodi-ws sudo npm install jsonfilesudo npm install cronsudo npm install child_process

Nëse hapni package.json pas kësaj, do të vini re se të gjitha ato pako u janë shtuar varësive.

Hapi 6: Kodi, i Shpjeguar

Kodi, i shpjeguar
Kodi, i shpjeguar

Bashkangjitur këtij hapi është kodi për aplikacionin.

Unë kam lënë një sasi të madhe të prerjeve që mund të mos komentohen për të kuptuar skenarin, por et e prishin atë së bashku.

Ju do të vini re se pavarësisht nga të gjitha funksionet e deklaruara, kodi bën vetëm disa gjëra në fillim:

kodi ('localhost', 9090). pastaj (funksioni (lidhja) {

Skenari përpiqet të lidhet me API OSMC JSON-RPC. Pasi të ketë sukses (dhe vetëm atëherë), vazhdon me pjesën tjetër të skedarit.

Nëse për ndonjë arsye nuk po e përdorni këtë nga Raspberry Pi juaj, ndryshoni localhost në adresën tuaj IP. Gjithashtu sigurohuni që në cilësimet e shërbimit brenda OSMC (Cilësimet/Shërbimet) kutia e zgjedhjes "Lejo telekomandën nga aplikimet në sistemet e tjera" (shiko figurën)

Pjesa tjetër e skedarit janë kryesisht deklarata të funksioneve që do të përdorim më vonë: dy funksionet që janë nisur në të vërtetë nga këtu janë (rreshtat 172/173)

scanAndSetCron (); listenForTag ();

Në scanAndSetCron:

- funksioni scanPictures është nisur. Brenda tij, ne kontrollojmë nëse variabla "mypicturedirectory", e cila do të mbajë rrugën drejt fotografive tona, është bosh. Nëse është, ne i kërkojmë OSMC të na japë të gjitha burimet që ka për përmbajtjen e figurës (brenda funksionit getPictureDirectory, rreshti 11):

var piclist = pres lidhjen. Files. GetSources ("fotografi");

OSMC na jep një grup në këmbim: për secilin artikull, ne kontrollojmë nëse emri i burimit përfshin "My": nëse është kështu ne e ruajmë atë si burimin tonë të figurës (rreshti 16 dhe në vijim). Kjo është ajo ku ju do të dëshironi të ndryshoni vargun nga "My" në atë që keni futur më parë si emër për burimin e fotografive tuaja

if (piclist.sources .label.includes ("My")) {console.log (">>> U gjet drejtoria" + piclist.sources .file); mypicturedirectory = piclist.sources .file; }

Tani që kemi rrugën drejt burimit (në thelb dosja rrënjësore në albumet tona), ne i kërkojmë OSMC ta skanojë atë dhe të shtojë rrugën për çdo dosje në një grup të quajtur album_directories (nëse nuk është tashmë atje). Meqenëse ky funksion do të ekzekutohet çdo X sekonda, ne kontrollojmë që drejtoria të mos jetë tashmë në listë para se ta shtoni, me ID -në NFC të vendosur në një varg bosh - në këtë mënyrë, çdo dosje e re që shtoni në fotografitë tuaja do të jetë automatikisht shtuar - rreshti 46

për (var j = 0; j <directories.length; j ++) {if (drejtoritë [j].filetype.includes ("directory")) {if (searchDirectory (directories [j].file, album_directories)) {konsol log (drejtoritë [j].file +"tashmë atje"); } else {console.log (">> Shtimi i dir" + drejtorive [j].file); album_directories.push ({drejtoria: drejtoritë [j].file, nfc: ""}); }}}

Në fund, ne ruajmë grupin album_directories në një skedar json në Pi, të cilin përpiqemi ta ngarkojmë sa herë që funksioni ekzekutohet: kjo ndodh në fund të funksionit scanAndSetCron ku përdorim një paketë të ngjashme me cron për të siguruar funksionimin tonë çdo 15 sekonda.

Skedari JSON që ne krijojmë, album_directories.json, mund të hapet duke përdorur çdo aplikacion të shënimeve. Pasi ta bëni këtë, do t'ju paraqitet lista e albumeve tuaja fotografike, secila prej të cilave me një fushë bosh "nfc":

[{"directory": "/home/osmc/Pictures/Mada 2016/", "nfc": ""}, {"directory": "/home/osmc/Pictures/NewFolder/", "nfc": "" }, {"directory": "/home/osmc/Pictures/Test/", "nfc": ""}]

Në këtë fushë, tani duhet të ngjisni ID -në e etiketës që dëshironi të shoqëroni me këtë album. Për të marrë këtë ID, thjesht lundroni te dosja SW2827, ekzekutoni explorenfc-Basic dhe skanoni etiketën që dëshironi të përdorni. Në daljen që merrni, thjesht kërkoni vlerën pranë ISO14443A UID. Kopjoni atë në albumin që dëshironi të konfiguroni. Në rastin tim, për shembull,

[{"directory": "/home/osmc/Pictures/Mada 2016/", "nfc": "040A12EAFC3881"}, {"directory": "/home/osmc/Pictures/NewFolder/", "nfc": " "}, {" directory ":"/home/osmc/Pictures/Test/"," nfc ":" "}]

Ruani skedarin dhe përmbajtja e tij do të ngarkohet kur të filloni aplikacionin herën tjetër.

Në funksionin listenForTag, ne bëjmë pikërisht atë: meqenëse nuk duket të ketë një port të dedikuar të bibliotekës së lexuesit për NodeJS, ne mbështetemi në proceset e fëmijëve për të nisur binarin për lexuesin:

var pjellë = kërkojnë ('procesi i fëmijës'). pjellë, fëmija = pjellja ('/usr/bin/explorenfc-Basic', );

Ne mbështetemi në një dëgjues ngjarjesh për të marrë daljen nga ky ekzekutim: brenda thirrjes kthyese për child.stdout.on ('të dhëna', funksion (të dhëna), ne analizojmë daljen e kësaj komande duke përdorur funksionin analysisOutput: ne po kërkojmë rresht që pamë më herët, duke filluar me "ISO14443A UID:", pasi aty ruhet ID për etiketën që skanuam. Pasi ta gjejmë atë linjë, e shkurtojmë dhe e ruajmë ID në një objekt (i quajtur ID, si origjinale).

Së fundi, ne përpiqemi ta krahasojmë këtë ID me ID -të që kemi futur në grupin e objekteve të albumit_directories (të ngarkuara përmes skedarit album_directories.json). Nëse gjendet një ndeshje, ne udhëzojmë OSMC të nisë një shfaqje të rrëshqitjeve për atë dosje të veçantë:

var nfcid = analizoOputput (të dhëna); console.log ("nfcid është" + nfcid.id); var përkatësalbum = searchTag (nfcid.id, drejtoritë e albumeve); if (albumi përkatës) {console.log ("Albumi i gjetur" + JSON.stringify (albumi përkatës) + "për këtë etiketë"); var args = [{'' shtegu ': përkatësalbum.directory}]; connection.run ('Player. Open', args); } listenForTag ();

Vini re se si në fund të funksionit, ne fillojmë përsëri listenForTag? Ky është zgjidhja e vetme që kam gjetur për ta bërë aplikacionin të funksionojë: explorenfc-bazë do të presë si parazgjedhje një etiketë, ta lexojë atë, pastaj të dalë. Aplikacioni ka një mënyrë të vazhdueshme që ne mund ta quajmë duke përdorur explorenfc -Basic -k, por në këtë mënyrë, fëmija_proces nuk e nxjerr përmbajtjen e etiketës pasi nuk përfundon kurrë (me fjalë të tjera child.stdout.on ('të dhënat') nuk shkarkohet kurrë) Meqenëse nuk kam gjetur ndonjë mënyrë tjetër për të përdorur këtë lexues, ajo që ne po bëjmë këtu është në thelb fillimi i explorenfc-Basic në modalitetin e etiketës së vetme, dhe kur një etiketë lexohet, ne lëshojmë listenForTag dhe për këtë arsye rinisim explorenfc-Basic.

Nëse do të më duhej të kthehesha (dhe mendoj se do të kthehem), do të zgjidhja një lexues NFC që ofron më shumë opsione: për shembull, Adafruit (ju mund të keni vënë re se jam shumë i dhënë pas tyre) e ka këtë lexues https:// www.adafruit.com/product/789 që është kompatibil me libnfc, që besoj do të thotë se lexuesi do të jetë shumë më i qartë për t'u ndërlidhur sesa të thërrasë një proces fëmije nga brenda nyjes dhe të analizojë stdout!

Hapi 7: Provojeni

Për të nisur aplikacionin, thjesht lundroni në atë dosje dhe shkruani "node index.js" (ose npm start pasi e kemi konfiguruar më herët në package.json). Në regjistrat duhet të shihni aplikacionin që lidhet me OSMC/Kodi dhe skanon për herë të parë. Pas disa sekondash skedari album_directories.json do të krijohet brenda drejtorisë së projektit; Pastaj mund të futni ID -të e etiketës NFC siç u shpjegua më herët dhe t'i lidhni ato me albumet që dëshironi.

Hapi 8: Nisni automatikisht

Për ta përmbledhur, ne kemi krijuar aplikacionin Node i cili (1) skanon për bibliotekën tuaj të fotografive KODI dhe përpiqet të gjejë dosjen ku ruani fotografitë tuaja të pushimeve, (2) dëgjon etiketat NCF duke u mbështetur në explorenfc-Basic dhe më pas (3) nis albumin e lidhur me këtë ID NFC.

Në mënyrë që i gjithë ky proces të funksionojë në sfond, ne do të përdorim PM2, një menaxher procesi për nyjen.

Në rreshtin e komandës, lundroni te dosja e projekteve tuaja (ku ndodhet skedari juaj index.js) dhe shkruani rreshtat e mëposhtëm:

sudo npm instaloni pm2 -gpm2 index start.js

Aplikacioni juaj tani monitorohet nga PM2 dhe do të riniset automatikisht! Për t'u siguruar që është lansuar në të vërtetë, shkruani listën pm2 dhe duhet ta shihni në listë. Nëse doni të shihni regjistrat, thjesht shkruani regjistrat pm2.

Recommended: