1. Giriş
OpenThread, Nesnelerin İnterneti (IoT) cihazları için tasarlanmış sağlam ve güvenli bir kablosuz bağlantılı ağ protokolü olan Thread® ağ protokolünün açık kaynaklı bir uygulamasıdır. Google'ın Nest ekibi tarafından geliştirilen OpenThread, açık kaynak projesi olarak geliştirici topluluğunun erişimine açıktır.
Thread Specification, akıllı evlerde ve ticari binalarda yaygın olarak bulunan kaynak kısıtlaması olan cihazlar için güvenilir, güvenli ve enerji açısından verimli bir kablosuz iletişim protokolü oluşturur. OpenThread, Thread içinde IPv6, 6LoWPAN, MAC güvenlikli IEEE 802.15.4 gibi tam ağ katmanı kapsamını, örgü bağlantı oluşturma ve örgü yönlendirmesini içerir.
Telink, OpenThread uygulamasını Zephyr RTOS'ye entegre ederek Telink donanımıyla sorunsuz uyumluluk sağladı. Bu entegrasyonun kaynak koduna GitHub'dan kolayca erişebilirsiniz. Ayrıca, yazılım geliştirme kiti (SDK) olarak da sunulmaktadır.
Bu codelab'de, OpenThread'i gerçek donanımda 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 Kenar 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 için.
- OpenThread CLI örneklerini (
ot-cli-ftd
veot-rcp
) oluşturmak ve bunları Telink B91 Development Boards'a yüklemek için. - RAPberry Pi 3B+ veya sonraki sürümlerde Docker kullanarak OpenThread Sınır Yönlendirici (OTBR) ayarlamak için:
- OTBR'de Thread ağı oluşturmak için.
- Bant dışı hata ayıklama özelliğini kullanarak cihazları Thread ağına eklemek için.
- CLI kullanarak Thread ağındaki düğümler arasındaki bağlantıyı doğrulamak için.
Gerekenler
Donanım:
- İki B91 Geliştirme Kartı.
- Rspibian OS Image ile One Rasberry Pi 3B+ veya daha fazlası.
- En az iki USB bağlantı noktası olan bir Linux makine.
- İnternete bağlı bir anahtar (veya Yönlendirici) ve birkaç Ethernet kablosu.
Yazılım:
- Telink Yazma ve Hata Ayıklama Aracı —— LinuxBDT.
- PuTTY gibi seri bağlantı noktası terminal aracı.
- Git ve West gibi diğer araçlar.
2. Ön koşullar
Thread Concepts ve OpenThread CLI
Bu codelab'den önce temel İş Parçacığı kavramlarına ve OpenThread CLI'ye aşina olmak için OpenThread Simulation codelab'e göz atmak yararlı olabilir.
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ı yüklemek için derleme makinesi görevi görür. Linux makinesinin bu görevleri yerine getirebilmesi için iki USB bağlantı noktası ve internet bağlantısı olması 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 Joiner ve Raspberry Pi'yi kontrol etmek için PuTTY terminal aracı kullanılır. Kullanımına genel bir bakış sunar ancak başka terminal yazılımları da kullanılabilir.
Telink B91 Geliştirme Kiti
Bu codelab'de iki B91 Geliştirme Kiti seti gereklidir. Aşağıdaki fotoğrafta, tek bir kümedeki minimum gerekli bileşenler gösterilmektedir.
Bu setlerden biri RCP (Radyo Ortak İşlemci) olarak kullanılırken diğeri FTD (Tam İş Parçacıklı Cihaz) olarak kullanılacaktır. Bu sete henüz sahip değilseniz daha fazla bilgiyi Telink resmi web sitesinden edinebilirsiniz. Kullanılacak bazı bileşenler aşağıda belirtilmiştir:
Dizin | Ad |
1 | Telink B91 Geliştirme Kurulu |
2 | Telink Yakma Tahtası |
3 | 2,4 Ghz Anten |
4 | USB Kablosu (USB A'dan mini USB'ye) |
Rasberry Pi 3B+ veya Rspibian OS Image ile daha yeni
Bu codelab'de, Rasbian Bullseye Lite OS görüntüsü ya da Masaüstü ile Rspibian Bullseye içeren bir RASPbian Pi 3B+ veya daha yeni bir sürüm gereklidir. Ethernet üzerinden internete bağlıdı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. Bu API'ler, Rasberry Pi'yi Linux makinesine bağlamak için kullanılır. Bu sayede, ana makine üzerinden Rasberry Pi'nin yapılandırılmasını kolaylaştırır.
LinuxBDT
Tüm Telink Chip serileri için geçerli olan Telink Burning and Hata Ayıklama Aracı (BDT), OpenThread donanım yazılımını Telink B91 Development Board'lara silmenize ve yüklemenize olanak tanır. X86 tabanlı linuxBDT linux sürümünü Linux makinenize yükleyin.
Diğer emojiler
- Telink Zephyr Geliştirme Ortamı'nı kurmak için Git!
- West, Zephyr projesini yönetmek ve OpenThread ikili programları derlemek için.
3. Donanım Yazılımını Ayarla
Telink Zephyr Geliştirme Ortamı Kurulumu
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
Bunu yaptıktan sonra aşağıdaki adımlarla devam edin.
- Bağımlılıkları yükleyin.
$ 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
Zephyr şu anda CMake (3.20.0), Python3 (3.6) ve Devicetree Compiler (1.4.6) gibi temel bağımlılıkların minimum sürümlerini gerektirmektedir.$ cmake --version $ python3 --version $ dtc --version
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 veya bu bağımlılıkları manuel olarak güncelleyin. - Batıya yükleyin.
$ pip3 install --user -U west $ echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc $ source ~/.bashrc
$PATH
ortam değişkeninizde~/.local/bin
bulunduğundan emin olun. - Zephyr Project'in 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 kartı yüklemenize olanak tanımak için Zephyr araç zincirini (yaklaşık 1~2 GB) yerel bir dizine indirin.
$ 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
Zephyr SDK'yı indirin ve aşağıda gösterildiği gibi önerilen yola yerleştirin.$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]
[-x.y.z], herhangi bir metin olabilen isteğe bağlı bir metindir (ör. -0.16.1). SDK yüklendikten sonra dizin taşınamaz. Ardından Zephyr araç zincirini yükleyin.$ 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şturun. Öncelikle Hello World örneğini kullanarak resmi Zephyr proje yapılandırmasının doğru olduğunu onaylayın, ardından özel projenizi oluşturma işlemine devam edin.
$ cd ~/zephyrproject/zephyr $ west build -p auto -b tlsr9518adk80d samples/hello_world
hello_world örneğini, Zephyr deposunun kök dizininden derlemek için Batı derleme komutunu kullanın.zephyr.bin
adlı donanım yazılımınıbuild/zephyr directory
altında bulabilirsiniz. - Zephyr ortamı komut dosyasını
~/.bashrc
kaynağına 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 geliştirme dalı olarak yerel olarak indirip 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'nu inceleyebilirsiniz.
Telink LinuxBDT'yi kurun
Telink LinuxBDT aracını indirin ve Linux makinenizdeki ~
ana dizini gibi yerel bir dizine çıkararak donanım yazılımını B91 Geliştirme Kurulu'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
Burning Board'u, USB arayüzü aracılığıyla Linux makinesine bağlayın ve 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 v3.6" mesajını görmeniz, BDT programcısının Linux makinesine başarılı bir şekilde bağlandığını gösterir.
Donanım Yazılımı Derlemesi
Bu codelab'de iki tür OpenThread donanım yazılımı derlemektedir:
ot-cli-ftd
,- ve
ot-rcp
.
Derleme yöntemleri şunlardır:
- Radyo Ortak İşlemci(
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ı Flash'ı
Aşağıdaki şekilde gösterildiği gibi, USB kablosu kullanarak bir B91 Geliştirme Kartını Yanma Tahtasına bağlayın.
Donanım yazılımına 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 uygulananla temelde 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, uygun şekilde işaretleyerek iki B91 Geliştirme Kartını ayırt edin. ot-cli-ftd
ile yanıp sönen panoyu "FTD Joiner" ve ot-rcp
ile yanıp sönen panoyu "RCP" olarak etiketleyin.
4. FTD Birleştirici Cihazı için Seri Konsolu Yapılandırma
Resimde gösterildiği gibi, FTD Joiner'ı doğrudan Linux makinesinin USB bağlantı noktasına takın.
FTD Joiner 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ı şuradadır: OpenThread CLI Reference. Tüm komutların önüne ot
gönderdiğinizden emin olun.
Örnekler:
> ot state disabled Done > ot channel 11 Done >
5. Raffberry Pi'yi OpenThread Sınır Yönlendirici olarak ayarlama
OpenThread Sınır Yönlendirici, iki ana bölümden oluşan bir cihazdır:
- Raffberry Pi, Sınır Yönlendirici (BR) olarak çalışmak için gereken tüm hizmetleri ve donanım yazılımını içerir.
- RCP, iş parçacığı iletişiminden sorumludur.
Radyo Ortak İşlemci(RCP)
ot-rcp
donanım yazılımını yüklemek için ot-cli-ftd
donanım yazılımı yanıp sönme işlemiyle aynı adımları uygulayın. B91 Geliştirme Kartı'nı, aşağıdaki şekilde gösterildiği gibi, Raspberry Pi üzerindeki bir USB bağlantı noktasına bağlayın.
Ahududu Pi
- Rasbian Bullseye Lite OS görüntüsü veya Rasbian Bullseye with Masaüstü dosyasının SD karta düzgün şekilde yazıldığından emin olun.
- SSH'yi Rasberry Pi'ye bağlama veya doğrudan Rspibian Masaüstü ile çalışma seçeneğiniz vardır. Bu codelab'de SSH kullanılacak.
- Bir sonraki adımda OTBR Docker'ı yüklemeye devam etmeden önce yerel depoyu ve paket yöneticisini güncellediğinizden emin olun.
$ sudo apt-get update $ sudp apt-get upgrade
Docker'ı yükle
Önceki adımda yalnızca yerel depoyu ve paket yöneticisi APT'yi güncellediyseniz Rhume Pi'yi yeniden başlatıp bir SSH terminal penceresi açın.
- Docker'ı yükle:
$ curl -sSL https://get.docker.com | sh
- Her komutun önüne
sudo
öğesinin eklenmesine gerek kalmaması için mevcut hesabı bir Docker grubuna yerleştirerek izni verin.$ sudo usermod -aG docker $USER
Bu değişikliğin etkili olması için RASPberry Pi'yi yeniden başlatmanız gerekir. - Docker başlamadıysa başlatın:
$ sudo dockerd
- OTBR güvenlik duvarı komut dosyaları, Docker kapsayıcısının içinde kurallar oluşturur. Bundan önce, iptables çekirdek modülünü yüklemek için
modprobe
komutunu çalıştırı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ğrulanmıştır.
- En son resmi çekin:
$ docker pull openthread/otbr:latest
- Docker kapsayıcısındaki görüntü listesini kontrol edin:
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE openthread/otbr latest db081f4de15f 6 days ago 766MB
- RCP cihazının seri bağlantı noktası adını belirlemek için
/dev
onay kutusunu işaretleyin.ttyACM0
, RCP'nin doğru şekilde bağlandığını gösterir.$ ls /dev/tty* ... /dev/ttyACM0 ...
- OTBR Docker'ı ilk kez çalıştırın ve RCP'nin seri bağlantı noktasını (
ttyACM0
) belirtin. 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 ve 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'ı durdur:
$ docker stop otbr
- OTBR Docker'ı kaldırın:
$ docker rm otbr
- OTBR Docker'ı yeniden yükle:
$ docker restart otbr
Bu noktada, FTD Joiner cihazı ve OTBR hazır olur. Thread ağını oluşturmak için bir sonraki adıma geçebilirsiniz.
6. Thread Ağı Oluşturma
RCP'de Thread Ağı oluşturma
İş parçacığı ağı oluşturmak için OTBR'de ot-ctl kabuğunu kullanırız. Son bölümde kabuktan çıktıysanız SSH terminalinde tekrar başlatmak için aşağıdaki komutu girin:
$ docker exec -ti otbr sh -c "sudo ot-ctl"
Ardından, komutları tabloda belirtilen sırada girin ve sonraki adıma geçmeden önce her bir 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 |
| Yeni veri kümesini, geçici olmayan bir depolama alanındaki Etkin Operasyonel Veri Kümesine 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, öncü hale gelip bir sonraki adıma geçene kadar birden çok kez çağrılabilir. | lider | ||
6 |
| Etkin Operasyonel Veri Kümesinin tamamını kontrol edin ve ağ anahtarını kaydedin. | Active Timestamp: 1 |
Bu Thread ağına ot-cli-ftd
cihaz katıldığında OTBR tarafından ağ oluşturma sırasında rastgele oluşturulan ağ anahtarı kullanılır.
Bant dışı devreye alma aracılığıyla Thread'e FTD Joiner'ı ekleyin
Bant dışı devreye alma, ağ kimlik bilgilerinin kablosuz olmayan yöntemlerle (örneğin, OpenThread CLI'ye manuel olarak girme) ağa katılmayı bekleyen cihazlara aktarılması anlamına gelir. Aşağıdaki komutları seri konsolda FTD Joiner'a 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 |
| Yeni veri kümesini, geçici olmayan bir depolama alanındaki Etkin Operasyonel Veri Kümesine 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 bağlanıp kendini yapılandırırken 20 saniye bekleyin. | |||||
5 |
| Cihaz durumunu kontrol edin. | alt/yönlendirici |
Topoloji
Aşağıdaki kod snippet'leri gibi 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 için RLOC16
0xb000
ve FTD Joiner'ın RLOC16
başlangıçta 0xb001
olur. Daha sonra FTD Joiner'ın RLOC16
değeri, Yönlendirici Kimliği alındıktan sonra 0x8400
olur. FTD Joiner'ın alt yayıncıdan yönlendiriciye yükseltildiği anlaşılıyor.
Mevcut Thread ağı iki düğüm içerir ve topoloji aşağıdaki şekilde gösterildiği gibidir.
7. Thread Cihazlar Arası İletişim
ICMPv6 İletişimi
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 Joiner'ın 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ı gösterir. İki cihaz arasındaki iletişim başarılı.
UDP İletişimi
OpenThread tarafından sağlanan uygulama hizmetleri ayrıca UDP'yi de içerir. UDP API'sini kullanarak iş parçacığı ağındaki düğümler arasında bilgi aktarabilir veya Sınır Yönlendirici üzerinden harici ağlara bilgi aktarabilirsiniz. OpenThread'in UDP API'si ile ilgili ayrıntılı bilgiyi OpenThread CLI - UDP Örneği bölümünde bulabilirsiniz. Bu codelab'de, OTBR ile FTD Joiner arasında bilgi aktarmak için bazı API'ler kullanılacaktır.
Öncelikle OTBR'nin Mesh-Local EID'sini 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 konsola aşağıdaki komutları girin ve FTD Joiner'ın UDP'sini etkinleştirin. Cihazın 1022 bağlantı noktasını bağlayın, ardından OTBR'ye 5 baytlık bir 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ını derleme ve kullanma.
ot-cli-ftd
veot-rcp
ikili programları oluşturma ve bunları Telink B91 Geliştirme Kartları'na yükleme.- Docker kullanarak RAPberry Pi 3B+ veya üzeri sürümleri OpenThread Sınır Yönlendirici (OTBR) olarak ayarlama.
- OTBR'de mesaj dizisi ağı oluşturma.
- Bant dışı devreye alma yoluyla Thread ağına cihaz ekleme.
- Thread ağındaki düğümler arasındaki bağlantıyı doğrulama.
Ek 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 oluşturma: 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: