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

1. परिचय

26b7f4f6b3ea0700.png

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

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

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

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

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

आप इन चीज़ों के बारे में जानेंगे

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

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

हार्डवेयर:

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

डब्ल्यूएसटीके एईएम

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

सॉफ़्टवेयर:

  • सरलता स्टूडियो v5 को Windows/Linux/Mac Host सिस्टम पर इंस्टॉल और अपडेट किया जाता है
    • GNU ARM टूलचेन
    • Gecko SDK Suite 3.2.0 या इसके बाद के वर्शन और Silicon Labs OpenThread SDK टूल.

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

यह कोडलैब इसका इस्तेमाल करके बनाया गया था

  1. EFR32MG12 BRD4166A Thunderboard Sense 2. जैसे, बाईं ओर दिखाया गया है.
  2. दो EFR32MG13 BRD4168A, जो दाईं ओर दिखाए गए हैं.
    1. के साथ macOS Catalina 10.15.7 पर इंस्टॉल किया गया सरल स्टूडियो v5
    2. गेको एसडीके 3.2.0
    3. GNU ARM v7.2.1

बीआरडी4168ए

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

कनेक्शन

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

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

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

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

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

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

  1. Studio का फ़ाइल मेन्यू खोलें और नया > चुनें Silicon Labs प्रोजेक्ट विज़र्ड. ऐसा करने पर, टारगेट, SDK, और टूलचेन चुनने वाला डायलॉग बॉक्स खुल जाएगा. OpenThread के साथ काम करने वाले डिफ़ॉल्ट सादगी IDE / GNU टूलचेन को न बदलें. आगे बढ़ें पर क्लिक करें.
    • टारगेट बोर्ड: चुने गए रेडियो बोर्ड (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/ टूलचेन: वह टूलचेन, जिसका इस्तेमाल ओटी प्रोजेक्ट को कंपाइल करने के लिए किया जाएगा. हम GNU ARM का इस्तेमाल करते हैं.

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

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

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

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

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

  1. सादगी IDE Perspective की मदद से, प्रोजेक्ट कॉन्फ़िगर करने वाला टूल खुलता है. इसमें खास जानकारी टैब होता है.

प्रोजेक्ट अवलोकन

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

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

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

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

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

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

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

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

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

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

Flash

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

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

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

EFR32MG सेट अप

6. सीरियल कंसोल को इनके लिए सेट अप करें ओटी-क्ली-एफ़टी डिवाइस

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

FTD स्टूडियो कंसोल दृश्य

आपको दिखेगा कि फ़िलहाल हमारे पास 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

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

GSDK का वर्शन

Raspberry Pi का सेट अप

  1. अपने एसडी कार्ड में यह ज़रूर देख लें कि आपने रैस्पबियन स्ट्रेच लाइट ओएस इमेज या डेस्कटॉप के साथ रैस्पबियन स्ट्रेच फ़्लैश किया हो.
  2. आप SSH को Raspberry Pi पर बना सकते हैं या सीधे Raspbian Desktop के साथ काम करने का विकल्प भी चुन सकते हैं. टर्मिनल खोलें.
  3. Docker इंस्टॉल करने से पहले, अपने लोकल डेटा स्टोर करने की जगहों और पैकेज मैनेजर (apt-get अपडेट और apt-get अपग्रेड) को अपडेट ज़रूर करें.

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

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

डॉकर कॉन्फ़िगर करें और चलाएं

  1. स्टार्टअप पर अपना आरसीपी कनेक्ट करने के लिए, आपको वह TTY पोर्ट कॉन्फ़िगर करना होगा जिसका इस्तेमाल आपको ओटीबीआर के लिए करना है. अपने आरसीपी डिवाइस का टीटीवाई पोर्ट ढूंढें. ऐसा करने का सबसे आसान तरीका यह है कि आरसीपी कनेक्ट हो जाने के बाद, /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 पर फ़्रैगमेंटेशन / फिर से जोड़ने की समस्याओं से बचने के लिए, रेडियो यूआरएल विकल्पों में ?uart-baudrate=460800 होना ज़रूरी है. इसमें लंबे IPv6 पैकेट के साथ डीटीएलएस जैसे महंगे ऑपरेशन शामिल हैं.

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

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

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

आपको चल रहे कंटेनर आईडी की सूची मिल सकती है

$ docker ps -aq

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

$ docker logs [container-id] -f

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

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

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

अब आपके पास तीन कंसोल होने चाहिए.

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

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

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

आरसीपी सेट अप करें

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

इंडेक्स

आदेश

निर्देश की जानकारी

अनुमानित जवाब

1

dataset init new

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

हो गया

2

dataset commit active

ऐक्टिव ऑपरेशनल डेटासेट के लिए नया डेटासेट जोड़ें.

हो गया

3

ifconfig up

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

हो गया

4

thread start

Thread प्रोटोकॉल की कार्रवाई को चालू और अटैच करें.

हो गया

थ्रेड का इंटरफ़ेस खुलने में 10 सेकंड लगेंगे.

5

state

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

Leader
Done

6

dataset

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











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

हमारे Thread नेटवर्क पर 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 निर्देश का इस्तेमाल करके, यह पता लगाएंगे कि डिवाइस एक-दूसरे से कनेक्ट हो पा रहे हैं या नहीं. पिंग कमांड का इस्तेमाल करने के लिए, हमें डिवाइसों के आईपीवी6 पतों की ज़रूरत होगी. इन्हें 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)

दोनों एफ़टीडी से, ओटीबीआर के आरएलओसी पते का इस्तेमाल करके ओटीबीआर को पिंग करते हैं.

> 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

रिस्पॉन्स से पता चलता है कि पेलोड मिल गया है और कम्यूनिकेशन हो गया है. ओटीबीआर से एफ़टीडी पिंग करने के लिए यह प्रक्रिया दोहराएं.

9. बधाई हो

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

अब आपको पता है:

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

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

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

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

डेमो, पहले से बनी फ़र्मवेयर इमेज होती हैं. इन्हें किसी ऐसे डिवाइस पर डाउनलोड किया जा सकता है जिस पर यह सुविधा काम करती है. Simpley Studio में आपके लिए डेमो उपलब्ध है या नहीं, इसका पता लगाने का सबसे तेज़ तरीका यह है कि आप डीबग अडैप्टर व्यू में जाकर अपने हिस्से पर क्लिक करें. इसके बाद, प्रोजेक्ट के उदाहरण और लॉन्चर Perspective में डेमो टैब. उदाहरण प्रोजेक्ट के फ़िल्टर को बंद करें और टेक्नोलॉजी टाइप में जाकर Thread रेडियो चेकबॉक्स को चुनें.

Studio के डेमो

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

  1. बीआरडी4161ए
  2. बीआरडी4166ए
  3. बीआरडी4168ए
  4. बीआरडी4180ए
  5. बीआरडी4304ए

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

संबंधित बोर्ड पर इन डेमो को फ़्लैश करें. फ़्लैश करने के लिए, बाईं ओर डीबग अडैप्टर के तहत अपने बोर्ड को चुनें और संबंधित नमूना ऐप्लिकेशन के लिए RUN पर क्लिक करें. फ़्लैश होने की प्रोग्रेस को दिखाने के लिए, एक पॉप-अप विंडो खुलेगी.

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