1. Giriş
OpenThread, Thread® ağ protokolünün açık kaynaklı bir uygulamasıdır. Bu, Nesnelerin İnterneti (IoT) cihazları için tasarlanmış sağlam ve güvenli bir kablosuz örgü ağ protokolüdür. OpenThread, Google'ın Nest ekibi tarafından geliştirilmiştir ve açık kaynak projesi olarak geliştirici topluluğunun kullanımına ücretsiz olarak sunulmuştur.
Thread Specification, akıllı evler ve ticari binalarda yaygın olarak bulunan kaynak kısıtlamalı cihazlar için güvenilir, güvenli ve enerji tasarruflu bir kablosuz iletişim protokolü oluşturur. OpenThread, Thread içinde MAC güvenliği, örgü bağlantısı kurulumu ve örgü yönlendirme gibi IPv6, 6LoWPAN, IEEE 802.15.4 gibi tam ağ katmanı kapsamını içerir.
Telink, OpenThread uygulamasını Zephyr RTOS'ya entegre ederek Telink donanımıyla sorunsuz uyumluluk sağladı. Bu entegrasyon için kaynak koduna GitHub'dan kolayca erişilebilir. Bu kod, yazılım geliştirme kiti (SDK) olarak da sunulmaktadır.
Bu codelab'de OpenThread'i gerçek donanım üzerinde programlayacak, Thread ağı oluşturup yönetecek ve düğümler arasında mesaj alışverişi yapacaksınız. Aşağıdaki resimde, codelab'de bir OT Sınır Yönlendirici (OTBR) ve bir Thread cihazı içeren donanım kurulumu gösterilmektedir.
Neler öğreneceksiniz?
- Telink Zephyr geliştirme ortamını kullanarak OpenThread uygulamasını ayarlamak.
- OpenThread CLI örneklerini (
ot-cli-ftd
veot-rcp
) derlemek ve Telink B91 Geliştirme Kartlarına yüklemek için. - Raspberry Pi 3B veya sonraki sürümlerde Docker kullanarak OpenThread Sınır Yönlendirici (OTBR) ayarlamak için.
- OTBR üzerinde Thread ağı oluşturmak için.
- Bant dışı hata ayıklamayı kullanarak Thread ağına cihaz eklemek için.
- CLI kullanarak Thread ağındaki düğümler arasındaki bağlantıyı doğrulamak için kullanılır.
Gerekenler
Donanım:
- İki B91 Geliştirme Kurulu.
- Raspbian OS görüntüsüne sahip bir Raspberry Pi 3B+ veya üzeri.
- En az iki USB bağlantı noktasına sahip bir Linux makinesi.
- İnternete bağlı bir anahtar (veya Yönlendirici) ve birkaç Ethernet kablosu.
Yazılım:
- Telink Yazma ve Hata Ayıklama Aracı — LinuxBDT.
- Seri bağlantı noktası terminal aracı (ör. PuTTY).
- Git ve West gibi diğer araçlar.
2. Ön koşullar
Thread Concepts ve OpenThread CLI)
Bu codelab'den önce OpenThread Simülasyon codelab'ini inceleyerek temel Thread kavramları ve OpenThread CLI hakkında bilgi edinebilirsiniz.
Linux Makinesi
Linux makinesi (Ubuntu v20.04 LTS veya sonraki sürümleri), Telink Zephyr geliştirme ortamını kurmak ve tüm Thread geliştirme kartlarını sunmak için kullanılan derleme makinesi olarak işlev görür. Bu görevleri gerçekleştirmek için Linux makinesinin iki kullanılabilir USB bağlantı noktası ve internet bağlantısı gerekir.
Seri Bağlantı Noktası Bağlantısı ve Terminaller
Cihazı doğrudan Linux makinesinin USB bağlantı noktasına takabilirsiniz. Ayrıca, cihazlara erişmek için bir seri bağlantı noktası terminal aracına ihtiyacınız olacaktır.
Bu codelab'de FTD Birleştirici ve Raspberry Pi'yi kontrol etmek için PuTTY terminal aracı kullanılmıştır. Kullanımıyla ilgili bir genel bakış sunar, ancak başka terminal yazılımları da kullanılabilir.
Telink B91 Geliştirme Seti
Bu codelab'de iki set B91 Geliştirme Kiti olmalıdır. Aşağıdaki fotoğrafta, tek bir grupta bulunması gereken minimum bileşenler gösterilmektedir.
Bu kitlerden biri RCP (Radyo Ortak İşlemcisi), diğeri ise FTD (Tam İş Parçacığı Cihazı) olarak kullanılır. Henüz sete sahip değilseniz Telink resmi web sitesinden daha fazla bilgi edinebilirsiniz. Kullanılacak bazı bileşenler şunlardır:
Dizin | Ad |
1 | Telink B91 Geliştirme Kurulu |
2 | Telink Yan Tahta |
3 | 2,4 GHz Anten |
4 | USB Kablosu (USB A - mini USB) |
Raspbian Pi 3B+ veya Raspbian OS Görüntüsü ile Raspberry Pi 3B+
Bu codelab'de Raspbian Bullseye Lite OS görüntüsüne sahip Raspbian Pi 3B+ veya daha yeni bir Raspbian Bullseye Lite OS görüntüsü ya da Masaüstüyle Raspbian Bullseye gereklidir. Ethernet üzerinden internete bağlanır ve OpenThread Sınır Yönlendirici (OTBR) için ana makine olarak yapılandırılır.
Ağ Bağlantısı
İnternete bağlı bir anahtar (veya yönlendirici) ve birkaç Ethernet kablosu. Bunlar, Raspberry Pi'yi Linux makinesine bağlamak için kullanılır. Böylece, ana makine üzerinden Raspberry Pi'nin kullanıcı yapılandırması kolaylaşır.
LinuxBDT
Tüm Telink Çip serileri için geçerli olan Telink Yazma ve Hata Ayıklama Aracı (BDT), OpenThread donanım yazılımını Telink B91 Geliştirme Kartları'na silmenize ve güncelleme yapmanıza olanak tanır. Linux makinenize X86 tabanlı Linux sürümü linuxBDT'yi yükleyin.
Diğer
- Telink Zephyr Geliştirme Ortamı'nı kurmak için Git'e göz atın.
- West, Zephyr projesini yönetmek ve OpenThread ikili programları oluşturmak için kullanılır.
3. Donanım Yazılımı Kurma
Telink Zephyr Geliştirme Ortamı'nı kurun
Linux makinesinde bir CLI terminali açın ve APT'nizin güncel olduğundan emin olmak için aşağıdaki komutları çalıştırarak başlayın.
$ sudo apt update $ sudo apt upgrade
Bu tamamlandıktan sonra aşağıdaki adımlarla devam edin.
- Bağımlılıkları yükleyin.
Zephyr şu anda CMake (3.20.0), Python3 (3.6) ve Devicetree Compiler (1.4.6) gibi ana bağımlılıkların minimum sürümlerini gerektirir.$ wget https://apt.kitware.com/kitware-archive.sh $ sudo bash kitware-archive.sh $ sudo apt install --no-install-recommends git cmake ninja-build \ gperf ccache dfu-util device-tree-compiler python3-dev python3-pip \ python3-setuptools python3-tk python3-wheel xz-utils file make gcc \ gcc-multilib g++-multilib libsdl2-dev
Sonraki adımlara geçmeden önce sisteminizde yüklü sürümleri doğrulayın. Sürümler doğru değilse APT yansıtmasını kararlı ve güncel bir yansıtmaya geçirin ya da bu bağımlılıkları manuel olarak güncelleyin.$ cmake --version $ python3 --version $ dtc --version
- Batıya yükle.
$ pip3 install --user -U west $ echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc $ source ~/.bashrc
~/.local/bin
öğesinin$PATH
ortam değişkeninizde bulunduğundan emin olun. - Zephyr Projesi kaynak kodunu alın.
$ west init ~/zephyrproject $ cd ~/zephyrproject $ west update $ west blobs fetch hal_telink $ west zephyr-export
- Zephyr için ek Python bağımlılıkları yükleyin.
$ pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt
- Zephyr araç zincirini kurun. Çoğu Jamboard'u yüklemenizi sağlamak için Zephyr araç zincirini (yaklaşık 1~2 GB) yerel bir dizine indirin.
Zephyr SDK'sını indirin ve aşağıda gösterildiği gibi önerilen yola yerleştirin.$ wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.1/zephyr-sdk-0.16.1_linux-x86_64.tar.xz $ wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.1/sha256.sum | shasum --check --ignore-missing
Burada [-x.y.z], -0.16.1 gibi herhangi bir metin olabilen isteğe bağlı bir metindir. SDK yüklendikten sonra dizin taşınamaz. Ardından Zephyr araç zincirini yükleyin.$HOME/zephyr-sdk[-x.y.z] $HOME/.local/zephyr-sdk[-x.y.z] $HOME/.local/opt/zephyr-sdk[-x.y.z] $HOME/bin/zephyr-sdk[-x.y.z] /opt/zephyr-sdk[-x.y.z] /usr/zephyr-sdk[-x.y.z] /usr/local/zephyr-sdk[-x.y.z]
$ tar xvf zephyr-sdk-0.16.1_linux-x86_64.tar.xz $ cd zephyr-sdk-0.16.1 $ ./setup.sh -t riscv64-zephyr-elf -h -c
- Hello World örneğini oluşturma Öncelikle Hello World örneğini kullanarak resmi Zephyr proje yapılandırmasının doğru olduğundan emin olun, ardından özel projenizi oluşturma işlemine devam edin.
Zephyr deposunun kök dizininden hello_world örneğini oluşturmak için West derleme komutunu kullanın.$ cd ~/zephyrproject/zephyr $ west build -p auto -b tlsr9518adk80d samples/hello_world
zephyr.bin
adlı donanım yazılımınıbuild/zephyr directory
altında bulabilirsiniz. - Zephyr ortamı komut dosyasını
~/.bashrc
ürününe ekleyin. Aşağıdaki komutları yürütün.$ echo "source ~/zephyrproject/zephyr/zephyr-env.sh" >> ~/.bashrc $ source ~/.bashrc
- Telink Zephyr uzak deposunu ekleyin. Telink deposunu yerel olarak geliştirme dalı olarak indirin ve güncelleyin.
$ cd ~/zephyrproject/zephyr $ git remote add telink-semi https://github.com/telink-semi/zephyr $ git fetch telink develop $ git checkout develop $ west update $ west blobs fetch hal_telink
Daha fazla bilgi için Zephyr Doc – Başlangıç Kılavuzu'na bakabilirsiniz.
Telink LinuxBDT'yi kurun
Telink LinuxBDT aracını indirin ve Linux makinenizdeki yerel bir dizine (ör. ~
ana dizini) ayıklayın. Böylece, donanım yazılımını B91 Geliştirme Kartı'na yüklemeyi etkinleştirin.
$ cd ~ $ wget http://wiki.telink-semi.cn/tools_and_sdk/Tools/BDT/LinuxBDT.tar.bz2 $ tar -vxf LinuxBDT.tar.bz2
Yazma Kartı'nı USB arayüzü üzerinden Linux makinesine bağlayın ve ardından aşağıdaki komutları girin.
$ cd LinuxBDT $ sudo ./bdt lsusb -v Bus 002 Device 001: ID 1d6b:0003 xHCI Host Controller Bus 001 Device 003: ID 0bda:565a Integrated_Webcam_HD Bus 001 Device 023: ID 413c:301a Dell MS116 USB Optical Mouse Bus 001 Device 037: ID 248a:826a Telink Web Debugger v3.6 Bus 001 Device 001: ID 1d6b:0002 xHCI Host Controller
"Telink Web Debugger 3.6 sürümü" mesajını görüyorsanız bu, BDT programcısının Linux makinesine başarıyla bağlandığını gösterir.
Donanım Yazılımı Derlemesi
Bu codelab'de iki tür OpenThread donanım yazılımı derlenir:
ot-cli-ftd
,- ve
ot-rcp
.
Derleme yöntemleri şunlardır:
- Ortak Radyo İşleyici(
ot-rcp
)$ cd ~/zephyrproject $ rm -rf build_ot_coprocessor $ west build -b tlsr9518adk80d -d build_ot_coprocessor zephyr/samples/net/openthread/coprocessor -- -DDTC_OVERLAY_FILE="usb.overlay" -DOVERLAY_CONFIG=overlay-rcp-usb-telink.conf
- Etkileşimli Komut Satırı İçeren Tam Öne Çıkan İleti Dizisi Cihazı (
ot-cli-ftd
)$ cd ~/zephyrproject $ rm -rf build_ot_cli_ftd $ west build -b tlsr9518adk80d -d build_ot_cli_ftd zephyr/samples/net/openthread/cli -- -DOVERLAY_CONFIG=overlay-telink-fixed-mac.conf -DCONFIG_OPENTHREAD_FTD=y
Donanım Yazılımı Flaş
B91 Geliştirme Kartı'nı aşağıdaki resimde gösterildiği gibi USB kablosu kullanarak Yazma Kartı'na bağlayın.
Donanım yazılımı yazma işlemini gerçekleştirmek için komut satırında aşağıdaki komutları yürütün (örnek olarak ot-cli-ftd
donanım yazılımının yanıp sönmesini kullanın).
$ cd ~/zephyrproject/build_ot_cli_ftd/zephyr $ cp zephyr.bin ~/LinuxBDT/bin/ot-cli-ftd.bin $ cd ~/LinuxBDT $ sudo ./bdt 9518 ac Activate OK! $ sudo ./bdt 9518 wf 0 -i bin/ot-cli-ftd.bin EraseSectorsize... Total Time: 2181 ms Flash writing... [100%][-] [##################################################] File Download to Flash at address 0x000000: 491700 bytes Total Time: 30087 ms
ot-rcp
için flash yöntemi, ot-cli-ftd
için kullanılanla aynıdır. Ancak donanım yazılımı yolları ve adları arasında farklılıklar vardır.
Yanıp söndükten sonra iki B91 Geliştirme Kartını uygun şekilde işaretleyerek ayırt edin. ot-cli-ftd
ile gösterilen panoyu "FTD Birleştirici" olarak etiketleyin. ve pano "RCP" olarak ot-rcp
ile yanıp söndü.
4. FTD Birleştirme Cihazı için Seri Konsol yapılandırma
Resimde gösterildiği gibi, FTD Birleştirici'yi doğrudan Linux makinesinin USB bağlantı noktasına takın.
FTD Birleştirici Cihazı'nı Linux makinesine bağladıktan sonra PuTTY'yi açın. Ardından yeni bir terminal oluşturun, seri bağlantı noktası bilgilerini ayarlayın ve seri bağlantı noktasını açın.
OpenThread komut satırı referansını burada bulabilirsiniz: OpenThread CLI Reference. Tüm komutların önüne ot
eklediğinizden emin olun.
Örnekler:
> ot state disabled Done > ot channel 11 Done >
5. Raspberry Pi'yi OpenThread Sınır Yönlendirici olarak ayarlama
OpenThread Sınır Yönlendiricisi iki ana bölümden oluşan bir cihazdır:
- Raspberry Pi, Sınır Yönlendirici (BR) işlevi görmek için gereken tüm hizmetleri ve donanım yazılımını içerir.
- RCP, Thread iletişiminden sorumludur.
Ortak Telsiz İşlemcisi (RCP)
ot-rcp
donanım yazılımını yüklemek için ot-cli-ftd
donanım yazılımının yanıp sönme işlemiyle aynı adımları izleyin. B91 Geliştirme Kartı'nı aşağıdaki şekilde gösterildiği gibi Raspberry Pi'deki USB bağlantı noktasına bağlayın.
Ahududu Pi
- Raspbian Bullseye Lite OS görüntüsünün veya Masaüstüyle Raspbian Bullseye'nin SD karta düzgün şekilde yazıldığından emin olun.
- Raspbian Pi'ye SSH uygulama veya doğrudan Raspbian Masaüstü ile çalışma seçeneğiniz vardır. Bu codelab'de SSH kullanılır.
- Bir sonraki adımda OTBR Docker'ı yüklemeye geçmeden önce yerel depo ve paket yöneticisini güncellediğinizden emin olun.
$ sudo apt-get update $ sudp apt-get upgrade
Docker'ı yükle
Önceki adımda yerel depo ve paket yöneticisi APT'yi güncellerseniz Raspberry Pi'yi yeniden başlatın ve bir SSH terminal penceresi açın.
- Docker'ı yükleyin:
$ curl -sSL https://get.docker.com | sh
- Geçerli hesabı bir Docker grubuna yerleştirerek izni verin. Böylece her komutun önüne
sudo
eklenmesi gerekmez. Geçerli olması için Raspberry Pi'yi yeniden başlatmanız gerekiyor.$ sudo usermod -aG docker $USER
- Docker başlamadıysa şunu başlatın:
$ sudo dockerd
- OTBR güvenlik duvarı komut dosyaları, Docker container'ının içinde kurallar oluşturur. Bundan önce, iptables'ın çekirdek modülünü yüklemek için
modprobe
yürütün.$ sudo modprobe ip6table_filter
Docker'ı Yapılandırma ve Çalıştırma
Bu codelab, OTBR Docker görüntüsünü doğrudan OpenThread Docker Hub'dan çeker. Bu görüntü, OpenThread ekibi tarafından test edilip doğrulandı.
- En son görüntüyü alın:
$ docker pull openthread/otbr:latest
- Docker container'ındaki görüntü listesini kontrol edin:
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE openthread/otbr latest db081f4de15f 6 days ago 766MB
/dev
kontrol ederek RCP cihazının seri bağlantı noktası adını belirleyin.ttyACM0
, RCP'nin doğru şekilde bağlandığını belirtir.$ ls /dev/tty* ... /dev/ttyACM0 ...
- OTBR Docker'ı ilk kez çalıştırın ve RCP'nin seri bağlantı noktasına (
ttyACM0
) başvurun. Bu OTBR Docker'ı kullanmaya devam etmek istiyorsanız docker start otbr komutunu kullanın.$ docker run --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 openthread/otbr --radio-url spinel+hdlc+uart:///dev/ttyACM0
- Raspberry Pi ile RCP arasındaki bağlantıyı test etmek için yeni bir SSH terminal penceresi açın.
$ docker exec -ti otbr sh -c "sudo ot-ctl" > state disabled Done
İsteğe bağlı Docker komutları:
- Çalışan Docker container'ı hakkında bilgi edinin:
$ docker ps -aq
- OTBR Docker'ı durdurun:
$ docker stop otbr
- OTBR Docker'ı kaldırın:
$ docker rm otbr
- OTBR Docker'ı yeniden yükleyin:
$ docker restart otbr
Bu noktada bir FTD Birleştirici cihazı ve bir OTBR hazırdır. Thread ağını oluşturmak için sonraki adıma geçebilirsiniz.
6. Thread Ağı Oluşturma
RCP'de Thread Ağı oluşturma
Thread ağı oluşturmak için OTBR üzerinde ot-ctl kabuğunu kullanırız. Son bölümde kabuktan çıktıysanız aşağıdaki komutu girerek SSH terminalinde tekrar başlatın:
$ docker exec -ti otbr sh -c "sudo ot-ctl"
Ardından, komutları tabloda belirtilen sırayla girin ve sonraki adıma geçmeden önce her adımın beklenen sonuca ulaştığından emin olun.
Dizin | Komut | Giriş | Beklenen Yanıt | ||
1 |
| Yeni bir rastgele ağ veri kümesi oluşturun. | Bitti | ||
2 |
| Değişken olmayan depolamadaki Aktif Operasyonel Veri Kümesine yeni veri kümesi kaydedin. | Bitti | ||
3 |
| IPv6 arayüzünü açın. | Bitti | ||
4 |
| Thread protokolü işlemini etkinleştirin ve bir Thread ağına ekleyin. | Bitti | ||
İleti dizisi arayüzünün hazır olması için 10 saniye bekleyin. | |||||
5 |
| Cihaz durumunu kontrol edin.Bu komut, lider olana ve sonraki adıma geçene kadar birden fazla kez çağrılabilir. | leader | ||
6 |
| Etkin Operasyonel Veri Kümesinin tamamını kontrol edin ve ağ anahtarını kaydedin. |
ot-cli-ftd
cihaz bu Thread ağına katıldığında ağ oluşturma sırasında OTBR tarafından rastgele oluşturulan ağ anahtarı kullanılır.
Bant dışı devreye alma yoluyla FTD Birleştirici'yi Thread'e ekleme
Bant dışı komisyon, ağ kimlik bilgilerinin kablosuz olmayan yöntemlerle (örneğin, OpenThread CLI'a manuel olarak girilmesi) ağa katılmayı bekleyen cihazlara aktarılmasını ifade eder. Aşağıdaki komutları seri konsolda FTD Birleştiriciye doğru sırayla girin.
Dizin | Komut | Giriş | Beklenen Yanıtlar | ||
1 |
| Bir cihazın Thread ağına bağlanması için yalnızca Ağ Anahtarı gereklidir. | Bitti | ||
2 |
| Değişken olmayan depolamadaki Aktif Operasyonel Veri Kümesine yeni veri kümesi kaydedin. | Bitti | ||
3 |
| IPv6 arayüzünü açın. | Bitti | ||
4 |
| Thread protokolü işlemini etkinleştirin ve bir Thread ağına ekleyin. | Bitti | ||
Cihaz katılıp kendini yapılandırırken 20 saniye bekleyin. | |||||
5 |
| Cihaz durumunu kontrol edin. | çocuk/yönlendirici |
Topoloji
Aşağıdaki kod snippet'lerine benzer yanıtlar almak için SSH terminaline ipaddr
, child table
, router table
gibi komutlar girin.
> ipaddr rloc fd8c:60bc:a98:c7ba:0:ff:fe00:b000 Done > child table | ID | RLOC16 | Timeout | Age | LQ In | C_VN |R|D|N|Ver|CSL|QMsgCnt|Suprvsn| Extended MAC | +-----+--------+------------+------------+-------+------+-+-+-+---+---+-------+-------+------------------+ | 1 | 0xb001 | 240 | 23 | 3 | 51 |1|1|1| 3| 0 | 0 | 129 | 82bc12fbe783468e | Done > router table | ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC | Link | +----+--------+----------+-----------+-------+--------+-----+------------------+------+ | 44 | 0xb000 | 63 | 0 | 0 | 0 | 0 | 7ae354109d611f7e | 0 | Done ... > child table | ID | RLOC16 | Timeout | Age | LQ In | C_VN |R|D|N|Ver|CSL|QMsgCnt|Suprvsn| Extended MAC | +-----+--------+------------+------------+-------+------+-+-+-+---+---+-------+-------+------------------+ Done > router table | ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC | Link | +----+--------+----------+-----------+-------+--------+-----+------------------+------+ | 33 | 0x8400 | 63 | 0 | 3 | 3 | 13 | e61487c1cda940a6 | 1 | | 44 | 0xb000 | 63 | 0 | 0 | 0 | 0 | 7ae354109d611f7e | 0 | Done
OTBR'nin RLOC16
değeri 0xb000
, FTD Birleştirici'nin RLOC16
'si ise başlangıçta 0xb001
. Daha sonra, Yönlendirici Kimliği alındıktan sonra FTD Birleştirici'nin RLOC16
değeri 0x8400
haline gelir. FTD Joiner'ın bir çocuktan yönlendiriciye yükseltildiği görülebilir.
Mevcut Thread ağı iki düğüm içerir ve topoloji aşağıdaki şekilde gösterildiği gibidir.
7. Thread Cihazları Arasındaki İletişim
ICMPv6 İletişim
Aynı ağdaki Thread cihazlarının birbiriyle iletişim kurup kuramayacağını kontrol etmek için ping
komutunu kullanırız. Öncelikle, cihazın RLOC'sini almak için ipaddr
komutunu kullanın.
> ipaddr fd8c:60bc:a98:c7ba:0:ff:fe00:fc11 fdbd:7274:649c:1:1d19:9613:f705:a5af fd8c:60bc:a98:c7ba:0:ff:fe00:fc10 fd8c:60bc:a98:c7ba:0:ff:fe00:fc38 fd8c:60bc:a98:c7ba:0:ff:fe00:fc00 fd8c:60bc:a98:c7ba:0:ff:fe00:b000 # Routing Locator (RLOC) fd8c:60bc:a98:c7ba:5249:34ab:26d1:aff6 fe80:0:0:0:78e3:5410:9d61:1f7e Done
Ping işlemini yürütmek için FTD Birleştirici'nin seri konsoluna aşağıdaki komutu girin.
> ot ping fd8c:60bc:a98:c7ba:0:ff:fe00:b000 16 bytes from fd8c:60bc:a98:c7ba:0:ff:fe00:b000: icmp_seq=1 hlim=64 time=19ms 1 packets transmitted, 1 packets received. Packet loss = 0.0%. Round-trip min/avg/max = 19/19.0/19 ms. Done
Seri bağlantı noktasının çıkış yanıtı, OTBR tarafının ping isteğini aldığını ve FTD Birleştirici'nin OTBR tarafından döndürülen ping yanıtını aldığını belirtir. İki cihaz arasındaki iletişimin başarılı olması.
UDP İletişimi
OpenThread tarafından sağlanan uygulama hizmetleri de UDP'yi içerir. Thread API'sini kullanarak Thread ağındaki düğümler arasında bilgi aktarabilir veya Sınır Yönlendiricisi aracılığıyla harici ağlara bilgi aktarabilirsiniz. OpenThread'in UDP API'sinin ayrıntılı tanıtımı OpenThread CLI - UDP Örneği bölümünde bulabilirsiniz. Bu codelab'de, OTBR ve FTD Birleştirici arasında bilgi aktarmak için bazı API'ler kullanılacaktır.
İlk olarak OTBR'nin ağ-yerel SIM kimliğini alın. Bu adres aynı zamanda Thread cihazının IPv6 adreslerinden biridir ve aynı Thread ağ bölümündeki Thread cihazlarına erişmek için kullanılabilir.
> ipaddr mleid fd8c:60bc:a98:c7ba:5249:34ab:26d1:aff6 Done
OTBR UDP'yi etkinleştirmek ve cihazın 1022 bağlantı noktasını bağlamak için SSH terminaline aşağıdaki komutları girin.
> udp open Done > udp bind :: 1022 Done
Seri konsoluna aşağıdaki komutları girin ve FTD Joiner'ın UDP'sini etkinleştirin. Cihazın 1022 bağlantı noktasını bağlayın ve ardından OTBR'ye 5 baytlık hello
mesajı gönderin.
> ot udp open Done > ot udp bind :: 1022 Done > ot udp send fd8c:60bc:a98:c7ba:5249:34ab:26d1:aff6 1022 hello Done
SSH terminali aşağıdaki bilgileri verir. OTBR, FTD Joiner'dan hello
mesajını alır. Bu, UDP iletişiminin başarılı olduğu anlamına gelir.
> 5 bytes from fd8c:60bc:a98:c7ba:9386:63cf:19d7:5a61 1022 hello
8. Tebrikler
Basit bir Thread ağı oluşturdunuz ve bu ağ içindeki iletişimi doğruladınız.
Artık şunları biliyorsunuz:
- Telink Zephyr geliştirme ortamı nasıl oluşturulur ve kullanılır?
ot-cli-ftd
veot-rcp
ikili programları oluşturma ve bunları Telink B91 Geliştirme Kartlarına yükleme.- Raspberry Pi 3B+ veya daha yeni bir sürümü Docker kullanarak OpenThread Sınır Yönlendirici (OTBR) olarak ayarlama.
- OTBR'de Thread ağı oluşturma.
- Bant dışı komisyon aracılığıyla Thread ağına cihaz ekleme
- Thread ağındaki düğümler arasındaki bağlantıyı doğrulama.
Diğer Okumalar
Aşağıdakiler de dahil olmak üzere çeşitli OpenThread kaynakları hakkında bilgi edinmek için openthread.io ve GitHub'a göz atın:
- Desteklenen Platformlar: OpenThread'i destekleyen tüm platformları keşfedin
- OpenThread derleme: OpenThread oluşturma ve yapılandırma hakkında daha fazla bilgi
- Thread Primer: Bu codelab'de yer alan tüm Thread kavramlarını kapsar
Referans belgeler: