1. ข้อมูลเบื้องต้น
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
สิ่งที่คุณจะได้เรียนรู้
- วิธีสร้างโครงการ OpenThread โดยใช้ Silicon Labs Simplicity Studio IDE
- วิธีสร้างและกะพริบไบนารี OpenThread CLI ไปยังบอร์ดวิทยุ Silicon Labs
- วิธีตั้งค่า Raspberry Pi 3B ขึ้นไปเป็น OpenThread Border Router (OTBR) โดยใช้ Docker
- วิธีสร้างเครือข่ายเทรดบน OTBR
- การย่อช่วงของอุปกรณ์ในเครือข่ายเทรด
- วิธียืนยันการสื่อสารในชุดข้อความระหว่างโหนดโดยใช้คําสั่ง ping
2. สิ่งที่ต้องดำเนินการก่อน
ฮาร์ดแวร์:
- 3 แผ่นวิทยุ EFR32MGxx - สามารถใช้กับอุปกรณ์ใดร่วมกันก็ได้ Codelab นี้ใช้ BRD4166A เป็น RCP และสองอุปกรณ์คือ BRD4168As เป็น Full Thread
- EFR32MG12 (BRD4161A, BRD4166A, BRD4170A, BRD4304A)
- EFR32MG13 (บราซิล4168A)
- EFR32MG21 (BRD4180A, BRD4180B)
- BRD4001A: บอร์ดหลักไร้สาย (WSTK) สําหรับโฮสต์บอร์ดวิทยุ ยกเว้น BRD4166A กระดานวิทยุทั้งหมดต้องมีบอร์ดหลักเริ่มต้นแต่ละบอร์ด สายมินิ USB สําหรับการเชื่อมต่อและจ่ายไฟบนบอร์ดหลักหรือสายไมโคร USB สําหรับ BRD4166A
- Raspberry Pi 3B ขึ้นไปที่มีรูปภาพ Raspbian Stretch Lite OS หรือ Raspbian Stretch with Desktop ซึ่งเชื่อมต่ออินเทอร์เน็ตผ่านอีเทอร์เน็ต เราได้กําหนดค่าสิ่งนี้เป็น OT Border Router
- ระบบ Windows/Linux/Mac Host ที่มีพอร์ต USB อย่างน้อย 2 พอร์ตและการเชื่อมต่ออินเทอร์เน็ต ตรวจสอบข้อกําหนดเกี่ยวกับฮาร์ดแวร์และระบบปฏิบัติการที่ SSv5
- สายอีเทอร์เน็ตสําหรับเชื่อมต่อ 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 นี้สร้างขึ้นโดยใช้
- 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
เชื่อมต่อไวท์บอร์ดหลักแบบไร้สายแต่ละชุดเข้ากับคอมพิวเตอร์โฮสต์โดยใช้ USB ตามที่แสดงในภาพด้านล่าง การเชื่อมต่อเหล่านี้จะอนุญาตการจัดโปรแกรมและการวิเคราะห์เครือข่ายของ RCP และอุปกรณ์ปลายทาง ก่อนอื่นเราจะใช้คอมพิวเตอร์โฮสต์ในการเขียนโปรแกรม BRD4166A ด้วยเฟิร์มแวร์ ot-rcp และเชื่อมต่อคอมพิวเตอร์กับ Raspberry Pi ในท้ายที่สุด หรืออาจเชื่อมต่ออุปกรณ์ปลายทางกับคอมพิวเตอร์โฮสต์ผ่านสวิตช์อีเทอร์เน็ตทั่วไป นอกจากนี้ ชุดอุปกรณ์เริ่มต้นยังรองรับการเขียนโปรแกรมและการวิเคราะห์เครือข่ายผ่าน IPv4 ด้วย
4. การตั้งค่าเฟิร์มแวร์
คุณสามารถเริ่มต้นใช้งานได้ 2 วิธีด้วยกัน ตัวเลือกทั้ง 2 อย่างนี้ช่วยให้คุณแฟลชเฟิร์มแวร์ที่จําเป็นสําหรับ Codelab นี้ได้
- โปรเจ็กต์: (แนะนํา) สร้าง สร้าง และแฟลชแอปพลิเคชันตัวอย่าง ตัวเลือกนี้ช่วยให้คุณปรับแต่งแอปพลิเคชันในโปรเจ็กต์ได้ หรือ
- การสาธิต: (ตัวเลือก) สาธิตแฟลชที่สร้างไว้ล่วงหน้าบนกระดานวิทยุโดยตรงสําหรับแอปพลิเคชันตัวอย่าง ขอแนะนําให้ผู้ใช้ทดลองใช้เฟิร์มแวร์เดโมที่ตั้งค่าเป็นแบบฝึกหัดที่ไม่บังคับ โปรดดูรายละเอียดในส่วน "การตั้งค่าเฟิร์มแวร์ที่ไม่บังคับ - การสาธิต" ที่ส่วนท้ายของ Codelab
เราจะใช้วิธีการแบบอิงตามโครงการสําหรับ Codelab นี้
สร้างโปรเจ็กต์โดยใช้ตัวอย่าง
เราจะสร้าง 2 โปรเจ็กต์ โครงการ ot-rcp
สําหรับ BRD4166A และโครงการ ot-cli-ftd
สําหรับ BRD4168A ทั้ง 2 โครงการ โปรดทําตามขั้นตอนเหล่านี้และเลือกแอปพลิเคชันตัวอย่างที่เหมาะสําหรับกระดานของคุณ
- เปิดเมนูไฟล์ของ 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
- กล่องโต้ตอบการเลือกโปรเจ็กต์ตัวอย่างจะเปิดขึ้น คุณจะเห็นรายการโปรเจ็กต์ตัวอย่าง ใช้ตัวกรองเทคโนโลยีประเภทชุดข้อความและตัวกรองคําหลักเพื่อค้นหาตัวอย่างที่เฉพาะเจาะจง อย่าลืมจดบันทึกหมายเลขเวอร์ชันของ Gecko SDK Suite คุณจะต้องใช้แท็กเวอร์ชันนี้เมื่อคุณตั้งค่า Raspberry Pi เป็นเราเตอร์ Border เลือก ot-cli-ftd แล้วคลิก Next
- กล่องโต้ตอบการกําหนดค่าโปรเจ็กต์จะเปิดขึ้น ในที่นี้คุณสามารถเปลี่ยนชื่อโครงการ เปลี่ยนตําแหน่งไฟล์ของโครงการเริ่มต้น และพิจารณาว่าคุณจะลิงก์หรือคัดลอกไฟล์โครงการหรือไม่ ไฟล์โครงการที่ลิงก์ชี้ไปยัง SDK และการแก้ไขใดๆ ที่คุณทําขึ้นใน SDK และใช้สําหรับโครงการในอนาคต การคัดลอกแหล่งที่มาของโปรเจ็กต์จะช่วยให้คุณแก้ไขสําเนาภายในโปรเจ็กต์ได้เพื่อให้ไฟล์ SDK ยังอยู่ครบ "ลิงก์ SDK และคัดลอกแหล่งที่มาของโปรเจ็กต์" คือตัวเลือกเริ่มต้นที่แนะนํา คลิกเสร็จสิ้น
- Perpive City IDE Perspective จะเปิดขึ้นโดยผู้กําหนดค่าโปรเจ็กต์เปิดแท็บภาพรวม
โปรเจ็กต์ได้รับการกําหนดค่าจากแท็บคอมโพเนนต์ซอฟต์แวร์โดยการติดตั้งและถอนการติดตั้งคอมโพเนนต์ รวมถึงกําหนดค่าคอมโพเนนต์ที่ติดตั้งไว้ ระบบจะตรวจสอบคอมโพเนนต์ที่ติดตั้งไว้ คลิกคอมโพเนนต์ที่ติดตั้งเพื่อดูรายการคอมโพเนนต์ที่กรองโดยแอปพลิเคชันตัวอย่าง การเปลี่ยนแปลงที่คุณทําจะได้รับการบันทึกโดยอัตโนมัติ และไฟล์โครงการจะสร้างขึ้นโดยอัตโนมัติ ความคืบหน้าจะแสดงที่มุมขวาล่างของมุมมอง Simplicity IDE
สําหรับการสาธิตนี้ เราจะใช้การกําหนดค่าเริ่มต้นของแอปพลิเคชันตัวอย่าง ทําซ้ําขั้นตอนด้านบนเพื่อสร้างโปรเจ็กต์ ot-rcp
สําหรับกระดานอื่น
สร้างและฉายภาพโครงการ
สร้างและฉายทั้ง ot-rcp
และ ot-cli-ftd
โครงการ
- หลังจากกําหนดค่าโปรเจ็กต์แล้ว ให้คลิกการควบคุมบิวด์ (ไอคอนค้อน) ในแถบเครื่องมือด้านบน หรือคลิกขวาที่โครงการแล้วคลิกสร้างโครงการ
- ความคืบหน้าจะแสดงในคอนโซลและแถบความคืบหน้าที่ด้านขวาล่าง ข้อผิดพลาดหรือคําเตือนทั้งหมดที่เกี่ยวข้องกับโปรเจ็กต์ของคุณจะปรากฏในหน้าต่างเอาต์พุตนี้ด้วย
- อิมเมจไบนารีจะสร้างขึ้นหลังจากการสร้างโปรเจ็กต์สําเร็จ คุณสามารถแฟลชอิมเมจไบนารีได้จากมุมมอง Project Explorer ค้นหาไฟล์ .bin, .hex หรือ .s37 ในไดเรกทอรีย่อยของคอมไพเลอร์ คลิกขวาที่ไฟล์ แล้วเลือก Flash ไปยังอุปกรณ์ หากคุณมีอุปกรณ์ที่เชื่อมต่อมากกว่า 1 เครื่อง จากนั้นเลือกอุปกรณ์เพื่อเขียนโปรแกรม ให้คลิกตกลง Flash Programmer จะเปิดขึ้นพร้อมกับมีเส้นทางของไฟล์ที่สร้างขึ้นไว้ให้แล้ว คลิกโปรแกรม
5. สรุปการตั้งค่าเฟิร์มแวร์
ณ จุดนี้ คุณควรสร้าง คอมไพล์ และแฟลชเฟิร์มแวร์ที่เหมาะสมบนบอร์ดวิทยุ เมื่อ ot-rcp
กะพริบไปที่ BRD4166A ให้ยกเลิกการเชื่อมต่อจากระบบโฮสต์และเชื่อมต่อกระดานนี้กับ Raspberry Pi
หลังจากกรอกข้อมูลในส่วนนี้เสร็จสมบูรณ์แล้ว การตั้งค่าฮาร์ดแวร์เครือข่ายเทรดจะมีลักษณะดังนี้
6. ตั้งค่าคอนโซลอนุกรมสําหรับอุปกรณ์
ในการเปิดใช้อินเทอร์เฟซคอนโซล ให้คลิกขวาที่อุปกรณ์ J-Link ในมุมมองอุปกรณ์ที่เรียบง่ายโดยใช้หน้าต่าง "มุมมองอุปกรณ์" / อะแดปเตอร์ เลือก Launch Console ในการรับข้อความแจ้งบนคอนโซล ให้เลือกแท็บซีเรียล 1 และกด Enter ตรวจสอบสถานะของโหนด FTD
คุณจะเห็นว่าเรายังไม่มีคอนโซลสําหรับ 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
ตั้งค่า Raspberry Pi
- แฟลชการ์ด SD ต้องตรวจสอบว่าใช้แฟลช Raspbian Stretch Lite OS หรือ Raspbian Stretch 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 ได้เพียง 1 รายการเท่านั้นที่ทํางานอยู่กับ RCP โปรดตรวจสอบให้แน่ใจว่ามีการจับคู่เวอร์ชัน SDK ของ 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 ผ่านเชลล์แบบอินเทอร์แอกทีฟได้โดยใช้คําสั่งนี้ ตรวจสอบสถานะของโหนด 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 เครื่อง
- คอนโซล
ot-cli-ftd
2 เครื่องใน Simplicity Studio ที่ตั้งค่าเป็นอุปกรณ์ Full Thread - Shell แบบอินเทอร์แอกทีฟ
ot-ctl
เครื่องบน Raspberry Pi ซึ่งตั้งค่าเป็นเราเตอร์ OT Border
ขณะนี้เราพร้อมแล้วที่จะสร้างเครือข่ายเทรด
8. สร้างเครือข่ายเทรด
ตั้งค่า RCP
ในการสร้างเครือข่าย เราเริ่มต้นด้วย ot-ctl
Shell ใน OTBR ซึ่งใช้เพื่อสื่อสารกับโหนด RCP ป้อนคําสั่งต่อไปนี้ในคําสั่งซื้อตามที่แสดงด้านล่าง
ดัชนี | คำสั่ง | คําอธิบายคําสั่ง | การตอบกลับที่คาดหวัง | ||
1 |
| สร้างการกําหนดค่าเครือข่ายใหม่ | เสร็จสิ้น | ||
2 |
| ส่งชุดข้อมูลใหม่ไปยังชุดข้อมูลการดําเนินการที่ใช้งานอยู่ | เสร็จสิ้น | ||
3 |
| เปิดใช้อินเทอร์เฟซชุดข้อความ | เสร็จสิ้น | ||
4 |
| เปิดใช้และแนบการดําเนินการของเทรดโปรโตคอล | เสร็จสิ้น | ||
รอ 10 วินาทีให้อินเทอร์เฟซชุดข้อความทํางาน | |||||
5 |
| ตรวจสอบสถานะของอุปกรณ์ ควรเป็นผู้นํา | เป็นผู้นํา | ||
6 |
| ดูการกําหนดค่าเครือข่าย | Active Timestamp: 1 |
เราจะใช้หมายเลขช่องและคีย์เครือข่ายใน ot-cli-ftd
ในการเข้าร่วม FTD จํานวน 2 รายการกับเครือข่ายชุดข้อความนี้
ตั้งค่าและเพิ่ม FTD ไปยังเครือข่ายเทรดของเรา (โดยไม่ใช้แบนด์วิท)
ด้วยเมธอดแบบนอกขอบเขต ข้อมูลความปลอดภัยทั้งหมดของเราและเพิ่มโหนดด้วยตนเอง ในคอนโซลความเรียบง่าย ให้เพิ่ม FTD ทั้ง 2 ลงในเครือข่ายโดยใช้คําสั่งต่อไปนี้ตามลําดับที่แสดงด้านล่าง
ดัชนี | คำสั่ง | คําอธิบายคําสั่ง | การตอบกลับที่คาดหวัง | ||
1 |
| ตั้งค่าช่องที่ใช้โดย OTBR | เสร็จสิ้น | ||
2 |
| เฉพาะคีย์เครือข่ายเท่านั้นที่จําเป็นสําหรับอุปกรณ์ที่จะเชื่อมต่อกับเครือข่ายเทรด | เสร็จสิ้น | ||
3 |
| ส่งชุดข้อมูลใหม่ไปยังชุดข้อมูลการดําเนินการที่ใช้งานอยู่ | เสร็จสิ้น | ||
4 |
| เปิดใช้อินเทอร์เฟซชุดข้อความ | เสร็จสิ้น | ||
5 |
| เปิดใช้และแนบการดําเนินการของเทรดโปรโตคอล | เสร็จสิ้น | ||
รอ 20 วินาทีขณะที่อุปกรณ์เข้าร่วมและกําหนดค่าตัวเอง | |||||
6 |
| ดูการกําหนดค่าเครือข่าย | เด็ก |
การสื่อสารระหว่างอุปกรณ์เทรด
เราจะใช้คําสั่ง 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 ที่หลากหลาย ซึ่งรวมถึง:
- แพลตฟอร์มที่รองรับ — ค้นหาแพลตฟอร์มทั้งหมดที่รองรับ OpenThread
- สร้าง OpenThread — รายละเอียดเพิ่มเติมเกี่ยวกับการสร้างและกําหนดค่า OpenThread
- Thread Primer — ครอบคลุมแนวคิดเทรดทั้งหมดที่แสดงใน Codelab นี้
- Silicon Labs OpenThread Training - ข้อมูลเบื้องต้นเกี่ยวกับ OpenThread พูดคุยเรื่องเราเตอร์สําหรับคอมมิชชันและเส้นขอบ และกิจกรรมฝึกปฏิบัติเพื่อสร้างเครือข่าย OpenThread
- QSG170: คู่มือเริ่มใช้งานฉบับย่อสําหรับ Silicon Labs OpenThread - ครอบคลุมกระบวนการเริ่มต้นใช้งานสําหรับการพัฒนาชุดข้อความใน Silicon Labs
- AN1256: การใช้ Silicon Labs RCP กับ OpenThread Border Router - คําแนะนําการสร้างและติดตั้งสําหรับ Raspberry Pi Border Router Host
10. การตั้งค่าเฟิร์มแวร์ที่ไม่บังคับ - การสาธิต
การสาธิตคือรูปภาพเฟิร์มแวร์ที่สร้างไว้ล่วงหน้าซึ่งพร้อมดาวน์โหลดลงอุปกรณ์ที่เข้ากันได้ วิธีที่เร็วที่สุดในการดูว่าการสาธิตพร้อมให้บริการสําหรับคุณใน Simplicity Studio หรือไม่ โดยคลิกที่ส่วนที่ต้องการในมุมมองอะแดปเตอร์แก้ไขข้อบกพร่อง แล้วไปที่แท็บ "ตัวอย่างโปรเจ็กต์และการสาธิต" ในมุมมอง Launcher ปิดใช้ตัวกรองโครงการตัวอย่าง และเลือกช่องทําเครื่องหมาย ชุดข้อความ ในส่วน ประเภทเทคโนโลยี
อิมเมจแอปพลิเคชันสาธิตที่คอมไพล์แล้วมาพร้อมกับ OpenThread SDK จะใช้ได้กับบอร์ดต่อไปนี้
- BRD4161
- BRD4166
- BRD4168a
- BRD4180a
- BRD4304
รายการนี้อาจมีการอัปเดตใน SDK ในอนาคตเพื่อรวมบอร์ดวิทยุเพิ่มเติม โปรดดูบันทึกประจํารุ่นสําหรับ Silicon Labs OpenThread SDK ใน "เอกสารประกอบ" สําหรับรายการทั้งหมดของส่วนที่รองรับ
แฟลชการสาธิตต่อไปนี้บนบอร์ดที่เกี่ยวข้อง ในแฟลช ให้เลือกบอร์ดภายใต้อะแดปเตอร์การแก้ไขข้อบกพร่องทางด้านซ้าย แล้วคลิก "เรียกใช้" สําหรับแอปพลิเคชันตัวอย่างที่เกี่ยวข้อง หน้าต่างป๊อปอัปจะแสดงความคืบหน้าของ Flash
- BRD4166A: ot-rcp — อุปกรณ์นี้จะทํางานเป็นหน่วยประมวลผลวิทยุร่วมไปยังเราเตอร์ OT Border เราจะใช้อุปกรณ์นี้เพื่อสร้างเครือข่ายเทรดและเริ่มต้นใช้งานอีก 2 อุปกรณ์ในเครือข่ายเทรด การเป็นเราเตอร์ Border ทําให้อุปกรณ์นี้เป็นเหมือนเกตเวย์สําหรับอุปกรณ์ในเครือข่ายเทรดที่สามารถสื่อสารผ่านอินเทอร์เน็ตได้
- 2 BRD4168A: ot-cli-ftd - อุปกรณ์ทั้ง 2 นี้จะทําหน้าที่เป็นอุปกรณ์ชุดข้อความทั้งหมด และจะเข้าร่วมเครือข่ายเทรดที่ OTBR สร้างขึ้น