विषयसूची:

जादू के स्पर्श के साथ अपना हॉलिडे पिक्चर्स स्लाइड शो लॉन्च करें!: 9 कदम (चित्रों के साथ)
जादू के स्पर्श के साथ अपना हॉलिडे पिक्चर्स स्लाइड शो लॉन्च करें!: 9 कदम (चित्रों के साथ)

वीडियो: जादू के स्पर्श के साथ अपना हॉलिडे पिक्चर्स स्लाइड शो लॉन्च करें!: 9 कदम (चित्रों के साथ)

वीडियो: जादू के स्पर्श के साथ अपना हॉलिडे पिक्चर्स स्लाइड शो लॉन्च करें!: 9 कदम (चित्रों के साथ)
वीडियो: रुमाल गायब करने का जादू learn handkerchief magic trick revealed 2024, जुलाई
Anonim
जादू के स्पर्श के साथ अपने हॉलिडे पिक्चर्स स्लाइड शो लॉन्च करें!
जादू के स्पर्श के साथ अपने हॉलिडे पिक्चर्स स्लाइड शो लॉन्च करें!
जादू के स्पर्श के साथ अपने हॉलिडे पिक्चर्स स्लाइड शो लॉन्च करें!
जादू के स्पर्श के साथ अपने हॉलिडे पिक्चर्स स्लाइड शो लॉन्च करें!

इन वर्षों में, मैंने यात्रा करते समय अपने साथ एक छोटी मूर्ति ले जाने की आदत विकसित की है: मैं अक्सर एक छोटी, खाली आर्टॉय खरीदता हूं (जैसे चित्र में एक) और देश के ध्वज और विषय से मेल खाने के लिए इसे पेंट करता हूं। मी विजिटिंग (इस मामले में, सिसिली)।

विचार तब उस देश के दृश्यों या प्रसिद्ध स्मारकों के सामने मूर्ति की तस्वीरें लेने का है: मुझे केवल स्मारक के साथ चित्र रखने की तुलना में यह बहुत मजेदार लगता है (इसके लिए Google है और यह बहुत सस्ता है) लेकिन होने से भी आसान है हर तस्वीर पर खुद होना (प्रशंसक नहीं, ईमानदार होना)

चूंकि तस्वीरों को देखने के लिए वापस आने के कुछ दिनों के बाद आप छुट्टियों पर गए लोगों को इकट्ठा करना हमेशा मजेदार होता है, मैंने सोचा कि यह अच्छा होगा यदि प्रत्येक मूर्ति किसी तरह से स्वचालित रूप से उस यात्रा से चित्रों का स्लाइड शो लॉन्च कर सके जिसके लिए उन्हें बनाया गया था.

यह निर्देशयोग्य समझाएगा कि मैंने यह कैसे किया, एनएफसी, एक रास्पबेरी पाई, नोडज और ओएसएमसी का उपयोग करके

चरण 1: समाधान का अवलोकन

समाधान का अवलोकन
समाधान का अवलोकन
समाधान का अवलोकन
समाधान का अवलोकन

चूंकि पूरे सेटअप में कुछ चीजें शामिल हैं, इसलिए इसमें क्या शामिल है, इसका एक सामान्य अवलोकन यहां दिया गया है जो आपको आगे आने वाली हर चीज को समझने में मदद करेगा:

हार्डवेयर

- मूर्ति घर का बना है: चूंकि मैं इस निर्देश को कोपेनहेगन / ओस्लो / स्टॉकहोम / हेलसिंकी में एक सप्ताह की लंबी यात्रा के बीच में लिख रहा हूं, इसलिए मैं इस यात्रा के लिए बनाई जा रही मूर्ति के कुछ शॉट्स शामिल करूंगा

- प्रत्येक मूर्ति के नीचे एक एनएफसी चिप है: मैं गोल स्टिकर का उपयोग कर रहा हूं जिसे मैं प्रत्येक मूर्ति के नीचे फिट कर सकता हूं लेकिन आप किसी अन्य फॉर्म फैक्टर का उपयोग कर सकते हैं - बस सुनिश्चित करें कि आपके द्वारा उपयोग की जाने वाली चिप आपके पाठक के अनुकूल है

- चित्रों को प्रदर्शित करने के लिए, मैं ओएसएमसी के साथ रास्पबेरी पाई का उपयोग करूंगा: यह टीवी शो और फिल्मों के लिए मेरी पसंद का मीडिया प्लेयर है इसलिए यह पहले से ही मेरे टीवी से जुड़ा है

- रास्पबेरी पीआई को एनएफसी टैग पढ़ने के लिए, मैंने एक एनएफसी रीडर जोड़ा - मैंने जो इस्तेमाल किया वह एनएक्सपी से एक्सप्लोर-एनएफसी है, जो कई वेबसाइटों पर उपलब्ध है: यह पीआई पर प्लग करता है और ढाल के रूप में कार्य करता है

सॉफ्टवेयर

रास्पबेरी पाई पर, एक नोडजेएस स्क्रिप्ट एक एनएफसी टैग के पढ़ने की प्रतीक्षा करती है: एक बार ऐसा करने के बाद, स्क्रिप्ट ओएसएमसी पर चित्र स्रोत से प्रत्येक फ़ोल्डर के साथ मूल्य/जोड़ी सूची के खिलाफ अपनी आईडी की जांच करती है और संबंधित एनएफसी आईडी द्वारा कॉन्फ़िगर किया गया है उपभोक्ता।

जब टैग पढ़ा जाता है, यदि आईडी सूची में है, तो नोड स्क्रिप्ट ओएसएमसी को इस विशिष्ट फ़ोल्डर के लिए स्लाइड शो लॉन्च करने के लिए कहती है। उस सूची को बनाने/कॉन्फ़िगर करने के लिए, वही नोडजेएस स्क्रिप्ट हर 5 मिनट में एक स्कैनिंग फ़ंक्शन लॉन्च करती है: यह OSMC पर "पिक्चर्स" स्रोत के अंदर हर निर्देशिका के लिए स्कैन करता है (JSON-RPC API का उपयोग करके जो कोडी प्रदान करता है) और इसे एक सूची में जोड़ता है जिसे तब डिस्क पर सहेजा जाता है। इस टेक्स्ट फ़ाइल को सीधे संपादित करके, उपयोगकर्ता तब प्रत्येक एल्बम के लिए संबंधित एनएफसी आईडी जोड़ने में सक्षम होता है।

चरण 2: मूर्ति बनाना

मूर्ति बनाना
मूर्ति बनाना
मूर्ति बनाना
मूर्ति बनाना
मूर्ति बनाना
मूर्ति बनाना
मूर्ति बनाना
मूर्ति बनाना

आप अपनी मूर्ति के लिए अपनी पसंद की किसी भी चीज़ का उपयोग कर सकते हैं: मुझे उन विनाइल कला खिलौनों का उपयोग करना अच्छा लगता है क्योंकि वे मेरे जैसे किसी व्यक्ति के लिए भी आकर्षित करना अपेक्षाकृत आसान है, जो आकर्षित करना पसंद नहीं करता है, और चारों ओर ले जाना काफी आसान है। मैं उन्हें उनके खाली, DIY संस्करण में, सबसे छोटे आकार में ऑर्डर करता हूं, और पॉस्का मार्करों का उपयोग करके उन पर आकर्षित करता हूं। यहां आप देख सकते हैं कि मैंने इस यात्रा के लिए जो चार देशों का दौरा किया है, उनके झंडे के साथ - वे मेरे लिए एक जैसे थे कि मैं उन्हें एक साथ जोड़ दूं। आप पेंट के कई कोटों का उपयोग तब तक कर सकते हैं जब तक कि आप अगले को पेंट करने से पहले वास्तव में प्रत्येक को सूखने दें। पेंटिंग करने के बाद, मैं कुछ मिनटों के लिए पेंट पर हीट गन का उपयोग करना पसंद करता हूं, जैसा कि मैंने पढ़ा है कि यह वास्तव में गर्मी है जो पॉस्का पेंट सेट में मदद करती है।

आखिरी तस्वीर में आप स्वेन को देख सकते हैं - मैं हमेशा उन्हें नाम देता हूं - एक लंबी सुबह के बाद ओस्लो में एक ब्रेक। उसके पास मूल खिलौने से सिर नहीं है, क्योंकि मैं जाने से एक मिनट पहले उसे गड़बड़ करने में कामयाब रहा: मुझे इसके बजाय अपने सिर का उपयोग करने के लिए पिछले खिलौने को तोड़ना पड़ा। मैं यह नहीं कह सकता कि ऐसा पहले कभी नहीं हुआ…

चरण 3: ओएसएमसी स्थापित करें

ओएसएमसी स्थापित करें
ओएसएमसी स्थापित करें

पहला काम जो मैंने किया वह था रास्पबेरी पाई के लिए एक माइक्रो एसडी कार्ड पर ओएसएमसी स्थापित करना: हमारे सेटअप में, यह आपके चित्रों को देखने के लिए मीडिया प्लेयर के रूप में काम करेगा। मैं इस पहलू पर अधिक विस्तार में नहीं जाऊंगा क्योंकि यह काफी अच्छी तरह से प्रलेखित है (यदि आपको सहायता की आवश्यकता है तो कुछ निर्देश उपलब्ध हैं)। बस अपने कंप्यूटर पर इंस्टॉलर डाउनलोड करें और निर्देशों का पालन करें। एक बार जब मैं कर लिया, तो मैंने बस एक कीबोर्ड और एक माउस में प्लग किया और एचडीएमआई को टीवी पर प्लग किया और टाइमज़ोन आदि सेट करने के लिए सेटअप विज़ार्ड का पालन किया।

अंत में, मैंने उस निर्देशिका को जोड़ा जहां मैं अपने चित्रों को स्रोतों में संग्रहीत करता हूं: मेरे मामले में वे एक ही नेटवर्क पर एक निश्चित आईपी के साथ एक NAS पर संग्रहीत होते हैं, लेकिन आप उन्हें यूएसबी ड्राइव या होम फ़ोल्डर पर भी स्टोर कर सकते हैं, बशर्ते कि आपका माइक्रो एसडी काफी बड़ा हो।

स्रोत जोड़ते समय, आपको इसके लिए एक नाम दर्ज करने के लिए कहा जाएगा: आप डिफ़ॉल्ट को छोड़ सकते हैं या इसे बदल सकते हैं लेकिन इसे लिखना सुनिश्चित करें क्योंकि हमें बाद में इसकी आवश्यकता होगी। मेरे मामले में मैंने इसे "माईपिक्चर्स" कहा

अब आपको आपके द्वारा जोड़ी गई निर्देशिका की सामग्री को देखना चाहिए और अपने चित्रों को ब्राउज़ करना चाहिए: मेरे मामले में, मेरे पास प्रत्येक यात्रा के लिए एक उप-निर्देशिका है।

बधाई हो, अब आपके पास अपने चित्रों के साथ एक मीडिया सेंटर है और आप एक विशिष्ट फ़ोल्डर के लिए एक स्लाइड शो लॉन्च कर सकते हैं (बोनस के रूप में, आप इसका उपयोग अपने वीडियो या संगीत चलाने के लिए भी कर सकते हैं)

चरण 4: रीडर को कॉन्फ़िगर करें

बाकी निर्देश के लिए, हम SSH पर कमांड लाइन का उपयोग करके पाई से जुड़ रहे होंगे। ऐसा करने के लिए, बस एक ईथरनेट केबल का उपयोग करके पाई को अपने नेटवर्क से कनेक्ट करें और पाई से कनेक्ट करने के लिए टर्मिनल या एक समर्पित सॉफ़्टवेयर का उपयोग करें। मैक ओएस और लिनक्स पर, कमांड है

ssh [email protected]

आपको एक पासवर्ड दर्ज करने के लिए कहा जाएगा, यह फिर से osmc है

पाठक को कार्य करने में सक्षम होने के लिए, एसपीआई को सक्षम करना होगा: रास्पियन जैसे अधिकांश वितरण में यह रास्पि-कॉन्फ़िगरेशन का उपयोग करके किया जा सकता है, एक कॉन्फ़िगरेशन टूल जो आपको कुछ कॉन्फ़िगरेशन मानों को बदलने की अनुमति देता है।

हालाँकि, OSMC में इसका उपयोग करते समय आपकी अपनी सुरक्षा के लिए raspi-config शामिल नहीं है। इसके बजाय, रास्पबेरी को बंद करें, माइक्रो एसडी कार्ड को बाहर निकालें और इसे अपने कंप्यूटर पर माउंट करें: "बूट" विभाजन अब दिखाई देना चाहिए। वहां, वॉल्यूम के मूल में, आपको "config.txt" नामक एक फ़ाइल दिखाई देगी - बस इसे खोलें और अंत में इस लाइन को जोड़ें:

"dtparam=spi=on"

अब आप फ़ाइल को सहेज सकते हैं, रीबूट कर सकते हैं और एसपीआई सक्षम होना चाहिए।

उसके बाद, आपको संलग्न ज़िप फ़ाइल को डाउनलोड करने और इसे रास्पबेरी पर अनज़िप करने की आवश्यकता होगी - मैं एक प्रोजेक्ट फ़ोल्डर बनाने और इसे वहां अनज़िप करने की सलाह देता हूं। ऐसा करने के लिए, आप या तो एसएसएच पर एफ़टीपी का उपयोग करके रास्पबेरी से कनेक्ट कर सकते हैं (मैं ऐसा करने के लिए साइबरडक का उपयोग करता हूं) या फ़ाइल को यूएसबी ड्राइव पर रख सकता हूं और इसे रास्पबेरी पाई पर कॉपी करने के लिए कोडी के फाइल मैनेजर का उपयोग कर सकता हूं।

किसी भी तरह, एक बार जब आप ज़िप फ़ाइल को पीआई में कॉपी कर लेते हैं, तो आप उस फ़ोल्डर में नेविगेट कर सकते हैं जिसे आपने इसे कॉपी किया है और इसे अनजिप कर सकते हैं, परिणामी फ़ोल्डर में जा सकते हैं और पैकेज स्थापित कर सकते हैं:

SW2827.zipcd को अनज़िप करें SW2827sudo dpkg -i libneardal0_0.14.3-1_armhf.deb नियरd-explorenfc_1.2-1_armhf.deb

यदि सब कुछ ठीक रहा तो आपको रीडर में प्लग इन करने, रीबूट करने और फिर एंटर करने में सक्षम होना चाहिए

एक्सप्लोरनएफसी-बेसिक

यदि आप पाठक के पास एनएफसी चिप से संपर्क करते हैं तो उसे अब चिप से जानकारी का एक गुच्छा प्रदर्शित करना चाहिए (अन्य बातों के अलावा, इसकी आईडी)

चरण 5: नोड स्थापित करें और प्रोजेक्ट बनाएं

इसके बाद, हम अपना ऐप लिखने के लिए रास्पबेरी पर NodeJS इंस्टॉल करेंगे।

हम नोडज स्थापित करना चाहते हैं लेकिन डिफ़ॉल्ट रिपॉजिटरी का संस्करण वास्तव में पुराना है, इसलिए आपको पहले चरण से गुजरना होगा: कमांड लाइन इंटरफेस में, टाइप करें

कर्ल-एसएल https://deb.nodesource.com/setup_8.x | सुडो-ई बैश -

फिर आप टाइप कर सकते हैं

सुडो उपयुक्त नोडज स्थापित करें

उपलब्ध नोडज और एनपीएम के नवीनतम संस्करण को स्थापित करने के लिए।

कोडी को नोडज के भीतर से नियंत्रित करने के लिए, हम कोडी-डब्ल्यूएस नामक एक एनपीएम पैकेज का उपयोग करने जा रहे हैं।

आइए एक नया प्रोजेक्ट बनाकर शुरू करें: बस कमांड टाइप करें

npm init

आपसे कई प्रश्न पूछे जाएंगे: उनमें से अधिकांश के लिए आप डिफ़ॉल्ट छोड़ सकते हैं, बस अपने ऐप के लिए एक नाम चुनें और अंत में अपना नाम दर्ज करें। जब शुरुआती बिंदु के बारे में पूछा जाए तो बस index.js छोड़ दें

यह एक package.json फ़ाइल बनाएगा जो आपके पैकेज की विशेषताओं, जैसे कि इसकी निर्भरता का योग करेगी।

अब आप प्रवेश कर सकते हैं

सुडो एनपीएम कोडी-डब्ल्यूएस स्थापित करें सुडो एनपीएम जेसनफाइल स्थापित करेंसुडो एनपीएम क्रोनसुडो एनपीएम स्थापित करें चाइल्ड_प्रोसेस स्थापित करें

यदि आप उसके बाद package.json खोलते हैं, तो आप देखेंगे कि उन सभी पैकेजों को निर्भरता में जोड़ा गया था।

चरण 6: कोड, समझाया गया

कोड, समझाया गया
कोड, समझाया गया

इस चरण के साथ ऐप के लिए कोड संलग्न है।

मैंने उचित मात्रा में लॉगिंग छोड़ी है जिसे स्क्रिप्ट को समझने के लिए असम्बद्ध किया जा सकता है लेकिन एट इसे एक साथ तोड़ देता है।

आप देखेंगे कि घोषित किए गए सभी कार्यों के बावजूद, कोड केवल कुछ चीजें पहले ही करता है:

कोडी ('लोकलहोस्ट', 9090)। तब (फ़ंक्शन (कनेक्शन) {

स्क्रिप्ट OSMC JSON-RPC API से कनेक्ट करने का प्रयास करती है। एक बार जब यह सफल हो जाता है (और केवल तभी), यह बाकी फाइल के साथ चलता है।

यदि किसी कारण से आप इसे अपने रास्पबेरी पाई से नहीं चला रहे हैं, तो लोकलहोस्ट को अपने आईपी पते में बदलें। यह भी सुनिश्चित करें कि OSMC (सेटिंग्स/सेवा) के अंदर सेवा सेटिंग्स में चेकबॉक्स "अन्य सिस्टम पर एप्लिकेशन से रिमोट कंट्रोल की अनुमति दें" (चित्र देखें)

बाकी फ़ाइल ज्यादातर उन कार्यों की घोषणा है जिनका हम बाद में उपयोग करेंगे: यहां से वास्तव में लॉन्च किए गए दो कार्य हैं (पंक्तियां 172/173)

स्कैनएंडसेटक्रॉन (); सुनोफॉरटैग ();

स्कैनएंडसेटक्रॉन में:

- स्कैन पिक्चर्स फ़ंक्शन लॉन्च किया गया है। इसके अंदर, हम जांचते हैं कि चर "myPicturedirectory", जो हमारे चित्रों के लिए पथ धारण करेगा, खाली है। यदि ऐसा है, तो हम OSMC से हमें वह सभी स्रोत देने के लिए कहते हैं जो उसके पास चित्र सामग्री के लिए है (getPictureDirectory फ़ंक्शन के अंदर, पंक्ति 11):

var piclist = कनेक्शन की प्रतीक्षा करें। फ़ाइलें। GetSources ("चित्र");

ओएसएमसी हमें बदले में एक सरणी देता है: प्रत्येक आइटम के लिए, हम जांचते हैं कि स्रोत नाम में "माई" शामिल है या नहीं: यदि ऐसा है तो हम इसे अपने चित्र स्रोत (पंक्ति 16 और निम्नलिखित) के रूप में संग्रहीत करते हैं। यह वह जगह है जहां आप स्ट्रिंग को "माई" से बदलना चाहेंगे जो आपने पहले अपने चित्र स्रोत के नाम के रूप में दर्ज किया था

if(piclist.sources.label.includes("My")) { कंसोल.लॉग(">>> निर्देशिका मिली "+ piclist.sources.file); myPicturedirectory = piclist.sources.file; }

अब जब हमारे पास स्रोत का पथ है (अनिवार्य रूप से हमारे एल्बम का रूट फ़ोल्डर), तो हम OSMC को इसे स्कैन करने के लिए कहते हैं और प्रत्येक फ़ोल्डर के लिए एल्बम_निर्देशिका नामक सरणी में पथ जोड़ते हैं (यदि यह पहले से नहीं है)। चूंकि यह फ़ंक्शन हर एक्स सेकंड में चलाया जाएगा, हम जांचते हैं कि निर्देशिका पहले से ही सूची में नहीं है, एनएफसी आईडी के साथ एक खाली स्ट्रिंग पर सेट है - इस तरह, आपके द्वारा अपने चित्रों में जोड़ा जाने वाला प्रत्येक नया फ़ोल्डर स्वचालित रूप से होगा जोड़ा - लाइन 46

के लिए (var j = 0; j< directory.length; j++) {if(directories[j].filetype.includes("directory")) {if(searchDirectory(directories[j].file, album_directories)) { कंसोल. लॉग (निर्देशिका [जे]। फ़ाइल + "पहले से ही वहाँ"); } और { कंसोल.लॉग (">> डीआईआर जोड़ना" + निर्देशिका [जे]। फ़ाइल); album_directories.push({directory:directories[j].file, nfc:""}); } }}

अंत में, हम एल्बम_निर्देशिका सरणी को पाई पर एक जोंस फ़ाइल में सहेजते हैं, जिसे हम हर बार फ़ंक्शन निष्पादित होने पर लोड करने का प्रयास करते हैं: यह स्कैनएंडसेटक्रॉन फ़ंक्शन के अंत में होता है जहां हम अपने फ़ंक्शन को सुनिश्चित करने के लिए एक क्रोन-जैसे पैकेज का उपयोग करते हैं। हर 15 सेकंड।

हमारे द्वारा जेनरेट की जाने वाली JSON फ़ाइल, album_directories.json, किसी भी नोटपैड ऐप का उपयोग करके खोली जा सकती है। एक बार जब आप ऐसा कर लेते हैं, तो आपको अपने फोटो एलबम की सूची के साथ प्रस्तुत किया जाएगा, जिनमें से प्रत्येक एक खाली "nfc" फ़ील्ड के साथ होगा:

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

इस फ़ील्ड में, अब आपको उस टैग की आईडी पेस्ट करनी होगी जिसे आप इस एल्बम के साथ जोड़ना चाहते हैं। इस आईडी को प्राप्त करने के लिए, बस SW2827 फ़ोल्डर में नेविगेट करें, एक्सप्लोरनएफसी-बेसिक चलाएं और उस टैग को स्कैन करें जिसका आप उपयोग करना चाहते हैं। आपको जो आउटपुट मिलता है, उसमें बस ISO14443A UID के बगल में मान देखें। इसे उस एल्बम में कॉपी करें जिसे आप कॉन्फ़िगर करना चाहते हैं। मेरे मामले में, उदाहरण के लिए,

[{"निर्देशिका":"/home/osmc/Pictures/Mada 2016/", "nfc":"040A12EAFC3881"}, {"directory":"/home/osmc/Pictures/NewFolder/", "nfc":" "}, {"निर्देशिका":"/होम/ओएसएमसी/पिक्चर्स/टेस्ट/", "एनएफसी":""}]

अगली बार जब आप ऐप लॉन्च करेंगे तो फ़ाइल को सेव करें और इसकी सामग्री लोड हो जाएगी।

सुनने के लिए फ़ोरटैग फ़ंक्शन में, हम बस यही करते हैं: चूंकि नोडजेएस के लिए पाठक पुस्तकालय का एक समर्पित बंदरगाह प्रतीत नहीं होता है, हम पाठक के लिए बाइनरी लॉन्च करने के लिए चाइल्डप्रोसेस पर भरोसा करते हैं:

var स्पॉन = आवश्यकता ('child_process')। स्पॉन, चाइल्ड = स्पॉन ('/ usr/bin/explorenfc-basic', );

हम इस निष्पादन से आउटपुट प्राप्त करने के लिए एक इवेंटलिस्टर पर भरोसा करते हैं: बच्चे के लिए कॉलबैक के अंदर। लाइन जो हमने पहले देखी थी, "ISO14443A UID:" से शुरू होती है, क्योंकि यहीं पर हमारे द्वारा स्कैन किए गए टैग के लिए आईडी संग्रहीत होती है। एक बार जब हमें वह लाइन मिल जाती है, तो हम उसे ट्रिम कर देते हैं और आईडी को एक ऑब्जेक्ट में स्टोर कर देते हैं (जिसे आईडी कहा जाता है, कैसे मूल)।

अंत में, हम इस आईडी को उन आईडी से मिलाने का प्रयास करते हैं जो हमने ऑब्जेक्ट्स के एल्बम_डायरेक्टरीज़ एरे में दर्ज की हैं (एल्बम_डायरेक्टरीज.जेसन फ़ाइल के माध्यम से लोड)। यदि कोई मेल मिलता है, तो हम OSMC को उस विशिष्ट फ़ोल्डर के लिए एक स्लाइड शो लॉन्च करने का निर्देश देते हैं:

var nfcid = विश्लेषणऑउटपुट (डेटा); कंसोल.लॉग ("nfcid is" + nfcid.id); वर संगत एलबम = searchTag (nfcid.id, album_directories); अगर (इस टैग के लिए) { कंसोल.लॉग ("एल्बम मिला" + JSON.stringify (इस टैग के लिए) var args = [{'पथ': संबंधितalbum.directory}]; कनेक्शन। रन ('प्लेयर। ओपन', args); } सुनोफॉरटैग ();

आपने देखा कि फंक्शन के अंत में, हम कैसे फिर से सुनफोरटैग लॉन्च करते हैं? ऐप को काम करने के लिए मैंने यही एकमात्र समाधान पाया है: एक्सप्लोरनएफसी-बेसिक डिफ़ॉल्ट रूप से एक टैग की प्रतीक्षा करेगा, इसे पढ़ें, फिर बाहर निकलें। ऐप में एक निरंतर मोड है जिसे हम एक्सप्लोरनएफसी-बेसिक -के का उपयोग करके कॉल कर सकते हैं लेकिन इस मोड में, चाइल्ड_प्रोसेस कभी भी टैग सामग्री को आउटपुट नहीं करता है क्योंकि यह कभी समाप्त नहीं होता है (दूसरे शब्दों में बच्चे।) जैसा कि मुझे इस रीडर का उपयोग करने का कोई अन्य तरीका नहीं मिला है, हम यहां जो कर रहे हैं वह मूल रूप से सिंगल टैग मोड में एक्सप्लोरनएफसी-बेसिक लॉन्च कर रहा है, और जब कोई टैग पढ़ा जाता है, तो हम सुनोफोरटैग लॉन्च करते हैं और इसलिए एक्सप्लोरनएफसी-बेसिक को पुनरारंभ करते हैं।

अगर मुझे वापस जाना पड़ा (और मुझे लगता है कि मैं करूंगा), तो मैं एक एनएफसी रीडर चुनूंगा जो अधिक विकल्प प्रदान करता है: उदाहरण के लिए, एडफ्रूट (आपने देखा होगा कि मुझे उनका बहुत शौक है) में यह पाठक है https://www.adafruit.com/product/789 जो कि libnfc के साथ संगत है, जिसका मेरा मानना है कि पाठक नोड के भीतर से एक चाइल्ड प्रोसेस को कॉल करने और स्टडआउट को पार्स करने की तुलना में इंटरफ़ेस के लिए अधिक स्वच्छ होगा!

चरण 7: इसे आज़माएं

ऐप लॉन्च करने के लिए, बस उस फ़ोल्डर में नेविगेट करें और "नोड index.js" टाइप करें (या npm start क्योंकि हमने इसे पहले package.json में कॉन्फ़िगर किया है)। लॉग में आपको ऐप को OSMC/कोडी से कनेक्ट होते हुए और पहली बार स्कैन करते हुए देखना चाहिए। कुछ सेकंड के बाद फ़ाइल एल्बम_निर्देशिका.json प्रोजेक्ट निर्देशिका के अंदर बनाई जाएगी; फिर आप एनएफसी टैग आईडी दर्ज कर सकते हैं जैसा कि पहले बताया गया है और उन्हें अपने इच्छित एल्बम से संबद्ध करें।

चरण 8: स्वचालित रूप से लॉन्च करें

संक्षेप में, हमने नोड ऐप बनाया है जो (1) आपकी KODI पिक्चर लाइब्रेरी के लिए स्कैन करता है और उस फ़ोल्डर को खोजने की कोशिश करता है जहाँ आप अपने हॉलिडे पिक्चर्स स्टोर करते हैं, (2) एनसीएफ टैग्स को एक्सप्लोरनएफसी-बेसिक पर भरोसा करके सुनता है और फिर (3) इस एनएफसी आईडी से जुड़े एल्बम को लॉन्च करता है।

इस पूरी प्रक्रिया को पृष्ठभूमि में चलाने के लिए, हम PM2 का उपयोग करेंगे, जो नोड के लिए एक प्रक्रिया प्रबंधक है।

कमांड लाइन में, अपने प्रोजेक्ट्स फोल्डर (जहां आपकी index.js फाइल स्थित है) में नेविगेट करें और निम्न लाइन टाइप करें:

sudo npm pm2 -gpm2 प्रारंभ index.js. स्थापित करें

आपका ऐप अब PM2 द्वारा मॉनिटर किया जाता है और स्वचालित रूप से पुनरारंभ हो जाएगा! यह सुनिश्चित करने के लिए कि यह वास्तव में लॉन्च हुआ है, pm2 सूची टाइप करें और आपको इसे सूची में देखना चाहिए। यदि आप लॉग देखना चाहते हैं, तो बस pm2 लॉग टाइप करें।

सिफारिश की: