智能家居网关总体架构

智能网关总体架构

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开发。用户可以根需求建立告警规则。告警模块会在收到监控设备的数据时(属性数据),决定对此数据是否产生告警。以及产生告警后动作

智能家具系统拓扑图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值