সুচিপত্র:

রাস্পবেরি পাই প্রকল্পে কাস্টম আলেক্সা নিয়ন্ত্রণ যোগ করুন: 5 টি ধাপ
রাস্পবেরি পাই প্রকল্পে কাস্টম আলেক্সা নিয়ন্ত্রণ যোগ করুন: 5 টি ধাপ

ভিডিও: রাস্পবেরি পাই প্রকল্পে কাস্টম আলেক্সা নিয়ন্ত্রণ যোগ করুন: 5 টি ধাপ

ভিডিও: রাস্পবেরি পাই প্রকল্পে কাস্টম আলেক্সা নিয়ন্ত্রণ যোগ করুন: 5 টি ধাপ
ভিডিও: Проектирование компьютера мечты. Часть 1 2024, জুলাই
Anonim
রাস্পবেরি পাই প্রকল্পে কাস্টম আলেক্সা নিয়ন্ত্রণ যুক্ত করুন
রাস্পবেরি পাই প্রকল্পে কাস্টম আলেক্সা নিয়ন্ত্রণ যুক্ত করুন

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

আমি প্রাথমিকভাবে আমার রাস্পবেরি পাইকে আলেক্সার সাথে ভয়েস-নিয়ন্ত্রিত করার জন্য একটি প্রকল্প শুরু করেছি যাতে এটি একটি নির্দিষ্ট তাপমাত্রায় কেটলিতে জল গরম করতে পারে। যদিও আমি যে মিথস্ক্রিয়াটি চেয়েছিলাম তা বেশ সহজ ছিল (আলেক্সা থেকে রাস্পবেরি পাইতে একটি নম্বর পাস করুন), বিদ্যমান টিউটোরিয়ালগুলি থেকে সেই অবস্থায় পৌঁছাতে অনেক কাজ লেগেছে। আমি আশা করি এই টিউটোরিয়াল অন্যদের জন্য সেই প্রক্রিয়াটিকে যত দ্রুত সম্ভব করে তুলবে।

আমার উদাহরণে, আমি রাস্পবিয়ানের সাথে রাস্পবেরি পাই জিরো ডব্লিউ দিয়ে শুরু করি। আমার পাইতে আমার একটি পাইথন 3 প্রোগ্রাম রয়েছে যা একটি এসপিআই ডিসপ্লেতে পাঠ্য লিখতে সক্ষম এবং আমার কাছে একটি থার্মোমিটার প্রোব রয়েছে যা আমি পড়তে পারি। আপনার জন্য, এই প্রোগ্রামটি প্রায় কিছু হতে পারে, কিন্তু ধারণা হল যে আপনার কিছু ইনপুট ডিভাইস থাকতে পারে যা আপনি আলেক্সা এবং/অথবা কিছু আউটপুট ডিভাইসের মাধ্যমে পড়তে চান যা আপনি অ্যালেক্সা ব্যবহার করে নিয়ন্ত্রণ করতে চান।

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

আমি: "আলেক্সা, আমার গ্যাজেটকে সেন্সর 1 এ তাপমাত্রা পরীক্ষা করতে বলুন।"

আলেক্সার প্রতিক্রিয়া: "প্রোব 72.31 ডিগ্রী পড়ে।"

অথবা

আমি: "আলেক্সা, আমার গ্যাজেটকে বলো জর্জ ওয়াশিংটন লিখতে"

প্রতিক্রিয়া: আমার রাস্পবেরি পাই এর সাথে সংযুক্ত ডিসপ্লেতে এখন লেখা আছে "জর্জ ওয়াশিংটন"

পরের অংশে, আমি এই কাজটি করার জন্য পর্দার আড়ালে কী ঘটতে হবে তা বর্ণনা করব। আপনি যদি কেবল আপনার প্রকল্পে এটি কাজ করতে চান এবং এটি কীভাবে কাজ করে তা যত্নবান না হন তবে নির্দ্বিধায় এটি এড়িয়ে যান (যদিও কিছু ভুল হলে এটি আরও কঠিন হতে পারে)।

ধাপ 1: পটভূমি

পটভূমি
পটভূমি

এই ছবিতে (ক্রেডিট: https://developer.amazon.com/en-US/docs/alexa/alex… আমরা অ্যালেক্সা গ্যাজেটগুলির সাধারণ স্থাপত্য দেখতে পারি।

যখন আপনি আপনার ইকো ডিভাইসে কিছু বলেন, এটি অলেক্সা ক্লাউডে অডিও পাঠায়, যেখানে এটি প্রক্রিয়া করা হয় এবং যেখানে আপনাকে সাড়া দেওয়ার জন্য একটি প্রতিক্রিয়া তৈরি করা হয়। আবহাওয়া কেমন তা যখন আপনি জিজ্ঞাসা করেন, তখন কেবল যোগাযোগের ক্ষেত্রে এই দুটি। এখন ধরুন আপনি রাস্পবেরি পাইতে আপনার একটি ছোট প্রকল্পে ভয়েস নিয়ন্ত্রণ যুক্ত করতে চান। জাহাজে সবকিছু প্রক্রিয়াকরণের জন্য গুরুত্বপূর্ণ হার্ডওয়্যার এবং একটি খুব অত্যাধুনিক কোডবেস প্রয়োজন হবে যা কিছু চলতে পারে। একটি ভাল সমাধান হবে অ্যালেক্সা ক্লাউডকে কাজে লাগানো, যা অত্যন্ত পরিশীলিত এবং জটিল বক্তৃতা প্যাটার্নগুলি পরিচালনা করতে খুব ভাল হয়েছে। আলেক্সা গ্যাজেটগুলি আপনাকে এটি করার জন্য একটি ভাল উপায় প্রদান করে।

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

অ্যালেক্সা ডেভেলপারদের তাদের নিজস্ব কাস্টম দক্ষতা তৈরি করার অনুমতি দেয়, যা তাদের সমস্ত ইকো ডিভাইসে ব্যবহারের জন্য তাদের নিজস্ব মিথস্ক্রিয়া এবং আচরণ ডিজাইন করতে দেয়। উদাহরণস্বরূপ, একজন ডেভেলপার আপনাকে মার্কিন যুক্তরাষ্ট্রে দুটি বিমানবন্দরের মধ্যে দূরত্ব জানাতে একটি কাস্টম দক্ষতা তৈরি করতে পারে। একজন ব্যবহারকারী বলবেন: "আলেক্সা, আমার কাস্টম দূরত্ব ক্যালকুলেটরকে জিজ্ঞাসা করুন LAX এবং JFK এর মধ্যে দূরত্ব কত" এবং এটি "2475 মাইল" দিয়ে সাড়া দিতে পারে। এটা কিভাবে কাজ করে? যখন একজন ডেভেলপার একটি কাস্টম দক্ষতা তৈরি করে, তখন তারা "স্লট" ধারণকারী "নমুনা উচ্চারণ" সহ "কাস্টম ইন্টেন্ট" কাকে বলে তা সংজ্ঞায়িত করে। উদাহরণস্বরূপ, এই দক্ষতায় আমার দুটি পয়েন্টের মধ্যে দূরত্ব গণনা করার অভিপ্রায় "calc_dist" থাকতে পারে। একটি নমুনা উচ্চারণ হবে "{slot1} এবং {slot2} এর মধ্যে দূরত্ব কত" অথবা "{slot1} এবং {slot2} এর মধ্যে কতটা দূরত্ব"। বন্ধনীতে দেখানো স্লটগুলির নির্দিষ্ট প্রকার রয়েছে। এই ক্ষেত্রে এই ধরনের বিমানবন্দর কোড যেমন LAX, JFK, BOS, ATL হবে। যখন একজন ব্যবহারকারী কাস্টম দক্ষতার জন্য জিজ্ঞাসা করেন, অ্যালেক্সা ক্লাউড সরবরাহকৃত নমুনা উচ্চারণগুলি ব্যবহার করে ব্যবহারকারী একটি কাস্টম অভিপ্রায়কে যা বলে তা মিলানোর চেষ্টা করে এবং সেই অনুরোধের জন্য বৈধ স্লট মানগুলি খুঁজে বের করার চেষ্টা করে। এই উদাহরণে, এটি দেখতে পাবে যে ব্যবহারকারী "calc_dist" অভিপ্রায় চেয়েছিলেন এবং স্লট 1 হল LAX এবং স্লট 2 হল JFK। এই মুহুর্তে, আলেক্সা ক্লাউড কাজটি বিকাশকারীর নিজস্ব কোডে চলে যায়। মূলত, এটি ডেভেলপারদের কোডকে বলে যে এটি কী অভিপ্রায় পেয়েছে এবং অন্যান্য বিবরণের মধ্যে সমস্ত স্লটের মানগুলি কী ছিল।

ডেভেলপার সিদ্ধান্ত নেয় যে তাদের কোড কোথায় থাকে, কিন্তু একটি খুব জনপ্রিয় বিকল্প হল AWS Lambda ফাংশন ব্যবহার করা। আপনি যদি না জানেন যে এটি কী, এটি মূলত একটি পরিষেবা যা আপনাকে যে কোডটি যেকোনো সময় চালানো যেতে পারে তা আপলোড করার অনুমতি দেয় এবং তারপরে আপনার কোডটি চালানোর জন্য আপনাকে কেবলমাত্র চার্জ করে। যদি আমরা আমাদের উদাহরণ দিয়ে চলি, ডেভেলপারের কোড একটি পাইথন ফাংশন হতে পারে যা দুটি বিমানবন্দর কোড গ্রহণ করে, তাদের অবস্থানগুলি দেখে, দূরত্ব গণনা করে এবং তারপর ব্যবহারকারীর সাথে কিছু কথা বলার জন্য আলেক্সা ক্লাউডে একটি প্রতিক্রিয়া পাঠায়। অ্যালেক্সা ক্লাউড সেই বক্তৃতা তথ্যটি ব্যবহারকারীর ডিভাইসে ফেরত পাঠাবে এবং তারা উত্তরটি পাবে।

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

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

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

পদক্ষেপ 2: আলেক্সা ভয়েস সার্ভিস ডেভেলপার কনসোলে গ্যাজেটটি নিবন্ধন করুন

নীচে প্রয়োজনীয় পদক্ষেপের বিবরণ দেওয়া হল। আমি একটি সমতুল্য ভিডিও তৈরি করেছি যা দেখায় যে এই সমস্ত পদক্ষেপগুলি কীভাবে করতে হয়। আপনি এই ধাপটি সম্পূর্ণ করতে উভয় বা উভয়ই ব্যবহার করতে পারেন।

  1. Https://developer.amazon.com/alexa/console/avs/hom…
  2. যদি আপনার ইতিমধ্যে একটি বিনামূল্যে অ্যাকাউন্ট না থাকে, তাহলে একটি করুন
  3. "পণ্য" এ ক্লিক করুন
  4. লেবেলগুলি পূরণ করুন এবং "আলেক্সা গ্যাজেট" নির্বাচন করুন
  5. বাকি ক্ষেত্রগুলির জন্য আপনি যা চান তা পূরণ করুন
  6. শেষ ক্লিক করুন

ধাপ 3: AWS Lambda ফাংশন এবং কাস্টম স্কিল তৈরি করুন

অ্যালেক্সা স্কিলস কিট ডেভেলপার কনসোলে কাস্টম স্কিল তৈরি করুন

এই টিউটোরিয়ালের কোড এখানে পাওয়া যাবে

এই ধাপটি সম্পন্ন করার আগে, আপনাকে একটি.zip ফাইল তৈরি করতে হবে যাতে AWS Lambda ফাংশনের জন্য স্থাপনার প্যাকেজটি এখানে টিউটোরিয়ালে দেখানো হয়েছে।

  1. আমার Github থেকে "lambda" ফোল্ডারটি ডাউনলোড করুন যেখানে "lambda_function.py" এবং "requirements.txt" রয়েছে
  2. টার্মিনালটি খুলুন এবং বর্তমান ডিরেক্টরিটি এই ফোল্ডারের ভিতরে পরিবর্তন করুন।
  3. নিম্নলিখিত ক্রম চালান:

pip install -r requirements.txt -t skill_env

cp lambda_function.py skill_env cd skill_env zip -r../../skill-code.zip

আপনার.zip ফাইলটি এখন সেই ডিরেক্টরিতে থাকবে যেখানে ল্যাম্বদা ফোল্ডার ছিল এবং তাকে "দক্ষতা-কোড.জিপ" বলা হবে।

AWS- এ হোস্টিংয়ের খরচ সম্পর্কে একটি নোট: এই টিউটোরিয়ালের জন্য আপনার একটি AWS অ্যাকাউন্ট (তৈরি করার জন্য বিনামূল্যে) প্রয়োজন। ল্যাম্বডা ফাংশনগুলির অর্থ খরচ হয়, তবে, এন ভার্জিনিয়া অঞ্চলে তাদের বর্তমান মূল্য 128MB মেমরির সাথে 100ms ব্যবহার করে $ 0.000000208। রেফারেন্সের জন্য, আমার দক্ষতার প্রতিটি আহ্বান এই স্তরে প্রায় 800ms ব্যবহার করে। $ 1.00USD এর একটি বিল র্যাক করতে, আপনাকে এই ফাংশনটি প্রায় 600, 000 বার আহ্বান করতে হবে যা (যদি এটি প্রতি আমন্ত্রণে 5 সেকেন্ড সময় নেয়) আপনাকে আপনার ফাংশনে কল করতে 34 দিনের বেশি সময় লাগবে। আপনি যদি আপনার দক্ষতা প্রকাশ না করেন এবং বিপুল সংখ্যক লোক এটি ব্যবহার করা শুরু না করে তবে খরচটি একটি গুরুত্বপূর্ণ সমস্যা হওয়া উচিত নয়। আপনি যদি AWS- এ বিল পাওয়ার বিষয়ে উদ্বিগ্ন হন, তাহলে ব্যবহারের অ্যালার্ম সেট করার কথা বিবেচনা করুন যা ব্যবহার করে একটি নির্দিষ্ট সীমা অতিক্রম করলে আপনাকে অবহিত করে।

নীচে প্রয়োজনীয় পদক্ষেপের বিবরণ দেওয়া হল। আমি একটি সমতুল্য ভিডিও তৈরি করেছি যা দেখায় যে এই সমস্ত পদক্ষেপগুলি কীভাবে করতে হয়। আপনি এই ধাপটি সম্পন্ন করতে উভয় বা উভয়ই ব্যবহার করতে পারেন।

  1. Https://aws.amazon.com/ এ নেভিগেট করুন এবং কনসোলে সাইন ইন করুন অথবা যদি আপনার অ্যাকাউন্ট না থাকে তবে একটি বিনামূল্যে অ্যাকাউন্ট তৈরি করুন
  2. পরিষেবাগুলির অধীনে ল্যাম্বদা অনুসন্ধান করুন এবং ক্লিক করুন
  3. "ফাংশন তৈরি করুন" এ ক্লিক করুন
  4. "স্ক্র্যাচ থেকে লেখক" নির্বাচন করুন, এটির একটি নাম দিন এবং রানটাইমের জন্য সর্বশেষ পাইথন 3 সংস্করণটি চয়ন করুন
  5. "এডিট কোড ইনলাইন" থেকে "একটি.zip ফাইল আপলোড করুন" এবং উপরে তৈরি.zip ফাইলটি নির্বাচন করুন
  6. একটি নতুন উইন্ডোতে, https://developer.amazon.com/alexa/console/ask এ যান এবং সাইন ইন করুন
  7. "দক্ষতা তৈরি করুন" এ ক্লিক করুন
  8. এটি লেবেল করুন, "কাস্টম" মডেলটি নির্বাচন করুন এবং "আপনার নিজের ব্যবস্থা করুন" এবং "দক্ষতা তৈরি করুন" এ ক্লিক করুন
  9. "শুরু থেকে শুরু করুন" ক্লিক করুন এবং "চয়ন করুন" ক্লিক করুন
  10. "অভিপ্রায়" এর অধীনে, "যোগ করুন" ক্লিক করুন
  11. "Alexa_to_pi" নামে একটি কাস্টম অভিপ্রায় তৈরি করুন এবং নমুনা উচ্চারণ হিসাবে "লিখুন {person}" পূরণ করুন
  12. "AMAZON. Person" টাইপ দিয়ে "ব্যক্তি" নামে একটি অভিপ্রায় স্লট তৈরি করুন
  13. "Pi_to_alexa" নামে একটি কাস্টম অভিপ্রায় তৈরি করুন এবং "সেন্সর থেকে তাপমাত্রা পরীক্ষা করুন {sensor_num}
  14. "AMAZON. NUMBER" টাইপ দিয়ে "sensor_num" নামে একটি ইন্টেন্ট স্লট তৈরি করুন
  15. ইন্টারফেসের অধীনে, "কাস্টম ইন্টারফেস কন্ট্রোলার" চালু করুন
  16. এন্ডপয়েন্টের অধীনে, "AWS Lambda ARN" নির্বাচন করুন এবং "আপনার দক্ষতা আইডি" অনুলিপি করুন
  17. AWS কনসোলে ফিরে যান
  18. "ট্রিগার যোগ করুন" ক্লিক করুন
  19. "অ্যালেক্সা স্কিলস কিট" নির্বাচন করুন, স্কিল আইডি যাচাইয়ের অধীনে "সক্ষম করুন" চেক করুন, আপনার কপি করা স্কিল আইডি পেস্ট করুন এবং অ্যাড -এ ক্লিক করুন
  20. উপরের ডান কোণে ল্যাম্বদা এআরএন অনুলিপি করুন
  21. অ্যালেক্সা ডেভেলপার কনসোলে ফিরে যান এবং ল্যাম্বদা এআরএনকে "ডিফল্ট অঞ্চল" ক্ষেত্রে পেস্ট করুন
  22. আমন্ত্রণের অধীনে, "আমার গ্যাজেট" হিসাবে দক্ষ আহ্বানের নাম সেট করুন
  23. "সেভ মডেল" ক্লিক করুন এবং তারপরে "বিল্ড মডেল" ক্লিক করুন
  24. উপরের ট্যাবে "পরীক্ষা" ক্লিক করুন এবং নির্বাচককে "বন্ধ" থেকে "উন্নয়ন" তে পরিবর্তন করুন
  25. উল্লেখ্য যে ল্যাম্বদা ফাংশনের জন্য লগগুলি AWS- এ "ক্লাউডওয়াচ" পরিষেবাতে পাওয়া যায়।

ধাপ 4: আপনার রাস্পবেরি পাইতে কোড সেট করুন

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

গিট ক্লোন

এটি আপনার পাইতে সমস্ত প্রয়োজনীয় কোড সহ তাদের পুরো সংগ্রহস্থলটি লোড করবে। এটিতে কিছু উদাহরণ প্রকল্প রয়েছে যা আলেক্সা গ্যাজেটগুলির কিছু ক্ষমতা প্রদর্শন করে। আপনি যদি আরো তথ্য চান, তাদের Github পৃষ্ঠায় readme দেখুন।

সবকিছু কনফিগার করার জন্য তাদের সেটআপ ফাংশন চালান।

cd/home/pi/Alexa-Gadgets-Raspberry-Pi-Samples

sudo python3 launch.py --setup

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

দ্রষ্টব্য: কতটা ইনস্টল করা দরকার তার উপর নির্ভর করে এই ধাপটি কিছুটা সময় নিতে পারে।

এখন আপনার প্রজেক্টে ফিরে যাওয়ার জন্য আপনার প্রয়োজনীয় সমস্ত সমর্থন ফাইল থাকবে এবং আপনার ইকো এর সাথে যোগাযোগের অনুমতি দেওয়ার জন্য ফাংশন যোগ করা শুরু করবে।

আপনি যদি চয়ন করেন, আপনি "Alexa-Gadgets-Raspberry-Pi-Samples/src" এর "উদাহরণ" ফোল্ডারটি মুছে ফেলতে পারেন

আপনি আপনার প্রজেক্ট কোডটি যেখানে খুশি রাখতে পারেন, কিন্তু আমি এর জন্য হোম ডিরেক্টরিতে একটি ফোল্ডার তৈরি করব, বিকল্পভাবে আপনি আমার Github থেকে কোড সহ ফোল্ডারটি ডাউনলোড করতে পারেন, শুধু নীচের বর্ণিত হিসাবে.ini ফাইলগুলি সম্পাদনা করতে ভুলবেন না।

cd /home /pi

mkdir my_project cd my_project touch my_gadget.py টাচ my_gadget.ini

আমি এখন "my_project" নামে একটি ফোল্ডারে দুটি ফাইল তৈরি করেছি।. Ini ফাইলটি গুরুত্বপূর্ণ। নিশ্চিত থাকুন যে এতে আপনার আমাজন আইডি এবং গ্যাজেট সিক্রেটে নিম্নলিখিত এবং বিকল্প রয়েছে:

[গ্যাজেটসেটিংস]

amazonId = INSERT_AMAZON_ID_HERE alexaGadgetSecret = INSERT_ALEXA_GADGET_SECRET_HERE [GadgetCapilities] Custom. MyGadget = 1.0

এখন, বিস্তারিত জানার আগে পাইথন ফাইলটি একবার দেখে নেওয়া যাক:

json আমদানি করুন

agt আমদানি AlexaGadget থেকে

ক্লাস MyGadget (AlexaGadget):

def _init _ (স্ব):

সুপার ()._ init _ ()

def on_custom_mygadget_alexatopi (স্ব, নির্দেশ):

payload = json.loads (directive.payload.decode ("utf-8")) মুদ্রণ ("প্রাপ্ত তথ্য:" + str (পেলোড)) write_text (str (payload ['data'] ['person'] ['value ']))

def on_custom_mygadget_pitoalexa (স্ব, নির্দেশ):

payload = json.loads (directive.payload.decode ("utf-8")) প্রিন্ট ("প্রাপ্ত তথ্য:" + str (পেলোড)) পেলোড = {'ডেটা': "প্রোব পড়ে" + str (get_temp (payload) ['ডেটা'] ['সেন্সর_নাম'] ['মান'])) + "ডিগ্রী।"} self.send_custom_event ('Custom. MyGadget', 'PiToAlexa', payload) MyGadget ()। main ()

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

একবার আপনার এই ফাইলগুলি হয়ে গেলে, "my_project" ফোল্ডারে নেভিগেট করুন এবং পাইথন ফাইলটি চালান।

sudo রিবুট

cd/home/pi/my_project sudo python3./my_gadget.py

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

আপনার মোবাইল ডিভাইসে আলেক্সা অ্যাপে, নীচের ডান কোণে "ডিভাইসগুলি" ক্লিক করুন।

উপরের বাম দিকে "ইকো এবং আলেক্সা" ক্লিক করুন।

আপনার ইকো ডিভাইসে ক্লিক করুন।

"ওয়্যারলেস" এর অধীনে, "ব্লুটুথ ডিভাইসগুলি" আলতো চাপুন।

"একটি নতুন ডিভাইস যোগ করুন" আলতো চাপুন এবং আপনার তালিকায় আপনার গ্যাজেটটি দেখা উচিত।

আপনার গ্যাজেটে আলতো চাপুন। আপনার Pi রিপোর্টটি দেখা উচিত যে এটি সফলভাবে যুক্ত হয়েছে।

আপনার পাইতে আউটপুট দেখার সময়, ইকোতে ভয়েস কমান্ড দেওয়ার চেষ্টা করুন:

আপনি: "আলেক্সা, আমার গ্যাজেটকে সেন্সর এক থেকে তাপমাত্রা পরীক্ষা করতে বলুন"

যদি সবকিছু সঠিকভাবে কাজ করে, তাহলে আপনার শুনতে হবে:

প্রতিধ্বনি: "প্রোবটি 120.505 ডিগ্রী পড়ে।"

তুমি: "আলেক্সা, আমার গ্যাজেটকে বলো জর্জ ওয়াশিংটন লিখতে।"

Pi মুদ্রণ করা উচিত:

প্রাপ্ত তথ্য: {'data': {'person': {'name': 'person', 'value': 'George Washington', 'confirmationStatus': 'NONE'}}}

জর্জ ওয়াশিংটন"

ধাপ 5: মোড়ানো

এখানে দেখানো ভিডিওটি গ্যাজেটের তাপমাত্রা পড়ার (F বনাম C তে একই প্রোব) কাজ করার এবং একটি সাধারণ ডিসপ্লেতে নাম লেখার একটি উদাহরণ।

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

অনুগ্রহ করে মনে রাখবেন যে এই টিউটোরিয়ালটি আলেক্সা গ্যাজেটের সাহায্যে আপনি যে সমস্ত ক্ষমতা চান তা চূড়ান্ত সমাধান হওয়ার উদ্দেশ্যে নয়। এটি ইচ্ছাকৃতভাবে আপনাকে অ্যালেক্সা এবং একটি গ্যাজেটের মধ্যে প্রতিটি দিকের ডেটা প্রেরণের জন্য দুটি সহজ ফাংশন দিতে সীমাবদ্ধ। আপনি যদি আরো পরিশীলিত মিথস্ক্রিয়া মডেল তৈরিতে আগ্রহী হন, তাহলে আমি আপনাকে https://github.com/alexa/Alexa-Gadgets-Raspberry-P… এ সমস্ত রিডমি ফাইল পড়তে উৎসাহিত করব এবং তাদের দেওয়া সমস্ত উদাহরণ চেষ্টা করে দেখুন । আমি আপনাকে সুপারিশ করব যে আপনি আলেক্সা গ্যাজেটস টুলকিট এবং আলেক্সা স্কিলস কিটের ডকুমেন্টেশন পড়ুন।

প্রস্তাবিত: