1. บทนำ
OpenThread (OT) ของ Google เป็นการใช้งาน Thread แบบโอเพนซอร์ส Google ได้เปิดตัว OpenThread เพื่อทำให้เทคโนโลยีเครือข่ายที่ใช้ในผลิตภัณฑ์ Google Nest พร้อมใช้งานในวงกว้างขึ้นสำหรับนักพัฒนาซอฟต์แวร์ เพื่อเร่งการพัฒนาผลิตภัณฑ์สำหรับบ้านและอาคารพาณิชย์ที่มีการเชื่อมต่อ ด้วยชั้นแบบนามธรรมแพลตฟอร์มที่แคบและหน่วยความจำที่มีขนาดเล็ก OpenThread จึงพกพาได้ง่าย โดยรองรับทั้งการออกแบบระบบวงจรรวมบนชิป (SoC) และการออกแบบเครือข่ายโปรเซสเซอร์ร่วม (NCP)
ข้อกำหนดเฉพาะของเทรดกำหนดโปรโตคอลการสื่อสารระหว่างอุปกรณ์ไร้สายที่เสถียร ปลอดภัย และใช้พลังงานต่ำ โดยใช้ IPv6 สำหรับแอปพลิเคชันในบ้านและอาคารพาณิชย์
Silicon Labs ได้ปรับปรุง OpenThread ให้สามารถทำงานกับฮาร์ดแวร์ Silicon Labs ซอร์สโค้ดนี้พร้อมใช้งานใน GitHub รวมถึงเป็นชุดพัฒนาซอฟต์แวร์ (SDK) ที่ติดตั้งด้วย Simplicity Studio 5 (SSv5) ด้วย SDK มีสแนปชอตที่ได้รับการทดสอบอย่างสมบูรณ์ของซอร์สโค้ด GitHub โดยรองรับฮาร์ดแวร์ที่หลากหลายกว่าเวอร์ชัน GitHub รวมถึงมีเอกสารประกอบและแอปพลิเคชันตัวอย่างที่ไม่มีให้บริการใน GitHub
คู่มือนี้อธิบายวิธีเริ่มต้นพัฒนาแอปพลิเคชัน OpenThread โดยใช้ Silicon Labs OpenThread SDK และ Simplicity Studio 5 รูปภาพด้านล่างแสดงกระดาน (BRD) และฮาร์ดแวร์ที่ตั้งค่าด้วย OT Border Router (OTBR) และอุปกรณ์เทรด 2 เครื่องที่ใช้ใน Codelab
สิ่งที่คุณจะได้เรียนรู้
- วิธีสร้างโปรเจ็กต์ OpenThread โดยใช้ Silicon Labs Simplicity Studio IDE
- วิธีสร้างและแฟลชไบนารี OpenThread CLI ไปยังบอร์ดวิทยุของ Silicon Labs
- วิธีตั้งค่า Raspberry Pi 3B+ ขึ้นไปเป็น Border Router (OTBR) ของ OpenThread โดยใช้ Docker
- วิธีสร้างเครือข่ายเทรดใน OTBR
- การแจกจ่ายอุปกรณ์ในเครือข่ายเทรดนอกย่านความถี่
- วิธีตรวจสอบการสื่อสารเทรดระหว่างโหนดโดยใช้คำสั่ง ping
2. ข้อกำหนดเบื้องต้น
ฮาร์ดแวร์:
- กระดานวิทยุ EFR32MGxx จำนวน 3 แผง ใช้อุปกรณ์เหล่านี้ผสมกันได้ตามต้องการ Codelab นี้ใช้ BRD4166A เป็น RCP และ BRD4168As 2 รายการเป็นอุปกรณ์เทรดแบบเต็ม
- EFR32MG12 (BRD4161A, BRD4166A, BRD4170A, BRD4304A)
- EFR32MG13 (BRD4168A)
- EFR32MG21 (BRD4180A, BRD4180B)
- BRD4001A: บอร์ดหลักแบบไร้สาย (WSTK) สำหรับโฮสต์กระดานวิทยุ แผงวิทยุทุกแผงต้องมีบอร์ดหลักสำหรับเริ่มต้นแต่ละแผง ยกเว้น BRD4166A สายมินิ USB สำหรับเชื่อมต่อและจ่ายไฟให้กับบอร์ดหลักหรือสายไมโคร USB สำหรับ BRD4166A
- Raspberry Pi 3B ขึ้นไปที่มีอิมเมจระบบปฏิบัติการ Raspbian Stretch Lite หรือ Raspbian Stretch with Desktop ซึ่งเชื่อมต่ออินเทอร์เน็ตผ่านอีเทอร์เน็ต เรากำหนดค่าอุปกรณ์นี้เป็น OT Border Router
- ระบบโฮสต์ของ Windows/Linux/Mac ที่มีพอร์ต USB อย่างน้อย 2 พอร์ตและการเชื่อมต่ออินเทอร์เน็ต ตรวจสอบข้อกำหนดของฮาร์ดแวร์และระบบปฏิบัติการได้ที่ SSv5
- สายอีเทอร์เน็ตอย่างน้อย 1 เส้นสำหรับการเชื่อมต่อ Raspberry Pi กับอินเทอร์เน็ต WSTK ยังรองรับการแก้ไขข้อบกพร่องและการแฟลช IP ด้วย คุณจะใช้สายอีเทอร์เน็ตเพิ่มเติมเพื่อเชื่อมต่อ WSTK กับระบบโฮสต์ผ่านสวิตช์อีเทอร์เน็ตได้
ซอฟต์แวร์:
- Simplicity Studio v5 ติดตั้งและอัปเดตในระบบ Windows/Linux/Mac Host แล้วด้วย
- เครื่องมือเชน GNU ARM
- Gecko SDK Suite 3.2.0 ขึ้นไปและ Silicon Labs OpenThread SDK
3. การตั้งค่าฮาร์ดแวร์
Codelab นี้สร้างขึ้นโดยใช้
- EFR32MG12 BRD4166A Thunderboard Sense 2 ตามที่แสดงทางด้านซ้าย
- EFR32MG13 BRD4168A 2 ชุดตามที่แสดงทางด้านขวา
- Simplicity Studio v5 ที่ติดตั้งใน macOS Catalina 10.15.7 พร้อม
- Gecko SDK 3.2.0
- GNU ARM v7.2.1
เชื่อมต่อกระดานหลัก Wireless Starter Kit แต่ละกระดานเข้ากับคอมพิวเตอร์โฮสต์ด้วย USB ดังที่แสดงในรูปภาพด้านล่าง การเชื่อมต่อเหล่านี้จะอนุญาตการเขียนโปรแกรมและการวิเคราะห์เครือข่ายของอุปกรณ์ RCP และอุปกรณ์ปลายทาง ก่อนอื่นเราจะใช้คอมพิวเตอร์โฮสต์เพื่อตั้งโปรแกรม BRD4166A กับเฟิร์มแวร์ ot-rcp และสุดท้ายแล้วจะเชื่อมต่อกับ Raspberry Pi หรืออาจเชื่อมต่ออุปกรณ์ปลายทางกับคอมพิวเตอร์โฮสต์ผ่านสวิตช์อีเทอร์เน็ตทั่วไปก็ได้ ชุดเริ่มต้นใช้งานยังสนับสนุนการเขียนโปรแกรมและการวิเคราะห์เครือข่ายผ่าน IPv4 อีกด้วย
4. การตั้งค่าเฟิร์มแวร์
การเริ่มต้นใช้งานทำได้ 2 วิธี ทั้ง 2 ตัวเลือกอนุญาตให้คุณแฟลชเฟิร์มแวร์ที่จำเป็นสำหรับ Codelab นี้ได้
- โครงการ: (แนะนำ) สร้าง สร้าง และแสดงแอปพลิเคชันตัวอย่างอย่างรวดเร็ว ตัวเลือกนี้ช่วยให้คุณปรับแต่งแอปพลิเคชันในโปรเจ็กต์ได้
- การสาธิต: (ตัวเลือก) ทำการ Flash การสาธิตที่สร้างไว้ล่วงหน้าโดยตรงบนกระดานวิทยุสำหรับแอปพลิเคชันตัวอย่างใดๆ เราขอแนะนำให้ผู้ใช้ลองใช้เฟิร์มแวร์ของเดโมที่ตั้งค่าหรือไม่ก็ได้ โปรดดู "การตั้งค่าเฟิร์มแวร์ที่ไม่บังคับ - การสาธิต" ที่ตอนท้ายของ Codelab นี้เพื่อดูรายละเอียด
เราจะใช้เมธอดตามโปรเจ็กต์สำหรับ Codelab นี้
สร้างโปรเจ็กต์โดยใช้ตัวอย่าง
เราจะสร้างโปรเจ็กต์ 2 รายการ โปรเจ็กต์ ot-rcp
สำหรับ BRD4166A และโปรเจ็กต์ ot-cli-ftd
สำหรับ BRD4168A ทั้ง 2 รายการ โปรดทำตามขั้นตอนเหล่านี้และเลือกแอปพลิเคชันตัวอย่างที่เหมาะสมสำหรับกระดานของคุณ
- เปิดเมนูไฟล์ของ Studio แล้วเลือกใหม่ > Silicon Labs Project Wizard กล่องโต้ตอบการเลือกเป้าหมาย, SDK และ Toolchain Selection จะเปิดขึ้น ห้ามเปลี่ยนเครื่องมือ Simplicity IDE / GNU ที่ OpenThread รองรับ คลิกถัดไป
- กระดานเป้าหมาย: แสดงกระดานวิทยุที่เลือก (BRD4168A) พร้อมกับกระดานหลัก (BRD4001A)
- อุปกรณ์เป้าหมาย: ช่องนี้แสดงชิปไมโครคอนโทรลเลอร์ (MCU) ออนบอร์ด BRD4168A มี EFR32MG13 MCU ในตัว
- SDK: คุณเลือก OT เวอร์ชัน SDK ที่ใช้งานอยู่ได้ที่นี่ ข้อมูลชุดจะประกอบด้วยแท็ก SDK และบิลด์ของ Silicon Labs ของ OpenThread เช่น
Platform 4.0.1.0
และOpenThread 2.0.1.0 (GitHub-55af6ce2c)
- IDE/ Toolchain: เชนเครื่องมือที่จะใช้ในการคอมไพล์โปรเจ็กต์ OT เราใช้ GNU ARM
- กล่องโต้ตอบการเลือกโปรเจ็กต์ตัวอย่างจะเปิดขึ้น คุณจะเห็นรายการโปรเจ็กต์ตัวอย่าง ใช้ตัวกรองประเภทเทคโนโลยี Thread และตัวกรองคีย์เวิร์ดเพื่อค้นหาตัวอย่างที่เจาะจง อย่าลืมจดบันทึกหมายเลขเวอร์ชันของ Gecko SDK Suite ไว้ คุณต้องใช้แท็กเวอร์ชันนี้เมื่อตั้งค่า Raspberry Pi เป็น Border Router เลือก ot-cli-ftd จากนั้นคลิกถัดไป
- กล่องโต้ตอบการกำหนดค่าโปรเจ็กต์จะเปิดขึ้น จากจุดนี้คุณสามารถเปลี่ยนชื่อโปรเจ็กต์ เปลี่ยนตำแหน่งไฟล์โปรเจ็กต์เริ่มต้น และตัดสินใจว่าจะลิงก์หรือคัดลอกไฟล์โปรเจ็กต์หรือไม่ ไฟล์โปรเจ็กต์ที่ลิงก์จะชี้ไปที่ SDK และการแก้ไขที่ทำไว้ใน SDK และมีการนำไปใช้สำหรับโปรเจ็กต์ในอนาคต การคัดลอกแหล่งที่มาของโปรเจ็กต์จะช่วยให้คุณแก้ไขสำเนาภายในโปรเจ็กต์เพื่อให้ไฟล์ SDK คงเดิม "ลิงก์ SDK และคัดลอกแหล่งที่มาของโปรเจ็กต์" คือตัวเลือกเริ่มต้นและตัวเลือกที่แนะนำ คลิกเสร็จสิ้น
- The Simplicity IDE Perspective จะเปิดขึ้นพร้อมกับ Project Configurator ที่เปิดแท็บภาพรวม
โปรเจ็กต์ได้รับการกำหนดค่าจากแท็บคอมโพเนนต์ซอฟต์แวร์โดยการติดตั้งและถอนการติดตั้งคอมโพเนนต์ รวมถึงกำหนดค่าคอมโพเนนต์ที่ติดตั้งแล้ว เลือกคอมโพเนนต์ที่ติดตั้งแล้ว คลิกคอมโพเนนต์ที่ติดตั้งเพื่อดูรายการคอมโพเนนต์ที่กรองซึ่งติดตั้งโดยแอปพลิเคชันตัวอย่าง ระบบจะบันทึกการเปลี่ยนแปลงที่คุณทำและจะสร้างไฟล์โครงการโดยอัตโนมัติ ความคืบหน้าจะแสดงที่มุมขวาล่างของมุมมอง Simplicity IDE
ในการสาธิตนี้ เราจะใช้การกำหนดค่าเริ่มต้นของแอปพลิเคชันตัวอย่าง ทำขั้นตอนข้างต้นซ้ำเพื่อสร้างโปรเจ็กต์ ot-rcp
สำหรับกระดานอื่นของคุณ
สร้างและ Flash โปรเจ็กต์
สร้างและแฟลชทั้งโปรเจ็กต์ ot-rcp
และ ot-cli-ftd
- หลังจากกำหนดค่าโปรเจ็กต์แล้ว ให้คลิกตัวควบคุมบิลด์ (ไอคอนรูปค้อน) ในแถบเครื่องมือด้านบน หรือคุณจะคลิกขวาที่โปรเจ็กต์แล้วคลิกสร้างโปรเจ็กต์ก็ได้
- ความคืบหน้าจะแสดงในคอนโซลและแถบความคืบหน้าที่ด้านล่างขวา ข้อผิดพลาดหรือคำเตือนที่เกี่ยวข้องกับโปรเจ็กต์จะปรากฏในหน้าต่างเอาต์พุตนี้ด้วย
- ระบบจะสร้างอิมเมจไบนารีหลังจากที่สร้างโปรเจ็กต์เสร็จเรียบร้อยแล้ว คุณแฟลชอิมเมจไบนารีได้จากมุมมอง Project Explorer ค้นหาไฟล์ .bin, .hex หรือ .s37 ในไดเรกทอรีย่อยของคอมไพเลอร์ คลิกขวาที่ไฟล์แล้วเลือก Flash to Device หากคุณมีอุปกรณ์ที่เชื่อมต่อมากกว่า 1 เครื่อง ให้เลือกอุปกรณ์ที่จะตั้งโปรแกรม ให้คลิกตกลง โปรแกรมเมอร์ Flash จะเปิดขึ้นพร้อมเส้นทางของไฟล์ได้รับการป้อนข้อมูลไว้ คลิกโปรแกรม
5. สรุปการตั้งค่าเฟิร์มแวร์
ถึงจุดนี้ คุณควรได้สร้าง คอมไพล์ และเปิดเฟิร์มแวร์ที่เหมาะสมบนบอร์ดวิทยุแล้ว เมื่อ ot-rcp
กะพริบเป็น BRD4166A ให้ยกเลิกการเชื่อมต่อกับระบบโฮสต์และเชื่อมต่อกระดานนี้กับ Raspberry Pi
หลังจากกรอกข้อมูลในส่วนนี้เสร็จแล้ว การตั้งค่าฮาร์ดแวร์เครือข่ายเทรดจะมีลักษณะดังนี้
6. ตั้งค่าคอนโซลการเรียงอันดับสำหรับ อุปกรณ์ ot-cli-ftd
หากต้องการเปิดใช้งานอินเทอร์เฟซ Console ในมุมมอง Simplicity IDE ให้คลิกขวาที่อุปกรณ์ J-Link ใน "มุมมองอุปกรณ์ / หน้าต่างอะแดปเตอร์แก้ไขข้อบกพร่อง" เลือก Launch Console หากต้องการรับข้อความแจ้งบนคอนโซล ให้เลือกแท็บซีรีส์ 1 แล้วกด Enter ตรวจสอบสถานะของโหนด FTD
คุณจะเห็นว่าเรายังไม่มีคอนโซลสำหรับ ot-rcp
ในขั้นตอนถัดไป เราจะกำหนดค่า Raspberry Pi เป็น OT Border Router และตั้งค่าคอนโซลสำหรับ ot-rcp
7. ตั้งค่า Raspberry Pi เป็น Border Router
Silicon Labs แนะนำให้ทำให้คอนเทนเนอร์ Docker ของบริษัทใช้งานได้ด้วย OTBR การเรียกใช้ OTBR ในคอนเทนเนอร์ช่วยให้คุณสร้างอาร์ติแฟกต์การติดตั้งใช้งานได้ง่าย รวมถึงการพัฒนาต้นแบบและการทดสอบที่รวดเร็ว
รูปภาพ Silicon Labs OTBR โฮสต์บน siliconlabsinc DockerHub โดยใช้แท็ก แต่ละแท็กจะสอดคล้องกับเวอร์ชันของ GSDK ดังนี้
https://hub.docker.com/r/siliconlabsinc/openthread-border-router/tags
คอนเทนเนอร์ Docker ต้องใช้กับ RCP ที่สร้างขึ้นโดยใช้ Simplicity Studio 5 สำหรับรุ่นหนึ่งๆ ตรวจสอบว่าเวอร์ชันคอนเทนเนอร์แท็กจับคู่กับ GSDK เวอร์ชันที่คุณกำลังทดสอบด้วย ตัวอย่างเช่น หากเวอร์ชัน GDSK ของคุณคือ Gecko SDK Suite v4.0.1 (140)
เมื่อคุณเลือก ot-rcp
จากหน้าต่างตัวอย่างการเลือกโปรเจ็กต์ ให้ใช้อิมเมจ siliconlabsinc/openthread-border-router:gsdk-4.0.1
การตั้งค่า Raspberry Pi
- ในการ์ด SD ให้ตรวจสอบว่าคุณแฟลชอิมเมจระบบปฏิบัติการ Raspbian Stretch Lite หรือ Raspbian Stretch with Desktop
- คุณจะ SSH ไปยัง Raspberry Pi หรือทำงานร่วมกับ Raspbian Desktop โดยตรงก็ได้ เปิดเทอร์มินัล
- ตรวจสอบว่าได้อัปเดตที่เก็บในเครื่องและโปรแกรมจัดการแพ็กเกจ (apt-get update และ apt-get upgrade ก่อนที่จะติดตั้ง Docker)
ติดตั้งอิมเมจ Docker
- ติดตั้ง Docker ด้วยคำสั่งต่อไปนี้บน RPi ของคุณ
curl -sSL https://get.docker.com | sh
- เมื่อดำเนินการเสร็จแล้ว คุณสามารถปรับเปลี่ยนการตั้งค่าผู้ใช้ Docker ให้ไม่ต้องใช้ sudo ก่อนแต่ละคำสั่ง ต้องรีบูต
sudo usermod -aG docker $USER
- ออกคำสั่งต่อไปนี้เพื่อติดตั้งคอนเทนเนอร์ โปรดทราบว่าคุณใช้คอนเทนเนอร์ Border Router กับ RCP ได้เพียงครั้งละ 1 รายการเท่านั้น นอกจากนี้ โปรดตรวจสอบว่าได้จับคู่เวอร์ชัน GSDK ของ Simplicity Studio กับรูปภาพ Docker ที่ถูกต้อง เช่น
gsdk-4.0.1
docker pull siliconlabsinc/openthread-border-router:gsdk-4.0.1
กำหนดค่าและเรียกใช้ Docker
- คุณต้องกำหนดค่าพอร์ต TTY ที่ต้องการใช้สำหรับ OTBR เพื่อเชื่อมต่อ RCP เมื่อเริ่มต้นระบบ มองหาพอร์ต TTY ของอุปกรณ์ RCP วิธีที่ง่ายที่สุดในการดำเนินการนี้คือมองหารายการ
/tty/dev
... เมื่อเชื่อมต่อ RCP แล้ว โดยทั่วไปควรเป็น/dev/ttyUSB0
หรือ/dev/ttyACM0
- เรียกใช้การติดตั้ง Docker ด้วยคำสั่งต่อไปนี้ โปรดตรวจสอบว่าได้แทนที่ชื่ออิมเมจ Docker ด้วยเวอร์ชัน GSDK ที่ตรงกัน เช่น
gsdk-4.0.1
docker run -d --name "otbr" \ --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" \ -p 8080:80 --dns=127.0.0.1 -it \ --volume /dev/ttyACM0:/dev/ttyACM0 \ --privileged siliconlabsinc/openthread-border-router:gsdk-4.0.1 \ --radio-url spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=460800 \ --backbone-interface eth0
-d
ดูแลให้คอนเทนเนอร์ทำงานในโหมดถอดออก- คุณดูบันทึกที่ทำงานอยู่ของคอนเทนเนอร์ได้ทุกเมื่อโดยใช้คำสั่ง
docker logs
--name
เป็นแบบติดหนึบจนกว่าคอนเทนเนอร์ Docker จะปิดลงอย่างถูกต้อง (หรือนำออก)- พอร์ต 8080 จะระบุพอร์ตของเว็บเซิร์ฟเวอร์ที่โฮสต์หน้าเว็บการจัดการ Border Router
- ต้องระบุ
?uart-baudrate=460800
ในตัวเลือก URL วิทยุเพื่อแก้ปัญหาการแยกส่วน / การประกอบใหม่ผ่าน UART ซึ่งมีการดำเนินการที่มีค่าใช้จ่ายสูง เช่น DTLS ที่มีแพ็กเก็ต IPv6 แบบยาว
โต้ตอบกับโหนด RCP
เมื่อ Docker ทำงานอยู่ คุณจะสื่อสารกับโหนด RCP ผ่าน Shell แบบอินเทอร์แอกทีฟโดยใช้คำสั่งนี้ได้ ตรวจสอบสถานะของโหนด RCP
$ docker exec -ti otbr sh -c "sudo ot-ctl" > state disabled Done
คุณสามารถดูรายการรหัสคอนเทนเนอร์ที่ทำงานอยู่
$ docker ps -aq
คุณสามารถตรวจสอบหน้าต่างที่ใช้งานคอนเทนเนอร์ Docker OTBR เพื่อดูเอาต์พุตบันทึกของ Border Router หรือดำเนินการตามบันทึกคอนเทนเนอร์ได้ดังนี้
$ docker logs [container-id] -f
นอกจากนี้ คุณสามารถเลือกหยุด นำออก หรือทำให้อิมเมจหยุดทำงานหากโหลดคอนเทนเนอร์ Docker ถูกต้องแล้ว
$ docker stop otbr
$ docker rm otbr
$ docker kill otbr
ไม่บังคับ: หากต้องการออกจาก Shell ให้ใช้ CNTL + C
ในขั้นตอนนี้ คุณควรมีคอนโซล 3 เครื่อง
- คอนโซล
ot-cli-ftd
2 เครื่องใน Simplicity Studio ซึ่งตั้งค่าเป็นอุปกรณ์ Full Thread - Shell แบบอินเทอร์แอกทีฟ
ot-ctl
จำนวน 1 เชลล์ใน Raspberry Pi ซึ่งตั้งค่าเป็น Border Router OT
ตอนนี้เราพร้อมแล้วที่จะสร้างเครือข่ายเทรด
8. สร้างเครือข่ายเทรด
ตั้งค่า RCP
ในการสร้างเครือข่าย เราจะเริ่มต้นด้วย Shell ot-ctl
บน OTBR ที่ใช้ในการสื่อสารกับโหนด RCP ป้อนคำสั่งต่อไปนี้ตามลำดับด้านล่างนี้
ดัชนี | คำสั่ง | คำอธิบายคำสั่ง | การตอบกลับที่คาดหวัง | ||
1 |
| สร้างการกำหนดค่าเครือข่ายใหม่ | เสร็จสิ้น | ||
2 |
| มอบหมายชุดข้อมูลใหม่ไปยังชุดข้อมูลด้านการปฏิบัติงานที่ใช้งานอยู่ | เสร็จสิ้น | ||
3 |
| เปิดใช้อินเทอร์เฟซของชุดข้อความ | เสร็จสิ้น | ||
4 |
| เปิดใช้และแนบการดำเนินการโปรโตคอลเทรด | เสร็จสิ้น | ||
รอ 10 วินาทีเพื่อให้อินเทอร์เฟซของชุดข้อความเริ่มต้น | |||||
5 |
| ตรวจสอบสถานะอุปกรณ์ ควรอยู่ในสถานะที่ดีที่สุด | Leader | ||
6 |
| ดูการกำหนดค่าเครือข่าย | และ |
เราจะใช้หมายเลขช่องและคีย์เครือข่ายใน ot-cli-ftd
เพื่อรวม FTD ทั้ง 2 รายการกับเครือข่ายเทรดนี้
ตั้งค่าและเพิ่ม FTD ในเครือข่ายเทรด (นอกขอบเขต)
ด้วยวิธีการนอกขอบเขต เราทราบข้อมูลความปลอดภัยทั้งหมดและเพิ่มโหนดด้วยตนเอง ในคอนโซลเรียบง่าย ให้เพิ่ม FTD ทั้ง 2 แบบในเครือข่ายของเราโดยใช้คำสั่งต่อไปนี้ตามลำดับที่แสดงด้านล่าง
ดัชนี | คำสั่ง | คำอธิบายคำสั่ง | การตอบกลับที่คาดหวัง | ||
1 |
| ตั้งค่าช่องที่ OTBR ใช้ | เสร็จสิ้น | ||
2 |
| อุปกรณ์ที่จะเชื่อมต่อกับเครือข่ายเทรดต้องใช้คีย์เครือข่ายเท่านั้น | เสร็จสิ้น | ||
3 |
| มอบหมายชุดข้อมูลใหม่ไปยังชุดข้อมูลด้านการปฏิบัติงานที่ใช้งานอยู่ | เสร็จสิ้น | ||
4 |
| เปิดใช้อินเทอร์เฟซของชุดข้อความ | เสร็จสิ้น | ||
5 |
| เปิดใช้และแนบการดำเนินการโปรโตคอลเทรด | เสร็จสิ้น | ||
รอ 20 วินาทีในขณะที่อุปกรณ์เชื่อมต่อและกำหนดค่าเอง | |||||
6 |
| ดูการกำหนดค่าเครือข่าย | บุตรหลาน |
การสื่อสารระหว่างอุปกรณ์เทรด
เราจะใช้คำสั่ง ping
เพื่อตรวจสอบว่าอุปกรณ์สื่อสารกันได้หรือไม่ เราต้องการที่อยู่ IPv6 ของอุปกรณ์เพื่อใช้คำสั่ง ping ซึ่งจะรับได้โดยใช้คําสั่ง 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
การตอบสนองจะระบุเพย์โหลดที่ได้รับและการสื่อสารว่าสำเร็จแล้ว ทำขั้นตอนดังกล่าวซ้ำเพื่อใช้คำสั่ง ping FTD จาก OTBR
9. ขอแสดงความยินดี
คุณสร้างเครือข่าย Thread แล้ว
ตอนนี้คุณทราบประเด็นต่อไปนี้แล้ว
- วิธีสร้างโปรเจ็กต์ OpenThread โดยใช้ Silicon Labs Simplicity Studio IDE
- วิธีสร้างและแฟลชไบนารี OpenThread CLI ไปยังบอร์ดวิทยุของ Silicon Labs
- วิธีตั้งค่า Raspberry Pi 3B+ ขึ้นไปเป็น Border Router (OTBR) ของ OpenThread โดยใช้ Docker
- วิธีสร้างเครือข่ายเทรดใน OTBR
- การแจกจ่ายอุปกรณ์ในเครือข่ายเทรดนอกย่านความถี่
- วิธีตรวจสอบการสื่อสารเทรดระหว่างโหนดโดยใช้คำสั่ง ping
อ่านเพิ่มเติม
ดู openthread.io และ GitHub สำหรับทรัพยากรต่างๆ ของ OpenThread เช่น
- แพลตฟอร์มที่รองรับ — ค้นหาแพลตฟอร์มทั้งหมดที่รองรับ OpenThread
- สร้าง OpenThread — รายละเอียดเพิ่มเติมเกี่ยวกับการสร้างและกำหนดค่า OpenThread
- Thread Primer — ครอบคลุมแนวคิดเทรดทั้งหมดใน Codelab นี้
- การฝึกอบรม OpenThread ของ Silicon Labs — ข้อมูลเบื้องต้นเกี่ยวกับ OpenThread, การพูดคุยถึงการว่าจ้างและ Border Router รวมถึงแบบฝึกหัดลงมือสร้างเครือข่าย OpenThread
- QSG170: คู่มือเริ่มใช้งานฉบับย่อสำหรับ OpenThread ของ Silicon Labs - กล่าวถึงรายละเอียดเกี่ยวกับขั้นตอนการเริ่มต้นใช้งานการพัฒนาเทรด Silicon Labs
- AN1256: การใช้ Silicon Labs RCP กับ OpenThread Border Router - คำแนะนำในการสร้างและติดตั้งสำหรับ Raspberry Pi Border Router Host
10. การตั้งค่าเฟิร์มแวร์ที่ไม่บังคับ - การสาธิต
เดโมคืออิมเมจเฟิร์มแวร์ที่สร้างไว้ล่วงหน้าและพร้อมให้ดาวน์โหลดลงในอุปกรณ์ที่เข้ากันได้ วิธีที่รวดเร็วที่สุดในการดูว่าเดโมพร้อมใช้งานหรือไม่ใน Simplicity Studio คือคลิกส่วนของคุณใต้มุมมองอะแดปเตอร์แก้ไขข้อบกพร่อง แล้วไปที่ตัวอย่างโปรเจ็กต์และ แท็บสาธิตในมุมมอง Launcher ปิดใช้ตัวกรอง Example Projects และเลือกช่องทําเครื่องหมายตัวเลือก Thread ในส่วน Technology Type
รูปภาพแอปพลิเคชันสาธิตที่คอมไพล์ไว้ล่วงหน้าซึ่งมาพร้อมกับ OpenThread SDK ใช้งานได้กับกระดานต่อไปนี้
- BRD4161A
- BRD4166A
- BRD4168A
- BRD4180A
- BRD4304A
รายการนี้อาจได้รับการอัปเดตใน SDK รุ่นต่อๆ ไปเพื่อรวมบอร์ดวิทยุเพิ่มเติม โปรดดูบันทึกประจำรุ่น OpenThread SDK ของ Silicon Labs ในเอกสารประกอบสำหรับรายการทั้งหมดของส่วนที่รองรับ
แฟลชการสาธิตต่อไปนี้บนกระดานที่เกี่ยวข้อง เมื่อต้องการแฟลช ให้เลือกบอร์ดของคุณใต้ Debug Adapters ทางด้านซ้าย แล้วคลิก RUN เพื่อดูแอปพลิเคชันตัวอย่างที่เกี่ยวข้อง หน้าต่างป๊อปอัปจะแสดงความคืบหน้าของแฟลช
- BRD4166A: ot-rcp — อุปกรณ์นี้จะทำงานเป็นหน่วยประมวลผลสัญญาณวิทยุไปยังเราเตอร์ OT Border Router เราจะใช้อุปกรณ์นี้เพื่อสร้างเครือข่ายเทรดและเริ่มต้นใช้งานอุปกรณ์อีก 2 เครื่องในเครือข่ายเทรด การเป็น Border Router อุปกรณ์นี้ยังทำหน้าที่เป็นเกตเวย์ให้อุปกรณ์ในเครือข่ายเทรดสื่อสารผ่านอินเทอร์เน็ตด้วย
- BRD4168A 2 รายการ: ot-cli-ftd — อุปกรณ์ทั้ง 2 เครื่องนี้จะทำหน้าที่เป็นอุปกรณ์เทรดเต็มรูปแบบ โดยจะเข้าร่วมเครือข่ายเทรดที่สร้างโดย OTBR