Matter Air Purifier 示例在 Ameba 平台(RTL8722DM)上的构建、配网与集群控制实战指南
Matter Air Purifier 示例在 Ameba 平台RTL8722DM上的构建、配网与集群控制实战指南【免费下载链接】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/air-purifier-app/ameba/README.md完整讲解 Matter 空气净化器示例应用在 Ameba RTL8722DM 开发板上的落地路径从获取配套 Ameba Matter SDK、搭建构建环境、编译固件、通过 Ameba Image Tool 烧录到使用 BLE / IP 两种模式完成配网最后借助 chip-tool 对多端点复合设备进行读写与控制。读完本文你将掌握一套可在真实嵌入式硬件上运行的 Matter 空气净化器设备全流程开发与验证方法并能理解该示例内部复合设备Composed Device的端点组织与集群实现原理。一、示例概览与支持的硬件平台本示例演示的是 Matter 空气净化器Air Purifier应用在Ameba平台上的实现。它并不只是一个孤立的风扇设备而是一个由多个设备类型组合而成的复合设备净化器本体承担风扇控制与滤芯监测同时聚合了空气质量、温度、湿度与恒温控制等传感/控制功能。示例官方支持的硬件为Ameba RTL8722DM 开发板AmebaD 系列。该平台由 Realtek 提供配套的 Ameba Matter SDK 仓库Matter SDK 与该仓库需要以同级目录的方式组织具体目录约束见下文构建示例应用。在深入构建之前先了解这个示例在仓库中的代码组织这对后续调试非常有帮助目录/文件作用examples/air-purifier-app/air-purifier-common/平台无关的共享逻辑净化器管理器、空气质量/温度/湿度/恒温管理器、滤芯 delegateexamples/air-purifier-app/air-purifier-common/include/air-purifier-manager.hAirPurifierManager单例类声明实现FanControl::Delegate与设备回调examples/air-purifier-app/air-purifier-common/src/air-purifier-manager.cpp风扇档位/百分比/模式联动、OnOff 联动、恒温加热回调等核心业务逻辑examples/air-purifier-app/air-purifier-common/README.md该示例实现的 PICSProtocol Implementation Conformance Statement清单examples/air-purifier-app/ameba/main/chipinterface.cppAmeba 平台入口端点宏定义、InitAirPurifierManager、网络配网初始化examples/air-purifier-app/ameba/main/include/CHIPProjectAppConfig.h设备类型Air Purifier0x002D与配网相关编译配置examples/air-purifier-app/ameba/chip_main.cmakeCMake 构建脚本源文件清单、ZAP 数据模型生成、编译宏examples/air-purifier-app/air-purifier-common/air-purifier-app.matterZAP 自动生成的 Matter IDL描述全部集群、命令与属性二、构建示例应用Ameba 平台采用外部 SDK 目录 本仓库源码的构建模式整个流程分为三步拉取 Ameba 仓库、初始化构建环境、编译固件。2.1 准备配套仓库Ameba Matter SDKambd_matter必须与 Matter SDK 仓库放在同一级目录下并保证目录名分别为connectedhomeip与ambd_mattergit clone https://github.com/ambiot/ambd_matter.git提示ambd_matter仓库内含 Ameba 特有的编译框架project_lp / project_hp 双核工程以及烧录工具不要省略此步骤。2.2 初始化构建环境进入 Matter SDK 仓库目录执行 bootstrap 脚本完成子模块与依赖环境的初始化$ cd connectedhomeip $ source scripts/bootstrap.shscripts/bootstrap.sh 是 connectedhomeip 的标准环境初始化入口它会拉取构建所需的第三方依赖并激活 Python 虚拟环境后续所有构建命令都依赖该环境。2.3 编译演示应用AmebaD 是双核架构KM0 低功耗核 KM4 高算力核因此编译分为 LP 与 HP 两个工程$ cd ambd_matter/project/realtek_amebaD_va0_example/GCC-RELEASE/project_lp/ $ make all $ cd ambd_matter/project/realtek_amebaD_va0_example/GCC-RELEASE/project_hp/ $ make -C asdk air_purifier From the same directory: $ make all几点说明project_lp工程编译 KM0 低功耗内核负责启动与低功耗管理固件project_hp工程编译 KM4 主核固件其中make -C asdk air_purifier指定目标应用为air_purifierHP 工程随后执行的make all完成整体链接与镜像生成。从 examples/air-purifier-app/ameba/chip_main.cmake 可以看出Matter 相关源码是以静态库chip_main的形式参与 Ameba 工程的它把air-purifier-common下四个管理器源文件air-purifier-manager.cpp、air-quality-sensor-manager.cpp、filter-delegates.cpp、thermostat-manager.cpp与 Ameba 平台文件chipinterface.cpp、DeviceCallbacks.cpp、CHIPDeviceManager.cpp统一编译并调用chip_configure_data_model基于 air-purifier-app.zap 生成集群数据模型最终将libchip_main.a拷贝到lib/application目录供链接。2.4 合并镜像并烧录编译完成后会产生三份关键镜像文件需要借助Ameba Image Tool将它们合并为一份可烧录镜像$ cd ambd_matter/tools/AmebaD/Image_Tool_Linux $ sudo ./AmebaD_ImageTool -combine \ ../../../project/realtek_amebaD_va0_example/GCC-RELEASE/project_lp/asdk/image/km0_boot_all.bin 0x0000 \ ../../../project/realtek_amebaD_va0_example/GCC-RELEASE/project_hp/asdk/image/km4_boot_all.bin 0x4000 \ ../../../project/realtek_amebaD_va0_example/GCC-RELEASE/project_hp/asdk/image/km0_km4_image2.bin 0x6000三份镜像的地址分配如下镜像文件烧录起始地址说明km0_boot_all.bin0x0000KM0 内核启动引导镜像km4_boot_all.bin0x4000KM4 内核启动引导镜像km0_km4_image2.bin0x6000KM0/KM4 应用镜像包含 Matter 应用合并后会在 Image Tool 同级目录生成Image_All.bin。接下来通过 Ameba Image Tool 的图形界面或命令行完成下载通过 USB 连接开发板编辑ambd_matter/tools/AmebaD/mpp.ini将端口port设置为正确的串口设备号其余配置项保持默认即可依次点击Download按钮与Reset按钮使开发板进入串口下载模式执行下载命令刷入合并镜像$ cd ambd_matter/tools/AmebaD/Image_Tool_Linux $ ./AmebaD_ImageTool -download烧录完成后开发板复位并自动运行 Matter 空气净化器示例。三、配网CommissioningAmeba 平台支持两种配网模式可根据调试环境选择。配网过程中会打印 Matter 的配对二维码/手动配对码Onboarding Codes供控制器侧扫描使用。在 examples/air-purifier-app/ameba/main/chipinterface.cpp 的InitServer中可以看到当设备尚未连接 AP 时会通过PrintOnboardingCodes打印基于 BLE 的配对信息。3.1 BLE 模式完成构建与烧录开发板启动后示例自动运行并开启 BLE 广播等待配网使用 Chip-Tool 作为控制器完成配网与后续测试。BLE 模式适合首次配网无需预先配置 Wi-Fi 凭据。3.2 IP 模式完成构建与烧录开发板启动后示例自动运行使用 AT 指令ATW0设置 Wi-Fi 模式、ATW1配置 SSID、ATWC发起连接让开发板接入 AP使用 Chip-Tool 作为控制器完成配网与后续测试。IP 模式要求设备与控制器处于同一局域网内配网走 IP 发现通道。配网能力相关的编译配置可在 examples/air-purifier-app/ameba/main/include/CHIPProjectAppConfig.h 中看到CHIP_DEVICE_CONFIG_DEVICE_TYPE 0x002D声明设备类型为 Air Purifier使设备在发现阶段即可被识别为空气净化器CHIP_DEVICE_CONFIG_ENABLE_COMMISSIONABLE_DEVICE_TYPE 1/CHIP_DEVICE_CONFIG_ENABLE_COMMISSIONABLE_DEVICE_NAME 1使能可配网设备类型与设备名Air PurifierCHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY 1使能扩展发现便于控制器在局域网内发现设备CHIP_DEVICE_CONFIG_ENABLE_COMMISSIONER_DISCOVERY 0/CHIP_DEVICE_CONFIG_ENABLE_COMMISSIONER_DISCOVERY_CLIENT 1本设备作为被配网端Commissionee作为客户端发现 Commissioner。四、集群控制Cluster Control配网成功后即可使用 Chip-Tool 对空气净化器的各集群进行读取与写入控制。4.1 复合设备的端点布局空气净化器是一个复合设备Composed Device示例中的端点Endpoint配置如下Endpoint设备/功能涉及主要集群1空气净化器本体Fan Control、On/Off、HEPA/活性炭滤芯监测Resource Monitoring、Identify 等2空气质量传感器Air Quality、甲醛/CO₂/PM2.5/PM10/VOC/氡等浓度测量集群3温度传感器Temperature Measurement4相对湿度传感器Relative Humidity Measurement5恒温器Thermostat这一布局在 examples/air-purifier-app/ameba/main/chipinterface.cpp 中有直接对应源码以宏形式定义了AIR_PURIFIER_ENDPOINT 1、AIR_QUALITY_SENSOR_ENDPOINT 2、TEMPERATURE_SENSOR_ENDPOINT 3、RELATIVE_HUMIDITY_SENSOR_ENDPOINT 4、THERMOSTAT_ENDPOINT 5InitAirPurifierManager通过AirPurifierManager::InitInstance注册这五个端点并调用SetParentEndpointForEndpoint将 2~5 号端点挂到 1 号净化器端点之下形成层级组合关系。AirPurifierManager的单例实现air-purifier-manager.h内部聚合了AirQualitySensorManager空气质量传感器管理器TemperatureSensorManager温度传感器管理器RelativeHumiditySensorManager湿度传感器管理器ThermostatManager恒温管理器HepaFilterMonitoringDelegate/ActivatedCarbonFilterMonitoringDelegate及对应的ResourceMonitoring::InstanceHEPA 滤芯与活性炭滤芯监测。4.2 使用 chip-tool 进行控制与读取以下为官方给出的示例命令${NODE_ID_TO_ASSIGN}为配网时分配的设备节点 ID最后一个参数为端点号$ ./chip-tool fancontrol write speed-setting 10 ${NODE_ID_TO_ASSIGN} 1 $ ./chip-tool formaldehydeconcentrationmeasurement read level-value ${NODE_ID_TO_ASSIGN} 2 $ ./chip-tool temperaturemeasurement read measured-value ${NODE_ID_TO_ASSIGN} 3 $ ./chip-tool relativehumiditymeasurement read measured-value ${NODE_ID_TO_ASSIGN} 4各命令含义与对应端点命令集群/动作端点说明fancontrol write speed-setting 10Fan Control 写入1将风扇速度设定为 10速度最大值SpeedMax 由FanControl::Attributes::SpeedMax提供见源码GetSpeedMaxformaldehydeconcentrationmeasurement read level-value甲醛浓度测量读取2读取甲醛浓度等级值temperaturemeasurement read measured-value温度测量读取3读取测量温度值MeasuredValue属性relativehumiditymeasurement read measured-value相对湿度测量读取4读取测量相对湿度值4.3 风扇控制的底层联动逻辑从 examples/air-purifier-app/air-purifier-common/src/air-purifier-manager.cpp 的源码可以看出fancontrol write speed-setting并非简单的属性写入而会触发一系列设备级联动SpeedSettingWriteCallback写入SpeedCurrent并根据速度值自动映射风扇模式——速度为0时置FanMode kOff1~3为kLow4~7为kMedium8~10为kHigh常量FAN_MODE_LOW_UPPER_BOUND、FAN_MODE_MEDIUM_UPPER_BOUND、FAN_MODE_HIGH_UPPER_BOUND分别取 3、7、10FanModeWriteCallback反向联动写入FanMode时会把SpeedSetting校正到对应档位的合法区间HandleOnOffOn/Off 集群关闭时SpeedCurrent与PercentCurrent均被置 0开启时恢复设定值若为自动模式两者均 NULL则回落到 100% 与最大速度HandleStep实现 Fan Control 集群的Step命令支持kIncrease/kDecrease方向、wrap循环与lowestOff语义HeatingCallback恒温器进入加热状态时若风扇当前关闭或速度为 0会自动将风扇调到速度 5实现加热时自动送风的场景联动。此外PostAttributeChangeCallback统一分发 Fan Control、Thermostat、On/Off 三类集群的属性变更事件回调骨架定义于 DeviceManager.h。4.4 设备能力清单PICSexamples/air-purifier-app/air-purifier-common/README.md 给出了该示例实现的完整 PICS 清单可作为功能验收与认证准备的依据要点如下Fan Control服务端FAN.S1支持 Step 命令FAN.S.C00.Rsp1全部 12 个属性A0000~A000B实现HEPA 滤芯监测HEPAFREMON.S1与活性炭滤芯监测ACFREMON.S1支持 6 个属性A0000~A0005与重置命令响应C00.RspAir QualityAIRQUAL.S1支持 4 个属性A0000~A0003事件AirQualityChange未实现0浓度测量集群甲醛、CO₂、NO₂、臭氧、PM1、PM2.5、PM10、TVOC、氡等全部以服务端实现如CDOCONC.S1、PMICONC.S1属性实现到A000aTemperature / Relative HumidityTMP.S1、RH.S1均非手动控制ManuallyControlled0ThermostatTSTAT.S1仅支持加热模式F001只实现部分属性如A0000本地温度、A0003加热设定点、A0012系统模式、A001b/A001c模式相关与加热设定点写命令C00.Rsp1。这些 PICS 与实际端点布局一一对应是理解为什么 2 号端点能读甲醛、5 号端点存在恒温器的直接依据。五、总结与验证路径在 Ameba RTL8722DM 上跑通 Matter 空气净化器示例核心链路可概括为准备同级放置ambd_matter与connectedhomeip两个仓库source scripts/bootstrap.sh初始化环境构建依次在project_lp与project_hp工程执行make其中 HP 工程以make -C asdk air_purifier指定应用烧录用 AmebaD Image Tool 将 KM0/KM4 引导与双核应用镜像按0x0000 / 0x4000 / 0x6000地址合并为Image_All.bin并下载配网BLE 模式直接配对IP 模式先用ATW0/ATW1/ATWC接入 AP验证用 chip-tool 对 1~5 号端点分别执行风扇写入、甲醛/温度/湿度读取并可通过修改speed-setting观察FanMode的档位联动验证复合设备的整体行为。如需修改设备能力可基于 air-purifier-app.zap 重新生成数据模型参考 chip_main.cmake 中的chip_configure_data_model再结合上文提到的 PICS 清单对照检查功能覆盖是否完整。【免费下载链接】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),仅供参考

相关新闻

组织架构图的工程化建模:从静态树状图到权责网络

组织架构图的工程化建模:从静态树状图到权责网络

简介:本资源是一份聚焦头部企业组织治理实践的深度解析文档,面向企业管理者、HR从业者、MBA学员及组织发展研究者,解决组织架构设计、集团管控模式选择与矩阵式管理落地等实际问题。文档以华为为剖析重点,系统呈现其股东会—董事会…

2026/9/19 0:30:50 阅读更多 →
低轨卫星星间切换优化:动态预测与多属性决策实战

低轨卫星星间切换优化:动态预测与多属性决策实战

简介:低轨卫星通信系统设计中的星间切换优化,长期受终端运动影响而面临切换失败率高的问题。这份文档深入研究了基于动态预测的切换策略,面向卫星通信研究人员与工程师,重点覆盖两种改进思路:一是基于预测的多属性无偏…

2026/9/19 0:30:50 阅读更多 →
当 M1 只有 8GB,TaoToken Key 别浪费在重任务

当 M1 只有 8GB,TaoToken Key 别浪费在重任务

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 0:30:50 阅读更多 →

最新新闻

ISO 17021-10审核员能力评估:从危险源辨识到持续适任的完整框架

ISO 17021-10审核员能力评估:从危险源辨识到持续适任的完整框架

简介:ISO IEC TS 17021-10:2018《职业健康与安全管理系统的审核和认证能力要求》完整英文版,面向从事OH&S MS审核、认证及相关合规工作的专业人士。规范系统规定了审核员与认证机构的知识、技能、经验、道德行为及持续发展要求,涵盖范围、…

2026/9/19 2:32:58 阅读更多 →
Android RS-485通信实战:解决阻塞读取与方向控制两大深坑

Android RS-485通信实战:解决阻塞读取与方向控制两大深坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 2:32:58 阅读更多 →
Matlab实现莱斯信道下QPSK仿真与星座图畸变分析

Matlab实现莱斯信道下QPSK仿真与星座图畸变分析

简介:本资源是一份面向通信工程专业学生、无线通信方向研究者及Matlab仿真初学者的实践型教学文档,聚焦莱斯信道下QPSK信号传输特性的建模与仿真分析。文档系统讲解了移动无线信道分类、小尺度衰落机理、瑞利与莱斯分布的物理意义及K因子对误比特率的影响…

2026/9/19 2:32:58 阅读更多 →
Java安卓外卖订餐系统课程设计实战:从选型到订单状态机

Java安卓外卖订餐系统课程设计实战:从选型到订单状态机

简介:面向Java/Android学习者的外卖订餐系统课程设计报告,完整记录了从需求分析到项目落地的全过程。文档以软件工程规范为纲,先阐述课程设计目的与任务,再展开需求分析,包含数据流图、用例图、时序图、活动图等建模内…

2026/9/19 2:32:58 阅读更多 →
国产MQTT协议栈选型指南:从License合规到边缘性能实战

国产MQTT协议栈选型指南:从License合规到边缘性能实战

1. 项目概述:为什么国产 MQTT 协议栈不是“换个名字”,而是架构级的重新选择最近三个月,我连续接手了四个工业物联网项目,客户提的需求高度一致:“能不能不用 Mosquitto 或 EMQX?最好用国产的。”起初我以为…

2026/9/19 2:32:58 阅读更多 →
GTM与GA4事件追踪实战:从埋点原理到排错技巧全解析

GTM与GA4事件追踪实战:从埋点原理到排错技巧全解析

做网站分析这一行,埋点永远是个绕不开的活儿。刚入行那会儿,我最烦的就是为了一两个按钮统计去麻烦开发改代码,提个需求排期三五天,改完上线再等数据积累,黄花菜都凉了。后来开始用GTM统一管理GA的追踪代码&#xff0c…

2026/9/19 2:31:58 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/16 19:03:19 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/17 7:57:36 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/17 10:19:14 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →