M-Design设计竞赛 - 基于matter的智能灯具
该项目使用了esp32c6开发板,实现了基于matter协议的智能灯具的设计,它的主要功能为:可将一般灯具改装为智能灯具,可通过手机app或其他智能家居控制中枢进行控制。
标签
物联网
Matter
M-Design
qqlovolpp
更新2025-04-01
48

基于Matter的智能灯具

项目介绍:

本项目完成的是2025贸泽电子M-Design创意设计竞赛,任务三:无线通信、物联网,小方向为Matter。

这是是一款基于Matter协议的智能灯具,其核心基于Matter协议这一开放物联网标准。通过采用Matter协议,不仅能够实现设备间的高效互联互通,还确保了与当前主流智能家居生态系统的广泛兼容性,例如苹果HomeKit、亚马逊Alexa以及谷歌Home等。这意味着用户无需担心设备间的兼容问题,可以轻松将这款灯具融入现有的智能家居环境中。

用户可以通过多种方式进行灯具的控制,包括智能手机应用程序、语音助手(如Siri、Alexa或Google Assistant)以及预设的自动化场景模式。无论是在家中还是办公室,用户都能够根据实际需求灵活调整灯光开关状态,从而创造出智能的照明环境。

硬件介绍:

本项目采用ESP32开发板来完成,其中ESP32_C6作为核心芯片,使用一颗LED来模拟灯具,通过一个按键来模拟开关。

ESP32_C6是一款高性能、低功耗的物联网芯片,集成了Wi-Fi和蓝牙双模功能,采用先进制程工艺,在保证强大计算能力的同时兼顾优异的能效表现。它不仅支持多种主流物联网协议,还提供了丰富的外设接口,适用于智能家居、可穿戴设备、工业自动化及环境监测等领域,能够满足复杂应用场景下的连接与数据处理需求,是打造高效、智能物联网设备的理想选择。

image.png

设计思路:

Matter协议是因为它作为智能家居领域的开放式通信标准,能够解决设备间兼容性问题,确保智能灯具与主流生态系统(如苹果HomeKit、亚马逊Alexa、谷歌Home等)无缝互联。相比其他协议,Matter具有更高的互操作性、安全性以及广泛的行业支持,降低了用户在跨平台使用时的复杂度,同时简化了开发流程,为未来扩展和升级提供了坚实基础。故选择matter协议作为应用层协议。

image.png

ESP32-C6芯片是因为它是一款高性能、低功耗的物联网处理器,专为下一代无线应用设计。它支持最新的Wi-Fi 6和Bluetooth 5.0技术,提供更快的连接速度和更稳定的网络性能。此外,ESP32-C6采用RISC-V架构,具备强大的计算能力和丰富的外设接口,适合处理复杂功能,如Matter协议通信、多任务处理和传感器数据采集。其低功耗特性还能有效延长设备待机时间,而高集成度则有助于缩小产品尺寸、降低开发成本,非常适合对性能、功耗和成本有综合要求的智能灯具项目。故选择ESP32-C6芯片。

同时ESP-Matter SDK提供了完善的Matter协议实现框架,简化开发流程,确保与主流智能家居生态系统的兼容性。两者的结合不仅优化了资源利用,还通过丰富的功能模块和社区支持加速产品开发,实现了高效、稳定的智能灯具解决方案。

image.png

采用了ESP-Matter SDK作为主要开发工具,并以FreeRTOS作为底层操作系统。整个开发流程可以概括为几个关键阶段:首先是设备的初始化操作,这是整个开发过程的基础。通过调用初始化函数,系统会生成一个设备实体的控制句柄,该句柄提供了对设备资源的访问权限,并为后续功能实现奠定了基础。接下来,从设备列表中选择合适的设备模型,并按照Matter协议的要求创建node节点。每个node节点代表一个独立的功能集,承载了设备的一类完成的功能。在此基础上,还需要根据设备的功能需求创建多个endpoint。Endpoint是Matter协议中用于表示具体功能模块的基本单元,例如灯光亮度、颜色或开关状态等功能都可以通过不同的endpoint来实现。同时,还需要为每个endpoint设置其对应的功能属性,并确保这些属性符合Matter标准的规范。

为了使设备能够正确响应外部事件或用户指令,需要将之前定义的回调函数注册到相应的endpoint或功能模块中。这一过程确保了设备在运行时能够及时捕获并处理各类事件,从而实现预期的功能。最后,启动Matter协议栈,包括初始化网络功能、配置默认的空闲任务以及其他必要的系统服务。

image.png

关键代码:

下面代码展示了主要步骤,一些具体实现见源代码文件

    nvs_flash_init(); 					//NVS初始化

//初始化硬件
app_driver_handle_t light_handle = app_driver_light_init();
app_driver_handle_t button_handle = app_driver_button_init();
app_reset_button_register(button_handle); //注册复位按键

//创建node
node::config_t node_config;
node_t *node = node::create(&node_config, app_attribute_update_cb, app_identification_cb);
ABORT_APP_ON_FAILURE(node != nullptr, ESP_LOGE(TAG, "Failed to create Matter node"));
//创建endpoint
on_off_light::config_t light_config;
light_config.on_off.on_off=true;
endpoint_t *endpoint = on_off_light::create(node, &light_config, ENDPOINT_FLAG_NONE, light_handle);
ABORT_APP_ON_FAILURE(endpoint != nullptr, ESP_LOGE(TAG, "Failed to create on off light endpoint"));
//打印日志信息
light_endpoint_id = endpoint::get_id(endpoint);
ESP_LOGI(TAG, "Light created with endpoint_id %d", light_endpoint_id);

//运行matter协议栈
err = esp_matter::start(app_event_cb);
ABORT_APP_ON_FAILURE(err == ESP_OK, ESP_LOGE(TAG, "Failed to start Matter, err:%d", err));

功能展示:

配网展示

IMG_20250313_183733.jpg IMG_20250313_183047.jpg


亮灭灯展示

image.png IMG_20250313_183005.jpg


更多展示见视频

困难及解决方法:

困难:Matter协议复杂性带来的开发难度

解决方法:在开发基于Matter协议的智能灯具时,由于Matter协议涉及多层通信栈和复杂的设备互操作性要求,初期协议实现和调试过程较为困难。利用ESP-Matter SDK提供的完整框架和工具链,直接调用预定义的功能模块和示例代码,简化了协议栈的构建和测试流程。同时,参考官方文档和社区支持,快速定位并解决了协议兼容性问题。

心得体会:

本次基于Matter协议的智能灯具项目开发,深刻体会到物联网技术的潜力与挑战。选择Matter协议和ESP32-C6芯片不仅解决了设备兼容性和性能问题,还认识到开源SDK在加速开发中的重要性。此次经历不仅提升了技术能力,也为未来智能硬件开发积累了宝贵经验。

附件下载
light.zip
代码
团队介绍
个人
团队成员
qqlovolpp
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号