更多信息请访问:与华为官方共建的鸿蒙技术社区https://ost.51cto.com1.设计背景及项目介绍目前,智能家居概念发展迅猛,各种智能家居产品不断问世。随着家用电器的发展,家用电器必须跟上科技发展的步伐,走向智能化。智能家居不仅可以为用户提供安全、健康、舒适的生活环境,还可以让用户远程监控家居状态,控制家用电器设备。目前,除了普通家电,家用电子设备、家庭安防设备和家庭医疗设备也逐渐增多。同时,随着网络技术的深入应用,家庭中的各种电器设备都需要联网。如何实现对各种家居设备的集中管理和远程控制,是智能家居功能的体现。基于以上背景,本文提出了一种基于OpenHarmony的智能中控设备的设计与实现。目的是让开发者了解一种对一体化设备进行统一管控的方法。本项目主题来源于OpenHarmony开源开发者成长计划,基于OpenHarmony设备实现L0、L1、L2设备互联互通,基于中控设备、设备联动控制、设备实现远程控制自主控制,功能正在陆续开发和优化中。2.项目结构鉴于分布式软总线技术的开发难度,本文采用MQTT物联网通信协议实现设备与云端的通信,但中控面板将使用华为云应用API接口后期升级减少中控设备的资源消耗。【智能中控板】智能中控板是基于BearPI-HMMicro开发板设计实现的。其主控程序基于openHarmonyJS应用程序框架设计实现,采用MQTT物联网通信协议连接华为云物联网平台。控制命令发送到华为云物联网平台进行云端处理。【华为云物联网平台】华为云物联网平台为中控板和L0子节点设备提供设备接入服务。同时,基于设备联动服务开发设备控制,实现一条命令控制一台设备、一条命令控制多台设备、多条命令控制一台设备、多条命令控制多台设备等复杂逻辑场景控制需求.【L0子节点设备】基于鸿蒙轻量级系统开发的设备控制终端,集成在智能设备上,可通过MQTT协议接入华为云物联网平台,实现复杂的设备控制逻辑。中控调用这些控制逻辑只需一条命令即可,极大程度解耦了中控端与设备端复杂的控制逻辑链,将设备内部复杂的逻辑控制链完全隔离。3、中控应用设计中控应用基于openHarmony应用框架进行设计和实现。下面是设计图。由于时间关系,设计图还没有完全开发实现,后续会继续跟进。【首页】首页控制设计,展示当前中控面板采集的微环境信息,提供场景联动界面,支持多设备一键控制。【灯光控制】灯光设计目前为一室一控设计,未来会不断优化拓展。【空调设备控制】【窗帘设备控制】4.中控MQTT设计及添加设备思路中控MQTT的设计与实现基于OpenHarmony3.0LTS版本,后续更新后可能会有变化。具体实现是中控MQTT通信过程在内核态驱动中。JS应用发起接口调用后,进入用户态调用内核态接口的过程,JS应用会直接传递需要发送到云端的MQTT协议主题内容。内核模式,内核模式不进行数据处理和分析,直接将数据发布到云端。这样设计的目的是在添加设备时只改变JS应用的数据结构,而不用修改设备的代码来完成解耦。{"services":[{"service_id":"smartctn","properties":{"led":1,//LED设备"temp":30,//温度"humi":70,//湿度"mode":"OFF"}}]}}【点亮LED灯示例】改变数据结构的操作数即可。open(e){让那个=这个;this.testable.services[0].properties.led=1;让payload=JSON.stringify(this.testable);console.log(payload)app.mqttpublish({code:2,payload:payload,success(res){},fail(res,code){},complete(){}})},5.设备联动设计后添加设备,进入设备联动控制逻辑界面,添加联动控制触发条件即可。6.总结目前实现控制还是有点复杂。后续分布式软总线的相关学习完成后,我们将尝试修改控制方式。设计这个项目后,很荣幸得到了众多优秀老师和开发伙伴的技术支持。同时,该项目将持续维护和更新。直到功能完全可以满足需求为止。更多信息请访问:与华为官方共建的鸿蒙技术社区https://ost.51cto.com
