সুচিপত্র:

ম্যাজিকের স্পর্শে আপনার হলিডে পিকচার স্লাইডশো চালু করুন!: 9 টি ধাপ (ছবি সহ)
ম্যাজিকের স্পর্শে আপনার হলিডে পিকচার স্লাইডশো চালু করুন!: 9 টি ধাপ (ছবি সহ)

ভিডিও: ম্যাজিকের স্পর্শে আপনার হলিডে পিকচার স্লাইডশো চালু করুন!: 9 টি ধাপ (ছবি সহ)

ভিডিও: ম্যাজিকের স্পর্শে আপনার হলিডে পিকচার স্লাইডশো চালু করুন!: 9 টি ধাপ (ছবি সহ)
ভিডিও: #62.হওয়ায় তাস ভ্যানিশ করে আবার মিরাক্কেল ভাবে ফিরিয়ে আনুন😲 | Learn Double Under Cut | Jadur Pathsala 2024, জুন
Anonim
ম্যাজিকের স্পর্শে আপনার ছুটির ছবি স্লাইডশো চালু করুন!
ম্যাজিকের স্পর্শে আপনার ছুটির ছবি স্লাইডশো চালু করুন!
ম্যাজিকের স্পর্শে আপনার ছুটির ছবি স্লাইডশো চালু করুন!
ম্যাজিকের স্পর্শে আপনার ছুটির ছবি স্লাইডশো চালু করুন!

কয়েক বছর ধরে, আমি ভ্রমণের সময় আমার সাথে একটি ছোট মূর্তি নেওয়ার অভ্যাস গড়ে তুলেছি: আমি প্রায়শই একটি ছোট, ফাঁকা আর্টয় কিনে থাকি (ছবির মতো) এবং এটি আমার দেশের পতাকা এবং থিমের সাথে মেলে। আমি পরিদর্শন করছি (এই ক্ষেত্রে, সিসিলি)।

ধারণাটি হল সেই দেশ থেকে দৃশ্য বা বিখ্যাত স্মৃতিসৌধের সামনে মূর্তির ছবি তোলা: আমি কেবল স্মৃতিস্তম্ভের সাথে ছবি রাখার চেয়ে এটিকে অনেক মজার মনে করি (এর জন্য গুগল আছে এবং এটি অনেক সস্তা) কিন্তু থাকার চেয়েও সহজ আমি প্রতিটি ছবিতে থাকি (একজন ভক্ত নই, সৎ হতে)

ছবি দেখার জন্য কয়েকদিন পরে আপনি ছুটির দিনে যেসব লোকদের সাথে একত্রিত হওয়া সবসময়ই মজাদার ছিল, আমি ভেবেছিলাম এটা ভাল হবে যদি প্রতিটি মূর্তি কোনভাবে স্বয়ংক্রিয়ভাবে ছবিগুলির একটি স্লাইডশো চালু করতে পারে যার জন্য তারা তৈরি হয়েছিল ।

এই নির্দেশিকা ব্যাখ্যা করবে কিভাবে আমি এটা করেছি, NFC, একটি রাস্পবেরি পাই, নোডেজ এবং ওএসএমসি ব্যবহার করে

ধাপ 1: সমাধানের ওভারভিউ

সমাধানের ওভারভিউ
সমাধানের ওভারভিউ
সমাধানের ওভারভিউ
সমাধানের ওভারভিউ

যেহেতু পুরো সেটআপটিতে কয়েকটি জিনিস অন্তর্ভুক্ত রয়েছে, তাই এখানে যা কিছু আছে তা বোঝার জন্য কী জড়িত তা সম্পর্কে একটি সাধারণ ওভারভিউ দেওয়া হল:

হার্ডওয়্যার

- মূর্তিটি ঘরে তৈরি: যেহেতু আমি কোপেনহেগেন/অসলো/স্টকহোম/হেলসিংকিতে সপ্তাহব্যাপী ভ্রমণের মাঝামাঝি এই নির্দেশাবলী লিখছি, তাই আমি এই ভ্রমণের জন্য তৈরি করা মূর্তির কয়েকটি শট অন্তর্ভুক্ত করব

- প্রতিটি মূর্তির নিচে একটি এনএফসি চিপ আছে: আমি গোলাকার স্টিকার ব্যবহার করছি যা আমি প্রতিটি মূর্তির নিচে ফিট করতে পারি কিন্তু আপনি অন্য কোন ফর্ম ফ্যাক্টর ব্যবহার করতে পারেন - শুধু নিশ্চিত করুন যে আপনি যে চিপ ব্যবহার করেন তা আপনার পাঠকের সাথে সামঞ্জস্যপূর্ণ

- ছবিগুলি প্রদর্শনের জন্য, আমি OSMC ইনস্টল করা একটি রাস্পবেরি পাই ব্যবহার করব: এটি টিভি শো এবং চলচ্চিত্রের জন্য আমার পছন্দের মিডিয়া প্লেয়ার তাই এটি ইতিমধ্যে আমার টিভির সাথে সংযুক্ত

- রাস্পবেরি পাই এনএফসি ট্যাগ পড়ার জন্য, আমি একটি এনএফসি রিডার যোগ করেছি - আমি যেটি ব্যবহার করেছি তা হল এনএক্সপি থেকে এক্সপ্লোর -এনএফসি, অনেক ওয়েবসাইটে পাওয়া যায়: এটি পাইতে প্লাগ করে এবং shাল হিসাবে কাজ করে

সফটওয়্যার

রাস্পবেরি পাই -তে, একটি NodeJS স্ক্রিপ্ট একটি NFC ট্যাগ পড়ার জন্য অপেক্ষা করে: একবার এটি হয়ে গেলে, স্ক্রিপ্টটি OSMC এর ছবির উৎস থেকে প্রতিটি ফোল্ডারের সাথে একটি মান/জোড়া তালিকার সাথে তার আইডি পরীক্ষা করে এবং সংশ্লিষ্ট NFC আইডি দ্বারা কনফিগার করা হয় ব্যবহারকারী.

যখন ট্যাগটি পড়া হয়, যদি আইডি তালিকায় থাকে, নোড স্ক্রিপ্ট OSMC কে এই নির্দিষ্ট ফোল্ডারের জন্য স্লাইডশো চালু করতে বলে। সেই তালিকা তৈরি/কনফিগার করার জন্য, একই NodeJS স্ক্রিপ্ট প্রতি 5 মিনিটে একটি স্ক্যানিং ফাংশন চালু করে: এটি ওএসএমসিতে "পিকচারস" সোর্সের ভিতরে প্রতিটি ডিরেক্টরির জন্য স্ক্যান করে (কোডি অফার করা JSON-RPC API ব্যবহার করে) এবং এটি ডিস্কে সংরক্ষিত তালিকায় যোগ করে। এই পাঠ্য ফাইলটি সরাসরি সম্পাদনা করে, ব্যবহারকারী প্রতিটি অ্যালবামের জন্য সংশ্লিষ্ট NFC আইডি যুক্ত করতে সক্ষম হয়।

ধাপ 2: মূর্তি তৈরি করা

মূর্তি তৈরি করা
মূর্তি তৈরি করা
মূর্তি তৈরি করা
মূর্তি তৈরি করা
মূর্তি তৈরি করা
মূর্তি তৈরি করা
মূর্তি তৈরি করা
মূর্তি তৈরি করা

আপনি আপনার মূর্তির জন্য আপনার পছন্দসই কিছু ব্যবহার করতে পারেন: আমি সেই ভিনাইল আর্ট খেলনাগুলি ব্যবহার করতে পছন্দ করি কারণ সেগুলি - তুলনামূলকভাবে - এমনকি আমার মতো কারও জন্য আঁকা সহজ যারা আঁকতে পছন্দ করে না এবং চারপাশে বহন করা বেশ সহজ। আমি তাদের ফাঁকা, DIY সংস্করণে অর্ডার করি, ছোট আকারে তারা এটি আসে এবং পোসকা মার্কার ব্যবহার করে তাদের উপর আঁকা। এই ভ্রমণের জন্য আমি যেটি তৈরি করেছি তা এখানে আপনি দেখতে পাচ্ছেন, যে চারটি দেশের পতাকা আমরা পরিদর্শন করেছি - সেগুলো আমার জন্য যথেষ্ট একই রকম হয়েছে যে আমি তাদের একসাথে একত্রিত করতে পারি। যতক্ষণ না আপনি পরেরটি আঁকার আগে একেকটি শুকিয়ে যেতে পারেন ততক্ষণ আপনি বেশ কয়েকটি পেইন্ট ব্যবহার করতে পারেন। আমি পেইন্টিং শেষ করার পরে, আমি কয়েক মিনিটের জন্য পেইন্টে একটি তাপ বন্দুক ব্যবহার করতে পছন্দ করি, কারণ আমি পড়েছি যে এটি আসলে তাপ যা পোসকা পেইন্ট সেটকে সাহায্য করে।

শেষ ছবিতে আপনি Sven দেখতে পারেন - আমি সবসময় তাদের নাম দিই - একটি দীর্ঘ সকালে পরে অসলোতে বিরতি। তার আসল খেলনা থেকে মাথা নেই, যেহেতু আমি চলে যাওয়ার এক মিনিট আগে আমি গোলমাল করতে পেরেছিলাম: তার আগের মাথার ব্যবহার করার জন্য আমাকে আগের খেলনাটি ভেঙে ফেলতে হয়েছিল। আমি বলতে পারি না যে এর আগে কখনও ঘটেনি …

ধাপ 3: OSMC ইনস্টল করুন

OSMC ইনস্টল করুন
OSMC ইনস্টল করুন

রাস্পবেরি পাই এর জন্য মাইক্রো এসডি কার্ডে ওএসএমসি ইনস্টল করা আমার প্রথম কাজ: আমাদের সেটআপে, এটি আপনার ছবি দেখার জন্য মিডিয়া প্লেয়ার হিসেবে কাজ করবে। আমি এই দিকটি নিয়ে খুব বিস্তারিতভাবে যাব না কারণ এটি মোটামুটি ভালভাবে নথিভুক্ত (যদি আপনার সাহায্যের প্রয়োজন হয় তবে কয়েকটি নির্দেশিকা পাওয়া যায়)। শুধু আপনার কম্পিউটারে ইনস্টলার ডাউনলোড করুন এবং নির্দেশাবলী অনুসরণ করুন। একবার আমার কাজ শেষ হয়ে গেলে, আমি কেবল একটি কীবোর্ড এবং একটি মাউস প্লাগ করেছি এবং টিভিতে HDMI প্লাগ করেছি এবং টাইমজোন সেট আপ করার জন্য সেটআপ উইজার্ড অনুসরণ করেছি।

অবশেষে, আমি উৎসে আমার ছবিগুলি সঞ্চয় করার জন্য ডিরেক্টরি যোগ করেছি: আমার ক্ষেত্রে সেগুলি একই নেটওয়ার্কে একটি নির্দিষ্ট আইপি সহ একটি NAS এ সংরক্ষণ করা হয়, তবে আপনি সেগুলি একটি USB ড্রাইভে বা হোম ফোল্ডারেও সংরক্ষণ করতে পারেন, যদি আপনার মাইক্রো এসডি যথেষ্ট বড় হয়

সোর্স যোগ করার সময়, আপনাকে এর জন্য একটি নাম লিখতে বলা হবে: আপনি ডিফল্ট ছেড়ে দিতে পারেন বা এটি পরিবর্তন করতে পারেন কিন্তু এটি লিখতে ভুলবেন না কারণ আমাদের পরে এটির প্রয়োজন হবে। আমার ক্ষেত্রে আমি এটাকে "MyPictures" বলেছি

আপনার এখন যোগ করা ডিরেক্টরিটির বিষয়বস্তু দেখতে হবে এবং আপনার ছবিগুলি ব্রাউজ করতে হবে: আমার ক্ষেত্রে, আমার প্রতিটি ভ্রমণের জন্য একটি সাব-ডিরেক্টরি রয়েছে।

অভিনন্দন, আপনার কাছে এখন আপনার ছবি সহ একটি মিডিয়া সেন্টার রয়েছে এবং একটি নির্দিষ্ট ফোল্ডারের জন্য একটি স্লাইডশো চালু করতে পারেন (বোনাস হিসাবে, আপনি এটি আপনার ভিডিও বা সঙ্গীত চালাতেও ব্যবহার করতে পারেন)

ধাপ 4: পাঠক কনফিগার করুন

বাকি নির্দেশের জন্য, আমরা SSH এর উপর কমান্ড লাইন ব্যবহার করে Pi এর সাথে সংযোগ স্থাপন করব। এটি করার জন্য, কেবল একটি ইথারনেট কেবল ব্যবহার করে আপনার নেটওয়ার্কের সাথে পাই সংযুক্ত করুন এবং পাইয়ের সাথে সংযোগ স্থাপনের জন্য টার্মিনাল বা একটি ডেডিকেটেড সটওয়্যার ব্যবহার করুন। ম্যাক ওএস এবং লিনাক্সে, কমান্ডটি হল

ssh [email protected]

আপনাকে একটি পাসওয়ার্ড লিখতে বলা হবে, এটি আবার osmc

পাঠক কাজ করতে সক্ষম হওয়ার জন্য, এসপিআই সক্ষম করতে হবে: রাস্পবিয়ানের মতো বেশিরভাগ বিতরণে এটি রাস্পি-কনফিগ ব্যবহার করে করা যেতে পারে, একটি কনফিগ টুল যা আপনাকে কিছু কনফিগারেশন মান পরিবর্তন করতে দেয়।

ওএসএমসি, তবে এটি ব্যবহার করার সময় আপনার নিজের নিরাপত্তার জন্য রাস্পি-কনফিগ অন্তর্ভুক্ত করে না। পরিবর্তে, রাস্পবেরি বন্ধ করুন, মাইক্রো এসডি কার্ড বের করুন এবং কেবল আপনার কম্পিউটারে মাউন্ট করুন: "বুট" পার্টিশনটি এখন দৃশ্যমান হওয়া উচিত। সেখানে, ভলিউমের মূলে, আপনি "config.txt" নামে একটি ফাইল দেখতে পাবেন - শুধু এটি খুলুন এবং শেষে এই লাইনটি যোগ করুন:

"dtparam = spi = on"

আপনি এখন ফাইলটি সংরক্ষণ করতে পারেন, রিবুট করুন এবং SPI সক্ষম করা উচিত।

এর পরে, আপনাকে সংযুক্ত জিপ ফাইলটি ডাউনলোড করতে হবে এবং এটি রাস্পবেরিতে আনজিপ করতে হবে - আমি একটি প্রকল্পের ফোল্ডার তৈরি করতে এবং সেখানে এটি আনজিপ করার পরামর্শ দিচ্ছি। এটি করার জন্য, আপনি হয় SSH এর মাধ্যমে FTP ব্যবহার করে রাস্পবেরির সাথে সংযোগ করতে পারেন (আমি এটি করার জন্য সাইবারডাক ব্যবহার করি) অথবা একটি USB ড্রাইভে ফাইলটি রাখুন এবং Kodi এর ফাইল ম্যানেজারকে রাস্পবেরি পাইতে অনুলিপি করতে ব্যবহার করুন।

যেভাবেই হোক, একবার আপনি পিপিতে জিপ ফাইলটি অনুলিপি করার পরে, আপনি যে ফোল্ডারে এটি অনুলিপি করেছেন সেটি নেভিগেট করতে পারেন এবং এটি আনজিপ করতে পারেন, ফলস্বরূপ ফোল্ডারে যান এবং প্যাকেজটি ইনস্টল করুন:

আনজিপ SW2827.zipcd SW2827sudo dpkg -i libneardal0_0.14.3-1_armhf.deb neard-explorenfc_1.2-1_armhf.deb

যদি সবকিছু ঠিক থাকে তবে আপনার পাঠককে প্লাগ ইন করতে সক্ষম হওয়া উচিত, পুনরায় বুট করুন এবং তারপরে প্রবেশ করুন

explorenfc- মৌলিক

আপনি যদি পাঠকের কাছে একটি NFC চিপের সাথে যোগাযোগ করেন তবে এটি এখন চিপ থেকে একটি গুচ্ছ তথ্য প্রদর্শন করবে (অন্যান্য জিনিসের মধ্যে, এর আইডি)

ধাপ 5: নোড ইনস্টল করুন এবং প্রকল্প তৈরি করুন

এরপরে, আমরা আমাদের অ্যাপটি লিখতে রাস্পবেরিতে নোডজেএস ইনস্টল করব।

আমরা nodejs ইনস্টল করতে চাই কিন্তু ডিফল্ট সংগ্রহস্থলের সংস্করণ সত্যিই পুরানো, তাই আপনাকে আগে একটি প্রথম ধাপ অতিক্রম করতে হবে: কমান্ড লাইন ইন্টারফেসে, টাইপ করুন

কার্ল -এসএল https://deb.nodesource.com/setup_8.x | সুডো -ই বাশ -

তারপর আপনি টাইপ করতে পারেন

sudo apt nodejs ইনস্টল করুন

Nodejs এর সর্বশেষ সংস্করণ এবং npm উপলব্ধ ইনস্টল করতে।

Nodejs এর মধ্যে থেকে KODI কে নিয়ন্ত্রণ করার জন্য, আমরা kodi-ws নামে একটি npm প্যাকেজ ব্যবহার করতে যাচ্ছি।

একটি নতুন প্রকল্প তৈরি করে শুরু করা যাক: শুধু কমান্ড টাইপ করুন

npm init

আপনাকে বেশ কয়েকটি প্রশ্ন জিজ্ঞাসা করা হবে: তাদের বেশিরভাগের জন্য আপনি ডিফল্ট ছেড়ে যেতে পারেন, কেবল আপনার অ্যাপের জন্য একটি নাম চয়ন করুন এবং শেষে আপনার নিজের নাম লিখুন। প্রারম্ভিক বিন্দুর জন্য জিজ্ঞাসা করা হলে শুধু index.js ছেড়ে দিন

এটি একটি প্যাকেজ.জসন ফাইল তৈরি করবে যা আপনার প্যাকেজের বৈশিষ্ট্যগুলি যেমন তার নির্ভরতাগুলির সমষ্টি করবে।

আপনি এখন প্রবেশ করতে পারেন

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

যদি আপনি এর পরে package.json খুলেন, আপনি লক্ষ্য করবেন যে সেই সমস্ত প্যাকেজ নির্ভরতার সাথে যুক্ত করা হয়েছিল।

ধাপ 6: কোড, ব্যাখ্যা

কোড, ব্যাখ্যা
কোড, ব্যাখ্যা

এই ধাপের সাথে সংযুক্ত হল অ্যাপটির কোড।

আমি লগিং এর একটি ন্যায্য পরিমাণ রেখেছি যা স্ক্রিপ্টটি বোঝার জন্য অসম্পূর্ণ হতে পারে কিন্তু এটি একসাথে ভেঙে ফেলে।

আপনি লক্ষ্য করবেন যে সমস্ত ফাংশন ঘোষিত হওয়া সত্ত্বেও, কোডটি প্রথমে কয়েকটি কাজ করে:

কোডি ('লোকালহোস্ট', 9090)। তারপর (ফাংশন (সংযোগ) {

স্ক্রিপ্টটি OSMC JSON-RPC API- এর সাথে সংযোগ করার চেষ্টা করে। একবার এটি সফল হলে (এবং কেবল তখনই), এটি বাকি ফাইলের সাথে চলে।

যদি কোনও কারণে আপনি আপনার রাস্পবেরি পাই থেকে এটি চালাচ্ছেন না, আপনার আইপি ঠিকানায় লোকালহোস্ট পরিবর্তন করুন। এছাড়াও নিশ্চিত করুন যে OSMC (সেটিংস/পরিষেবাদি) এর ভিতরে পরিষেবা সেটিংসে "অন্যান্য সিস্টেমে অ্যাপ্লিকেশন থেকে রিমোট কন্ট্রোলের অনুমতি দিন" চেকবক্স (ছবি দেখুন)

ফাইলের বাকি অংশ বেশিরভাগ ফাংশনের ঘোষণা যা আমরা পরে ব্যবহার করব: যে দুটি ফাংশন আসলে এখান থেকে চালু করা হয়েছে সেগুলো হল (লাইন 172/173)

scanAndSetCron (); listenForTag ();

ScanAndSetCron- এ:

- স্ক্যান পিকচার ফাংশন চালু করা হয়েছে। এর ভিতরে, আমরা যাচাই করি যে "mypicturedirectory" ভেরিয়েবল, যা আমাদের ছবির পথ ধরে রাখবে, তা খালি কিনা। যদি তা হয়, আমরা OSMC কে ছবির সমস্ত বিষয়বস্তু (getPictureDirectory ফাংশনের ভিতরে, লাইন 11) দিতে বলি:

var piclist = অপেক্ষার সংযোগ। Files. GetSources ("ছবি");

ওএসএমসি আমাদের বিনিময়ে একটি অ্যারে দেয়: প্রতিটি আইটেমের জন্য, আমরা উৎসের নাম "আমার" অন্তর্ভুক্ত কিনা তা পরীক্ষা করি: যদি এমন হয় তবে আমরা এটিকে আমাদের ছবির উত্স হিসাবে সংরক্ষণ করি (লাইন 16 এবং নিম্নলিখিত)। এখানেই আপনি "আমার" থেকে স্ট্রিংটি পরিবর্তন করতে চান যা আপনি আপনার ছবির উৎসের নাম হিসাবে পূর্বে লিখেছেন

যদি (piclist.sources .label.includes ("My")) {console.log (">>> ডিরেক্টরি পাওয়া গেছে" + piclist.sources .file); mypicturedirectory = piclist.sources .file; }

এখন যেহেতু আমাদের উৎসের পথ আছে (মূলত আমাদের অ্যালবামের মূল ফোল্ডার), আমরা ওএসএমসিকে এটি স্ক্যান করতে বলি এবং প্রতিটি ফোল্ডারের জন্য অ্যালবাম_ডাইরেক্টরি নামে একটি অ্যারেতে পাথ যোগ করতে বলি (যদি এটি ইতিমধ্যে না থাকে)। যেহেতু এই ফাংশনটি প্রতি X সেকেন্ডে চালানো হবে, তাই আমরা যাচাই করে দেখি যে ডিরেক্টরিটি যোগ করার আগে তালিকাটিতে নেই, NFC আইডি একটি খালি স্ট্রিং -এ সেট করা আছে - এইভাবে, আপনার ছবিতে যোগ করা প্রতিটি নতুন ফোল্ডার স্বয়ংক্রিয়ভাবে হবে যোগ করা হয়েছে - লাইন 46

(var j = 0; j <directories.length; j ++) {if (ডিরেক্টরি [j].filetype.includes ("ডিরেক্টরি")) {যদি (searchDirectory (ডিরেক্টরি [j].file, album_directories)) {কনসোল লগ (ডিরেক্টরি [j]। ফাইল +"ইতিমধ্যে সেখানে"); } অন্যথায় {console.log (">> dir যোগ করা হচ্ছে" + ডিরেক্টরি [j].file); album_directories.push ({ডিরেক্টরি: ডিরেক্টরি [j]। ফাইল, nfc: ""}); }}}

শেষে, আমরা অ্যালবাম_ডাইরেক্টরি অ্যারে পাই-তে একটি জসন ফাইলে সংরক্ষণ করি, যা আমরা যখনই ফাংশনটি সম্পাদন করি তখন লোড করার চেষ্টা করি: স্ক্যানএন্ডসেটক্রন ফাংশনের শেষে এটি ঘটে যেখানে আমরা আমাদের ফাংশন চালানোর জন্য একটি ক্রন-এর মতো প্যাকেজ ব্যবহার করি প্রতি 15 সেকেন্ড।

আমরা যে JSON ফাইল তৈরি করি, album_directories.json, যে কোনো নোটপ্যাড অ্যাপ ব্যবহার করে খোলা যায়। একবার আপনি তা করলে, আপনাকে আপনার ছবির অ্যালবামগুলির তালিকা উপস্থাপন করা হবে, যার প্রত্যেকটি একটি খালি "এনএফসি" ক্ষেত্র সহ:

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

এই ক্ষেত্রটিতে, এখন আপনাকে এই অ্যালবামের সাথে যে ট্যাগটি সংযুক্ত করতে চান তার আইডি পেস্ট করতে হবে। এই আইডি পেতে, শুধু SW2827 ফোল্ডারে নেভিগেট করুন, explorenfc-basic চালান এবং আপনি যে ট্যাগটি ব্যবহার করতে চান তা স্ক্যান করুন। আপনি যে আউটপুটটি পান, কেবল ISO14443A UID এর পাশের মানটি দেখুন। আপনি যে অ্যালবামটি কনফিগার করতে চান তাতে এটি অনুলিপি করুন। আমার ক্ষেত্রে, উদাহরণস্বরূপ,

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

ফাইলটি সংরক্ষণ করুন এবং এর সামগ্রী লোড করা হবে যখন আপনি পরের বার অ্যাপটি চালু করবেন।

ListenForTag ফাংশনে, আমরা ঠিক তাই করি: যেহেতু NodeJS- এর জন্য পাঠক লাইব্রেরির একটি নিবেদিত পোর্ট বলে মনে হয় না, তাই আমরা পাঠকের জন্য বাইনারি চালু করার জন্য শিশু প্রক্রিয়ায় নির্ভর করি:

var spawn = need ('child_process')। spawn, child = spawn ('/usr/bin/explorenfc-basic', );

আমরা এই এক্সিকিউশন থেকে আউটপুট পাওয়ার জন্য একটি ইভেন্টলিস্টেনারের উপর নির্ভর করি: child.stdout.on ('data', function (data)) এর কলব্যাকের ভিতরে, আমরা analyseOutput ফাংশন ব্যবহার করে এই কমান্ডের আউটপুট বিশ্লেষণ করি: আমরা খুঁজছি যে লাইনটি আমরা আগে দেখেছি, "ISO14443A UID:" দিয়ে শুরু করেছি, যেহেতু সেখানেই আমরা যে ট্যাগটি স্ক্যান করেছি তার জন্য আইডি সংরক্ষণ করা হয়। একবার আমরা সেই লাইনটি খুঁজে পেলে, আমরা এটি ছাঁটাই করে এবং আইডিটিকে একটি বস্তুতে সংরক্ষণ করি (আইডি বলা হয়, কিভাবে মূল)।

অবশেষে, আমরা এই ID- কে ID_ এর সাথে মিলিয়ে দেওয়ার চেষ্টা করি যা আমরা album_directories অ্যারে অবজেক্টে প্রবেশ করেছি (album_directories.json ফাইলের মাধ্যমে লোড করা)। যদি কোন মিল পাওয়া যায়, আমরা OSMC কে সেই নির্দিষ্ট ফোল্ডারের জন্য একটি স্লাইডশো চালু করার নির্দেশ দিই:

var nfcid = analyseOutput (data); console.log ("nfcid হল" + nfcid.id); var relatedalbum = searchTag (nfcid.id, album_directories); যদি (সংশ্লিষ্ট অ্যালবাম) {console.log ("পাওয়া অ্যালবাম" + JSON.stringify (সংশ্লিষ্ট অ্যালবাম) + "এই ট্যাগের জন্য"); var args = [{'path': correspondingalbum.directory}]; connection.run ('Player. Open', args); } listenForTag ();

আপনি লক্ষ্য করেছেন কিভাবে ফাংশন শেষে, আমরা আবার listenForTag চালু করি? এটাই একমাত্র কাজ যা আমি অ্যাপটিকে কাজ করার জন্য খুঁজে পেয়েছি: explorenfc-basic will default by a tag এর জন্য অপেক্ষা করুন, এটি পড়ুন, তারপর প্রস্থান করুন। অ্যাপটির একটি ক্রমাগত মোড রয়েছে যা আমরা explorenfc -basic -k ব্যবহার করে কল করতে পারি কিন্তু এই মোডে, child_process ট্যাগের বিষয়বস্তু কখনই আউটপুট করে না কারণ এটি কখনই শেষ হয় না (অন্য কথায় child.stdout.on ('data') কখনই বহিস্কার হয় না))। যেহেতু আমি এই পাঠকটি ব্যবহার করার অন্য কোন উপায় খুঁজে পাইনি, আমরা এখানে যা করছি তা মূলত একক ট্যাগ মোডে Explorenfc- মৌলিক চালু করা, এবং যখন একটি ট্যাগ পড়া হয়, আমরা listenForTag চালু করি এবং সেইজন্য Explorenfc- মৌলিক পুনরায় চালু করি।

যদি আমাকে ফিরে যেতে হয় (এবং আমি মনে করি), আমি একটি এনএফসি রিডার বেছে নেব যা আরও বিকল্প প্রদান করে: উদাহরণস্বরূপ, অ্যাডাফ্রুট (আপনি হয়তো লক্ষ্য করেছেন আমি তাদের খুব পছন্দ করি) এই পাঠক আছে https:// www.adafruit.com/product/789 যা libnfc- এর সাথে সামঞ্জস্যপূর্ণ, আমি বিশ্বাস করি যে পাঠক নোডের ভেতর থেকে শিশু প্রক্রিয়াকে কল করার এবং স্টডআউট পার্স করার চেয়ে ইন্টারফেসে অনেক বেশি পরিষ্কার হবে!

ধাপ 7: এটি চেষ্টা করুন

অ্যাপটি চালু করার জন্য, কেবল সেই ফোল্ডারে নেভিগেট করুন এবং "নোড index.js" টাইপ করুন (অথবা npm শুরু যেহেতু আমরা এটিকে package.json এ আগে কনফিগার করেছি)। লগগুলিতে আপনার ওএসএমসি/কোডির সাথে অ্যাপটি সংযুক্ত হওয়া এবং প্রথমবার স্ক্যান করা উচিত। কয়েক সেকেন্ড পর প্রকল্প ডিরেক্টরিটির ভিতরে album_directories.json ফাইল তৈরি হবে; তারপরে আপনি আগে ব্যাখ্যা করা এনএফসি ট্যাগ আইডিগুলি প্রবেশ করতে পারেন এবং আপনি যে অ্যালবামগুলি চান তার সাথে যুক্ত করতে পারেন।

ধাপ 8: স্বয়ংক্রিয়ভাবে চালু করুন

সংক্ষেপে, আমরা নোড অ্যাপ তৈরি করেছি যা (1) আপনার KODI পিকচার লাইব্রেরির জন্য স্ক্যান করে এবং সেই ফোল্ডারটি খুঁজে বের করার চেষ্টা করে যেখানে আপনি আপনার ছুটির ছবি সংরক্ষণ করেন, (2) এক্সপ্লোরএনএফসি-বেসিকের উপর নির্ভর করে এনসিএফ ট্যাগ শোনেন এবং তারপর (3) এই এনএফসি আইডির সাথে যুক্ত অ্যালবাম চালু করেছে।

এই পুরো প্রক্রিয়াটিকে পটভূমিতে চালানোর জন্য, আমরা নোডের জন্য প্রসেস ম্যানেজার PM2 ব্যবহার করব।

কমান্ড লাইনে, আপনার প্রকল্প ফোল্ডারে নেভিগেট করুন (যেখানে আপনার index.js ফাইলটি অবস্থিত) এবং নিম্নলিখিত লাইনগুলি টাইপ করুন:

sudo npm install pm2 -gpm2 start index.js

আপনার অ্যাপটি এখন PM2 দ্বারা পর্যবেক্ষণ করা হয় এবং স্বয়ংক্রিয়ভাবে পুনরায় চালু করা হবে! এটি আসলে চালু করা হয়েছে তা নিশ্চিত করার জন্য, pm2 তালিকা টাইপ করুন এবং আপনাকে এটি তালিকায় দেখতে হবে। আপনি যদি লগ দেখতে চান, শুধু pm2 লগ টাইপ করুন।

প্রস্তাবিত: