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

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

1. บทนำ

26b7f4f6b3ea0700.png

OpenThread (OT) ของ Google เป็นการใช้งานเทรดแบบโอเพนซอร์ส 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 Borderorder (OTBR) และอุปกรณ์เทรด 2 ชุดที่ใช้ใน Codelab

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

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

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

2. สิ่งที่ต้องมีก่อน

ฮาร์ดแวร์:

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

มาตรฐาน WSTK

  1. Raspberry Pi 3B+ ขึ้นไปที่มีรูปภาพ Raspbian Stretch Lite OS หรือ Raspbian Stretch with Desktop ซึ่งเชื่อมต่ออินเทอร์เน็ตผ่านอีเทอร์เน็ต โดยเราจะกําหนดค่านี้เป็นเราเตอร์ BOT OT
  2. ระบบ Windows/Linux/Mac Host ที่มีพอร์ต 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. การตั้งค่าเฟิร์มแวร์

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

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

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

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

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

  1. เปิดเมนู File ของ Studio แล้วเลือก New > Silicon Labs Project วิซาร์ด กล่องโต้ตอบ "การเลือกเป้าหมาย" "SDK" และ "เชนเครื่องมือ" จะเปิดขึ้น อย่าเปลี่ยนเชนเครื่องมือ 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. กล่องโต้ตอบการเลือกโปรเจ็กต์ตัวอย่างจะเปิดขึ้น คุณจะเห็นรายการโปรเจ็กต์ตัวอย่าง ใช้ตัวกรองเทคโนโลยีชุดข้อความและตัวกรองคีย์เวิร์ดเพื่อค้นหาตัวอย่างที่เฉพาะเจาะจง อย่าลืมจดหมายเลขเวอร์ชันของ Gecko SDK Suite คุณจะต้องใช้แท็กเวอร์ชันนี้เมื่อตั้งค่า Raspberry Pi เป็นเราเตอร์ Border เลือก ot-cli-ftd แล้วคลิก Next

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

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

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

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

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

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

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

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

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

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

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

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

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

กรอบเวลาเอาต์พุตของโปรเจ็กต์

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

Flash

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

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

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

ตั้งค่า EFR32MG

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

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

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

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

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

Silicon Labs ขอแนะนําให้นําคอนเทนเนอร์ Docker ของบริษัทไปใช้งานกับ OTBR การเรียกใช้ OTBR ในคอนเทนเนอร์ช่วยให้สร้างอาร์ติแฟกต์ที่ทําให้ใช้งานได้ง่าย รวมถึงสร้างต้นแบบและทดสอบได้อย่างรวดเร็ว

รูปภาพ OTBR ของ Silicon Labs โฮสต์บน 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 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 ได้เพียงครั้งละ 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
    • ต้องใช้ ?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

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

$ 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

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

8. สร้างเครือข่ายชุดข้อความ

ตั้งค่า RCP

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

ดัชนี

คำสั่ง

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

คําตอบที่คาดไว้

1

dataset init new

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

เสร็จสิ้น

2

dataset commit active

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

เสร็จสิ้น

3

ifconfig up

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

เสร็จสิ้น

4

thread start

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

เสร็จสิ้น

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

5

state

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

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

6

dataset

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

การประทับเวลาที่มีการใช้งาน: 1
ช่อง: 20
ช่องมาสก์: 0x07fff800
รหัส PAN ที่อยู่ก่อนหน้า: 39ba71f7fc367160
คํานําหน้าในพื้นที่ของ Mesh: fd5c:c6b:3a17:40b9::/64
Network Key: 81ae2c5c888888

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

ตั้งค่าและเพิ่ม FTD ในเครือข่ายชุดข้อความ (โดยไม่ทํางาน)

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

ดัชนี

คำสั่ง

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

คําตอบที่คาดไว้

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 ของอุปกรณ์เพื่อใช้คําสั่ง 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 ทั้ง 2 รายการให้คําสั่ง OTBR โดยใช้ที่อยู่ OTBR's RSAOC

> 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 กับกระบวนการ ping จาก FTD จาก OTBR อีกครั้ง

9. ยินดีด้วย

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

ตอนนี้คุณทราบแล้ว

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

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

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

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

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

การสาธิตสตูดิโอ

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

  1. BRD4161a
  2. BRD4166a
  3. BRD4168a
  4. BRD4180a
  5. บราซิล 4304a

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

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

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