智能网关总体架构
1、总体概述
本架构设计接纳多历程,功能解耦的模块化架构,每个模块是一个可运行的二进制执行文件(bin),基于C++语言进行开辟,模块化的好处是工程师可以根据接口界说进行独立/协同开辟,模块之间通过长连接进行通信,低落乃至不使用第三方库的依赖,以达到程序的通用型和安全性,支持摆设到包罗AR502 lxc容器/自研网关和任何运行linux的其他网关,也支持跨网关分布式组网摆设;
本软件架构运行在边缘侧,整体架构简洁化设计,接纳星型结构摆设,总体摆设架构图如下:
2、各模块功能说明:
1、内部通信模块(redis)
接纳redis作为目前消息转发模块。Redis是开源内存数据库组件,接纳C语言编写,运行速度快,可提供订阅发布的消息机制,且redis作为内存数据库,可以提供临时数据存储功能
2、云端交互模块(mqtt_program)
提供网关到云端的桥梁,接纳C++开辟。负责吸收云端消息分发到网关各模块,同时提供网关及子设备向云端发送数据的能力。
目前主要通过定于发布巴法云的MQTT服务的对接天猫精灵平台来实现消息的传输
3、终端交互模块(iot_program)
提供终端设备到网关的桥梁,接纳C++开辟。负责吸收终端集控上报的全部数据,以及提供其他模块通过集控向终端设备发送控制消息接口。目前接纳MQTT协议来进行数据的收发.
依赖:本地MQTT的服务端
4、前端交互模块(http_server_program)
提供用户利用的WEB界面和网关的交互平台,接纳C++开辟,作为web端的后端。
主要实现的功能是
终端设备的添加和删除写入数据库
终端设备的状态回传到前端
终端设备控制指令转发到相干模块
终端设备联动规则制定保存或转发
另外实现非智能家居系统的相干功能
英语学习系统
ChatGPT系统
NAS系统
局域网唤醒系统
负责设备的接入设备数据采集。模块将每一类设备封装成动态库组件。程序启动时,根据配置加载不同的动态库初始化设备实例并管理设备。模块会定时或被动吸收设备数据,颠末处理后按相应要求上报云端或本地存储。设备类按照物模子要求开辟,提供属性,服务,变乱
5、小程序交互模块(weixi_server_program)(待定)
接纳C++开辟,作为微信小程序的交互模块,提供终端物联网设备的状态展示以及控制指令下发
主要实现的功能是
终端设备的状态展示
终端设备控制指令推送
6、联动规则(rule_server)(待定)
联动规则提供了一个设备和设备进行效互的功能。用户可以根据自已的需求界说规则。联动规则吸收主控设备上报的数据(属性数据,变乱数据),根据规则条件调用受控设备的服务。保证网关即使离线也能正常运行一些功能
7、告警规则(warn_rule_service)(待定)
告警规则提供用户监测系统的功能,接纳python开辟。用户可以根需求建立告警规则。告警模块会在收到监控设备的数据时(属性数据),决定对此数据是否产生告警。以及产生告警后动作
智能家具系统拓扑图:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |