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

1। পরিচিতি

26b7f4f6b3ea0700.png

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

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

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

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

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

আপনি কি শিখবেন

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

2. পূর্বশর্ত

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

  1. 3 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 ব্যতীত, সমস্ত রেডিও বোর্ডের প্রতিটিতে একটি স্টার্টার প্রধান বোর্ড প্রয়োজন। BRD4166A-এর জন্য প্রধান বোর্ড বা মাইক্রো USB কেবল সংযোগ এবং পাওয়ার জন্য মিনি ইউএসবি কেবল।

WSTK AEM

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

সফটওয়্যার:

  • Windows/Linux/Mac হোস্ট সিস্টেমে Simplicity Studio v5 ইনস্টল এবং আপডেট করা হয়েছে
    • GNU ARM টুলচেইন
    • Gecko SDK Suite 3.2.0 বা তার পরবর্তী এবং Silicon Labs OpenThread SDK।

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

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

  1. বাম দিকে দেখানো হিসাবে EFR32MG12 BRD4166A থান্ডারবোর্ড সেন্স 2
  2. ডানদিকে দেখানো হিসাবে দুটি EFR32MG13 BRD4168A
  3. Simplicity Studio v5 একটি macOS Catalina 10.15.7-এ ইনস্টল করা হয়েছে
    1. Gecko SDK 3.2.0
    2. GNU ARM v7.2.1

BRD4168A

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

সংযোগ

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

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

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

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

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

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

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

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

  1. উদাহরণ প্রকল্প নির্বাচন ডায়ালগ খোলে। আপনি উদাহরণ প্রকল্পের একটি তালিকা লক্ষ্য করবেন। একটি নির্দিষ্ট উদাহরণ অনুসন্ধান করতে থ্রেড প্রযুক্তির ধরন এবং কীওয়ার্ড ফিল্টার ব্যবহার করুন। Gecko SDK Suite সংস্করণ নম্বরটি নোট করতে ভুলবেন না। আপনি যখন বর্ডার রাউটার হিসাবে রাস্পবেরি পাই সেট আপ করবেন তখন আপনার এই সংস্করণ ট্যাগের প্রয়োজন হবে। ot-cli-ftd নির্বাচন করুন, তারপর পরবর্তী ক্লিক করুন।

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

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

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

  1. সরলতা IDE দৃষ্টিকোণটি ওভারভিউ ট্যাবে খোলা প্রজেক্ট কনফিগারারের সাথে খোলে।

প্রজেক্ট সারসংক্ষেপ

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

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

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

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

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

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

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

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

প্রজেক্ট বিল্ড আউটপুট উইন্ডো

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

ফ্ল্যাশ

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

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

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

EFR32MG সেট আপ

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

কনসোল ইন্টারফেস চালু করতে, সরলতা IDE পরিপ্রেক্ষিতে ডিভাইস ভিউ/ডিবাগ অ্যাডাপ্টার উইন্ডোতে আপনার জে-লিঙ্ক ডিভাইসে ডান-ক্লিক করুনলঞ্চ কনসোল নির্বাচন করুন। কনসোলে একটি প্রম্পট পেতে, সিরিয়াল 1 ট্যাব নির্বাচন করুন এবং এন্টার টিপুন । FTD নোডের অবস্থা পরীক্ষা করুন।

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

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

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

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

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

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

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

GSDK সংস্করণ

রাস্পবেরি পাই সেট আপ

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

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

  1. আপনার RPi তে নিম্নলিখিত কমান্ড দিয়ে ডকার ইনস্টল করুন।
    curl -sSL https://get.docker.com | sh
    
  2. একবার শেষ হয়ে গেলে, আপনি প্রতিটি কমান্ডের আগে সুডোর প্রয়োজন না করার জন্য ডকার ব্যবহারকারী সেটিংস পরিবর্তন করতে পারেন। রিবুট প্রয়োজন।
    sudo usermod -aG docker $USER
    
  3. পাত্রে ইনস্টল করার জন্য নিম্নলিখিত কমান্ড ইস্যু করুন। মনে রাখবেন যে আপনার RCP এর সাথে একবারে শুধুমাত্র একটি বর্ডার রাউটার কন্টেইনার চলতে পারে। এছাড়াও, সঠিক ডকার ইমেজের সাথে আপনার সরলতা স্টুডিও জিএসডিকে সংস্করণটি মেলে তা নিশ্চিত করুন। উদাহরণস্বরূপ, 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 বর্ডার রাউটার ম্যানেজমেন্ট ওয়েবপৃষ্ঠা হোস্টিং ওয়েব সার্ভারের পোর্ট নির্দেশ করে।
    • ?uart-baudrate=460800 রেডিও ইউআরএল বিকল্পগুলিতে প্রয়োজন হয় UART-তে ফ্র্যাগমেন্টেশন/পুনঃসংযোজন সংক্রান্ত সমস্যাগুলি, দীর্ঘ IPv6 প্যাকেট সহ DTLS-এর মতো ব্যয়বহুল অপারেশনগুলির সাথে।

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 ইন্টারেক্টিভ শেল যা একটি ওটি বর্ডার রাউটার হিসাবে সেট আপ করা হয়েছে।

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

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

RCP সেট আপ করুন

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

সূচক

আদেশ

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

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

1

dataset init new

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

সম্পন্ন

2

dataset commit active

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

সম্পন্ন

3

ifconfig up

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

সম্পন্ন

4

thread start

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

সম্পন্ন

থ্রেড ইন্টারফেস আপ হওয়ার জন্য 10 সেকেন্ড অপেক্ষা করুন।

5

state

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

নেতা
সম্পন্ন

6

dataset

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

সক্রিয় টাইমস্ট্যাম্প: 1
চ্যানেল: 20
চ্যানেল মাস্ক: 0x07ff800
Ext PAN ID: 39ba71f7fc367160
মেশ স্থানীয় উপসর্গ: fd5c:c6b:3a17:40b9::/64
নেটওয়ার্ক কী: 81ae2c2c17368d585dee71eaa8cf1e90
নেটওয়ার্কের নাম: OpenThread-008c
প্যান আইডি: 0x008c
PSKc: c98f0193d4236025d22dd0ee614e641f
নিরাপত্তা নীতি: 0, onrcb
সম্পন্ন

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

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

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

সূচক

আদেশ

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

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

1

dataset channel 20

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

সম্পন্ন

2

dataset networkkey 81ae2c2c17368d585dee71eaa8cf1e90

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

সম্পন্ন

3

dataset commit active

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

সম্পন্ন

4

ifconfig up

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

সম্পন্ন

5

thread start

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

সম্পন্ন

20 সেকেন্ড অপেক্ষা করুন যখন ডিভাইসটি যোগ দেয় এবং নিজেকে কনফিগার করে।

6

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 থেকে FTDs পিং করার প্রক্রিয়াটি পুনরাবৃত্তি করুন।

9. অভিনন্দন

আপনি একটি থ্রেড নেটওয়ার্ক তৈরি করেছেন!

আপনি এখন জানেন:

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

আরও পড়া

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

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

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

স্টুডিও ডেমো

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

  1. BRD4161a
  2. BRD4166a
  3. BRD4168a
  4. BRD4180a
  5. BRD4304a

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

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

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