nRF52840 kartları ve OpenThread ile bir Thread ağı oluşturun

1. Giriş

26b7f4f6b3ea0700.png

Google tarafından yayınlanan OpenThread, Thread® ağ protokolü için açık kaynaklı bir uygulamadır. Google Nest, Nest ürünlerinde kullanılan teknolojiyi geliştiricilerin kullanımına sunarak bağlı ev için ürünlerin geliştirilmesini hızlandırmak amacıyla OpenThread özelliğini kullanıma sundu.

İleti dizisi spesifikasyonu, ev uygulamaları için IPv6 tabanlı güvenilir, güvenli ve düşük güçlü bir kablosuz cihazdan cihaza iletişim protokolü tanımlar. OpenThread, IPv6, 6LoWPAN, IEEE 802.15.4 dahil olmak üzere MAC güvenliği, Örgü Bağlantısı Oluşturma ve Örgü Yönlendirme dahil tüm Thread ağ katmanını uygular.

Bu Codelab'de OpenThread programını gerçek donanım üzerinde programlayacak, Thread ağ oluşturup yönetecek ve düğümler arasında mesaj ileteceksiniz.

4806d16a8c137c6d.jpeg

Neler öğreneceksiniz?

  • OpenThread CLI ikili programlarını derleme ve geliştirme panosuna aktarma
  • Linux makinesi ve geliştirme panosu içeren bir RCP oluşturma
  • OpenThread Daemon ve ot-ctl kullanarak RCP ile iletişim kurma
  • Thread düğümlerini GNU ekranı ve OpenThread KSA'sıyla manuel olarak yönetme
  • Cihazların İleti Dizisi ağına güvenli bir şekilde dağıtılması
  • IPv6 çoklu yayın özelliğinin işleyiş şekli
  • UDP ile İleti dizisi düğümleri arasında ileti geçirme

Gerekenler

Donanım:

  • 3 Nordic Yarı Yarıiletken nRF52840 geliştirme panosu
  • Kartları bağlamak için 3 adet USB-Mikro USB kablosu
  • En az 3 USB bağlantı noktası olan bir Linux makinesi

Yazılım:

  • GNU Araç Zinciri
  • Nordic nRF5x komut satırı araçları
  • Segger J-Link yazılımı
  • OpenThread
  • Git

2. Başlarken

OpenThread Simülasyonu

Başlamadan önce, temel ileti dizisi kavramları ve OpenThread KSA hakkında bilgi edinmek için OpenThread Simülasyon Kod Laboratuvarı'nı tamamlamanız önerilir.

Seri bağlantı noktası terminalleri

Terminal üzerinden seri bağlantı noktasına nasıl bağlanacağınızı bilmeniz gerekir. Bu Codelab, GNU Ekranını kullanır ve kullanımla ilgili genel bakış sağlar ancak diğer terminal yazılımları kullanılabilir.

Linux makine

Bu Codelab, bir Radio Co-Processor (RCP) Thread cihazına ev sahipliği yapmak ve tüm Thread geliştirme panolarını çalıştırmak için i386 veya x86 tabanlı bir Linux makine kullanmak üzere tasarlanmıştır. Tüm adımlar Ubuntu 14.04.5 LTS'de (Trusty Tahr) test edilmiştir.

Nordic Semiconductor nRF52840 panolar

Bu Codelab'de üç adet nRF52840 PDK panosu kullanılmıştır.

a6693da3ce213856.png

Entegre JTAG modülleri içeren nRF52840 panoları programlamak için SEGGER J-Link'i kullanıyoruz. Bunu Linux makinenize yükleyin.

Makineniz için uygun paketi indirin ve uygun yere yükleyin. Linux'ta bu, /opt/SEGGER/JLink.

nRF5x Komut Satırı Araçlarını Yükle

nRF5x Komut Satırı Araçları, OpenThread ikili kodlarını nRF52840 kartlarına aktarmanıza olanak tanır. Uygun nRF5x-Command-Line-Tools-<OS> derlemesini Linux makinenize yükleyin.

Çıkarılan paketi ~/ kök klasörüne yerleştirin

ARM GNU Araç Zinciri'ni yükleyin

ARM GNU Araç Zinciri bina oluşturmak için kullanılır.

Çıkarılan arşivi Linux makinenizde /opt/gnu-mcu-eclipse/arm-none-eabi-gcc/ adresine yerleştirmenizi öneririz. Yükleme talimatları için arşivin readme.txt dosyasındaki talimatları uygulayın.

Yükleme Ekranı (isteğe bağlı)

Ekran, bir seri bağlantı noktasıyla bağlı cihazlara erişmek için kullanılan basit bir araçtır. Bu Codelab'de ekran kullanılır ancak istediğiniz seri bağlantı noktası terminali uygulamasını kullanabilirsiniz.

$ sudo apt-get install screen

3. Depoları klonlama

OpenThread

OpenThread'ı klonlayın ve yükleyin. script/bootstrap komutları, araç zincirinin yüklü olduğundan ve ortamın düzgün şekilde yapılandırıldığından emin olur:

$ mkdir -p ~/src
$ cd ~/src
$ git clone --recursive https://github.com/openthread/openthread.git
$ cd openthread
$ ./script/bootstrap

OpenThread Arka Plan Programı Oluşturma:

$ script/cmake-build posix -DOT_DAEMON=ON

Artık OpenThread'ı nRF52840 kartlarına oluşturup derlemeye hazırsınız.

4. RCP Bağlayıcı'yı ayarlama

Derleme ve flaş yapma

Birleştirme ve yerel USB işlevleriyle OpenThread nRF52840 örneğini oluşturun. Bir cihaz, güvenli bir şekilde kimlik doğrulaması yapmak ve bir Mesaj Dizisi ağına bağlanmak için Birleştirici rolünü kullanır. Yerel USB, nRF52840 ve ana makine arasında bir seri aktarım olarak USB CDC ACM kullanımını sağlar.

Her zaman önce rm -rf build öğesini çalıştırarak önceki derlemelerin deposunu temizleyin.

$ cd ~/src
$ git clone --recursive https://github.com/openthread/ot-nrf528xx.git
$ cd ot-nrf528xx
$ script/build nrf52840 USB_trans

OpenThread RCP ikili programının bulunduğu dizine gidin ve onaltılık biçime dönüştürün:

$ cd ~/src/ot-nrf528xx/build/bin
$ arm-none-eabi-objcopy -O ihex ot-rcp ot-rcp.hex

USB kablosunu nRF52840 kartındaki harici güç iğnesinin yanındaki Mikro USB hata ayıklama bağlantı noktasına takın, ardından Linux makinesine takın. nRF52840 kartındaki nRF güç kaynağı anahtarını VDD olarak ayarlayın. Doğru şekilde bağlandığında LED5 açık olmalıdır.

20a3b4b480356447.png

Bu, Linux makinesine bağlı ilk kartsa /dev/ttyACM0 seri bağlantı noktası olarak görünür (sn bağlantı noktası tanımlayıcısı için tüm nRF52840 ana makineler ttyACM kullanır).

$ ls /dev/ttyACM*
/dev/ttyACM0

RCP için kullanılan nRF52840 panosunun seri numarasını not edin:

c00d519ebec7e5f0.jpeg

nRFx Komut Satırı Araçlarının konumuna gidin ve panonun seri numarasını kullanarak OpenThread RCP onaltılık dosyasını nRF52840 panosuna yapıştırın. --verify işaretini bırakmanız durumunda flash işleminin hata olmadan başarısız olabileceğini belirten bir uyarı mesajı görürsünüz.

$ cd ~/nrfjprog/
$ ./nrfjprog -f nrf52 -s 683704924  --verify --chiperase --program \
       ~/src/ot-nrf528xx/build/bin/ot-rcp.hex --reset

Başarılı olduğunda aşağıdaki çıkış oluşturulur:

Parsing hex file.
Erasing user available code and UICR flash areas.
Applying system reset.
Checking that the area to write is not protected.
Programing device.
Applying system reset.
Run.

Panoyu daha sonra karıştırmamak için tahtayı “RCP” olarak etiketleyin.

Yerel USB'ye bağlan

OpenThread RCP derlemesi, seri aktarım olarak yerel USB CDC ACM'nin kullanılmasını sağladığından, RCP ana makinesiyle (Linux makinesi) iletişim kurmak için nRF52840 kartındaki nRF USB bağlantı noktasını kullanmanız gerekir.

USB kablosunun Mikro USB ucunu yanıp sönen nRF52840 kartındaki hata ayıklama bağlantı noktasından çıkarın ve YENİDEN AYARLA düğmesinin yanındaki Mikro USB nRF USB bağlantı noktasına yeniden takın. nRF güç kaynağı anahtarını USB olarak ayarlayın.

46e7b670d2464842.png

OpenThread Daemon'ı başlat

RCP tasarımında, Thread cihazıyla iletişim kurmak ve cihazı yönetmek için OpenThread Daemon'u kullanın. ot-daemon değerini -v ayrıntılı işaretiyle başlatın. Böylece günlük çıkışını görebilir ve çıkışın çalıştığını onaylayabilirsiniz:

$ cd ~/src/openthread
$ sudo ./build/posix/src/posix/ot-daemon -v \
    'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'

Başarılı olduğunda, ayrıntılı modda ot-daemon aşağıdakine benzer bir çıkış oluşturur:

ot-daemon[12463]: Running OPENTHREAD/thread-reference-20200818-1938-g0f10480ed; POSIX; Aug 30 2022 10:55:05
ot-daemon[12463]: Thread version: 4
ot-daemon[12463]: Thread interface: wpan0
ot-daemon[12463]: RCP version: OPENTHREAD/thread-reference-20200818-1938-g0f10480ed; SIMULATION; Aug 30 2022 10:54:10

ot-daemon ile ilgili günlüklerin görüntülenebilmesi için bu terminal penceresini açık bırakın.

RCP düğümüyle iletişim kurmak için ot-ctl iletişimini kullanın. ot-ctl, OpenThread KSA uygulamasıyla aynı KSA'yı kullanır. Bu nedenle, ot-daemon düğümlerini diğer Simüle edilmiş İleti Dizisi cihazlarıyla aynı şekilde kontrol edebilirsiniz.

İkinci bir terminal penceresinde ot-ctl uygulamasını başlatın:

$ sudo ./build/posix/src/posix/ot-ctl
>

ot-daemon ile başladığınız Düğüm 2'nin state ayarını (RCP düğümü) kontrol edin:

> state
disabled
Done

5. FTD'leri ayarlama

Bu Codelab'de kullanılan diğer iki ileti dizisi düğümü, standart System-on-Chip (SoC) tasarımındaki Tam Thread Cihazlarıdır (FTD). Bir Üretim ayarında, OpenThread NCP örneklerini kontrol etmek için üretim düzeyinde bir ağ arayüzü sürücüsü olan wpantund kullanılabilir. Ancak bu codelab'de, OpenThread KSA'yı (ot-ctl) kullanacağız.

Bir cihaz, bu ağ üzerinde güvenli bir şekilde kimlik doğrulaması yapmak ve cihazlar için komisyon almak üzere Komisyon görevlisi olarak çalışır. Diğer cihaz, komisyon görevlisinin Thread ağı üzerinde kimlik doğrulaması yapabileceği bir birleştirme işlevi görür.

Derleme ve flaş yapma

nRF52840 platformu için Commissioner ve Birleştirme rollerinin etkin olduğu OpenThread FTD örneğini oluşturun:

$ cd ~/src/ot-nrf528xx
$ rm -rf build
$ script/build nrf52840 USB_trans -DOT_JOINER=ON -DOT_COMMISSIONER=ON

OpenThread Full Thread Device (FTD) CLI ikili programının bulunduğu dizine gidin ve dizini onaltılık biçime dönüştürün:

$ cd ~/src/ot-nrf528xx/build/bin
$ arm-none-eabi-objcopy -O ihex ot-cli-ftd ot-cli-ftd.hex

USB kablosunu nRF52840 kartındaki harici güç iğnesinin yanındaki Mikro USB bağlantı noktasına, ardından Linux makinesine takın. RCP hâlâ Linux makinesine bağlıysa bu yeni pano seri bağlantı noktası /dev/ttyACM1 olarak görünmelidir (tüm nRF52840 panolar seri bağlantı noktası tanımlayıcısı için ttyACM kullanır).

$ ls /dev/ttyACM*
/dev/ttyACM0  /dev/ttyACM1

Daha önce olduğu gibi, FTD için kullanılan nRF52840 panosunun seri numarasını not edin:

c00d519ebec7e5f0.jpeg

nRFx Komut Satırı Araçlarının konumuna gidin ve panonun seri numarasını kullanarak OpenThread CLI FTD onaltılık dosyayı nRF52840 panosuna yapıştırın:

$ cd ~/nrfjprog/
$ ./nrfjprog -f nrf52 -s 683704924 --verify --chiperase --program \
       ~/src/ot-nrf528xx/build/bin/ot-cli-ftd.hex --reset

Panoyu “Komisyon” olarak etiketleyin

Yerel USB'ye bağlan

OpenThread FTD derlemesi, seri aktarım olarak yerel USB CDC ACM kullanımını etkinleştirir. RCP ana makinesi (Linux makinesi) ile iletişim kurmak için nRF52840 kartındaki nRF USB bağlantı noktasını kullanmanız gerekir.

USB kablosunun Mikro USB ucunu yanıp sönen nRF52840 kartındaki hata ayıklama bağlantı noktasından çıkarın ve YENİDEN AYARLA düğmesinin yanındaki Mikro USB nRF USB bağlantı noktasına yeniden takın. nRF güç kaynağı anahtarını USB olarak ayarlayın.

46e7b670d2464842.png

Derlemeyi doğrulayın

Bir terminal penceresinde GNU Screen kullanarak OpenThread KSA'ya erişerek başarılı bir derlemeyi doğrulayın. nRF52840 kartları 115.200 nabız hızı kullanır.

$ screen /dev/ttyACM1 115200

Yeni pencerede, OpenThread CLI > istemini açmak için klavyede birkaç kez Return tuşuna basın. IPv6 arayüzünü açın ve adresleri kontrol edin:

> ifconfig up
Done
> ipaddr
fe80:0:0:0:1cd6:87a9:cb9d:4b1d
Done

Ctrl+a → simgesini kullan

d FTD Commissioner KSA'dan ayırmak ve Linux terminaline dönmek için bir sonraki panonun yanıp sönmesini sağlayın. Komut satırı çubuğunu istediğiniz zaman yeniden girmek için screen -r komut satırını kullanın. Kullanılabilir ekranların listesini görmek için screen -ls uygulamasını kullanın:

$ screen -ls
There is a screen on:
        74182.ttys000.mylinuxmachine        (Detached)
1 Socket in /tmp/uscreens/S-username.

FTD Birleştirici'yi ayarlama

Mevcut ot-cli-ftd.hex derlemesini kullanarak üçüncü nRF52840 panosunu yanıp sönmek için yukarıdaki işlemi tekrarlayın. İşiniz bittiğinde nRF USB bağlantı noktasını kullanarak kartı PC'ye yeniden bağlayın ve nRF güç kaynağı anahtarını VDD olarak ayarlayın.

Bu üçüncü kart bağlandığında diğer iki düğüm Linux makinesine eklenmişse bağlantı noktası /dev/ttyACM2 seri bağlantı noktası olarak görünmelidir:

$ ls /dev/ttyACM*
/dev/ttyACM0  /dev/ttyACM1  /dev/ttyACM2

Jamboard'u &birleştirici" olarak etiketleyin

Ekran kullanarak doğrulama yaparken komut satırından yeni bir Ekran örneği oluşturmak yerine mevcut örneğe yeniden ekleyin ve mevcut pencere içinde yeni bir pencere oluşturun (FTD Müdürlüğü için kullandığınız):

$ screen -r

Ekranda Ctrl+a → c tuşlarına basarak yeni pencere oluşturun.

Yeni bir komut satırı istemi görüntülenir. FTD Birleştirici için OpenThread KSA'sına erişme:

$ screen /dev/ttyACM2 115200

Bu yeni pencerede, OpenThread CLI > istemini açmak için klavyede birkaç kez Return tuşuna basın. IPv6 arayüzünü açın ve adresleri kontrol edin:

> ifconfig up
Done
> ipaddr
fe80:0:0:0:6c1e:87a2:df05:c240
Done

FTD Birleştirici KSA artık FTD Müdürlüğü ile aynı Ekran örneğinde olduğundan Ctrl+a → n tuşlarını kullanarak bunlar arasında geçiş yapabilirsiniz.

Ctrl+a → simgesini kullan

d istediğiniz zaman Ekrandan çıkabilirsiniz.

6. Terminal penceresi kurulumu

İleride, Thread cihazları arasında sık sık geçiş yapacağınız için hepsinin yayında ve kolayca erişilebilir durumda olduğundan emin olun. Şu ana kadar, iki FTD'ye erişmek için Screen'i kullanıyorduk. Bu araç, aynı terminal penceresinde bölünmüş ekrana da izin veriyor. Bir düğümün başka bir düğümde verilen komutlara nasıl tepki verdiğini görmek için bunu kullanın.

İdeal olarak, dört pencerenizin olması gerekir:

  1. ot-daemon hizmeti/günlükleri
  2. ot-ctl üzerinden RCP Birleştirici
  3. OpenThread KSA üzerinden FTD Komisyonu
  4. OpenThread KSA üzerinden FTD Birleştirme Aracı

Kendi terminal / seri bağlantı noktası yapılandırmanızı veya aracınızı kullanmak istiyorsanız sonraki adıma geçebilirsiniz. Terminal pencerelerini, sizin için en uygun şekilde tüm cihazlar için yapılandırın.

Ekran kullanılıyor

Kullanım kolaylığı açısından yalnızca bir Ekran oturumu başlatın. Her iki FTD'yi de oluştururken zaten bir hesap oluşturmuş olmanız gerekir.

Ekran içindeki tüm komutlar Ctrl+a ile başlar.

Temel Ekran komutları:

Ekran oturumuna tekrar ekleyin (komut satırından)

screen -r

Ekran oturumundan çık

Ctrl+a → d

Ekran oturumunda yeni pencere oluştur

Ctrl+a → c

Aynı Ekran oturumundaki pencereler arasında geçiş yapma

Ctrl+a → n (ileri)Ctrl+a → p (geri)

Ekran oturumunda geçerli pencereyi sonlandırın

Ctrl+a → k

Bölünmüş Ekran

Ekran ile terminali birden fazla pencereye bölebilirsiniz:

f1cbf1258cf0a5a.png

screen komutlarına Ctrl+a tuşlarını kullanarak erişebilirsiniz. Her komut, bu erişim tuşu kombinasyonuyla başlamalıdır.

Codelab'i tam olarak uyguluyorsanız aynı Ekran örneğinde iki pencereniz (FTD Müdürlüğü, FTD Birleştirici) olmalıdır. Ekranı ikisi arasında bölmek için önce mevcut Ekran oturumunuzu girin:

$ screen -r

FTD cihazlardan birinde olmanız gerekir. Ekranda şu adımları uygulayın:

  1. Pencereyi yatay olarak bölmek için Ctrl+a → S
  2. İmleci yeni boş pencereye taşımak için Ctrl+a → Tab
  3. Yeni pencereyi sonraki pencereye geçirmek için Ctrl+a → n
  4. Üst pencereyle aynıysa diğer FTD cihazını görüntülemek için tekrar Ctrl+a → n tuşlarına basın

Her ikisi de artık görünür durumda. Ctrl+a → Tab tuşlarını kullanarak aralarında geçiş yapın. Kafa karışıklığının önlenmesi için her pencereyi Ctrl+a → A ile yeniden adlandırmanızı öneririz.

Gelişmiş kullanım

Ekranı tekrar çeyreklere bölmek ve ot-daemon günlüklerini ve RCP Birleştirme ot-ctl dosyasını görüntülemek için bu hizmetler aynı Ekran örneğinde başlatılmalıdır. Bunu yapmak için ot-daemon uygulamasını durdurun ve ot-ctl uygulamasından çıkın ve bunları yeni Ekran pencerelerinde yeniden başlatın (Ctrl+a → c).

Bu ayar gerekli değildir ve kullanıcı için alıştırma olarak bırakılır.

Aşağıdaki komutlarla pencereleri bölebilir ve pencereler arasında gezinebilirsiniz:

Yeni pencere oluştur

Ctrl+a → c

Pencereyi dikey olarak böl

Ctrl+a →

Pencereyi yatay olarak böl

Ctrl+a → S

Sonraki görüntülenen pencereye atla

Ctrl+a → Tab

Görüntülenen pencereyi ileri veya geri değiştirme

Ctrl+a → n veya p

Geçerli pencereyi yeniden adlandırma

Ctrl+a → A

İstediğiniz zaman Ctrl+a → d tuşlarını kullanarak Ekrandan ayrılın ve komut satırından screen -r ile yeniden ekleyin.

Ekran hakkında daha fazla bilgi için GNU Screen hızlı başvuru sayfasını inceleyin.

7. Mesaj Dizisi ağını oluşturma

Tüm terminal pencerelerinizi ve ekranlarınızı yapılandırdığınıza göre şimdi Mesaj dizimizi oluşturalım. FTD Commissioner'da yeni bir Operasyonel Veri Kümesi oluşturup bunu aktif veri kümesi olarak belirleyin. Operasyonel Veri Kümesi, oluşturduğunuz İleti dizisi ağının yapılandırmasıdır.

## FTD Commissioner ##
----------------------

> dataset init new
Done
> dataset
Active Timestamp: 1
Channel: 11
Channel Mask: 07fff800
Ext PAN ID: c0de7ab5c0de7ab5
Mesh Local Prefix: fdc0:de7a:b5c0/64
Network Key: 1234c0de7ab51234c0de7ab51234c0de
Network Name: OpenThread-c0de
PAN ID: 0xc0de
PSKc: ebb4f2f8a68026fc55bcf3d7be3e6fe4
Security Policy: 0, onrcb
Done

Ağ Anahtarı'nı daha sonra kullanmak için not edin. 1234c0de7ab51234c0de7ab51234c0de

Bu veri kümesini etkin veri kümesi olarak girin:

> dataset commit active
Done

IPv6 arayüzünü görüntüleyin:

> ifconfig up
Done

Thread protokol işlemini başlatın:

> thread start
Done

Bir süre sonra cihazın durumunu kontrol edin. Lider olmalıdır. Ayrıca, gelecekte referans olması için RLOC16'yı da edinin.

## FTD Commissioner ##
----------------------

> state
leader
Done
> rloc16
0c00
Done

Cihazın IPv6 adreslerini kontrol edin:

## FTD Commissioner ##
----------------------

> ipaddr
fdc0:de7a:b5c0:0:0:ff:fe00:fc00        # Leader Anycast Locator (ALOC)
fdc0:de7a:b5c0:0:0:ff:fe00:c00         # Routing Locator (RLOC)
fdc0:de7a:b5c0:0:6394:5a75:a1ad:e5a    # Mesh-Local EID (ML-EID)
fe80:0:0:0:1cd6:87a9:cb9d:4b1d         # Link-Local Address (LLA)

"Codelab" ağı artık diğer Thread cihazlarından tarandığında görünür.

RCP Birleştirme'deki ot-ctl kaynağından:

## RCP Joiner ##
----------------

> scan
| PAN  | MAC Address      | Ch | dBm | LQI |
+------+------------------+----+-----+-----+
| c0de | 1ed687a9cb9d4b1d | 11 | -36 | 232 |

FTD Birleştirme Aracı'nda OpenThread KSA'sından:

## FTD Joiner ##
----------------

> scan
| PAN  | MAC Address      | Ch | dBm | LQI |
+------+------------------+----+-----+-----+
| c0de | 1ed687a9cb9d4b1d | 11 | -38 | 229 |

"Kod laboratuvarı" ağı listede görünmüyorsa tekrar taramayı deneyin.

8. RCP Bağlayıcı'yı ekleme

Mesaj Dizisi Oluşturma, ağda etkin değil. Bu nedenle, RCP Birleştirici'yi grup dışında komisyon oluşturma işlemi kullanarak yeni oluşturduğumuz Thread ağına eklememiz gerekiyor.

FTD Müdürlüğü'nde Ağ Anahtarı'nı not ettik (örneğin, 1234c0de7ab51234c0de7ab51234c0de). Ağ Anahtarı'nı tekrar aramanız gerekirse FTD Komisyonunda aşağıdaki komutu çalıştırın:

## FTD Commissioner ##

> dataset networkkey
1234c0de7ab51234c0de7ab51234c0de
Done

Ardından, RCP Birleştiricisi'nde etkin veri kümesi Ağ Anahtarı'nı FTD Commissioner Ağ Anahtarı'na ayarlayın:

## RCP Joiner ##
----------------

> dataset networkkey 1234c0de7ab51234c0de7ab51234c0de
Done
> dataset commit active
Done

Doğru ayarlandığından emin olmak için veri kümesini kontrol edin.

## RCP Joiner ##
----------------

> dataset
Network Key: 1234c0de7ab51234c0de7ab51234c0de

RCP Birleştirici'nin "codelab" ağına katılması için Mesaj dizisini açın. Birkaç saniye bekleyin, durumu, RLOC16'yı ve IPv6 adreslerini kontrol edin:

## RCP Joiner ##
----------------

> ifconfig up
Done
> thread start
Done
> state
child
Done
> rloc16
0c01
Done
> ipaddr
fdc0:de7a:b5c0:0:0:ff:fe00:0c01         # Routing Locator (RLOC)
fdc0:de7a:b5c0:0:66bf:99b9:24c0:d55f    # Mesh-Local EID (ML-EID)
fe80:0:0:0:18e5:29b3:a638:943b          # Link-Local Address (LLA)
Done

Örgü Yerel IPv6 Adresi'ni (burada fdc0:de7a:b5c0:0:66bf:99b9:24c0:d55f) not alın. Bu adresi daha sonra kullanacaksınız.

FTD Commissioner'a geri döndüğünüzde yönlendiricinin ve alt tabloları kontrol ederek her iki cihazın da aynı ağa dahil olduğunu doğrulayın. RCP Birleştiriciyi tanımlamak için RLOC16'yı kullanın.

## FTD Commissioner ##
----------------------

> router table
| ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC     |
+----+--------+----------+-----------+-------+--------+-----+------------------+
|  3 | 0x0c00 |        3 |         0 |     0 |      0 |  35 | 1ed687a9cb9d4b1d |

Done
> child table
| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|S|D|VER| Extended MAC     |
+-----+--------+------------+------------+-------+------+-+-+-+---+------------------+
|   1 | 0x0c01 |        240 |         25 |     3 |   89 |1|1|1|  2| 1ae529b3a638943b |
Done

Bağlantıyı doğrulamak için RCP Bağlayıcı'nın örgü yerel adresini (RCP Bağlayıcı'nın ipaddr çıkışından alınan örgü yerel adresi) pingleyin:

## FTD Commissioner ##
----------------------

> ping fdc0:de7a:b5c0:0:66bf:99b9:24c0:d55f
> 8 bytes from fdc0:de7a:b5c0:0:66bf:99b9:24c0:d55f: icmp_seq=1 hlim=64 time=40ms

Şu anda, bu topoloji şemasında gösterildiği gibi iki düğümden oluşan bir Thread ağı var:

otcodelab_top01C_2düğümler.png

Topoloji diyagramları

Codelab'in geri kalanı boyunca çalışırken, ağın durumu her değiştiğinde yeni bir Thread topoloji diyagramını göstereceğiz. Düğüm rolleri aşağıdaki gibi belirtilir:

b75a527be4563215.png

Yönlendiriciler her zaman beşgen, Son Cihazlar ise her zaman dairedir. Her bir düğümdeki sayılar, her bir düğümün o anki rolüne ve durumuna bağlı olarak KSA çıkışında gösterilen Yönlendirici Kimliği'ni veya Alt Öğe Kimliği'ni temsil eder.

9. FTD Birleştirici

Şimdi üçüncü İleti Dizisi cihazını codecode&ât; ağına ekleyelim. Bu kez, daha güvenli bant içi komisyon sürecini kullanacağız ve yalnızca FTD Birleştirici'nin katılmasına izin vereceğiz.

FTD Kombine Üyesi'nin tanıyabilmesi için FTD Birleştiricisi'nde eui64'yi edinin:

## FTD Joiner ##
----------------

> eui64
2f57d222545271f1
Done

FTD Müdürlüğü'nde komisyon görevlisini başlatın ve toplantıya katılabilecek cihazın eui64 ile birlikte Tamamlayıcı Kimlik Bilgisi'ni (ör. J01NME) belirtin. Birleştirici Kimlik Bilgisi, tüm büyük alfanümerik karakterlerden (okunabilirlik için I, O, Q ve Z hariç 0-9 ve A-Y) oluşan ve 6 ila 32 karakter uzunluğunda, cihaza özgü bir dizedir.

## FTD Commissioner ##
----------------------

> commissioner start
Done
> commissioner joiner add 2f57d222545271f1 J01NME
Done

FTD Birleştirici'ye geçin. Birleştirici rolü, FTD Commissioner'da az önce oluşturduğunuz Birleştirici Kimlik Bilgisi ile başlatın:

## FTD Joiner ##
----------------

> ifconfig up
Done
> joiner start J01NME
Done

Yaklaşık bir dakika içinde başarılı bir kimlik doğrulama için onay alırsınız:

## FTD Joiner ##
----------------

>
Join success

FTD Derlemesi'nin "codelab" ağına katılması için Mesaj dizisini açın, durumu ve RLOC16'yı hemen kontrol edin:

## FTD Joiner ##
----------------

> thread start
Done
> state
child
Done
> rloc16
0c02
Done

Cihazın IPv6 adreslerini kontrol edin. ALOC'nin olmadığına dikkat edin. Bunun nedeni, bu cihazın lider olmaması veya ALOC gerektiren Hercast'e özgü bir role sahip olmamasıdır.

## FTD Joiner ##
----------------

> ipaddr
fdc0:de7a:b5c0:0:0:ff:fe00:c02         # Routing Locator (RLOC)
fdc0:de7a:b5c0:0:3e2e:66e:9d41:ebcd    # Mesh-Local EID (ML-EID)
fe80:0:0:0:e4cd:d2d9:3249:a243         # Link-Local Address (LLA)

Hemen FTD Komisyonu'na geçiş yapın ve yönlendiricide ve alt tablolarda "codelab" ağında üç cihazın mevcut olduğunu onaylayın:

## FTD Commissioner ##
----------------------

> router table
| ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC     |
+----+--------+----------+-----------+-------+--------+-----+------------------+
|  3 | 0x0c00 |        3 |         0 |     0 |      0 |  50 | 1ed687a9cb9d4b1d |

> child table
| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|S|D|N| Extended MAC     |
+-----+--------+------------+------------+-------+------+-+-+-+-+------------------+
|   1 | 0x0c01 |        240 |         25 |     3 |   89 |1|1|1|1| 1ae529b3a638943b |
|   2 | 0x0c02 |        240 |         15 |     3 |   44 |1|1|1|1| e6cdd2d93249a243 |
Done

RLOC16'ya göre, FTD Birleştirme Aracı ağa bir Son Cihaz (alt) olarak eklenmiştir. Güncellenen topolojimiz şöyledir:

otcodelab_top01C_ed01.png

10. Mesaj dizisinin kullanımı

Bu Codelab'deki Mesaj Dizisi cihazları, Yönlendirici Uygun Son Cihazı (REED) olarak adlandırılan belirli bir Tam Thread Cihazı (FTD) türüdür. Yani, Yönlendirici veya Son Cihaz olarak işlev görebilirler ve kendilerini bir Son Cihazdan Yönlendirici'ye yükseltebilirler.

Mesaj dizisi, en fazla 32 yönlendiriciyi destekleyebilir, ancak Yönlendiricilerin sayısını 16 ile 23 arasında tutmaya çalışır. REED, Son Cihaz (alt) olarak eklenirse ve Yönlendirici sayısı 16'nın altındaysa, iki dakika içinde rastgele bir süre geçtikten sonra kendini otomatik olarak Yönlendirici'ye tanıtır.

FTD Birleştirme Aracı'nı ekledikten sonra Thread ağınızda iki alt yayıncı varsa en az iki dakika bekledikten sonra FTD Commissioner'daki yönlendiriciyi ve alt tabloları yeniden kontrol edin:

## FTD Commissioner ##
----------------------

> router table
| ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC     |
+----+--------+----------+-----------+-------+--------+-----+------------------+
|  3 | 0x0c00 |        3 |         0 |     0 |      0 |  50 | 1ed687a9cb9d4b1d |
| 46 | 0xb800 |       63 |         0 |     3 |      3 |   1 | e6cdd2d93249a243 |

> child table
| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|S|D|N| Extended MAC     |
+-----+--------+------------+------------+-------+------+-+-+-+-+------------------+
|   1 | 0x0c01 |        240 |         61 |     3 |   89 |1|1|1|1| 1ae529b3a638943b |
Done

FTD Birleştirici (Genişletilmiş MAC = e6cdd2d93249a243), kendisini bir Yönlendirici'ye yükseltti. RLOC16'nın farklı olduğunu unutmayın (0c02 yerine b800). Bunun nedeni RLOC16'nın cihazın Yönlendirici Kimliği ve Alt Kimliği'ne dayalı olmasıdır. Son Cihazdan Yönlendiriciye geçiş yaptığında Yönlendirici Kimliği ve Alt Kimlik değerleri de değişir ve RLOC16 da değişir.

otcodelab_top01C.png

FTD Birleştirici'de yeni durumu ve RLOC16'yı onaylayın:

## FTD Joiner ##
----------------

> state
router
Done
> rloc16
b800
Done

FTD Birleştirici'yi alt sürüme geçirme

Bu davranışı, FTD Derleyicisi'ni bir Yönlendirici'den tekrar Son Cihaz'a düşürerek test edebilirsiniz. Durumu alt öğe olarak değiştirip RLOC16'yı kontrol edin:

## FTD Joiner ##
----------------

> state child
Done
> rloc16
0c03
Done

otcodelab_top01C_ed02.png

FTD Komitesi'ne geri döndüğünüzde FTD Birleştirme Aracı artık alt tabloda (Kimlik = 3) görünmelidir. Geçiş sırasında bile her ikisinde de olabilir:

## FTD Commissioner ##
----------------------

> router table
| ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC     |
+----+--------+----------+-----------+-------+--------+-----+------------------+
|  3 | 0x0c00 |        3 |         0 |     0 |      0 |  50 | 1ed687a9cb9d4b1d |
| 46 | 0xb800 |       63 |         0 |     3 |      3 |   1 | e6cdd2d93249a243 |

> child table
| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|S|D|N| Extended MAC     |
+-----+--------+------------+------------+-------+------+-+-+-+-+------------------+
|   1 | 0x0c01 |        240 |         61 |     3 |   89 |1|1|1|1| 1ae529b3a638943b |
|   3 | 0x0c03 |        240 |         16 |     3 |   94 |1|1|1|1| e6cdd2d93249a243 |
Done

Bir süre sonra, RLOC'su b800 olan bir Yönlendirici'ye geri döner.

otcodelab_top01C.png

Lideri kaldır

Lider, tüm Mesaj Dizisi Yönlendiricileri arasından kendi kendisini seçer. Mevcut lider, Mesaj Dizisi ağından kaldırılırsa diğer Yönlendiricilerden biri yeni lider olur.

Thread ağınızdan kaldırmak için FTD Commissioner'da Thread'i kapatın:

## FTD Commissioner ##
----------------------

> thread stop
Done
> ifconfig down
Done

İki dakika içinde FTD Birleştirme Aracı yeni Thread lideri olur. Aşağıdakileri doğrulamak için FTD Birleştirici'nin durumunu ve IPv6 adreslerini kontrol edin:

## FTD Joiner ##
----------------

> state
leader
Done
> ipaddr
fdc0:de7a:b5c0:0:0:ff:fe00:fc00       # Now it has the Leader ALOC!
fdc0:de7a:b5c0:0:0:ff:fe00:b800
fdc0:de7a:b5c0:0:3e2e:66e:9d41:ebcd
fe80:0:0:0:e4cd:d2d9:3249:a243
Done

otcodelab_top02C_01.png

Alt tabloyu kontrol edin. Yeni bir RLOC16 olduğunu unutmayın. Bu, kimliği ve Genişletilmiş MAC'i ile belirtildiği gibi RCP Birleştirici'dir. Thread ağını bir arada tutmak için FTD Commissioner'dan FTD Birleştirme'ye üst Yönlendiriciler'i değiştirmiştir. Bu işlem, RCP Bağlayıcı için yeni bir RLOC16 sağlar (Yönlendirici kimliği değiştiğinden 3'ten 46'ya).

## FTD Joiner ##
----------------

> child table
| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|S|D|N| Extended MAC     |
+-----+--------+------------+------------+-------+------+-+-+-+-+------------------+
|   1 | 0xb801 |        240 |         27 |     3 |  145 |1|1|1|1| 1ae529b3a638943b |
Done

RCP Birleştirme'nin çocuk olarak FTD Birleştirici'ye eklenmesi için birkaç dakika beklemeniz gerekebilir. Şunları kontrol etmek için durumu ve RLOC16'yı kontrol edin:

## RCP Joiner ##
--------------

> state
child
> rloc16
b801

FTD Komisyonu'nu yeniden ekleyin

İki düğümlü bir Thread ağı çok eğlenceli değil. FTD Müdürlüğü'nü tekrar internete taşıyalım.

FTD Commissioner'da Thread'i yeniden başlatın:

## FTD Commissioner ##
----------------------

> ifconfig up
Done
> thread start
Done

İki dakika içinde, "codelab" ağına otomatik olarak Son Cihaz olarak yeniden eklenir ve ardından bir Yönlendirici'ye yükseltilir.

## FTD Commissioner ##
----------------------

> state
router
Done

Şunları doğrulamak için FTD Birleştirici'deki yönlendiriciyi ve alt tabloları kontrol edin:

## FTD Joiner ##
----------------

> router table
| ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC     |
+----+--------+----------+-----------+-------+--------+-----+------------------+
|  3 | 0x0c00 |       63 |         0 |     3 |      3 |   0 | 1ed687a9cb9d4b1d |
| 46 | 0xb800 |       46 |         0 |     0 |      0 |  15 | e6cdd2d93249a243 |

> child table
| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|S|D|N| Extended MAC     |
+-----+--------+------------+------------+-------+------+-+-+-+-+------------------+
|   1 | 0xb801 |        240 |        184 |     3 |  145 |1|1|1|1| 1ae529b3a638943b |
Done

otcodelab_top02C_02.png

Mesaj dizisi ağımız tekrar üç düğümden oluşur.

11. Sorun giderme

Farklı terminalde veya Ekran pencerelerinde birden fazla cihaz bulunan bir Thread ağını yönetmek karmaşık olabilir. Sorun yaşarsanız ağın veya çalışma alanınızın durumunu "sıfırlamak" için bu ipuçlarını kullanın.

Ekran

Yapılandırmanızda kaybolursanız (çok fazla Ekran penceresi varsa veya Ekran içindeki Ekranlar), ekran yoksa Ctrl+a → k tuşlarına basarak ve screen -ls komut satırından No Sockets found çıktısını almaya devam edin. Ardından, her bir cihaz için Ekran pencerelerini yeniden oluşturun. Ekran öldürülse bile cihaz durumları korunur.

Mesaj dizisi düğümleri

Thread ağ topolojisi bu Codelab'de açıklandığı şekilde değilse veya düğümlerin bağlantısı herhangi bir nedenle kesiliyorsa (bunun nedeni Linux'un gücünü çalıştıran Linux makinesinin uyku moduna geçmesi olabilir), en iyisi ileti dizisini kaldırmak, ağ kimlik bilgilerini temizlemek ve Thread ağı oluşturun adımından yeniden başlamaktır.

FTD'leri sıfırlamak için:

## FTD Commissioner or FTD Joiner ##
------------------------------------

> thread stop
Done
> ifconfig down
Done
> factoryreset
Done

RCP, ot-ctl aracılığıyla aynı şekilde sıfırlanabilir:

## RCP Joiner ##
----------------

> thread stop
Done
> ifconfig down
Done
> factoryreset
Done

12. Çoklu yayını kullanma

Çoklu yayın, bilgileri bir grup cihaza aynı anda iletmek için kullanılır. İş parçacığı ağında, belirli adresler kapsama bağlı olarak farklı cihaz gruplarıyla çoklu yayın kullanımı için ayrılır.

IPv6 Adresi

Kapsam

Teslim edilen

ff02::1

Yerel bağlantı

Tüm FTD'ler ve MED'ler

ff02::2

Yerel bağlantı

Tüm FTD ve Sınır Yönlendiriciler

ff03::1

Örgü Yerel

Tüm FTD'ler ve MED'ler

ff03::2

Örgü Yerel

Tüm FTD ve Sınır Yönlendiriciler

Bu Codelab'de Sınır Yönlendirici kullanmadığımızdan iki FTD ve MED çoklu yayın adresine odaklanalım.

Yerel bağlantı kapsamı, tek bir radyo iletimi veya tek bir hop'la erişilebilen tüm Mesaj Dizisi arayüzlerini içerir. Ağ topolojisi, ping'e ff02::1 çoklu yayın adresine hangi cihazların yanıt verdiğini belirler.

FTD Müdürlüğü'nden ff02::1 pingleyin:

## FTD Commissioner ##
----------------------

> ping ff02::1
> 8 bytes from fe80:0:0:0:e4cd:d2d9:3249:a243: icmp_seq=2 hlim=64 time=9ms

Ağda iki cihaz daha vardır (FTD Birleştirme Aracı ve RCP Birleştirme Aracı), ancak FTD Müdürlüğü sadece FTD Birleştirici Yerel Bağlantı Adresinden (LLA) yalnızca bir yanıt almıştır. Bu sayede, FTD Kombinecisi tek bir durakla FTD Kombinesi'nin ulaşabileceği tek cihazdır.

otcodelab_top02C_02_LL.png

Şimdi FTD Birleştirme Aracı'ndan ff02::1 pingleyin:

## FTD Joiner ##
----------------

> ping ff02::1
> 8 bytes from fe80:0:0:0:1cd6:87a9:cb9d:4b1d: icmp_seq=1 hlim=64 time=11ms
8 bytes from fe80:0:0:0:18e5:29b3:a638:943b: icmp_seq=1 hlim=64 time=24ms

İki yanıt! Diğer cihazların IPv6 adreslerini kontrol ettiğimizde, ilkinin (4b1d ile biten) FTD Kurulu LLA'nın ve ikincisinin (943b ile biten) RCP Birleştirici LLA'sı olduğunu görebiliriz.

otcodelab_top02C_02_LL02.png

Bu, FTD Birleştirici'nin hem FTD Müdürlüğü'ne hem de RCP Birleştirici'ye doğrudan bağlı olduğunu gösterir. Bu da topolojimizi onaylar.

Örgü Yerel

Örgü-Yerel kapsamı, aynı İleti dizisi ağında erişilebilen tüm ileti dizisi arayüzlerini içerir. ff03::1 çoklu yayın adresine yapılan ping'e verilen yanıtları görelim.

FTD Müdürlüğü'nden ff03::1 pingleyin:

## FTD Commissioner ##
----------------------

> ping ff03::1
> 8 bytes from fdc0:de7a:b5c0:0:0:ff:fe00:b800: icmp_seq=3 hlim=64 time=9ms
8 bytes from fdc0:de7a:b5c0:0:66bf:99b9:24c0:d55f: icmp_seq=3 hlim=64 time=68ms

Bu kez FTD Komisyonu, FTD Derleme Uzmanı'nın Yönlendirme Bulucusu'ndan (RLOC, b800 ile biten) ve diğeri RCP Derlemesi & # Mesh-Local EID'den (ML-EID, sonu d55f) iki yanıt aldı. Bu sorunun kaynağı, tüm ağlarla ilgili ağdır. Bir cihaz, ağ üzerinde nerede olursa olsun ff03::1 adresine abone olur.

otcodelab_top02C_02_ML.png

Aynı davranışı onaylamak için FTD Birleştirme Aracı'ndan ff03::1 pingleyin:

## FTD Joiner ##
----------------

> ping ff03::1
> 8 bytes from fdc0:de7a:b5c0:0:0:ff:fe00:c00: icmp_seq=2 hlim=64 time=11ms
8 bytes from fdc0:de7a:b5c0:0:66bf:99b9:24c0:d55f: icmp_seq=2 hlim=64 time=23ms

otcodelab_top02C_02_LL02.png

RCP Birleştirici'nin her iki ping çıkışındaki yanıt süresini not edin. RCP Bağışçısı'na ulaşmak, FTD Müdürlüğü'ne (68 ms) ulaşmak, FTD Birleştirici'ye (23 ms) ulaşmaktan çok daha uzun sürdü. Çünkü FTD Derneği'ne ulaşmak için iki atlama yapması gerekir.

Örgü yerel çok kanallı ping'in, RCPC'ye yalnızca RF Birleştirici ile değil, yalnızca iki FTD için yanıt verdiğini fark etmiş olabilirsiniz. Bunun nedeni, FTD'lerin ağ içindeki Yönlendiriciler, RCP'nin ise Son Cihaz olmasıdır.

Şunları onaylamak için RCP Birleştirici'nin durumunu kontrol edin:

## RCP Joiner ##
----------------

> state
child

13. UDP ile mesaj gönderme

OpenThread'in sunduğu uygulama hizmetlerinden biri, bir Taşıma Katmanı protokolü olan User Datagram Protocol (UDP)dir. OpenThread'te oluşturulmuş bir uygulama, Thread API'sindeki düğümler arasında veya harici bir ağdaki diğer cihazlara (Thread adlı ağda bir Sınır Yönlendirici varsa internet gibi) mesaj iletmek için UDP API'sini kullanabilir.

UDP soketleri, OpenThread KSA üzerinden açığa çıkar. İki FTD arasında ileti iletmek için bunu kullanalım.

FTD Birleştirme Aracı için Mesh-Local EID adresini alın. Bu adresi Thread ağının herhangi bir yerinden erişilebilir olduğu için kullanıyoruz.

## FTD Joiner ##
----------------

> ipaddr
fdc0:de7a:b5c0:0:0:ff:fe00:fc00        # Leader Anycast Locator (ALOC)
fdc0:de7a:b5c0:0:0:ff:fe00:b800        # Routing Locator (RLOC)
fe80:0:0:0:e4cd:d2d9:3249:a243         # Link-Local Address (LLA)
fdc0:de7a:b5c0:0:3e2e:66e:9d41:ebcd    # Mesh-Local EID (ML-EID)
Done

UDP'yi başlatın ve herhangi bir IPv6 adresi için bunu bir sokete bağlayın:

## FTD Joiner ##
----------------

> udp open
Done
> udp bind :: 1212

FTD Komisyoncusu'na geçin, UDP'yi başlatın ve FTD Birleştirme Aracı'nda ML-EID'yi kullanarak oluşturduğunuz sokete bağlanın:

## FTD Commissioner ##
----------------------

> udp open
Done
> udp connect fdc0:de7a:b5c0:0:3e2e:66e:9d41:ebcd 1212
Done

UDP bağlantısı iki düğüm arasında canlı olmalıdır. FTD Müdürlüğünden mesaj gönderin:

## FTD Commissioner ##
----------------------

> udp send hellothere
Done

UDP mesajı, FTD Birleştirme Aracı'nda alınmıştır.

## FTD Joiner ##
----------------

> 10 bytes from fdc0:de7a:b5c0:0:0:ff:fe00:c00 49153 hellothere

14. Tebrikler!

Fiziksel Thread ağı oluşturdunuz.

b915c433e7027cc7.png

Artık şunları biliyorsunuz:

  • Mesaj dizisi cihaz türleri, roller ve kapsamlar arasındaki fark
  • Thread cihazları ağdaki durumlarını nasıl yönetir?
  • UDP'yi kullanarak düğümler arasında basit iletileri nasıl ileteceğiniz

Sonraki adımlar

Bu Codelab'i oluştururken aşağıdaki alıştırmaları deneyin:

  • ot-cli-mtd ikili programını kullanarak FTD Birleştirici panosunu MTD olarak yeniden başlatın ve kendisinin hiçbir zaman bir Yönlendirici sürümüne geçmediğini veya Lider olmaya çalışmadığını gözlemleyin
  • Ağa daha fazla cihaz ekleyin (farklı bir platform deneyin!), yönlendirici ve alt tablolar kullanarak topolojinin taslağını oluşturun, ayrıca çoklu yayın adreslerine ping atın
  • NCP'yi kontrol etmek için pspinel işlevini kullanın
  • OpenThread Sınır Yönlendirici'yi kullanarak NCP'yi bir Sınır Yönlendirici'ye dönüştürün ve Thread ağınızı internete bağlayın

Daha fazla bilgi

Aşağıdakiler de dahil olmak üzere çeşitli OpenThread kaynakları için openthread.io ve GitHub'a göz atın:

  • Desteklenen Platformlar: OpenThread'ı destekleyen tüm platformları keşfedin
  • OpenOpenThread: OpenThread'ın oluşturulması ve yapılandırılması hakkında daha fazla bilgi
  • Thread Primer: Bu Codelab'de yer alan tüm mesaj dizisi kavramlarını kapsar.

Referans: