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

1. ข้อมูลเบื้องต้น

26b7f4f6b3ea0700.png

OpenThread ของ 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 ขึ้นไปเป็น OpenThread Border Router (OTBR) โดยใช้ Docker
  • วิธีสร้างเครือข่ายเทรดบน OTBR
  • การย่อช่วงของอุปกรณ์ในเครือข่ายเทรด
  • วิธียืนยันการสื่อสารในชุดข้อความระหว่างโหนดโดยใช้คําสั่ง ping

2. สิ่งที่ต้องดำเนินการก่อน

ฮาร์ดแวร์:

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

ตะวันตกของ AEM

  1. Raspberry Pi 3B ขึ้นไปที่มีรูปภาพ Raspbian Stretch Lite OS หรือ Raspbian Stretch with Desktop ซึ่งเชื่อมต่ออินเทอร์เน็ตผ่านอีเทอร์เน็ต เราได้กําหนดค่าสิ่งนี้เป็น OT Border Router
  2. ระบบ Windows/Linux/Mac Host ที่มีพอร์ต USB อย่างน้อย 2 พอร์ตและการเชื่อมต่ออินเทอร์เน็ต ตรวจสอบข้อกําหนดเกี่ยวกับฮาร์ดแวร์และระบบปฏิบัติการที่ SSv5
  3. สายอีเทอร์เน็ตสําหรับเชื่อมต่อ Raspberry Pi กับอินเทอร์เน็ตอย่างน้อย 1 สาย WSTK ยังรองรับการแก้ไขข้อบกพร่องและกะพริบผ่าน IP ด้วย (ไม่บังคับ) อาจมีการใช้สายอีเทอร์เน็ตเพิ่มเติมเพื่อเชื่อมต่อ WSTK กับระบบโฮสต์ของคุณผ่านสวิตช์อีเทอร์เน็ต

ซอฟต์แวร์:

  • Simplicity Studio v5 ที่ติดตั้งและอัปเดตบนระบบ Windows/Linux/Mac Host ที่มี
    • GNU ARM Toolchain
    • 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

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

การติดต่อ

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

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

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

เราจะใช้วิธีการแบบอิงตามโครงการสําหรับ Codelab นี้

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

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

  1. เปิดเมนูไฟล์ของ Studio แล้วเลือกใหม่ > วิซาร์ดโครงการ Silicon Labs กล่องโต้ตอบ "การเลือก SDK" "เป้าหมาย" และ "การเลือกเครื่องมือ" จะเปิดขึ้น ห้ามเปลี่ยนห่วงโซ่เครื่องมือ SIMplicity IDE / GNU เริ่มต้นที่สนับสนุนโดย OpenThread คลิกถัดไป
    • บอร์ดเป้าหมาย: แสดงกระดานวิทยุที่เลือก (BRD4168A) พร้อมด้วยกระดานหลัก (BRD4001A)
    • อุปกรณ์เป้าหมาย: ช่องนี้แสดงชิปไมโครคอนโทรลเลอร์ (MCU) ในตัว BRD4168A มี EFR32MG13 MCU สําหรับการเริ่มต้นใช้งาน
    • SDK: คุณสามารถเลือก OT เวอร์ชัน SDK ที่กําลังทํางานด้วยได้ที่นี่ ข้อมูล Suite ประกอบด้วยแท็ก SDK และบิวด์ Silicon Labs ของ OpenThread ตัวอย่างเช่น Platform 4.0.1.0 และ OpenThread 2.0.1.0 (GitHub-55af6ce2c)
    • IDE/ Toolchain: เครื่องมือที่จะใช้สําหรับคอมไพล์โครงการ OT เราใช้ GNU ARM

วิซาร์ดโครงการใหม่

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

วิซาร์ดโครงการใหม่ ขั้นตอนที่ 2

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

ขั้นตอนที่ 3 ของวิซาร์ดโครงการใหม่

  1. Perpive City IDE Perspective จะเปิดขึ้นโดยผู้กําหนดค่าโปรเจ็กต์เปิดแท็บภาพรวม

ภาพรวมโปรเจ็กต์

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

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

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

สร้างและฉายภาพโครงการ

สร้างและฉายทั้ง ot-rcp และ ot-cli-ftd โครงการ

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

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

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

หน้าต่างแสดงการสร้างโปรเจ็กต์

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

Flash

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

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

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

การตั้งค่า EFR32MG

6. ตั้งค่าคอนโซลอนุกรมสําหรับอุปกรณ์

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

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

คุณจะเห็นว่าเรายังไม่มีคอนโซลสําหรับ ot-rcp ในขั้นตอนถัดไป เราจะกําหนดค่า Raspberry Pi เป็นเราเตอร์ OT เส้นขอบและตั้งค่าคอนโซลสําหรับ ot-rcp

7. ตั้งค่า Raspberry Pi เป็นเราเตอร์ Border

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 OS หรือ Raspbian Stretch 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 ได้เพียง 1 รายการเท่านั้นที่ทํางานอยู่กับ RCP โปรดตรวจสอบให้แน่ใจว่ามีการจับคู่เวอร์ชัน SDK ของ 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 ผ่านเชลล์แบบอินเทอร์แอกทีฟได้โดยใช้คําสั่งนี้ ตรวจสอบสถานะของโหนด RCP

$ docker exec -ti otbr sh -c "sudo ot-ctl"
> state 
disabled
Done

คุณสามารถดูรายการรหัสคอนเทนเนอร์ที่ทํางานอยู่ได้

$ docker ps -aq

คุณสามารถตรวจสอบหน้าต่างที่เรียกใช้คอนเทนเนอร์ OTBR Docker เพื่อเรียกใช้บันทึกของเราเตอร์ชายแดน หรือติดตามบันทึกคอนเทนเนอร์ดังนี้

$ 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 เครื่องบน Raspberry Pi ซึ่งตั้งค่าเป็นเราเตอร์ OT Border

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

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

ตั้งค่า RCP

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

ดัชนี

คำสั่ง

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

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

1

dataset init new

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

เสร็จสิ้น

2

dataset commit active

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

เสร็จสิ้น

3

ifconfig up

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

เสร็จสิ้น

4

thread start

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

เสร็จสิ้น

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

5

state

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

เป็นผู้นํา
เสร็จสิ้น

6

dataset

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

Active Timestamp: 1
Channel mask: 20
มาสก์มาสก์: 0x07fff800
Ext PAN ID: 39ba71f7fc367160<br class="php:hen'p]8]'en''#p]'''''''''']






เราจะใช้หมายเลขช่องและคีย์เครือข่ายใน 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 เพื่อตรวจสอบว่าอุปกรณ์สื่อสารกันได้หรือไม่ คําสั่ง ping จําเป็นต้องใช้ที่อยู่ IPv6 ของอุปกรณ์ ซึ่งได้รับโดยใช้คําสั่ง 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 ทั้งสองให้ใช้คําสั่ง ping กับ OTBR โดยใช้ที่อยู่ OTOC ของ 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. ขอแสดงความยินดี

คุณได้สร้างเครือข่ายเทรดแล้ว

ตอนนี้คุณทราบประเด็นต่อไปนี้แล้ว:

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

อ่านเพิ่มเติม

โปรดดู openthread.io และ GitHub สําหรับทรัพยากร OpenThread ที่หลากหลาย ซึ่งรวมถึง:

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

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

การสาธิต Studio

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

  1. BRD4161
  2. BRD4166
  3. BRD4168a
  4. BRD4180a
  5. BRD4304

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

แฟลชการสาธิตต่อไปนี้บนบอร์ดที่เกี่ยวข้อง ในแฟลช ให้เลือกบอร์ดภายใต้อะแดปเตอร์การแก้ไขข้อบกพร่องทางด้านซ้าย แล้วคลิก "เรียกใช้" สําหรับแอปพลิเคชันตัวอย่างที่เกี่ยวข้อง หน้าต่างป๊อปอัปจะแสดงความคืบหน้าของ Flash

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