Simplicity Studio v5 ব্যবহার করে সিলিকন ল্যাবস EFR32 বোর্ড এবং OpenThread সহ একটি থ্রেড নেটওয়ার্ক তৈরি করুন

1. ভূমিকা

26b7f4f6b3ea0700.png সম্পর্কে

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

থ্রেড স্পেসিফিকেশন হোম এবং বাণিজ্যিক বিল্ডিং অ্যাপ্লিকেশনের জন্য একটি IPv6-ভিত্তিক নির্ভরযোগ্য, নিরাপদ এবং কম-পাওয়ার ওয়্যারলেস ডিভাইস-টু-ডিভাইস যোগাযোগ প্রোটোকল সংজ্ঞায়িত করে।

সিলিকন ল্যাবস সিলিকন ল্যাবস হার্ডওয়্যারের সাথে কাজ করার জন্য OpenThread উন্নত করেছে। এই সোর্স কোডটি GitHub-এ পাওয়া যায় এবং Simplicity Studio 5 (SSv5) এর সাথে ইনস্টল করা একটি সফ্টওয়্যার ডেভেলপমেন্ট কিট (SDK) হিসেবেও পাওয়া যায়। SDK-তে GitHub সোর্স কোডের একটি সম্পূর্ণ পরীক্ষিত স্ন্যাপশট রয়েছে। এটি GitHub সংস্করণের তুলনায় বিস্তৃত পরিসরের হার্ডওয়্যার সমর্থন করে এবং এতে ডকুমেন্টেশন এবং উদাহরণ অ্যাপ্লিকেশন রয়েছে যা GitHub-এ উপলব্ধ নয়।

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

EFR32MG হার্ডওয়্যার সেট আপ

তুমি কি শিখবে

  • সিলিকন ল্যাবস সিমপ্লিসিটি স্টুডিও আইডিই ব্যবহার করে কীভাবে একটি ওপেনথ্রেড প্রকল্প তৈরি করবেন।
  • সিলিকন ল্যাবস রেডিও বোর্ডে ওপেনথ্রেড সিএলআই বাইনারি কীভাবে তৈরি এবং ফ্ল্যাশ করবেন।
  • ডকার ব্যবহার করে ওপেনথ্রেড বর্ডার রাউটার (OTBR) হিসেবে Raspberry Pi 3B+ বা তার বেশি সংস্করণ কীভাবে সেট আপ করবেন।
  • OTBR-এ কিভাবে একটি থ্রেড নেটওয়ার্ক তৈরি করবেন।
  • থ্রেড নেটওয়ার্কে ডিভাইসগুলির আউট অফ ব্যান্ড কমিশনিং।
  • পিং কমান্ড ব্যবহার করে নোডগুলির মধ্যে থ্রেড যোগাযোগ কীভাবে যাচাই করবেন।

2. পূর্বশর্ত

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

  1. ৩টি EFR32MGxx রেডিও বোর্ড - এই ডিভাইসগুলির যেকোনো সমন্বয় ব্যবহার করা যেতে পারে। এই কোডল্যাবটি RCP হিসেবে একটি BRD4166A এবং ফুল থ্রেড ডিভাইস হিসেবে দুটি BRD4168A ব্যবহার করে।
    • EFR32MG12 (BRD 4161A , BRD 4166A , BRD 4170A , BRD 4304 A)
    • EFR32MG13 (BRD 4168A )
    • EFR32MG21 (BRD 4180A , BRD 4180B )
    যদি আপনি নতুন করে শুরু করেন, তাহলে আপনি EFR32 থ্রেড স্টার্টার কিট পেতে পারেন যার উপরে তালিকাভুক্ত বোর্ডগুলি রয়েছে।
  2. BRD4001A: রেডিও বোর্ড হোস্ট করার জন্য ওয়্যারলেস স্টার্টার মেইন বোর্ড (WSTK)। BRD4166A ছাড়া, সকল রেডিও বোর্ডের জন্য একটি করে স্টার্টার মেইন বোর্ড প্রয়োজন। মূল বোর্ডগুলিকে সংযুক্ত এবং পাওয়ার করার জন্য মিনি USB কেবল অথবা BRD4166A এর জন্য মাইক্রো USB কেবল।

WSTK AEM সম্পর্কে

  1. রাস্পবেরি পাই 3B+ বা তার বেশি রাস্পবেরি স্ট্রেচ লাইট ওএস ইমেজ সহ অথবা রাস্পবেরি স্ট্রেচ ডেস্কটপ সহ যা ইথারনেটের মাধ্যমে ইন্টারনেটের সাথে সংযুক্ত। আমরা এটিকে একটি OT বর্ডার রাউটার হিসাবে কনফিগার করি।
  2. কমপক্ষে ২টি USB পোর্ট এবং একটি ইন্টারনেট সংযোগ সহ একটি Windows/Linux/Mac হোস্ট সিস্টেম। SSv5 এ হার্ডওয়্যার এবং OS এর প্রয়োজনীয়তা পরীক্ষা করুন।
  3. রাস্পবেরি পাই ইন্টারনেটের সাথে সংযুক্ত করার জন্য কমপক্ষে একটি ইথারনেট কেবল। WSTK গুলি IP এর মাধ্যমে ডিবাগ এবং ফ্ল্যাশিং সমর্থন করে, তাই, ঐচ্ছিকভাবে, অতিরিক্ত ইথারনেট কেবলগুলি ইথারনেট সুইচের মাধ্যমে আপনার হোস্ট সিস্টেমের সাথে WSTK সংযোগ করতে ব্যবহার করা যেতে পারে।

সফটওয়্যার:

  • সিমপ্লিসিটি স্টুডিও v5 উইন্ডোজ/লিনাক্স/ম্যাক হোস্ট সিস্টেমে ইনস্টল এবং আপডেট করা হয়েছে
    • GNU ARM টুলচেইন
    • গেকো এসডিকে স্যুট ৩.২.০ বা তার পরবর্তী সংস্করণ এবং সিলিকন ল্যাবস ওপেনথ্রেড এসডিকে।

৩. হার্ডওয়্যার সেট আপ

এই কোডল্যাবটি তৈরি করা হয়েছে ব্যবহার করে

  1. বাম দিকে দেখানো EFR32MG12 BRD4166A থান্ডারবোর্ড সেন্স 2
  2. ডানদিকে দেখানো দুটি EFR32MG13 BRD4168A
  3. সিমপ্লিসিটি স্টুডিও v5 একটি macOS Catalina 10.15.7 এ ইনস্টল করা হয়েছে যার সাথে
    1. গেকো এসডিকে ৩.২.০
    2. GNU ARM v7.2.1 সম্পর্কে

বিআরডি৪১৬৮এ

নীচের ছবিতে দেখানো USB এর মাধ্যমে প্রতিটি ওয়্যারলেস স্টার্টার কিট মেইন বোর্ড হোস্ট কম্পিউটারের সাথে সংযুক্ত করুন। এই সংযোগগুলি RCP এবং এন্ড ডিভাইসগুলির প্রোগ্রামিং এবং নেটওয়ার্ক বিশ্লেষণের অনুমতি দেবে। আমরা প্রথমে হোস্ট কম্পিউটার ব্যবহার করে OT-rcp ফার্মওয়্যার দিয়ে BRD4166A প্রোগ্রাম করব এবং অবশেষে এটি Raspberry Pi এর সাথে সংযুক্ত করব। ঐচ্ছিকভাবে, এন্ড ডিভাইসগুলি একটি সাধারণ ইথারনেট সুইচের মাধ্যমে হোস্ট কম্পিউটারের সাথে সংযুক্ত করা যেতে পারে। স্টার্টার কিটগুলি IPv4 এর মাধ্যমে প্রোগ্রামিং এবং নেটওয়ার্ক বিশ্লেষণকেও সমর্থন করে।

সংযোগগুলি

৪. ফার্মওয়্যার সেট আপ

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

  1. প্রকল্প: (প্রস্তাবিত) একটি নমুনা অ্যাপ্লিকেশন তৈরি করুন, তৈরি করুন এবং ফ্ল্যাশ করুন। এই বিকল্পটি আপনাকে প্রকল্পে অ্যাপ্লিকেশনটি কাস্টমাইজ করতে দেয়। অথবা
  2. ডেমো: (ঐচ্ছিক) যেকোনো নমুনা অ্যাপ্লিকেশনের জন্য সরাসরি রেডিও বোর্ডে পূর্বনির্মিত ডেমো ফ্ল্যাশ করুন। ব্যবহারকারীদের ঐচ্ছিক অনুশীলন হিসেবে ডেমো ফার্মওয়্যার সেট আপ চেষ্টা করার জন্য উৎসাহিত করা হচ্ছে। বিস্তারিত জানার জন্য অনুগ্রহ করে এই কোডল্যাবের শেষে "ঐচ্ছিক ফার্মওয়্যার সেট আপ - ডেমো" বিভাগটি দেখুন।

আমরা এই কোডল্যাবের জন্য প্রকল্প ভিত্তিক পদ্ধতি ব্যবহার করব।

উদাহরণ ব্যবহার করে প্রকল্প তৈরি করুন

আমরা দুটি প্রকল্প তৈরি করব। BRD4166A এর জন্য ot-rcp প্রকল্প এবং BRD4168A দুটির জন্য ot-cli-ftd প্রকল্প। অনুগ্রহ করে এই পদক্ষেপগুলি অনুসরণ করুন এবং আপনার বোর্ডের জন্য উপযুক্ত নমুনা অ্যাপ্লিকেশনটি নির্বাচন করুন।

  1. স্টুডিওর ফাইল মেনু খুলুন এবং New > Silicon Labs Project Wizard নির্বাচন করুন। Target, SDK, এবং Toolchain Selection ডায়ালগটি খোলে। OpenThread দ্বারা সমর্থিত ডিফল্ট Simplicity IDE / GNU টুলচেইন পরিবর্তন করবেন না। Next এ ক্লিক করুন
    • টার্গেট বোর্ড: নির্বাচিত রেডিও বোর্ড (BRD4168A) এবং মূল বোর্ড (BRD4001A) দেখায়।
    • টার্গেট ডিভাইস: এই ক্ষেত্রটি অনবোর্ডে মাইক্রোকন্ট্রোলার চিপ (MCU) দেখায়। BRD4168A তে একটি EFR32MG13 MCU অনবোর্ডে রয়েছে।
    • SDK: এখানে আপনি OT এর SDK সংস্করণ নির্বাচন করতে পারেন যার সাথে আপনি কাজ করছেন। স্যুট তথ্যের মধ্যে SDK ট্যাগ এবং OpenThread এর Silicon Labs বিল্ড অন্তর্ভুক্ত থাকে, উদাহরণস্বরূপ Platform 4.0.1.0 এবং OpenThread 2.0.1.0 (GitHub-55af6ce2c)
    • IDE/ টুলচেইন: OT প্রজেক্ট কম্পাইল করার জন্য ব্যবহৃত টুলচেইন। আমরা GNU ARM ব্যবহার করি।

নতুন প্রকল্প উইজার্ড

  1. "Example Project Selection" ডায়ালগটি খুলবে। আপনি "Example Projects" এর একটি তালিকা দেখতে পাবেন। একটি নির্দিষ্ট উদাহরণ অনুসন্ধান করতে Thread Technology Type এবং কীওয়ার্ড ফিল্টার ব্যবহার করুন। Gecko SDK Suite সংস্করণ নম্বরটি লক্ষ্য করুন। যখন আপনি Raspberry Pi কে বর্ডার রাউটার হিসেবে সেট আপ করবেন তখন আপনার এই সংস্করণ ট্যাগটির প্রয়োজন হবে। ot-cli-ftd নির্বাচন করুন, তারপর NEXT এ ক্লিক করুন।

নতুন প্রকল্প উইজার্ড ধাপ ২

  1. প্রজেক্ট কনফিগারেশন ডায়ালগটি খুলবে। এখানে আপনি আপনার প্রজেক্টের নাম পরিবর্তন করতে পারবেন, ডিফল্ট প্রজেক্ট ফাইলের অবস্থান পরিবর্তন করতে পারবেন এবং প্রজেক্ট ফাইলগুলির সাথে লিঙ্ক করবেন কিনা তা নির্ধারণ করতে পারবেন। লিঙ্ক করা প্রজেক্ট ফাইলগুলি SDK-এর দিকে নির্দেশ করে এবং আপনার করা যেকোনো পরিবর্তন SDK-তে করা হবে এবং ভবিষ্যতের প্রজেক্টের জন্য ব্যবহার করা হবে। প্রজেক্ট সোর্সগুলি অনুলিপি করার মাধ্যমে, আপনি একটি প্রজেক্ট-স্থানীয় কপি সম্পাদনা করতে পারবেন যাতে SDK ফাইলগুলি অক্ষত থাকে। ' লিঙ্ক sdk এবং প্রজেক্ট সোর্সগুলি অনুলিপি করুন ' হল ডিফল্ট এবং প্রস্তাবিত পছন্দ। FINISH এ ক্লিক করুন।

নতুন প্রকল্প উইজার্ড ধাপ ৩

  1. সিম্পলিসিটি আইডিই পার্সপেক্টিভটি প্রজেক্ট কনফিগারেটরের সাথে ওভারভিউ ট্যাবে খোলা থাকে।

প্রকল্পের সারসংক্ষেপ

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

সফ্টওয়্যার উপাদান

এই ডেমোর জন্য আমরা নমুনা অ্যাপ্লিকেশনগুলির ডিফল্ট কনফিগারেশন ব্যবহার করব। আপনার অন্য বোর্ডের জন্য ot-rcp প্রকল্প তৈরি করতে উপরের পদক্ষেপগুলি পুনরাবৃত্তি করুন।

প্রকল্পগুলি তৈরি এবং ফ্ল্যাশ করুন

ot-rcp এবং ot-cli-ftd উভয় প্রকল্প তৈরি এবং ফ্ল্যাশ করুন।

  1. আপনার প্রকল্পটি কনফিগার করার পরে, উপরের টুল বারে বিল্ড নিয়ন্ত্রণ (হ্যামার আইকন) ক্লিক করুন। বিকল্পভাবে, আপনি প্রকল্পের উপর ডান-ক্লিক করে বিল্ড প্রকল্পে ক্লিক করতে পারেন।

প্রকল্প তৈরির বোতাম

  1. কনসোলে অগ্রগতি প্রদর্শিত হবে এবং নীচের ডানদিকে একটি অগ্রগতি বার থাকবে। আপনার প্রকল্পের সাথে সম্পর্কিত যেকোনো ত্রুটি বা সতর্কতাও এই আউটপুট উইন্ডোতে প্রদর্শিত হবে।

প্রকল্প নির্মাণের আউটপুট উইন্ডো

  1. একটি সফল প্রকল্প তৈরির পরে বাইনারি চিত্রগুলি তৈরি করা হয়। আপনি প্রকল্প এক্সপ্লোরার ভিউ থেকে বাইনারি চিত্রটি ফ্ল্যাশ করতে পারেন। কম্পাইলার সাবডিরেক্টরিতে .bin, .hex, অথবা .s37 ফাইলটি সনাক্ত করুন। ফাইলটিতে ডান-ক্লিক করুন এবং Flash to Device নির্বাচন করুন। যদি আপনার একাধিক ডিভাইস সংযুক্ত থাকে তবে প্রোগ্রাম করার জন্য একটি ডিভাইস নির্বাচন করুন , OK ক্লিক করুন। ফ্ল্যাশ প্রোগ্রামারটি ফাইল পাথটি পূরণ করে খোলে। PROGRAM ক্লিক করুন।

ফ্ল্যাশ

৫. ফার্মওয়্যার সেট আপের সারাংশ

এই মুহুর্তে আপনার রেডিও বোর্ডগুলিতে উপযুক্ত ফার্মওয়্যার তৈরি, কম্পাইল এবং ফ্ল্যাশ করা উচিত ছিল। একবার ot-rcp BRD4166A তে ফ্ল্যাশ হয়ে গেলে, হোস্ট সিস্টেম থেকে এটি সংযোগ বিচ্ছিন্ন করুন এবং এই বোর্ডটিকে রাস্পবেরি পাইয়ের সাথে সংযুক্ত করুন।

এই বিভাগটি সম্পন্ন করার পরে, আপনার থ্রেড নেটওয়ার্ক হার্ডওয়্যার সেটআপটি এইরকম দেখাবে।

EFR32MG সেট আপ

৬. ot-cli-ftd ডিভাইসের জন্য সিরিয়াল কনসোল সেট আপ করুন

কনসোল ইন্টারফেস চালু করতে, Simplicity IDE দৃষ্টিকোণ থেকে Devices View / Debug Adapters উইন্ডোতে আপনার J-Link ডিভাইসে ডান-ক্লিক করুনLaunch Console নির্বাচন করুন। কনসোলে একটি প্রম্পট পেতে, Serial 1 ট্যাব নির্বাচন করুন এবং Enter টিপুন । FTD নোডের অবস্থা পরীক্ষা করুন।

FTD স্টুডিও কনসোল ভিউ

আপনি লক্ষ্য করবেন যে আমাদের কাছে এখনও ot-rcp এর জন্য কোন কনসোল নেই। পরবর্তী ধাপে আমরা Raspberry Pi কে OT বর্ডার রাউটার হিসেবে কনফিগার করব এবং ot-rcp এর জন্য কনসোল সেট আপ করব।

৭. রাস্পবেরি পাইকে বর্ডার রাউটার হিসেবে সেট আপ করুন

সিলিকন ল্যাবস কোম্পানির ডকার কন্টেইনারটি OTBR-এর সাথে স্থাপন করার পরামর্শ দেয়। একটি কন্টেইনারে OTBR চালানোর মাধ্যমে সহজেই স্থাপনযোগ্য শিল্পকর্ম তৈরি করা যায় এবং দ্রুত প্রোটোটাইপিং এবং পরীক্ষার বিকাশ সম্ভব হয়।

সিলিকন ল্যাবস OTBR ছবিগুলি siliconlabsinc DockerHub- তে ট্যাগ সহ হোস্ট করা হয়। প্রতিটি ট্যাগ একটি GSDK সংস্করণের সাথে সম্পর্কিত:

https://hub.docker.com/r/siliconlabsinc/openthread-border-router/tags

নির্দিষ্ট রিলিজের জন্য Simplicity Studio 5 ব্যবহার করে তৈরি RCP গুলির সাথে ডকার কন্টেইনার ব্যবহার করা আবশ্যক। আপনি যে GSDK ভার্সনটি পরীক্ষা করছেন তার সাথে একটি কন্টেইনার ট্যাগ ভার্সন মেলাতে ভুলবেন না। উদাহরণস্বরূপ, যদি আপনি Example Project Selection উইন্ডো থেকে ot-rcp নির্বাচন করার সময় আপনার GDSK ভার্সনটি Gecko SDK Suite v4.0.1 (140) হয়, তাহলে siliconlabsinc/openthread-border-router:gsdk-4.0.1 ইমেজটি ব্যবহার করুন।

জিএসডিকে সংস্করণ

রাস্পবেরি পাই সেট আপ করা হচ্ছে

  1. আপনার SD কার্ডে, Raspbian Stretch Lite OS ইমেজ অথবা Raspbian Stretch with Desktop ফ্ল্যাশ করুন।
  2. আপনি রাস্পবেরি পাইতে SSH করতে পারেন অথবা সরাসরি রাস্পবিয়ান ডেস্কটপের সাথে কাজ করতে পারেন। একটি টার্মিনাল খুলুন।
  3. আপনার স্থানীয় সংগ্রহস্থল এবং প্যাকেজ ম্যানেজার (ডকার ইনস্টল করার আগে apt-get update এবং apt-get upgrade ) আপডেট করতে ভুলবেন না।

ডকার ইমেজ ইনস্টল করুন

  1. আপনার RPi তে নিম্নলিখিত কমান্ডটি ব্যবহার করে ডকার ইনস্টল করুন।
    curl -sSL https://get.docker.com | sh
    
  2. একবার সম্পন্ন হলে, আপনি ডকার ব্যবহারকারী সেটিংস পরিবর্তন করতে পারেন যাতে প্রতিটি কমান্ডের আগে sudo প্রয়োজন না হয়। রিবুট প্রয়োজন।
    sudo usermod -aG docker $USER
    
  3. কন্টেইনারগুলি ইনস্টল করার জন্য নিম্নলিখিত কমান্ডগুলি জারি করুন। মনে রাখবেন যে আপনার RCP-এর সাথে একসাথে শুধুমাত্র একটি বর্ডার রাউটার কন্টেইনার চালানো যেতে পারে। এছাড়াও, আপনার Simplicity Studio GSDK সংস্করণটি সঠিক Docker চিত্রের সাথে মেলাতে ভুলবেন না। উদাহরণস্বরূপ, gsdk-4.0.1 :
    docker pull siliconlabsinc/openthread-border-router:gsdk-4.0.1
    

ডকার কনফিগার করুন এবং চালান

  1. স্টার্টআপে আপনার RCP সংযোগ করার জন্য OTBR-এর জন্য যে TTY পোর্টটি ব্যবহার করতে চান তা আপনাকে কনফিগার করতে হবে। আপনার RCP ডিভাইসের TTY পোর্টটি সন্ধান করুন। এটি করার সবচেয়ে সহজ উপায় হল RCP সংযুক্ত হওয়ার পরে /tty/dev ... এন্ট্রিটি অনুসন্ধান করা। এটি সাধারণত /dev/ttyUSB0 অথবা /dev/ttyACM0 হওয়া উচিত।
  2. নিম্নলিখিত কমান্ড দিয়ে আপনার ডকার ইনস্টলেশনটি চালান। আপনার ডকার ছবির নামটি মিলে যাওয়া GSDK সংস্করণ দিয়ে প্রতিস্থাপন করতে ভুলবেন না। উদাহরণস্বরূপ, gsdk-4.0.1 :
    docker run -d --name "otbr" \
     --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" \
     -p 8080:80 --dns=127.0.0.1 -it \
     --volume /dev/ttyACM0:/dev/ttyACM0 \
     --privileged siliconlabsinc/openthread-border-router:gsdk-4.0.1 \
     --radio-url spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=460800 \
     --backbone-interface eth0
    
    • -d নিশ্চিত করে যে কন্টেইনারটি বিচ্ছিন্ন মোডে চলে।
    • আপনি docker logs কমান্ড ব্যবহার করে যেকোনো সময় কন্টেইনারের চলমান লগগুলি দেখতে পারেন।
    • --name স্টিকি থাকে যতক্ষণ না ডকার কন্টেইনারটি সঠিকভাবে বন্ধ (অথবা সরানো) হয়।
    • পোর্ট 8080 বর্ডার রাউটার ম্যানেজমেন্ট ওয়েবপেজ হোস্ট করা ওয়েব সার্ভারের পোর্ট নির্দেশ করে।
    • লম্বা IPv6 প্যাকেট সহ DTLS এর মতো ব্যয়বহুল অপারেশনের ক্ষেত্রে, UART-এর মাধ্যমে ফ্র্যাগমেন্টেশন/পুনঃসংযোজন সমস্যাগুলি সমাধানের জন্য রেডিও url বিকল্পগুলিতে ?uart-baudrate=460800 প্রয়োজন।

RCP নোডের সাথে ইন্টারঅ্যাক্ট করুন

ডকারটি চালু হয়ে গেলে, আপনি এই কমান্ডটি ব্যবহার করে একটি ইন্টারেক্টিভ শেলের মাধ্যমে RCP নোডের সাথে যোগাযোগ করতে পারবেন। RCP নোডের অবস্থা পরীক্ষা করুন।

$ docker exec -ti otbr sh -c "sudo ot-ctl"
> state 
disabled
Done

আপনি চলমান কন্টেইনার আইডিগুলির একটি তালিকা পেতে পারেন

$ docker ps -aq

বর্ডার রাউটারের লগ আউটপুট চালানোর জন্য আপনি OTBR ডকার কন্টেইনার চালানোর উইন্ডোটি পরীক্ষা করতে পারেন অথবা নিম্নরূপ কন্টেইনার লগ অনুসরণ করতে পারেন:

$ docker logs [container-id] -f

ঐচ্ছিকভাবে, ডকার কন্টেইনারটি সঠিকভাবে লোড হলে আপনি আপনার ছবিটি বন্ধ করতে, অপসারণ করতে বা বন্ধ করতে পারেন।

$ docker stop otbr
$ docker rm otbr
$ docker kill otbr

ঐচ্ছিক: শেল থেকে বেরিয়ে আসতে CNTL + C ব্যবহার করুন।

এই মুহুর্তে, আপনার 3টি কনসোল থাকা উচিত।

  1. সিম্পলিসিটি স্টুডিওতে দুটি ot-cli-ftd কনসোল রয়েছে যা ফুল থ্রেড ডিভাইস হিসেবে সেট আপ করা হয়েছে।
  2. রাস্পবেরি পাইতে একটি ot-ctl ইন্টারেক্টিভ শেল যা একটি OT বর্ডার রাউটার হিসাবে সেট আপ করা হয়েছে।

এখন আমরা একটি থ্রেড নেটওয়ার্ক তৈরি করতে প্রস্তুত।

৮. একটি থ্রেড নেটওয়ার্ক তৈরি করুন

আরসিপি সেট আপ করুন

নেটওয়ার্ক তৈরি করতে, আমরা OTBR-তে ot-ctl শেল দিয়ে শুরু করব যা RCP নোডের সাথে যোগাযোগ করতে ব্যবহৃত হয়। নীচের দেখানো ক্রমে নিম্নলিখিত কমান্ডগুলি প্রবেশ করান:

সূচক

কমান্ড

কমান্ডের বর্ণনা

প্রত্যাশিত প্রতিক্রিয়া

dataset init new

একটি নতুন নেটওয়ার্ক কনফিগারেশন তৈরি করুন।

সম্পন্ন

dataset commit active

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

সম্পন্ন

ifconfig up

থ্রেড ইন্টারফেস সক্ষম করুন।

সম্পন্ন

thread start

থ্রেড প্রোটোকল অপারেশন সক্রিয় এবং সংযুক্ত করুন।

সম্পন্ন

থ্রেড ইন্টারফেস চালু হওয়ার জন্য ১০ সেকেন্ড অপেক্ষা করুন।

state

ডিভাইসের অবস্থা পরীক্ষা করুন। এটি লিডার হওয়া উচিত।
অন্যান্য সম্ভাব্য অবস্থা: অফলাইন, অক্ষম, বিচ্ছিন্ন,
শিশু, রাউটার, অথবা লিডার

নেতা
সম্পন্ন

dataset

নেটওয়ার্ক কনফিগারেশন দেখুন।
আপনার মান এই কোডল্যাব থেকে আলাদা হবে।
চ্যানেল, নেটওয়ার্ক কী, নোট করে রাখুন।
নেটওয়ার্কের নাম এবং প্যান আইডি।

সক্রিয় টাইমস্ট্যাম্প: ১
চ্যানেল: ২০
চ্যানেল মাস্ক: 0x07fff800
এক্সটেনশন প্যান আইডি: 39ba71f7fc367160
মেশ লোকাল প্রিফিক্স: fd5c:c6b:3a17:40b9::/64
নেটওয়ার্ক কী: 81ae2c2c17368d585dee71eaa8cf1e90
নেটওয়ার্কের নাম: OpenThread-008c
প্যান আইডি: 0x008c
PSKc: c98f0193d4236025d22dd0ee614e641f
নিরাপত্তা নীতি: ০, onrcb
সম্পন্ন

এই থ্রেড নেটওয়ার্কে দুটি FTD-কে যুক্ত করতে আমরা ot-cli-ftd এর চ্যানেল নম্বর এবং নেটওয়ার্ক কী ব্যবহার করব।

আমাদের থ্রেড নেটওয়ার্কে FTD সেট আপ করুন এবং যোগ করুন (ব্যান্ডের বাইরের পদ্ধতি)

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

সূচক

কমান্ড

কমান্ডের বর্ণনা

প্রত্যাশিত প্রতিক্রিয়া

dataset channel 20

OTBR দ্বারা ব্যবহৃত চ্যানেল সেট করুন।

সম্পন্ন

dataset networkkey 81ae2c2c17368d585dee71eaa8cf1e90

একটি থ্রেড নেটওয়ার্কের সাথে সংযুক্ত করার জন্য শুধুমাত্র নেটওয়ার্ক কী প্রয়োজন।

সম্পন্ন

dataset commit active

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

সম্পন্ন

ifconfig up

থ্রেড ইন্টারফেস সক্ষম করুন।

সম্পন্ন

thread start

থ্রেড প্রোটোকল অপারেশন সক্রিয় এবং সংযুক্ত করুন।

সম্পন্ন

ডিভাইসটি সংযুক্ত হয়ে নিজেকে কনফিগার করার জন্য ২০ সেকেন্ড অপেক্ষা করুন।

state

নেটওয়ার্ক কনফিগারেশন দেখুন।

শিশু
সম্পন্ন

থ্রেড ডিভাইসের মধ্যে যোগাযোগ

ডিভাইসগুলি একে অপরের সাথে যোগাযোগ করতে পারে কিনা তা পরীক্ষা করার জন্য আমরা ping কমান্ড ব্যবহার করব। পিং কমান্ড ব্যবহার করার জন্য আমাদের ডিভাইসগুলির IPv6 ঠিকানা প্রয়োজন। এগুলি ipaddr কমান্ড ব্যবহার করে পাওয়া যেতে পারে।

> ipaddr
fd5c:c6b:3a17:40b9:0:ff:fe00:fc00		# Leader Anycast Locator (ALOC)
fd5c:c6b:3a17:40b9:0:ff:fe00:1800		# Routing Locator (RLOC)
fd5c:c6b:3a17:40b9:84e2:bae8:bd5b:fa03		# Mesh-Local EID (ML-EID)
fe80:0:0:0:c449:ca4a:101f:5d16			# Link-Local Address (LLA)

উভয় FTD থেকে OTBR এর RLOC ঠিকানা ব্যবহার করে OTBR পিং করা হয়।

> ping fd5c:c6b:3a17:40b9:0:ff:fe00:1800
Done
> 
> 16 bytes from fd5c:c6b:3a17:40b9:0:ff:fe00:1800: icmp_seq=3 hlim=64 time=30ms
16 bytes from fd5c:c6b:3a17:40b9:0:ff:fe00:1800: icmp_seq=3 hlim=64 time=52ms

প্রতিক্রিয়াটি পেলোড প্রাপ্ত হয়েছে এবং যোগাযোগ সফল হয়েছে তা নির্দেশ করে। OTBR থেকে FTD গুলিকে পিং করার জন্য প্রক্রিয়াটি পুনরাবৃত্তি করুন।

৯. অভিনন্দন

তুমি একটি থ্রেড নেটওয়ার্ক তৈরি করেছো!

তুমি এখন জানো:

  • সিলিকন ল্যাবস সিমপ্লিসিটি স্টুডিও আইডিই ব্যবহার করে কীভাবে একটি ওপেনথ্রেড প্রকল্প তৈরি করবেন।
  • সিলিকন ল্যাবস রেডিও বোর্ডে ওপেনথ্রেড সিএলআই বাইনারি কীভাবে তৈরি এবং ফ্ল্যাশ করবেন।
  • ডকার ব্যবহার করে ওপেনথ্রেড বর্ডার রাউটার (OTBR) হিসেবে Raspberry Pi 3B+ বা তার বেশি সংস্করণ কীভাবে সেট আপ করবেন।
  • OTBR-এ কিভাবে একটি থ্রেড নেটওয়ার্ক তৈরি করবেন।
  • থ্রেড নেটওয়ার্কে ডিভাইসগুলির আউট অফ ব্যান্ড কমিশনিং।
  • পিং কমান্ড ব্যবহার করে নোডগুলির মধ্যে থ্রেড যোগাযোগ কীভাবে যাচাই করবেন।

আরও পড়া

বিভিন্ন ধরণের OpenThread রিসোর্সের জন্য openthread.io এবং GitHub দেখুন, যার মধ্যে রয়েছে:

১০. ঐচ্ছিক ফার্মওয়্যার সেট আপ - ডেমো

ডেমো হল পূর্বনির্মিত ফার্মওয়্যার ছবি যা একটি সামঞ্জস্যপূর্ণ ডিভাইসে ডাউনলোড করার জন্য প্রস্তুত। সিমপ্লিসিটি স্টুডিওতে আপনার জন্য একটি ডেমো উপলব্ধ কিনা তা খুঁজে বের করার দ্রুততম উপায় হল ডিবাগ অ্যাডাপ্টার ভিউয়ের অধীনে আপনার অংশে ক্লিক করা এবং তারপর লঞ্চার পার্সপেক্টিভের EXAMPLE PROJECTS & DEMOS ট্যাবে নেভিগেট করা। Example Projects ফিল্টারটি অক্ষম করুন এবং Technology Type এর অধীনে Thread রেডিও চেকবক্সটি চেক করুন।

স্টুডিও ডেমো

OpenThread SDK-এর সাথে প্রদত্ত প্রি-কম্পাইল করা ডেমো অ্যাপ্লিকেশন চিত্রগুলি নিম্নলিখিত বোর্ডগুলির সাথে সামঞ্জস্যপূর্ণ:

  1. বিআরডি৪১৬১এ
  2. বিআরডি৪১৬৬এ
  3. বিআরডি৪১৬৮এ
  4. বিআরডি৪১৮০এ
  5. বিআরডি৪৩০৪এ

ভবিষ্যতের SDK রিলিজে আরও রেডিও বোর্ড অন্তর্ভুক্ত করার জন্য এই তালিকাটি আপডেট করা হতে পারে। সমর্থিত যন্ত্রাংশের সম্পূর্ণ তালিকার জন্য ডকুমেন্টেশনের অধীনে সিলিকন ল্যাবস ওপেনথ্রেড SDK রিলিজ নোটগুলি দেখুন।

নিম্নলিখিত ডেমোগুলি সংশ্লিষ্ট বোর্ডগুলিতে ফ্ল্যাশ করুন। ফ্ল্যাশ করতে, বাম দিকে ডিবাগ অ্যাডাপ্টারের অধীনে আপনার বোর্ড নির্বাচন করুন এবং সংশ্লিষ্ট নমুনা অ্যাপ্লিকেশনগুলির জন্য RUN এ ক্লিক করুন। একটি পপ আপ উইন্ডো ফ্ল্যাশের অগ্রগতি দেখাবে।

  1. BRD4166A: ot-rcp — এই ডিভাইসটি OT বর্ডার রাউটারের রেডিও কো প্রসেসর হিসেবে কাজ করবে। আমরা এই ডিভাইসটি ব্যবহার করে একটি থ্রেড নেটওয়ার্ক তৈরি করব এবং থ্রেড নেটওয়ার্কের অন্য দুটি ডিভাইসে সংযোগ স্থাপন করব। বর্ডার রাউটার হিসেবে এই ডিভাইসটি থ্রেড নেটওয়ার্কের ডিভাইসগুলির ইন্টারনেটের মাধ্যমে যোগাযোগের জন্য একটি গেটওয়ে হিসেবেও কাজ করে।
  2. দুটি BRD4168A: ot-cli-ftd — এই দুটি ডিভাইস সম্পূর্ণ থ্রেড ডিভাইস হিসেবে কাজ করবে। তারা OTBR দ্বারা তৈরি থ্রেড নেটওয়ার্কে যোগদান করবে।