Matter(connectedhomeip)Ameba All Clusters 示例应用:构建、烧录、配网与集群控制完整指南
发布时间:2026/9/18 21:10:20 锦皓数字建站
Ameba All Clusters 示例应用:构建、烧录、配网与集群控制完整指南`)
MatterconnectedhomeipAmeba All Clusters 示例应用构建、烧录、配网与集群控制完整指南【免费下载链接】connectedhomeipMatter (formerly Project CHIP) creates more connections between more objects, simplifying development for manufacturers and increasing compatibility for consumers, guided by the Connectivity Standards Alliance.项目地址: https://gitcode.com/GitHub_Trending/co/connectedhomeip本篇技术指南围绕 connectedhomeip 仓库中 examples/all-clusters-minimal-app/ameba/README.md 展开系统讲解在 Ameba RTL8722DM 开发板上构建并运行 Matter 全集群All Clusters示例应用的全过程从 Docker 构建环境搭建、build_examples.py编译与固件烧录到 BLE / IP 两种配网模式切换、Chip-Tool 集群控制再到基于 Pigweed 的 RPC 调试控制台使用。读完本文你将掌握在 Ameba 平台上完整走通 Matter 设备「编译 → 烧录 → 配网 → 控制 → RPC 调试」链路的具体方法与关键配置。示例应用概览与适用硬件All Clusters全集群示例是一个原型应用用于演示 Matter 设备的**设备配网commissioning与集群控制cluster control**两大核心能力。该应用的 Ameba 移植版位于examples/all-clusters-minimal-app/ameba其代码主体由以下部分组成main/chipinterface.cpp应用入口与 Matter Server 初始化逻辑main/CHIPDeviceManager.cpp/DeviceCallbacks.cpp设备管理与事件回调main/LEDWidget.cpp/Globals.cppLED 状态指示与全局对象main/include/对应头文件。支持的硬件Ameba RTL8722DM 开发板瑞昱 Realtek 推出的双频 Wi-Fi MCU 评估板。平台相关配置如 Wi-Fi 站模式使能、BLE 广播使能、任务栈大小等定义在 src/platform/Ameba/CHIPDevicePlatformConfig.h。从 chipinterface.cpp 的ChipTest()函数可以看到应用的启动脉络初始化CHIPDeviceManager→ 通过PlatformMgr().ScheduleWork(InitServer, 0)调度InitServer()完成 Matter Server 与 ZCL 数据模型初始化 → 初始化网络配网实例与状态 LED。InitServer()内部还会调用PrintOnboardingCodes()打印配网二维码/手动配对码供配网工具扫描使用。构建示例应用1. 拉取并运行构建 Docker 镜像Ameba 平台的构建依赖 Realtek 的 SDK 与工具链官方通过 Docker 镜像封装环境。在仓库根目录执行$ docker pull ghcr.io/project-chip/chip-build-ameba:211然后以交互方式启动容器并将当前仓库目录挂载进容器$ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:211其中${CHIP_DIR}是你在宿主机上存放 connectedhomeip 仓库的路径。2. 初始化构建环境在容器内进入仓库目录后先执行 bootstrap 脚本它会拉取构建所需的第三方子模块如 Pigweed、nanopb 等并准备 Python 虚拟环境$ source ./scripts/bootstrap.sh3. 编译目标使用仓库自带的统一构建脚本 scripts/build/build_examples.py 指定目标平台并触发构建$ ./scripts/build/build_examples.py --target ameba-amebad-all-clusters build构建完成后产物目录结构如下应用固件out/ameba-amebad-all-clusters/asdk/imageBootloader 固件out/ameba-amebad-all-clusters/asdk/bootloader。Ameba 平台采用 GNUGN CMake混合构建体系GN 负责生成构建文件而应用主体的编译链接由 examples/all-clusters-minimal-app/ameba/chip_main.cmake 定义的chip_main静态库完成。该文件还按编译开关如matter_enable_rpc、matter_enable_ota_requestor选择性编译 RPC 与 OTA Requestor 相关源码并通过chip_configure_data_model(...)引用all-clusters-common/all-clusters-minimal-app.zap生成 ZCL 数据模型代码生成物落在zzz_generated/all-clusters-minimal-app。4. 使用 Ameba Image Tool 烧录通过 USB 连接 Ameba 开发板打开Ameba Image Tool选择正确的串口将波特率设置为115200在 Flash Download 列表中浏览并添加image目录下的对应固件文件到正确的位置Bootloader 烧入 bootloader 分区应用镜像烧入应用分区点击Download按钮完成烧录。注意串口波特率 115200 同样用于后续配网日志查看与 RPC 控制台通信请保持一致。配网CommissioningBLE 模式与 IP 模式Ameba 平台支持两种配网方式通过两处配置联合切换。配网后设备即可加入 Matter fabric被控制器管理。BLE 模式默认编辑 config/ameba/args.gni确认设置chip_config_network_layer_ble true该文件的默认值即为true意味着构建系统默认启用 BLE 网络层用于 Matter over BLECHIPoBLE配网通道。编辑 src/platform/Ameba/CHIPDevicePlatformConfig.h确认设置#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1该文件同样默认定义CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1见文件中#ifndef ... #define ... #endif保护段启用 CHIPoBLE 广播。此外文件中还定义了CONFIG_RENDEZVOUS_MODE 6BLE SoftAP 组合交会模式与CHIP_DEVICE_CONFIG_ENABLE_COMMISSIONABLE_DEVICE_TYPE 1等配网相关参数。重新构建并烧录参见上文构建与烧录章节Ameba 板启动后 All Clusters 示例会自动运行并打印配网二维码QR Code与手动配对码使用 Chip-Tool 与设备完成 BLE 配网测试。从 chipinterface.cpp 的InitServer()可见当 Wi-Fi 尚未连接 AP 时设备会以 BLE 交会信息RendezvousInformationFlag::kBLE打印 onboarding 码供 Chip-Tool 通过 BLE 扫描配对。IP 模式Wi-Fi 直连编辑 config/ameba/args.gni关闭 BLE 网络层chip_config_network_layer_ble false编辑 src/platform/Ameba/CHIPDevicePlatformConfig.h关闭 CHIPoBLE#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 0重新构建并烧录设备启动后使用串口 AT 指令让设备连接 Wi-Fi APATW0, ATW1, ATWC分别对应设置 SSID、设置密码、连接 AP 的 AT 指令序列设备获得 IP 后使用 Chip-Tool 通过 IP/UDP 完成配网测试。IP 模式下设备端chipinterface.cpp中通过AmebaWiFiDriver与NetworkCommissioning集群实例sWiFiNetworkCommissioningInstance管理 Wi-Fi 网络配网能力配网完成后控制器即可通过 IP 直接访问设备。集群控制以 OnOff 集群为例配网成功后即可使用 Chip-Tool 发送集群命令。Ameba 示例默认实现 OnOff 集群可通过开关命令切换设备上的状态参数对应开发板上的 LED 指示。使用 Chip-Tool构建方式见 examples/chip-tool 的 README发送命令$ ./chip-tool onoff on ${NODE_ID_TO_ASSIGN} 1 $ ./chip-tool onoff off ${NODE_ID_TO_ASSIGN} 1参数说明onoff on/offOnOff 集群的开关命令${NODE_ID_TO_ASSIGN}为设备分配的 Node ID配网时确定末尾的1目标 Endpoint ID本示例 OnOff 集群位于 Endpoint 1。设备端对应的 Identify 集群gIdentify1Endpoint 1与 OnOff 属性一起构成了「可被外部控制器识别与控制」的最小可演示闭环。运行 RPC 控制台Pigweed RPC除标准 Matter 集群控制外该示例还支持通过 Pigweed RPC 进行底层调试与属性读写。硬件连接使用 USB-TTL 串口适配器按下表接线AmebaUSB-TTLA19TXA18RXGNDGND获取 chip-console 工具构建启用了 RPCmatter_enable_rpc的示例后chip_rpc交互式 Python 控制台会随 venv 一起安装同时 Python wheel 包会生成在输出目录out/debug/chip_rpc_console_wheels。若不想重新构建可直接安装这些 wheel$ pip3 install out/debug/chip_rpc_console_wheels/*.whlchip-console是chip_rpc.console模块的入口命令见 examples/common/pigweed/rpc_console/py/setup.cfg 中console_scripts声明RPC 控制台的使用说明见 examples/common/pigweed/rpc_console/README.md。启动控制台复位 Ameba 板后通过 USB-TTL 适配器连接的串口启动控制台$ chip-console --device /dev/ttyport connected to USB-TTL adapter -b 115200-b 115200指定波特率与烧录时的串口参数一致。直接读写灯光属性控制台启动后可在 Python 交互环境中直接调用 RPC 服务读写灯光状态rpcs.chip.rpc.Lighting.Get() rpcs.chip.rpc.Lighting.Set(onTrue, level128, colorprotos.chip.rpc.LightingColor(hue5, saturation5))这些 RPC 服务由 examples/all-clusters-minimal-app/ameba/chip_main.cmake 中的pw_proto_library编译生成——包括attributes_service、button_service、device_service、lighting_service、locking_service、wifi_service六个 protobuf RPC 服务源 proto 位于examples/common/pigweed/protos/并链接了pw_rpc.server、pw_hdlc、pw_log等 Pigweed 组件。对应地编译选项定义了-DPW_RPC_LIGHTING_SERVICE1、-DCONFIG_ENABLE_PW_RPC1等宏见chip_main.cmake的matter_enable_rpc分支。可选功能开关与扩展结合 config/ameba/args.gni 与 chip_main.cmake该示例还支持以下可选能力供进一步扩展时参考OTA Requestormatter_enable_ota_requestor编译DefaultOTARequestor、BDXDownloader、AmebaOTAImageProcessor等组件并在chipinterface.cpp中提供amebaQueryImageCmdHandler/amebaApplyUpdateCmdHandler供 AT 指令触发镜像查询与更新应用RPC 服务matter_enable_rpc上文所述 Pigweed RPC 控制台依赖该开关持久化存储审计matter_enable_persistentstorage_audit追加-DCHIP_SUPPORT_ENABLE_STORAGE_API_AUDIT编译定义。需要注意的是config/ameba/args.gni中默认chip_build_tests false、关闭 TCP endpoint 而启用 UDP endpoint这些平台默认项决定了示例最终可执行镜像的形态普通开发场景无需修改。小结本文完整覆盖了 Ameba RTL8722DM 上 All Clusters 示例从构建、烧录到配网控制与 RPC 调试的全部环节。核心操作可归结为四条链路Docker 环境内用build_examples.py --target ameba-amebad-all-clusters build出固件 → Ameba Image Tool 以 115200 波特率烧录 → 通过chip_config_network_layer_bleCHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE切换 BLE/IP 配网并用 Chip-Tool 配网 → 用chip-console或chip-tool onoff完成控制与调试。该示例既是 Matter 设备端开发的入门模板也是验证 Ameba 平台移植正确性的最小可运行参考实现。【免费下载链接】connectedhomeipMatter (formerly Project CHIP) creates more connections between more objects, simplifying development for manufacturers and increasing compatibility for consumers, guided by the Connectivity Standards Alliance.项目地址: https://gitcode.com/GitHub_Trending/co/connectedhomeip创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。