สร้างเครือข่าย Thread ด้วยกระดาน Silicon Labs EFR32 และ OpenThread โดยใช้ Simplicity Studio v5

1. บทนำ

26b7f4f6b3ea0700.png

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

การตั้งค่าฮาร์ดแวร์ EFR32MG

สิ่งที่คุณจะได้เรียนรู้

  • วิธีสร้างโปรเจ็กต์ OpenThread โดยใช้ Silicon Labs Simplicity Studio IDE
  • วิธีสร้างและแฟลชไบนารี OpenThread CLI ไปยังบอร์ดวิทยุของ Silicon Labs
  • วิธีตั้งค่า Raspberry Pi 3B+ ขึ้นไปเป็น Border Router (OTBR) ของ OpenThread โดยใช้ Docker
  • วิธีสร้างเครือข่ายเทรดใน OTBR
  • การแจกจ่ายอุปกรณ์ในเครือข่ายเทรดนอกย่านความถี่
  • วิธีตรวจสอบการสื่อสารเทรดระหว่างโหนดโดยใช้คำสั่ง ping

2. ข้อกำหนดเบื้องต้น

ฮาร์ดแวร์:

  1. กระดานวิทยุ EFR32MGxx จำนวน 3 แผง ใช้อุปกรณ์เหล่านี้ผสมกันได้ตามต้องการ Codelab นี้ใช้ BRD4166A เป็น RCP และ BRD4168As 2 รายการเป็นอุปกรณ์เทรดแบบเต็ม
    • EFR32MG12 (BRD4161A, BRD4166A, BRD4170A, BRD4304A)
    • EFR32MG13 (BRD4168A)
    • EFR32MG21 (BRD4180A, BRD4180B)
    หากเพิ่งเริ่มใช้งาน คุณจะได้รับชุดอุปกรณ์เริ่มต้นสำหรับชุดข้อความ EFR32 ซึ่งมีกระดานในรายการด้านบน
  2. BRD4001A: บอร์ดหลักแบบไร้สาย (WSTK) สำหรับโฮสต์กระดานวิทยุ แผงวิทยุทุกแผงต้องมีบอร์ดหลักสำหรับเริ่มต้นแต่ละแผง ยกเว้น BRD4166A สายมินิ USB สำหรับเชื่อมต่อและจ่ายไฟให้กับบอร์ดหลักหรือสายไมโคร USB สำหรับ BRD4166A

WSTK AEM

  1. Raspberry Pi 3B ขึ้นไปที่มีอิมเมจระบบปฏิบัติการ Raspbian Stretch Lite หรือ Raspbian Stretch with Desktop ซึ่งเชื่อมต่ออินเทอร์เน็ตผ่านอีเทอร์เน็ต เรากำหนดค่าอุปกรณ์นี้เป็น OT Border Router
  2. ระบบโฮสต์ของ Windows/Linux/Mac ที่มีพอร์ต USB อย่างน้อย 2 พอร์ตและการเชื่อมต่ออินเทอร์เน็ต ตรวจสอบข้อกำหนดของฮาร์ดแวร์และระบบปฏิบัติการได้ที่ SSv5
  3. สายอีเทอร์เน็ตอย่างน้อย 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 นี้สร้างขึ้นโดยใช้

  1. EFR32MG12 BRD4166A Thunderboard Sense 2 ตามที่แสดงทางด้านซ้าย
  2. EFR32MG13 BRD4168A 2 ชุดตามที่แสดงทางด้านขวา
  3. Simplicity Studio v5 ที่ติดตั้งใน macOS Catalina 10.15.7 พร้อม
    1. Gecko SDK 3.2.0
    2. GNU ARM v7.2.1

BRD4168A

เชื่อมต่อกระดานหลัก Wireless Starter Kit แต่ละกระดานเข้ากับคอมพิวเตอร์โฮสต์ด้วย USB ดังที่แสดงในรูปภาพด้านล่าง การเชื่อมต่อเหล่านี้จะอนุญาตการเขียนโปรแกรมและการวิเคราะห์เครือข่ายของอุปกรณ์ RCP และอุปกรณ์ปลายทาง ก่อนอื่นเราจะใช้คอมพิวเตอร์โฮสต์เพื่อตั้งโปรแกรม BRD4166A กับเฟิร์มแวร์ ot-rcp และสุดท้ายแล้วจะเชื่อมต่อกับ Raspberry Pi หรืออาจเชื่อมต่ออุปกรณ์ปลายทางกับคอมพิวเตอร์โฮสต์ผ่านสวิตช์อีเทอร์เน็ตทั่วไปก็ได้ ชุดเริ่มต้นใช้งานยังสนับสนุนการเขียนโปรแกรมและการวิเคราะห์เครือข่ายผ่าน IPv4 อีกด้วย

การติดต่อ

4. การตั้งค่าเฟิร์มแวร์

การเริ่มต้นใช้งานทำได้ 2 วิธี ทั้ง 2 ตัวเลือกอนุญาตให้คุณแฟลชเฟิร์มแวร์ที่จำเป็นสำหรับ Codelab นี้ได้

  1. โครงการ: (แนะนำ) สร้าง สร้าง และแสดงแอปพลิเคชันตัวอย่างอย่างรวดเร็ว ตัวเลือกนี้ช่วยให้คุณปรับแต่งแอปพลิเคชันในโปรเจ็กต์ได้
  2. การสาธิต: (ตัวเลือก) ทำการ Flash การสาธิตที่สร้างไว้ล่วงหน้าโดยตรงบนกระดานวิทยุสำหรับแอปพลิเคชันตัวอย่างใดๆ เราขอแนะนำให้ผู้ใช้ลองใช้เฟิร์มแวร์ของเดโมที่ตั้งค่าหรือไม่ก็ได้ โปรดดู "การตั้งค่าเฟิร์มแวร์ที่ไม่บังคับ - การสาธิต" ที่ตอนท้ายของ Codelab นี้เพื่อดูรายละเอียด

เราจะใช้เมธอดตามโปรเจ็กต์สำหรับ Codelab นี้

สร้างโปรเจ็กต์โดยใช้ตัวอย่าง

เราจะสร้างโปรเจ็กต์ 2 รายการ โปรเจ็กต์ ot-rcp สำหรับ BRD4166A และโปรเจ็กต์ ot-cli-ftd สำหรับ BRD4168A ทั้ง 2 รายการ โปรดทำตามขั้นตอนเหล่านี้และเลือกแอปพลิเคชันตัวอย่างที่เหมาะสมสำหรับกระดานของคุณ

  1. เปิดเมนูไฟล์ของ 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

วิซาร์ดโปรเจ็กต์ใหม่

  1. กล่องโต้ตอบการเลือกโปรเจ็กต์ตัวอย่างจะเปิดขึ้น คุณจะเห็นรายการโปรเจ็กต์ตัวอย่าง ใช้ตัวกรองประเภทเทคโนโลยี Thread และตัวกรองคีย์เวิร์ดเพื่อค้นหาตัวอย่างที่เจาะจง อย่าลืมจดบันทึกหมายเลขเวอร์ชันของ Gecko SDK Suite ไว้ คุณต้องใช้แท็กเวอร์ชันนี้เมื่อตั้งค่า Raspberry Pi เป็น Border Router เลือก ot-cli-ftd จากนั้นคลิกถัดไป

วิซาร์ดโปรเจ็กต์ใหม่ขั้นตอนที่ 2

  1. กล่องโต้ตอบการกำหนดค่าโปรเจ็กต์จะเปิดขึ้น จากจุดนี้คุณสามารถเปลี่ยนชื่อโปรเจ็กต์ เปลี่ยนตำแหน่งไฟล์โปรเจ็กต์เริ่มต้น และตัดสินใจว่าจะลิงก์หรือคัดลอกไฟล์โปรเจ็กต์หรือไม่ ไฟล์โปรเจ็กต์ที่ลิงก์จะชี้ไปที่ SDK และการแก้ไขที่ทำไว้ใน SDK และมีการนำไปใช้สำหรับโปรเจ็กต์ในอนาคต การคัดลอกแหล่งที่มาของโปรเจ็กต์จะช่วยให้คุณแก้ไขสำเนาภายในโปรเจ็กต์เพื่อให้ไฟล์ SDK คงเดิม "ลิงก์ SDK และคัดลอกแหล่งที่มาของโปรเจ็กต์" คือตัวเลือกเริ่มต้นและตัวเลือกที่แนะนำ คลิกเสร็จสิ้น

วิซาร์ดโปรเจ็กต์ใหม่ขั้นตอนที่ 3

  1. The Simplicity IDE Perspective จะเปิดขึ้นพร้อมกับ Project Configurator ที่เปิดแท็บภาพรวม

ภาพรวมโครงการ

โปรเจ็กต์ได้รับการกำหนดค่าจากแท็บคอมโพเนนต์ซอฟต์แวร์โดยการติดตั้งและถอนการติดตั้งคอมโพเนนต์ รวมถึงกำหนดค่าคอมโพเนนต์ที่ติดตั้งแล้ว เลือกคอมโพเนนต์ที่ติดตั้งแล้ว คลิกคอมโพเนนต์ที่ติดตั้งเพื่อดูรายการคอมโพเนนต์ที่กรองซึ่งติดตั้งโดยแอปพลิเคชันตัวอย่าง ระบบจะบันทึกการเปลี่ยนแปลงที่คุณทำและจะสร้างไฟล์โครงการโดยอัตโนมัติ ความคืบหน้าจะแสดงที่มุมขวาล่างของมุมมอง Simplicity IDE

ส่วนประกอบของซอฟต์แวร์

ในการสาธิตนี้ เราจะใช้การกำหนดค่าเริ่มต้นของแอปพลิเคชันตัวอย่าง ทำขั้นตอนข้างต้นซ้ำเพื่อสร้างโปรเจ็กต์ ot-rcp สำหรับกระดานอื่นของคุณ

สร้างและ Flash โปรเจ็กต์

สร้างและแฟลชทั้งโปรเจ็กต์ ot-rcp และ ot-cli-ftd

  1. หลังจากกำหนดค่าโปรเจ็กต์แล้ว ให้คลิกตัวควบคุมบิลด์ (ไอคอนรูปค้อน) ในแถบเครื่องมือด้านบน หรือคุณจะคลิกขวาที่โปรเจ็กต์แล้วคลิกสร้างโปรเจ็กต์ก็ได้

ปุ่มสร้างโปรเจ็กต์

  1. ความคืบหน้าจะแสดงในคอนโซลและแถบความคืบหน้าที่ด้านล่างขวา ข้อผิดพลาดหรือคำเตือนที่เกี่ยวข้องกับโปรเจ็กต์จะปรากฏในหน้าต่างเอาต์พุตนี้ด้วย

หน้าต่างเอาต์พุตของบิลด์ของโปรเจ็กต์

  1. ระบบจะสร้างอิมเมจไบนารีหลังจากที่สร้างโปรเจ็กต์เสร็จเรียบร้อยแล้ว คุณแฟลชอิมเมจไบนารีได้จากมุมมอง Project Explorer ค้นหาไฟล์ .bin, .hex หรือ .s37 ในไดเรกทอรีย่อยของคอมไพเลอร์ คลิกขวาที่ไฟล์แล้วเลือก Flash to Device หากคุณมีอุปกรณ์ที่เชื่อมต่อมากกว่า 1 เครื่อง ให้เลือกอุปกรณ์ที่จะตั้งโปรแกรม ให้คลิกตกลง โปรแกรมเมอร์ Flash จะเปิดขึ้นพร้อมเส้นทางของไฟล์ได้รับการป้อนข้อมูลไว้ คลิกโปรแกรม

Flash

5. สรุปการตั้งค่าเฟิร์มแวร์

ถึงจุดนี้ คุณควรได้สร้าง คอมไพล์ และเปิดเฟิร์มแวร์ที่เหมาะสมบนบอร์ดวิทยุแล้ว เมื่อ ot-rcp กะพริบเป็น BRD4166A ให้ยกเลิกการเชื่อมต่อกับระบบโฮสต์และเชื่อมต่อกระดานนี้กับ Raspberry Pi

หลังจากกรอกข้อมูลในส่วนนี้เสร็จแล้ว การตั้งค่าฮาร์ดแวร์เครือข่ายเทรดจะมีลักษณะดังนี้

ตั้งค่า EFR32MG

6. ตั้งค่าคอนโซลการเรียงอันดับสำหรับ อุปกรณ์ ot-cli-ftd

หากต้องการเปิดใช้งานอินเทอร์เฟซ Console ในมุมมอง Simplicity IDE ให้คลิกขวาที่อุปกรณ์ J-Link ใน "มุมมองอุปกรณ์ / หน้าต่างอะแดปเตอร์แก้ไขข้อบกพร่อง" เลือก Launch Console หากต้องการรับข้อความแจ้งบนคอนโซล ให้เลือกแท็บซีรีส์ 1 แล้วกด Enter ตรวจสอบสถานะของโหนด FTD

มุมมองคอนโซล FTD Studio

คุณจะเห็นว่าเรายังไม่มีคอนโซลสำหรับ 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

เวอร์ชัน GSDK

การตั้งค่า Raspberry Pi

  1. ในการ์ด SD ให้ตรวจสอบว่าคุณแฟลชอิมเมจระบบปฏิบัติการ Raspbian Stretch Lite หรือ Raspbian Stretch with Desktop
  2. คุณจะ SSH ไปยัง Raspberry Pi หรือทำงานร่วมกับ Raspbian Desktop โดยตรงก็ได้ เปิดเทอร์มินัล
  3. ตรวจสอบว่าได้อัปเดตที่เก็บในเครื่องและโปรแกรมจัดการแพ็กเกจ (apt-get update และ apt-get upgrade ก่อนที่จะติดตั้ง Docker)

ติดตั้งอิมเมจ Docker

  1. ติดตั้ง Docker ด้วยคำสั่งต่อไปนี้บน RPi ของคุณ
    curl -sSL https://get.docker.com | sh
    
  2. เมื่อดำเนินการเสร็จแล้ว คุณสามารถปรับเปลี่ยนการตั้งค่าผู้ใช้ Docker ให้ไม่ต้องใช้ sudo ก่อนแต่ละคำสั่ง ต้องรีบูต
    sudo usermod -aG docker $USER
    
  3. ออกคำสั่งต่อไปนี้เพื่อติดตั้งคอนเทนเนอร์ โปรดทราบว่าคุณใช้คอนเทนเนอร์ Border Router กับ RCP ได้เพียงครั้งละ 1 รายการเท่านั้น นอกจากนี้ โปรดตรวจสอบว่าได้จับคู่เวอร์ชัน GSDK ของ Simplicity Studio กับรูปภาพ Docker ที่ถูกต้อง เช่น gsdk-4.0.1
    docker pull siliconlabsinc/openthread-border-router:gsdk-4.0.1
    

กำหนดค่าและเรียกใช้ Docker

  1. คุณต้องกำหนดค่าพอร์ต TTY ที่ต้องการใช้สำหรับ OTBR เพื่อเชื่อมต่อ RCP เมื่อเริ่มต้นระบบ มองหาพอร์ต TTY ของอุปกรณ์ RCP วิธีที่ง่ายที่สุดในการดำเนินการนี้คือมองหารายการ /tty/dev... เมื่อเชื่อมต่อ RCP แล้ว โดยทั่วไปควรเป็น /dev/ttyUSB0 หรือ /dev/ttyACM0
  2. เรียกใช้การติดตั้ง 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 เครื่อง

  1. คอนโซล ot-cli-ftd 2 เครื่องใน Simplicity Studio ซึ่งตั้งค่าเป็นอุปกรณ์ Full Thread
  2. Shell แบบอินเทอร์แอกทีฟ ot-ctl จำนวน 1 เชลล์ใน Raspberry Pi ซึ่งตั้งค่าเป็น Border Router OT

ตอนนี้เราพร้อมแล้วที่จะสร้างเครือข่ายเทรด

8. สร้างเครือข่ายเทรด

ตั้งค่า RCP

ในการสร้างเครือข่าย เราจะเริ่มต้นด้วย Shell ot-ctl บน OTBR ที่ใช้ในการสื่อสารกับโหนด RCP ป้อนคำสั่งต่อไปนี้ตามลำดับด้านล่างนี้

ดัชนี

คำสั่ง

คำอธิบายคำสั่ง

การตอบกลับที่คาดหวัง

1

dataset init new

สร้างการกำหนดค่าเครือข่ายใหม่

เสร็จสิ้น

2

dataset commit active

มอบหมายชุดข้อมูลใหม่ไปยังชุดข้อมูลด้านการปฏิบัติงานที่ใช้งานอยู่

เสร็จสิ้น

3

ifconfig up

เปิดใช้อินเทอร์เฟซของชุดข้อความ

เสร็จสิ้น

4

thread start

เปิดใช้และแนบการดำเนินการโปรโตคอลเทรด

เสร็จสิ้น

รอ 10 วินาทีเพื่อให้อินเทอร์เฟซของชุดข้อความเริ่มต้น

5

state

ตรวจสอบสถานะอุปกรณ์ ควรอยู่ในสถานะที่ดีที่สุด
สถานะอื่นๆ ที่เป็นไปได้ ได้แก่ ออฟไลน์ ถูกปิดใช้ ปลดออก
เด็ก เราเตอร์ หรือผู้นำ

Leader
Done

6

dataset

ดูการกำหนดค่าเครือข่าย
ค่าของคุณจะแตกต่างจาก Codelab นี้
จดบันทึกช่อง คีย์เครือข่าย
ชื่อเครือข่าย และรหัส PAN

และ









เราจะใช้หมายเลขช่องและคีย์เครือข่ายใน ot-cli-ftd เพื่อรวม FTD ทั้ง 2 รายการกับเครือข่ายเทรดนี้

ตั้งค่าและเพิ่ม FTD ในเครือข่ายเทรด (นอกขอบเขต)

ด้วยวิธีการนอกขอบเขต เราทราบข้อมูลความปลอดภัยทั้งหมดและเพิ่มโหนดด้วยตนเอง ในคอนโซลเรียบง่าย ให้เพิ่ม FTD ทั้ง 2 แบบในเครือข่ายของเราโดยใช้คำสั่งต่อไปนี้ตามลำดับที่แสดงด้านล่าง

ดัชนี

คำสั่ง

คำอธิบายคำสั่ง

การตอบกลับที่คาดหวัง

1

dataset channel 20

ตั้งค่าช่องที่ OTBR ใช้

เสร็จสิ้น

2

dataset networkkey 81ae2c2c17368d585dee71eaa8cf1e90

อุปกรณ์ที่จะเชื่อมต่อกับเครือข่ายเทรดต้องใช้คีย์เครือข่ายเท่านั้น

เสร็จสิ้น

3

dataset commit active

มอบหมายชุดข้อมูลใหม่ไปยังชุดข้อมูลด้านการปฏิบัติงานที่ใช้งานอยู่

เสร็จสิ้น

4

ifconfig up

เปิดใช้อินเทอร์เฟซของชุดข้อความ

เสร็จสิ้น

5

thread start

เปิดใช้และแนบการดำเนินการโปรโตคอลเทรด

เสร็จสิ้น

รอ 20 วินาทีในขณะที่อุปกรณ์เชื่อมต่อและกำหนดค่าเอง

6

state

ดูการกำหนดค่าเครือข่าย

บุตรหลาน
เสร็จสิ้น

การสื่อสารระหว่างอุปกรณ์เทรด

เราจะใช้คำสั่ง 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 เช่น

10. การตั้งค่าเฟิร์มแวร์ที่ไม่บังคับ - การสาธิต

เดโมคืออิมเมจเฟิร์มแวร์ที่สร้างไว้ล่วงหน้าและพร้อมให้ดาวน์โหลดลงในอุปกรณ์ที่เข้ากันได้ วิธีที่รวดเร็วที่สุดในการดูว่าเดโมพร้อมใช้งานหรือไม่ใน Simplicity Studio คือคลิกส่วนของคุณใต้มุมมองอะแดปเตอร์แก้ไขข้อบกพร่อง แล้วไปที่ตัวอย่างโปรเจ็กต์และ แท็บสาธิตในมุมมอง Launcher ปิดใช้ตัวกรอง Example Projects และเลือกช่องทําเครื่องหมายตัวเลือก Thread ในส่วน Technology Type

การสาธิตใน Studio

รูปภาพแอปพลิเคชันสาธิตที่คอมไพล์ไว้ล่วงหน้าซึ่งมาพร้อมกับ OpenThread SDK ใช้งานได้กับกระดานต่อไปนี้

  1. BRD4161A
  2. BRD4166A
  3. BRD4168A
  4. BRD4180A
  5. BRD4304A

รายการนี้อาจได้รับการอัปเดตใน SDK รุ่นต่อๆ ไปเพื่อรวมบอร์ดวิทยุเพิ่มเติม โปรดดูบันทึกประจำรุ่น OpenThread SDK ของ Silicon Labs ในเอกสารประกอบสำหรับรายการทั้งหมดของส่วนที่รองรับ

แฟลชการสาธิตต่อไปนี้บนกระดานที่เกี่ยวข้อง เมื่อต้องการแฟลช ให้เลือกบอร์ดของคุณใต้ Debug Adapters ทางด้านซ้าย แล้วคลิก RUN เพื่อดูแอปพลิเคชันตัวอย่างที่เกี่ยวข้อง หน้าต่างป๊อปอัปจะแสดงความคืบหน้าของแฟลช

  1. BRD4166A: ot-rcp — อุปกรณ์นี้จะทำงานเป็นหน่วยประมวลผลสัญญาณวิทยุไปยังเราเตอร์ OT Border Router เราจะใช้อุปกรณ์นี้เพื่อสร้างเครือข่ายเทรดและเริ่มต้นใช้งานอุปกรณ์อีก 2 เครื่องในเครือข่ายเทรด การเป็น Border Router อุปกรณ์นี้ยังทำหน้าที่เป็นเกตเวย์ให้อุปกรณ์ในเครือข่ายเทรดสื่อสารผ่านอินเทอร์เน็ตด้วย
  2. BRD4168A 2 รายการ: ot-cli-ftd — อุปกรณ์ทั้ง 2 เครื่องนี้จะทำหน้าที่เป็นอุปกรณ์เทรดเต็มรูปแบบ โดยจะเข้าร่วมเครือข่ายเทรดที่สร้างโดย OTBR