با استفاده از Simplicity Studio v5 یک شبکه Thread با بردهای Silicon Labs EFR32 و OpenThread بسازید.

۱. مقدمه

۲۶b7f4f6b3ea0700.png

OpenThread (OT) گوگل، یک پیاده‌سازی متن‌باز از Thread است. گوگل OpenThread را منتشر کرده است تا فناوری شبکه مورد استفاده در محصولات Google Nest را به طور گسترده‌تری در دسترس توسعه‌دهندگان قرار دهد تا توسعه محصولات برای خانه‌های متصل و ساختمان‌های تجاری را تسریع کند. OpenThread با یک لایه انتزاعی پلتفرم باریک و فضای حافظه کم، بسیار قابل حمل است. این پلتفرم از هر دو طرح سیستم روی تراشه (SoC) و کمک پردازنده شبکه (NCP) پشتیبانی می‌کند.

مشخصات Thread یک پروتکل ارتباطی بی‌سیم دستگاه به دستگاه مبتنی بر IPv6، قابل اعتماد، امن و کم‌مصرف را برای کاربردهای خانگی و تجاری تعریف می‌کند.

Silicon Labs، OpenThread را برای کار با سخت‌افزار Silicon Labs بهبود بخشیده است. این کد منبع در GitHub و همچنین به عنوان یک کیت توسعه نرم‌افزار (SDK) که با Simplicity Studio 5 (SSv5) نصب می‌شود، موجود است. SDK شامل یک تصویر لحظه‌ای کاملاً آزمایش‌شده از کد منبع GitHub است. این SDK از طیف وسیع‌تری از سخت‌افزارها نسبت به نسخه GitHub پشتیبانی می‌کند و شامل مستندات و برنامه‌های نمونه‌ای است که در GitHub موجود نیستند.

این راهنما نحوه شروع توسعه برنامه‌های OpenThread با استفاده از Silicon Labs OpenThread SDK و Simplicity Studio 5 را شرح می‌دهد. تصویر زیر بردها (BRD) و سخت‌افزار راه‌اندازی شده با یک روتر مرزی OT (OTBR) و دو دستگاه Thread مورد استفاده در codelab را نشان می‌دهد.

تنظیمات سخت‌افزاری EFR32MG

آنچه یاد خواهید گرفت

  • نحوه ایجاد یک پروژه OpenThread با استفاده از Silicon Labs Simplicity Studio IDE.
  • نحوه ساخت و فلش کردن فایل‌های باینری OpenThread CLI روی بردهای رادیویی Silicon Labs.
  • نحوه راه اندازی Raspberry Pi 3B+ یا بالاتر به عنوان یک روتر مرزی OpenThread (OTBR) با استفاده از Docker.
  • نحوه ایجاد یک شبکه Thread در OTBR.
  • راه‌اندازی خارج از باند دستگاه‌ها در شبکه Thread.
  • نحوه تأیید ارتباط Thread بین گره‌ها با استفاده از دستور ping.

۲. پیش‌نیازها

سخت‌افزار:

  1. ۳ برد رادیویی EFR32MGxx - هر ترکیبی از این دستگاه‌ها قابل استفاده است. این آزمایشگاه کد از یک BRD4166A به عنوان RCP و دو BRD4168A به عنوان دستگاه‌های تمام رشته‌ای استفاده می‌کند.
    • EFR32MG12 (BRD 4161A ، BRD 4166A ، BRD 4170A ، BRD 4304 A)
    • EFR32MG13 (BRD 4168A )
    • EFR32MG21 (BRD 4180A , BRD 4180B )
    اگر تازه شروع کرده‌اید، می‌توانید یکی از کیت‌های استارتر EFR32 Thread را که بردهای ذکر شده در بالا را دارد، تهیه کنید.
  2. BRD4001A: بردهای اصلی استارت بی‌سیم (WSTK) برای میزبانی بردهای رادیویی. به جز BRD4166A، همه بردهای رادیویی به یک برد اصلی استارت نیاز دارند. کابل‌های Mini USB برای اتصال و تغذیه بردهای اصلی یا کابل Micro USB برای BRD4166A.

WSTK AEM

  1. یک رزبری پای 3B+ یا بالاتر با سیستم عامل Raspbian Stretch Lite OS یا Raspbian Stretch به همراه دسکتاپ که از طریق اترنت به اینترنت متصل باشد. ما این را به عنوان یک روتر مرزی OT پیکربندی می‌کنیم.
  2. یک سیستم میزبان ویندوز/لینوکس/مک با حداقل ۲ پورت USB و اتصال اینترنت. سخت‌افزار و سیستم‌عامل مورد نیاز را در SSv5 بررسی کنید.
  3. حداقل یک کابل اترنت برای اتصال رزبری پای به اینترنت. WSTKها همچنین از اشکال‌زدایی و فلش کردن از طریق IP پشتیبانی می‌کنند، بنابراین، به صورت اختیاری، می‌توان از کابل‌های اترنت اضافی برای اتصال WSTK به سیستم میزبان شما از طریق یک سوئیچ اترنت استفاده کرد.

نرم‌افزار:

  • Simplicity Studio نسخه ۵ روی سیستم میزبان ویندوز/لینوکس/مک نصب و به‌روزرسانی شده باشد.
    • زنجیره ابزار GNU ARM
    • Gecko SDK Suite 3.2.0 یا بالاتر و Silicon Labs OpenThread SDK.

۳. راه‌اندازی سخت‌افزار

این Codelab با استفاده از

  1. برد Thunderboard Sense 2 مدل EFR32MG12 BRD4166A همانطور که در سمت چپ نشان داده شده است.
  2. دو عدد EFR32MG13 BRD4168A همانطور که در سمت راست نشان داده شده است.
  3. Simplicity Studio نسخه ۵ روی macOS Catalina 10.15.7 نصب شده است.
    1. کیت توسعه نرم‌افزار گکو ۳.۲.۰
    2. گنو آرم نسخه ۷.۲.۱

BRD4168A

هر برد اصلی کیت شروع بی‌سیم را از طریق USB همانطور که در تصویر زیر نشان داده شده است به کامپیوتر میزبان متصل کنید. این اتصالات امکان برنامه‌ریزی و تجزیه و تحلیل شبکه RCP و دستگاه‌های انتهایی را فراهم می‌کنند. ابتدا از کامپیوتر میزبان برای برنامه‌ریزی BRD4166A با سیستم عامل ot-rcp استفاده می‌کنیم و در نهایت آن را به رزبری پای متصل می‌کنیم. به صورت اختیاری، دستگاه‌های انتهایی می‌توانند از طریق یک سوئیچ اترنت مشترک به کامپیوتر میزبان متصل شوند. کیت‌های شروع همچنین از برنامه‌نویسی و تجزیه و تحلیل شبکه از طریق IPv4 پشتیبانی می‌کنند.

اتصالات

۴. تنظیمات میان‌افزار

دو راه برای شروع وجود دارد. هر دو گزینه به شما امکان می‌دهند فریمورهای مورد نیاز برای این codelab را فلش کنید.

  1. پروژه‌ها: (توصیه می‌شود) ایجاد، ساخت و فلش کردن یک برنامه نمونه. این گزینه به شما امکان می‌دهد برنامه را در پروژه سفارشی کنید. یا
  2. دموها: (اختیاری) دموهای از پیش ساخته شده را مستقیماً روی برد رادیو برای هر یک از برنامه‌های نمونه فلش کنید. به کاربران توصیه می‌شود که تنظیمات میان‌افزار دمو را به عنوان یک تمرین اختیاری امتحان کنند. لطفاً برای جزئیات بیشتر به بخش "تنظیم میان‌افزار اختیاری - دموها" در انتهای این آزمایشگاه کد مراجعه کنید.

ما برای این آزمایشگاه کد از روش مبتنی بر پروژه استفاده خواهیم کرد.

ایجاد پروژه‌ها با استفاده از مثال‌ها

ما دو پروژه ایجاد خواهیم کرد. پروژه ot-rcp برای BRD4166A و پروژه ot-cli-ftd برای دو BRD4168A. لطفاً این مراحل را دنبال کنید و برنامه نمونه مناسب را برای برد خود انتخاب کنید.

  1. منوی فایل استودیو را باز کنید و New > Silicon Labs Project Wizard را انتخاب کنید. پنجره انتخاب Target، SDK و Toolchain باز می‌شود. ابزار پیش‌فرض Simplicity IDE / GNU toolchain که توسط OpenThread پشتیبانی می‌شود را تغییر ندهید. روی Next کلیک کنید .
    • بردهای هدف: برد رادیویی انتخاب شده (BRD4168A) را به همراه برد اصلی (BRD4001A) نشان می‌دهد.
    • دستگاه هدف: این فیلد تراشه میکروکنترلر (MCU) روی برد را نشان می‌دهد. BRD4168A دارای یک MCU روی برد EFR32MG13 است.
    • SDK: در اینجا می‌توانید نسخه SDK مربوط به OT که با آن کار می‌کنید را انتخاب کنید. اطلاعات مجموعه شامل برچسب SDK و نسخه Silicon Labs از OpenThread است، برای مثال Platform 4.0.1.0 و OpenThread 2.0.1.0 (GitHub-55af6ce2c) .
    • IDE/ Toolchain: ابزار مورد استفاده برای کامپایل پروژه OT. ما از GNU ARM استفاده می‌کنیم.

ویزارد پروژه جدید

  1. پنجره انتخاب پروژه نمونه باز می‌شود. لیستی از پروژه‌های نمونه را مشاهده خواهید کرد. از فیلترهای Thread Technology Type و کلمات کلیدی برای جستجوی یک مثال خاص استفاده کنید. حتماً شماره نسخه Gecko SDK Suite را یادداشت کنید. هنگام تنظیم Raspberry Pi به عنوان Border Router به این برچسب نسخه نیاز خواهید داشت. ot-cli-ftd را انتخاب کنید، سپس روی NEXT کلیک کنید.

ویزارد پروژه جدید، مرحله ۲

  1. پنجره‌ی پیکربندی پروژه باز می‌شود. در اینجا می‌توانید نام پروژه‌ی خود را تغییر دهید، محل پیش‌فرض فایل پروژه را تغییر دهید و تعیین کنید که آیا به فایل‌های پروژه لینک می‌دهید یا آنها را کپی می‌کنید. فایل‌های پروژه‌ی لینک‌شده به SDK اشاره می‌کنند و هرگونه تغییری که ایجاد کنید در SDK اعمال شده و برای پروژه‌های آینده استفاده می‌شود. کپی کردن منابع پروژه به شما امکان می‌دهد یک کپی محلی پروژه را ویرایش کنید تا فایل‌های SDK دست‌نخورده باقی بمانند. گزینه‌ی « لینک کردن sdk و کپی کردن منابع پروژه » پیش‌فرض و توصیه‌شده است. روی «پایان» کلیک کنید.

ویزارد پروژه جدید، مرحله ۳

  1. نمای Simplicity IDE با باز شدن پیکربندی پروژه در تب OVERVIEW باز می‌شود.

نمای کلی پروژه

این پروژه از طریق تب Software Components با نصب و حذف اجزا و پیکربندی اجزای نصب شده پیکربندی می‌شود. اجزای نصب شده تیک خورده‌اند. برای مشاهده لیست فیلتر شده‌ای از اجزای نصب شده توسط برنامه نمونه، روی Installed Components کلیک کنید. هر تغییری که ایجاد کنید به صورت خودکار ذخیره می‌شود و فایل‌های پروژه به صورت خودکار تولید می‌شوند. پیشرفت در گوشه پایین سمت راست نمای Simplicity IDE نشان داده می‌شود.

اجزای نرم‌افزار

برای این نسخه آزمایشی، ما از پیکربندی پیش‌فرض برنامه‌های نمونه استفاده خواهیم کرد. مراحل بالا را برای ایجاد پروژه ot-rcp برای برد دیگر خود تکرار کنید.

پروژه‌ها را بسازید و فلش کنید

هر دو پروژه ot-rcp و ot-cli-ftd را بسازید و فلش کنید.

  1. پس از پیکربندی پروژه، روی کنترل ساخت (آیکون چکش) در نوار ابزار بالا کلیک کنید. همچنین می‌توانید روی پروژه کلیک راست کرده و روی ساخت پروژه کلیک کنید.

دکمه ساخت پروژه

  1. پیشرفت در کنسول و یک نوار پیشرفت در پایین سمت راست نمایش داده می‌شود. هرگونه خطا یا هشدار مربوط به پروژه شما نیز در این پنجره خروجی ظاهر می‌شود.

پنجره خروجی ساخت پروژه

  1. تصاویر باینری پس از ساخت موفقیت‌آمیز پروژه تولید می‌شوند. می‌توانید تصویر باینری را از نمای Project Explorer فلش کنید. فایل .bin، .hex یا .s37 را در زیرشاخه کامپایلر پیدا کنید. روی فایل کلیک راست کرده و Flash to Device را انتخاب کنید. اگر بیش از یک دستگاه متصل دارید، دستگاهی را برای برنامه‌ریزی انتخاب کنید ، روی OK کلیک کنید. برنامه‌نویس فلش با مسیر فایل پر شده باز می‌شود. روی PROGRAM کلیک کنید.

فلش

۵. خلاصه تنظیمات میان‌افزار

در این مرحله شما باید میان‌افزار مناسب را روی بردهای رادیویی ایجاد، کامپایل و فلش کرده باشید. پس از فلش کردن ot-rcp به BRD4166A، آن را از سیستم میزبان جدا کرده و این برد را به رزبری پای متصل کنید.

پس از تکمیل این بخش، تنظیمات سخت‌افزار شبکه Thread شما به این شکل خواهد بود.

راه اندازی EFR32MG

۶. کنسول سریال را برای دستگاه‌های ot-cli-ftd تنظیم کنید

برای اجرای رابط کنسول، در پنجره‌ی Devices View / Debug Adapters، در محیط Simplicity IDE روی دستگاه J-Link خود کلیک راست کنید . گزینه‌ی Launch Console را انتخاب کنید. برای دریافت اعلان در کنسول، تب Serial 1 را انتخاب کرده و Enter را فشار دهید . وضعیت گره FTD را بررسی کنید.

نمای کنسول استودیوی FTD

متوجه خواهید شد که ما هنوز کنسولی برای ot-rcp نداریم. در مرحله بعدی، رزبری پای را به عنوان یک روتر مرزی OT پیکربندی کرده و کنسول را برای ot-rcp تنظیم خواهیم کرد.

۷. رزبری پای را به عنوان یک روتر مرزی تنظیم کنید

سیلیکون لبز توصیه می‌کند که کانتینر داکر این شرکت را به همراه OTBR مستقر کنید. اجرای OTBR در یک کانتینر امکان ایجاد مصنوعات با قابلیت استقرار آسان و نمونه‌سازی و آزمایش سریع را فراهم می‌کند.

ایمیج‌های OTBR سیلیکون لبز روی dockerHub سیلیکون لبز با تگ‌ها میزبانی می‌شوند. هر تگ مربوط به یک نسخه GSDK است:

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

کانتینرهای داکر باید با RCPهایی که با استفاده از Simplicity Studio 5 برای یک نسخه خاص ساخته شده‌اند، استفاده شوند. مطمئن شوید که نسخه برچسب کانتینر با نسخه GSDK که با آن آزمایش می‌کنید، مطابقت داشته باشد. برای مثال، اگر نسخه GDSK شما هنگام انتخاب ot-rcp از پنجره Example Project Selection ، Gecko SDK Suite v4.0.1 (140) بود، از تصویر siliconlabsinc/openthread-border-router:gsdk-4.0.1 استفاده کنید.

نسخه GSDK

راه اندازی رزبری پای

  1. مطمئن شوید که فایل ایمیج سیستم عامل Raspbian Stretch Lite یا Raspbian Stretch with Desktop را روی کارت SD خود فلش می‌کنید.
  2. می‌توانید از طریق SSH به رزبری پای متصل شوید یا مستقیماً با دسکتاپ رزبین کار کنید. یک ترمینال باز کنید.
  3. حتماً مخازن محلی و مدیر بسته خود را به‌روزرسانی کنید (قبل از نصب داکر ، apt-get update و apt-get upgrade ).

نصب ایمیج داکر

  1. داکر را با دستور زیر روی رزبری پای خود نصب کنید.
    curl -sSL https://get.docker.com | sh
    
  2. پس از اتمام، می‌توانید تنظیمات کاربری داکر را تغییر دهید تا قبل از هر دستور نیازی به sudo نباشد. راه‌اندازی مجدد لازم است.
    sudo usermod -aG docker $USER
    
  3. برای نصب کانتینرها، دستورات زیر را اجرا کنید. توجه داشته باشید که می‌توانید فقط یک کانتینر Border Router را همزمان با RCP خود اجرا کنید. همچنین، مطمئن شوید که نسخه Simplicity Studio GSDK شما با تصویر Docker صحیح مطابقت دارد. به عنوان مثال، gsdk-4.0.1 :
    docker pull siliconlabsinc/openthread-border-router:gsdk-4.0.1
    

پیکربندی و اجرای داکر

  1. شما باید پورت TTY مورد نظر خود را برای اتصال OTBR به RCP در هنگام راه‌اندازی پیکربندی کنید. به دنبال پورت TTY دستگاه RCP خود باشید. ساده‌ترین راه برای انجام این کار، جستجوی ورودی /tty/dev ... پس از اتصال RCP است. معمولاً باید /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 تا زمانی که کانتینر داکر به درستی بسته (یا حذف) نشود، چسبنده است.
    • پورت ۸۰۸۰ نشان دهنده پورت وب سروری است که صفحه وب مدیریت Border Router در آن قرار دارد.
    • برای حل مشکلات تکه‌تکه شدن/سرهم‌بندی مجدد از طریق UART، که عملیات پرهزینه‌ای مانند DTLS با بسته‌های طولانی IPv6 را به همراه دارد، در گزینه‌های آدرس اینترنتی رادیویی، ?uart-baudrate=460800 مورد نیاز است.

تعامل با گره RCP

پس از اجرای داکر، می‌توانید با استفاده از این دستور از طریق یک پوسته تعاملی با گره RCP ارتباط برقرار کنید. وضعیت گره RCP را بررسی کنید.

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

می‌توانید لیستی از شناسه‌های کانتینرهای در حال اجرا را دریافت کنید

$ docker ps -aq

می‌توانید پنجره‌ای که کانتینر OTBR Docker را اجرا می‌کند را برای اجرای خروجی لاگ Border Router بررسی کنید یا لاگ کانتینر را به صورت زیر دنبال کنید:

$ docker logs [container-id] -f

در صورت بارگذاری صحیح کانتینر داکر، می‌توانید به صورت اختیاری، ایمیج خود را متوقف، حذف یا از بین ببرید.

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

اختیاری: برای خروج از پوسته از CNTL + C استفاده کنید.

در این مرحله، شما باید 3 کنسول داشته باشید.

  1. دو کنسول ot-cli-ftd در Simplicity Studio که به صورت دستگاه‌های Full Thread تنظیم شده‌اند.
  2. یک پوسته تعاملی ot-ctl روی رزبری پای که به عنوان یک روتر مرزی OT تنظیم شده است.

اکنون ما آماده تشکیل یک شبکه Thread هستیم.

۸. یک شبکه Thread ایجاد کنید

تنظیم RCP

برای ایجاد شبکه، با شل ot-ctl روی OTBR که برای ارتباط با گره RCP استفاده می‌شود، شروع می‌کنیم. دستورات زیر را به ترتیبی که در زیر نشان داده شده است، وارد کنید:

فهرست

فرماندهی

توضیحات دستور

پاسخ مورد انتظار

۱

dataset init new

یک پیکربندی شبکه جدید ایجاد کنید.

انجام شد

۲

dataset commit active

مجموعه داده جدید را به مجموعه داده عملیاتی فعال (Active Operational Dataset) اختصاص دهید.

انجام شد

۳

ifconfig up

رابط Thread را فعال کنید.

انجام شد

۴

thread start

فعال کردن و پیوست کردن عملیات پروتکل Thread.

انجام شد

10 ثانیه صبر کنید تا رابط thread فعال شود.

۵

state

وضعیت دستگاه را بررسی کنید. باید در وضعیت پیشرو باشد.
سایر حالت‌های ممکن: آفلاین، غیرفعال، جدا،
کودک، مسیریاب یا رهبر

رهبر
انجام شد

۶

dataset

مشاهده پیکربندی شبکه
مقادیر شما با این آزمایشگاه کد متفاوت خواهد بود.
کانال، کلید شبکه، را یادداشت کنید
نام شبکه و شناسه PAN.

مهر زمانی فعال: ۱
کانال: 20
ماسک کانال: 0x07fff800
شناسه PAN داخلی: 39ba71f7fc367160
پیشوند محلی مش: fd5c:c6b:3a17:40b9::/64
کلید شبکه: 81ae2c2c17368d585dee71eaa8cf1e90
نام شبکه: OpenThread-008c
شناسه PAN: 0x008c
PSKc: c98f0193d4236025d22dd0ee614e641f
سیاست امنیتی: 0، onrcb
انجام شد

ما از شماره کانال و کلید شبکه روی ot-cli-ftd برای اتصال دو FTD به این شبکه نخ استفاده خواهیم کرد.

راه‌اندازی و اضافه کردن FTD به شبکه Thread ما (روش خارج از باند)

با روش خارج از باند، ما تمام اطلاعات امنیتی را می‌دانیم و گره را به صورت دستی اضافه می‌کنیم. در کنسول‌های Simplicity، هر دو FTD را با استفاده از دستورات زیر به ترتیبی که در زیر نشان داده شده است، به شبکه خود اضافه می‌کنیم.

فهرست

فرماندهی

توضیحات دستور

پاسخ مورد انتظار

۱

dataset channel 20

کانال مورد استفاده توسط OTBR را تنظیم کنید.

انجام شد

۲

dataset networkkey 81ae2c2c17368d585dee71eaa8cf1e90

برای اتصال یک دستگاه به شبکه Thread، فقط کلید شبکه مورد نیاز است.

انجام شد

۳

dataset commit active

مجموعه داده جدید را به مجموعه داده عملیاتی فعال (Active Operational Dataset) اختصاص دهید.

انجام شد

۴

ifconfig up

رابط Thread را فعال کنید.

انجام شد

۵

thread start

فعال کردن و پیوست کردن عملیات پروتکل Thread.

انجام شد

۲۰ ثانیه صبر کنید تا دستگاه متصل شده و خودش را پیکربندی کند.

۶

state

مشاهده پیکربندی شبکه

کودک
انجام شد

ارتباط بین دستگاه‌های Thread

ما از دستور ping برای بررسی اینکه آیا دستگاه‌ها می‌توانند با یکدیگر ارتباط برقرار کنند استفاده خواهیم کرد. برای استفاده از دستور 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

پاسخ نشان می‌دهد که بار داده دریافت شده و ارتباط موفقیت‌آمیز بوده است. این فرآیند را برای پینگ کردن FTDها از OTBR تکرار کنید.

۹. تبریک

شما یک شبکه Thread ایجاد کرده‌اید!

حالا می‌دانید:

  • نحوه ایجاد یک پروژه OpenThread با استفاده از Silicon Labs Simplicity Studio IDE.
  • نحوه ساخت و فلش کردن فایل‌های باینری OpenThread CLI روی بردهای رادیویی Silicon Labs.
  • نحوه راه اندازی Raspberry Pi 3B+ یا بالاتر به عنوان یک روتر مرزی OpenThread (OTBR) با استفاده از Docker.
  • نحوه ایجاد یک شبکه Thread در OTBR.
  • راه‌اندازی خارج از باند دستگاه‌ها در شبکه Thread.
  • نحوه تأیید ارتباط Thread بین گره‌ها با استفاده از دستور ping.

مطالعه بیشتر

برای دسترسی به منابع متنوع OpenThread، از جمله موارد زیر، به openthread.io و GitHub مراجعه کنید:

۱۰. تنظیمات اختیاری میان‌افزار - نسخه‌های نمایشی

نسخه‌های نمایشی، ایمیج‌های از پیش ساخته شده‌ی میان‌افزار هستند که آماده دانلود در یک دستگاه سازگار می‌باشند. سریع‌ترین راه برای فهمیدن اینکه آیا نسخه نمایشی برای قطعه شما در Simplicity Studio موجود است یا خیر، کلیک کردن روی قطعه شما در نمای Debug Adapters و سپس رفتن به تب EXAMPLE PROJECTS & DEMOS در Launcher Perspective است. فیلتر Example Projects را غیرفعال کنید و کادر رادیویی Thread را در زیر Technology Type علامت بزنید.

دموهای استودیویی

تصاویر برنامه آزمایشی از پیش کامپایل شده که با OpenThread SDK ارائه شده‌اند، با بردهای زیر سازگار هستند:

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

این لیست ممکن است در نسخه‌های آینده SDK به‌روزرسانی شود تا بردهای رادیویی بیشتری را شامل شود. لطفاً برای مشاهده لیست کامل قطعات پشتیبانی شده، به یادداشت‌های انتشار SDK از Silicon Labs OpenThread در بخش مستندات مراجعه کنید.

دموهای زیر را روی بردهای مربوطه فلش کنید. برای فلش کردن، برد خود را در قسمت Debug Adapters در سمت چپ انتخاب کنید و برای برنامه‌های نمونه مربوطه روی RUN کلیک کنید. یک پنجره بازشو پیشرفت فلش را نشان می‌دهد.

  1. BRD4166A: ot-rcp — این دستگاه به عنوان یک پردازنده رادیویی برای روتر OT Border عمل خواهد کرد. ما از این دستگاه برای ایجاد یک شبکه Thread و راه‌اندازی دو دستگاه دیگر در شبکه Thread استفاده خواهیم کرد. این دستگاه به عنوان یک روتر Border همچنین به عنوان یک دروازه برای دستگاه‌های موجود در شبکه Thread برای برقراری ارتباط از طریق اینترنت عمل می‌کند.
  2. دو BRD4168A: ot-cli-ftd — این دو دستگاه به عنوان دستگاه‌های تمام رشته‌ای عمل می‌کنند. آنها به شبکه رشته‌ای ایجاد شده توسط OTBR می‌پیوندند.