Silicon Labs के EFR32 बोर्ड और OpenThread की मदद से, Silicon Labs के EFR32 बोर्ड और Silicon Labs की मदद से, OpenThread नेटवर्क बनाएं

1. परिचय

26b7f4f6b3ea0700.png

Google का OpenThread (OT), Thread का ओपन-सोर्स वर्शन है. Google ने OpenThread को रिलीज़ किया है. इससे Google Nest के प्रॉडक्ट में इस्तेमाल की गई नेटवर्किंग टेक्नोलॉजी, डेवलपर के लिए ज़्यादा आसानी से उपलब्ध हो सकेगी. इससे कनेक्टेड होम और कमर्शियल बिल्डिंग के लिए प्रॉडक्ट को तेज़ी से डेवलप किया जा सकेगा. OpenThread को आसानी से एक प्लैटफ़ॉर्म से दूसरे प्लैटफ़ॉर्म पर ले जाया जा सकता है. ऐसा इसलिए, क्योंकि इसमें प्लैटफ़ॉर्म अबस्ट्रैक्शन लेयर छोटी होती है और मेमोरी फ़ुटप्रिंट भी कम होता है. यह सिस्टम-ऑन-चिप (SoC) और नेटवर्क को-प्रोसेसर (एनसीपी), दोनों तरह के डिज़ाइन के साथ काम करता है.

Thread स्पेसिफ़िकेशन, IPv6 पर आधारित एक भरोसेमंद, सुरक्षित, और कम पावर वाला वायरलेस डिवाइस-टू-डिवाइस कम्यूनिकेशन प्रोटोकॉल है. इसका इस्तेमाल घर और व्यावसायिक बिल्डिंग में किया जाता है.

Silicon Labs ने OpenThread को बेहतर बनाया है, ताकि यह Silicon Labs के हार्डवेयर के साथ काम कर सके. यह सोर्स कोड, GitHub पर उपलब्ध है. साथ ही, यह Simplicity Studio 5 (SSv5) के साथ इंस्टॉल किए गए सॉफ़्टवेयर डेवलपमेंट किट (एसडीके) के तौर पर भी उपलब्ध है. एसडीके में, GitHub के सोर्स कोड का पूरी तरह से टेस्ट किया गया स्नैपशॉट शामिल होता है. यह GitHub वर्शन की तुलना में, ज़्यादा तरह के हार्डवेयर के साथ काम करता है. इसमें ऐसे दस्तावेज़ और उदाहरण ऐप्लिकेशन भी शामिल हैं जो GitHub पर उपलब्ध नहीं हैं.

इस गाइड में, Silicon Labs OpenThread SDK और Simplicity Studio 5 का इस्तेमाल करके, OpenThread ऐप्लिकेशन डेवलप करने का तरीका बताया गया है. नीचे दी गई इमेज में, कोडलैब में इस्तेमाल किए गए बोर्ड (बीआरडी), ओटी बॉर्डर राउटर (ओटीबीआर), और दो थ्रेड डिवाइसों के साथ सेट अप किए गए हार्डवेयर को दिखाया गया है.

EFR32MG हार्डवेयर सेट अप करना

आपको क्या सीखने को मिलेगा

  • Silicon Labs Simplicity Studio IDE का इस्तेमाल करके, OpenThread प्रोजेक्ट बनाने का तरीका.
  • Silicon Labs रेडियो बोर्ड पर OpenThread CLI बाइनरी बनाने और फ़्लैश करने का तरीका.
  • Docker का इस्तेमाल करके, Raspberry Pi 3B+ या इसके बाद वाले वर्शन को OpenThread बॉर्डर राऊटर (OTBR) के तौर पर सेट अप करने का तरीका.
  • OTBR पर थ्रेड नेटवर्क बनाने का तरीका.
  • डिवाइसों को Thread नेटवर्क पर आउट ऑफ़ बैंड कमीशन करना.
  • पिंग कमांड का इस्तेमाल करके, नोड के बीच थ्रेड कम्यूनिकेशन की पुष्टि करने का तरीका.

2. ज़रूरी शर्तें

हार्डवेयर:

  1. तीन EFR32MGxx रेडियो बोर्ड - इनमें से किसी भी डिवाइस का इस्तेमाल किया जा सकता है. इस कोडलैब में, BRD4166A को आरसीपी के तौर पर और दो BRD4168A को फ़ुल थ्रेड डिवाइस के तौर पर इस्तेमाल किया गया है.
    • EFR32MG12 (BRD4161A, BRD4166A, BRD4170A, BRD4304A)
    • EFR32MG13 (BRD4168A)
    • EFR32MG21 (BRD4180A, BRD4180B)
    अगर आपको नया सेटअप करना है, तो EFR32 थ्रेड स्टार्टर किट का इस्तेमाल किया जा सकता है. इसमें ऊपर दिए गए बोर्ड शामिल हैं.
  2. BRD4001A: रेडियो बोर्ड को होस्ट करने के लिए, वायरलेस स्टार्टर मेन बोर्ड (WSTK). BRD4166A को छोड़कर, सभी रेडियो बोर्ड के लिए एक स्टार्टर मेन बोर्ड की ज़रूरत होती है. मुख्य बोर्ड को कनेक्ट करने और उन्हें पावर देने के लिए मिनी यूएसबी केबल या BRD4166A के लिए माइक्रो यूएसबी केबल.

WSTK AEM

  1. Raspberry Pi 3B+ या इससे ज़्यादा वर्शन वाला डिवाइस, जिसमें Raspbian Stretch Lite OS इमेज या Raspbian Stretch with Desktop इंस्टॉल हो. साथ ही, यह डिवाइस ईथरनेट के ज़रिए इंटरनेट से कनेक्ट हो. हम इसे ओटी बॉर्डर राऊटर के तौर पर कॉन्फ़िगर करते हैं.
  2. Windows/Linux/Mac होस्ट सिस्टम, जिसमें कम से कम दो यूएसबी पोर्ट और इंटरनेट कनेक्शन हो. SSv5 पर जाकर, हार्डवेयर और ओएस से जुड़ी ज़रूरी शर्तें देखें.
  3. Raspberry Pi को इंटरनेट से कनेक्ट करने के लिए, कम से कम एक ईथरनेट केबल. WSTK, आईपी पते पर डीबग और फ़्लैश करने की सुविधा भी देते हैं. इसलिए, वैकल्पिक तौर पर, ईथरनेट स्विच के ज़रिए WSTK को अपने होस्ट सिस्टम से कनेक्ट करने के लिए, अतिरिक्त ईथरनेट केबल का इस्तेमाल किया जा सकता है.

सॉफ़्टवेयर:

  • Windows/Linux/Mac होस्ट सिस्टम पर Simplicity Studio v5 इंस्टॉल और अपडेट किया गया हो. साथ ही,
    • GNU ARM टूलचेन
    • Gecko SDK Suite 3.2.0 या उसके बाद का वर्शन और Silicon Labs OpenThread SDK.

3. हार्डवेयर सेट अप करना

इस कोडलैब को

  1. बाईं ओर दिखाया गया EFR32MG12 BRD4166A Thunderboard Sense 2.
  2. दाईं ओर दिखाए गए दो EFR32MG13 BRD4168A.
  3. macOS Catalina 10.15.7 पर Simplicity Studio v5 इंस्टॉल किया गया है. इसमें
    1. Gecko SDK 3.2.0
    2. GNU ARM v7.2.1

BRD4168A

नीचे दी गई इमेज में दिखाए गए तरीके से, हर वायरलेस स्टार्टर किट के मुख्य बोर्ड को यूएसबी के ज़रिए होस्ट कंप्यूटर से कनेक्ट करें. इन कनेक्शन से, आरसीपी और एंड डिवाइसों की प्रोग्रामिंग और नेटवर्क विश्लेषण की अनुमति मिलेगी. सबसे पहले, हम होस्ट कंप्यूटर का इस्तेमाल करके BRD4166A को ot-rcp फ़र्मवेयर के साथ प्रोग्राम करेंगे. इसके बाद, इसे Raspberry Pi से कनेक्ट करेंगे. इसके अलावा, एंड डिवाइसों को होस्ट कंप्यूटर से कनेक्ट करने के लिए, सामान्य ईथरनेट स्विच का इस्तेमाल किया जा सकता है. स्टार्टर किट, IPv4 पर प्रोग्रामिंग और नेटवर्क विश्लेषण की सुविधा भी देती हैं.

कनेक्शन

4. फ़र्मवेयर सेट अप करना

शुरू करने के दो तरीके हैं. इन दोनों विकल्पों से, इस कोडलैब के लिए ज़रूरी फ़र्मवेयर को फ़्लैश किया जा सकता है.

  1. प्रोजेक्ट: (सुझाया गया) कोई सैंपल ऐप्लिकेशन बनाएं, उसे तैयार करें, और फ़्लैश करें. इस विकल्प की मदद से, प्रोजेक्ट में मौजूद ऐप्लिकेशन को अपनी पसंद के मुताबिक बनाया जा सकता है.OR
  2. डेमो: (ज़रूरी नहीं) किसी भी सैंपल ऐप्लिकेशन के लिए, पहले से बने डेमो को सीधे रेडियो बोर्ड पर फ़्लैश करें. उपयोगकर्ताओं को डेमो फ़र्मवेयर सेट अप करने के लिए प्रोत्साहित किया जाता है. हालांकि, यह एक वैकल्पिक गतिविधि है. ज़्यादा जानकारी के लिए, इस कोडलैब के आखिर में दिया गया "फ़र्मवेयर सेट अप करना ज़रूरी नहीं है - डेमो" सेक्शन देखें.

इस कोडलैब के लिए, हम प्रोजेक्ट के आधार पर तय की गई कीमत वाले तरीके का इस्तेमाल करेंगे.

उदाहरणों का इस्तेमाल करके प्रोजेक्ट बनाना

हम दो प्रोजेक्ट बनाएंगे. BRD4166A के लिए ot-rcp प्रोजेक्ट और दो BRD4168A के लिए ot-cli-ftd प्रोजेक्ट. कृपया यह तरीका अपनाएं और अपने बोर्ड के लिए सही सैंपल ऐप्लिकेशन चुनें.

  1. Studio का File मेन्यू खोलें और New > Silicon Labs Project Wizard चुनें. इसके बाद, टारगेट, एसडीके, और टूलचेन चुनने का डायलॉग बॉक्स खुलेगा. OpenThread के साथ काम करने वाले डिफ़ॉल्ट Simplicity IDE / GNU टूलचेन को न बदलें. आगे बढ़ें पर क्लिक करें.
    • टारगेट बोर्ड: इसमें चुने गए रेडियो बोर्ड (BRD4168A) के साथ-साथ मुख्य बोर्ड (BRD4001A) दिखाया जाता है
    • टारगेट डिवाइस: इस फ़ील्ड में, बोर्ड पर मौजूद माइक्रोकंट्रोलर चिप (एमसीयू) दिखता है. BRD4168A में EFR32MG13 MCU ऑनबोर्ड है.
    • एसडीके: यहां ओटी का वह एसडीके वर्शन चुना जा सकता है जिस पर काम किया जा रहा है. सूट की जानकारी में SDK टैग और OpenThread का Silicon Labs बिल्ड शामिल होता है. उदाहरण के लिए, Platform 4.0.1.0 और OpenThread 2.0.1.0 (GitHub-55af6ce2c).
    • आईडीई/ टूलचेन: यह टूलचेन, ओटी प्रोजेक्ट को कंपाइल करने के लिए इस्तेमाल किया जाएगा. हम GNU ARM का इस्तेमाल करते हैं.

नया प्रोजेक्ट विज़र्ड

  1. 'उदाहरण प्रोजेक्ट चुनने का डायलॉग' बॉक्स खुलता है. आपको उदाहरण के तौर पर बनाए गए प्रोजेक्ट की सूची दिखेगी. किसी खास उदाहरण को खोजने के लिए, थ्रेड टेक्नोलॉजी टाइप और कीवर्ड फ़िल्टर का इस्तेमाल करें. Gecko SDK Suite के वर्शन नंबर को नोट करना न भूलें. Raspberry Pi को बॉर्डर राऊटर के तौर पर सेट अप करते समय, आपको इस वर्शन टैग की ज़रूरत होगी. ot-cli-ftd को चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.

'नया प्रोजेक्ट' विज़र्ड का दूसरा चरण

  1. प्रोजेक्ट कॉन्फ़िगरेशन डायलॉग बॉक्स खुलता है. यहाँ प्रोजेक्ट का नाम बदला जा सकता है, प्रोजेक्ट की फ़ाइल की डिफ़ॉल्ट जगह बदली जा सकती है, और यह तय किया जा सकता है कि प्रोजेक्ट की फ़ाइलों को लिंक किया जाएगा या कॉपी किया जाएगा. लिंक की गई प्रोजेक्ट फ़ाइलें, एसडीके की ओर इशारा करती हैं. साथ ही, आपके किए गए सभी बदलाव, एसडीके में किए जाते हैं और आने वाले समय में प्रोजेक्ट के लिए इस्तेमाल किए जाते हैं. प्रोजेक्ट के सोर्स कॉपी करने से, आपको प्रोजेक्ट की लोकल कॉपी में बदलाव करने की अनुमति मिलती है. इससे एसडीके की फ़ाइलें सुरक्षित रहती हैं. ‘SDK लिंक करें और प्रोजेक्ट के सोर्स कॉपी करें' डिफ़ॉल्ट विकल्प है और इसे इस्तेमाल करने का सुझाव दिया जाता है. पूरा करें पर क्लिक करें.

नया प्रोजेक्ट विज़र्ड का तीसरा चरण

  1. Simplicity IDE Perspective खुलता है. इसमें Project Configurator, OVERVIEW टैब पर खुला होता है.

Project overview

प्रोजेक्ट को सॉफ़्टवेयर कॉम्पोनेंट टैब से कॉन्फ़िगर किया जाता है. इसके लिए, कॉम्पोनेंट इंस्टॉल और अनइंस्टॉल किए जाते हैं. साथ ही, इंस्टॉल किए गए कॉम्पोनेंट को कॉन्फ़िगर किया जाता है. इंस्टॉल किए गए कॉम्पोनेंट की जांच की जाती है. उदाहरण के तौर पर दिए गए ऐप्लिकेशन से इंस्टॉल किए गए कॉम्पोनेंट की फ़िल्टर की गई सूची देखने के लिए, इंस्टॉल किए गए कॉम्पोनेंट पर क्लिक करें. आपके किए गए सभी बदलाव अपने-आप सेव हो जाते हैं. साथ ही, प्रोजेक्ट फ़ाइलें अपने-आप जनरेट हो जाती हैं. प्रोग्रेस, Simplicity IDE पर्सपेक्टिव के सबसे नीचे दाएं कोने में दिखती है.

सॉफ़्टवेयर कॉम्पोनेंट

इस डेमो के लिए, हम सैंपल ऐप्लिकेशन के डिफ़ॉल्ट कॉन्फ़िगरेशन का इस्तेमाल करेंगे. अपने दूसरे बोर्ड के लिए ot-rcp प्रोजेक्ट बनाने के लिए, ऊपर दिया गया तरीका दोहराएं.

प्रोजेक्ट बनाना और उन्हें फ़्लैश करना

ot-rcp और ot-cli-ftd, दोनों प्रोजेक्ट को बनाएं और फ़्लैश करें.

  1. प्रोजेक्ट कॉन्फ़िगर हो जाने के बाद, सबसे ऊपर मौजूद टूल बार में बिल्ड कंट्रोल (हथौड़े का आइकॉन) पर क्लिक करें. इसके अलावा, प्रोजेक्ट पर राइट क्लिक करके भी प्रोजेक्ट बनाया जा सकता है.

प्रोजेक्ट बनाएं बटन

  1. प्रोग्रेस को कंसोल में दिखाया जाता है. साथ ही, सबसे नीचे दाईं ओर एक प्रोग्रेस बार दिखता है. आपके प्रोजेक्ट से जुड़ी कोई भी गड़बड़ी या चेतावनी, इस आउटपुट विंडो में भी दिखेगी.

प्रोजेक्ट बिल्ड आउटपुट विंडो

  1. प्रोजेक्ट के बन जाने के बाद, बाइनरी इमेज जनरेट होती हैं. प्रोजेक्ट एक्सप्लोरर व्यू से बाइनरी इमेज को फ़्लैश किया जा सकता है. कंपाइलर सबडायरेक्ट्री में .bin, .hex या .s37 फ़ाइल ढूंढें. फ़ाइल पर राइट क्लिक करें और डिवाइस पर फ़्लैश करें को चुनें. अगर आपके पास एक से ज़्यादा डिवाइस कनेक्ट हैं, तो प्रोग्राम करने के लिए कोई डिवाइस चुनें और ठीक है पर क्लिक करें. फ़ाइल पाथ की जानकारी के साथ Flash Programmer खुलता है. प्रोग्राम पर क्लिक करें.

Flash

5. फ़र्मवेयर सेट अप की खास जानकारी

इस समय तक, आपको रेडियो बोर्ड पर सही फ़र्मवेयर बनाना, कंपाइल करना, और फ़्लैश करना चाहिए. जब BRD4166A पर ot-rcp फ़्लैश हो जाए, तो इसे होस्ट सिस्टम से डिसकनेक्ट करें. इसके बाद, इस बोर्ड को Raspberry Pi से कनेक्ट करें.

इस सेक्शन को पूरा करने के बाद, आपके Thread नेटवर्क के हार्डवेयर का सेट अप कुछ ऐसा दिखेगा.

EFR32MG सेट अप करना

6. ot-cli-ftd डिवाइसों के लिए सीरियल कंसोल सेट अप करना

Console इंटरफ़ेस लॉन्च करने के लिए, Simplicity IDE पर्सपेक्टिव में, डिवाइस व्यू / डीबग अडैप्टर विंडो में अपने J-Link डिवाइस पर राइट क्लिक करें. लॉन्च कंसोल चुनें. कंसोल पर प्रॉम्प्ट पाने के लिए, सीरियल 1 टैब चुनें और Enter दबाएं. FTD नोड की स्थिति देखें.

FTD Studio Console व्यू

आपको दिखेगा कि हमारे पास अब तक ot-rcp के लिए कोई कंसोल नहीं है. अगले चरण में, हम Raspberry Pi को OT बॉर्डर राऊटर के तौर पर कॉन्फ़िगर करेंगे और ot-rcp के लिए कंसोल सेट अप करेंगे.

7. Raspberry Pi को बॉर्डर राउटर के तौर पर सेट अप करना

Silicon Labs का सुझाव है कि कंपनी के Docker कंटेनर को OTBR के साथ डिप्लॉय किया जाए. कंटेनर में OTBR चलाने से, आसानी से डिप्लॉय किए जा सकने वाले आर्टफ़ैक्ट बनाए जा सकते हैं. साथ ही, प्रोटोटाइपिंग और टेस्टिंग को तेज़ी से डेवलप किया जा सकता है.

Silicon Labs की OTBR इमेज, टैग के साथ siliconlabsinc DockerHub पर होस्ट की जाती हैं. हर टैग, GSDK के किसी वर्शन से जुड़ा होता है:

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

किसी रिलीज़ के लिए, Simplicity Studio 5 का इस्तेमाल करके बनाए गए आरसीपी के साथ Docker कंटेनर का इस्तेमाल करना ज़रूरी है. कंटेनर टैग के वर्शन को GSDK के उस वर्शन से मैच करें जिसका इस्तेमाल करके आपको जांच करनी है. उदाहरण के लिए, अगर उदाहरण प्रोजेक्ट चुनने वाली विंडो से ot-rcp चुनने के समय, आपके GDSK का वर्शन Gecko SDK Suite v4.0.1 (140) था, तो siliconlabsinc/openthread-border-router:gsdk-4.0.1 इमेज का इस्तेमाल करें.

GSDK का वर्शन

Raspberry Pi सेट अप करना

  1. अपने एसडी कार्ड पर, पक्का करें कि आपने Raspbian Stretch Lite OS इमेज या Raspbian Stretch with Desktop को फ़्लैश किया हो.
  2. Raspberry Pi पर एसएसएच किया जा सकता है या सीधे Raspbian Desktop का इस्तेमाल किया जा सकता है. टर्मिनल खोलें.
  3. Docker इंस्टॉल करने से पहले, अपनी लोकल रिपॉज़िटरी और पैकेज मैनेजर (apt-get update और apt-get upgrade) को अपडेट करना न भूलें.

Docker इमेज इंस्टॉल करना

  1. अपने RPi पर, यहां दिए गए निर्देश का इस्तेमाल करके Docker इंस्टॉल करें.
    curl -sSL https://get.docker.com | sh
    
  2. यह प्रोसेस पूरी होने के बाद, Docker उपयोगकर्ता की सेटिंग में बदलाव किया जा सकता है, ताकि हर कमांड से पहले sudo की ज़रूरत न पड़े. डिवाइस को फिर से चालू करना ज़रूरी है.
    sudo usermod -aG docker $USER
    
  3. कंटेनर इंस्टॉल करने के लिए, ये कमांड दें. ध्यान दें कि आरसीपी के साथ, एक समय में सिर्फ़ एक बॉर्डर राउटर कंटेनर चालू किया जा सकता है. साथ ही, पक्का करें कि Simplicity Studio GSDK का वर्शन, सही Docker image से मेल खाता हो. उदाहरण के लिए, gsdk-4.0.1:
    docker pull siliconlabsinc/openthread-border-router:gsdk-4.0.1
    

Docker को कॉन्फ़िगर करना और चलाना

  1. आपको उस टीटीवाय पोर्ट को कॉन्फ़िगर करना होगा जिसका इस्तेमाल OTBR को स्टार्टअप में अपने आरसीपी से कनेक्ट करने के लिए करना है. अपने आरसीपी डिवाइस का टीटीवाई पोर्ट ढूंढें. आरसीपी कनेक्ट होने के बाद, /tty/dev... एंट्री ढूंढकर इसे आसानी से किया जा सकता है. आम तौर पर, इसकी वैल्यू /dev/ttyUSB0 या /dev/ttyACM0 होनी चाहिए.
  2. Docker को इंस्टॉल करने के लिए, यह कमांड चलाएं. पक्का करें कि आपने अपनी Docker इमेज के नाम को 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 की ज़रूरत होती है. साथ ही, लंबी अवधि के IPv6 पैकेट के साथ DTLS जैसी महंगी कार्रवाइयों के लिए भी इसकी ज़रूरत होती है.

आरसीपी नोड के साथ इंटरैक्ट करना

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

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

कंटेनर आईडी की सूची पाने के लिए,

$ docker ps -aq

बॉर्डर राऊटर के लॉग आउटपुट को चलाने के लिए, OTBR Docker कंटेनर चलाने वाली विंडो देखी जा सकती है. इसके अलावा, कंटेनर लॉग को इस तरह से फ़ॉलो किया जा सकता है:

$ docker logs [container-id] -f

अगर डॉकर कंटेनर सही तरीके से लोड हो जाता है, तो आपके पास इमेज को रोकने, हटाने या बंद करने का विकल्प होता है.

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

ज़रूरी नहीं: शेल से बाहर निकलने के लिए, CNTL + C का इस्तेमाल करें.

इस समय, आपके पास तीन कंसोल होने चाहिए.

  1. Simplicity Studio में दो ot-cli-ftd कंसोल, जिन्हें फ़ुल थ्रेड डिवाइस के तौर पर सेट अप किया गया है.
  2. Raspberry Pi पर एक ot-ctl इंटरैक्टिव शेल, जिसे OT बॉर्डर राऊटर के तौर पर सेट अप किया गया है.

अब हम थ्रेड नेटवर्क बनाने के लिए तैयार हैं.

8. Thread नेटवर्क बनाना

आरसीपी सेट अप करना

नेटवर्क बनाने के लिए, हम OTBR पर ot-ctl शेल से शुरुआत करते हैं. इसका इस्तेमाल RCP नोड से कम्यूनिकेट करने के लिए किया जाता है. यहां दी गई कमांड को इसी क्रम में डालें:

इंडेक्स

निर्देश

कमांड की जानकारी

उम्मीद के मुताबिक जवाब

1

dataset init new

नया नेटवर्क कॉन्फ़िगरेशन बनाएं.

हो गया

2

dataset commit active

नए डेटासेट को चालू ऑपरेशनल डेटासेट में कमिट करें.

हो गया

3

ifconfig up

Thread इंटरफ़ेस चालू करें.

हो गया

4

thread start

Thread प्रोटोकॉल ऑपरेशन को चालू करें और अटैच करें.

हो गया

थ्रेड इंटरफ़ेस के चालू होने के लिए 10 सेकंड तक इंतज़ार करें.

5

state

डिवाइस की स्थिति देखें. यह लीडर होना चाहिए.
अन्य संभावित स्थितियां: ऑफ़लाइन, बंद, अलग किया गया,
चाइल्ड, राऊटर या लीडर

लीडर
हो गया

6

dataset

नेटवर्क कॉन्फ़िगरेशन देखें.
आपकी वैल्यू, इस कोडलैब से अलग होंगी.
चैनल, नेटवर्क की,
नेटवर्क का नाम, और पैन आईडी नोट करें.

ऐक्टिव टाइमस्टैंप: 1
चैनल: 20
चैनल मास्क: 0x07fff800
एक्सटेंडेड पैन आईडी: 39ba71f7fc367160
मेश लोकल प्रीफ़िक्स: fd5c:c6b:3a17:40b9::/64
नेटवर्क कुंजी: 81ae2c2c17368d585dee71eaa8cf1e90
नेटवर्क का नाम: OpenThread-008c
पैन आईडी: 0x008c
PSKc: c98f0193d4236025d22dd0ee614e641f
सुरक्षा नीति: 0, onrcb
हो गया

हम ot-cli-ftd पर मौजूद चैनल नंबर और नेटवर्क की का इस्तेमाल करके, दोनों FTD को इस थ्रेड नेटवर्क से जोड़ेंगे.

हमारे Thread नेटवर्क में FTD को सेट अप और जोड़ना (आउट ऑफ़ बैंड तरीका)

आउट-ऑफ़-बैंड तरीके में, हमें सुरक्षा से जुड़ी सभी जानकारी होती है. इसलिए, हम नोड को मैन्युअल तरीके से जोड़ते हैं. Simplicity कंसोल में, हमारे नेटवर्क में दोनों FTD जोड़ें. इसके लिए, नीचे दिए गए क्रम में इन कमांड का इस्तेमाल करें.

इंडेक्स

निर्देश

कमांड की जानकारी

उम्मीद के मुताबिक जवाब

1

dataset channel 20

OTBR के लिए इस्तेमाल किया जाने वाला चैनल सेट करें.

हो गया

2

dataset networkkey 81ae2c2c17368d585dee71eaa8cf1e90

किसी डिवाइस को Thread नेटवर्क से कनेक्ट करने के लिए, सिर्फ़ नेटवर्क की की ज़रूरत होती है.

हो गया

3

dataset commit active

नए डेटासेट को चालू ऑपरेशनल डेटासेट में कमिट करें.

हो गया

4

ifconfig up

Thread इंटरफ़ेस चालू करें.

हो गया

5

thread start

Thread प्रोटोकॉल ऑपरेशन को चालू करें और अटैच करें.

हो गया

डिवाइस के कनेक्ट होने और कॉन्फ़िगर होने के दौरान, 20 सेकंड तक इंतज़ार करें.

6

state

नेटवर्क कॉन्फ़िगरेशन देखें.

बच्चे
हो गया

Thread डिवाइसों के बीच कम्यूनिकेशन

हम 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 को पिंग करने के लिए, इस प्रोसेस को दोहराएं.

9. बधाई हो

आपने Thread नेटवर्क बना लिया है!

अब आपको यह जानकारी मिल गई है:

  • Silicon Labs Simplicity Studio IDE का इस्तेमाल करके, OpenThread प्रोजेक्ट बनाने का तरीका.
  • Silicon Labs रेडियो बोर्ड पर OpenThread CLI बाइनरी बनाने और फ़्लैश करने का तरीका.
  • Docker का इस्तेमाल करके, Raspberry Pi 3B+ या इसके बाद वाले वर्शन को OpenThread बॉर्डर राऊटर (OTBR) के तौर पर सेट अप करने का तरीका.
  • OTBR पर थ्रेड नेटवर्क बनाने का तरीका.
  • डिवाइसों को Thread नेटवर्क पर आउट ऑफ़ बैंड कमीशन करना.
  • पिंग कमांड का इस्तेमाल करके, नोड के बीच थ्रेड कम्यूनिकेशन की पुष्टि करने का तरीका.

इस बारे में और पढ़ें

OpenThread के अलग-अलग संसाधनों के लिए, openthread.io और GitHub देखें. इनमें ये संसाधन शामिल हैं:

10. फ़र्मवेयर सेट अप करने का विकल्प - डेमो

डेमो, पहले से बनी फ़र्मवेयर इमेज होती हैं. इन्हें, साथ काम करने वाले डिवाइस पर डाउनलोड किया जा सकता है. Simplicity Studio में, अपने हिस्से के लिए डेमो उपलब्ध है या नहीं, यह देखने का सबसे आसान तरीका है कि Debug Adapters व्यू में जाकर, अपने हिस्से पर क्लिक करें. इसके बाद, Launcher Perspective में जाकर, EXAMPLE PROJECTS & DEMOS टैब पर जाएं. 'उदाहरण प्रोजेक्ट' फ़िल्टर बंद करें. इसके बाद, टेक्नोलॉजी टाइप में जाकर थ्रेड रेडियो बटन पर सही का निशान लगाएं.

Studio के डेमो

OpenThread SDK के साथ उपलब्ध कराई गई, पहले से कंपाइल की गई डेमो ऐप्लिकेशन इमेज, इन बोर्ड के साथ काम करती हैं:

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

आने वाले समय में एसडीके की रिलीज़ में, इस सूची को अपडेट किया जा सकता है, ताकि इसमें ज़्यादा रेडियो बोर्ड शामिल किए जा सकें. साथ काम करने वाले सभी कॉम्पोनेंट की पूरी सूची देखने के लिए, कृपया Documentation में जाकर, Silicon Labs OpenThread SDK के रिलीज़ नोट देखें.

यहां दिए गए डेमो को बोर्ड पर दिखाएं. फ़्लैश करने के लिए, बाईं ओर मौजूद Debug Adapters में जाकर अपना बोर्ड चुनें. इसके बाद, उससे जुड़े सैंपल ऐप्लिकेशन के लिए RUN पर क्लिक करें. आपको एक पॉप-अप विंडो दिखेगी, जिसमें फ़्लैश की प्रोग्रेस दिखेगी.

  1. BRD4166A: ot-rcp — यह डिवाइस, OT बॉर्डर राऊटर के लिए रेडियो को-प्रोसेसर के तौर पर काम करेगा. हम इस डिवाइस का इस्तेमाल, Thread नेटवर्क बनाने के लिए करेंगे. साथ ही, Thread नेटवर्क पर मौजूद अन्य दो डिवाइसों को शामिल करने के लिए भी इसका इस्तेमाल करेंगे. बॉर्डर राऊटर होने के नाते, यह डिवाइस Thread नेटवर्क में मौजूद डिवाइसों के लिए गेटवे के तौर पर भी काम करता है. इससे ये डिवाइस इंटरनेट पर कम्यूनिकेट कर पाते हैं.
  2. दो BRD4168A: ot-cli-ftd — ये दोनों डिवाइस, फ़ुल थ्रेड डिवाइस के तौर पर काम करेंगे. ये डिवाइस, OTBR से बनाए गए Thread नेटवर्क से जुड़ जाएंगे.