# 基于边缘采集的智能网关系统 **Repository Path**: xu-shengliang/intelligence-gateway ## Basic Information - **Project Name**: 基于边缘采集的智能网关系统 - **Description**: Modbus和M0模拟两种工业场景,边缘计算处理本地数据,上传到服务器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2022-05-19 - **Last Updated**: 2022-06-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于边缘采集的智能网关系统 #### 介绍 Modbus和M0模拟两种工业场景,边缘计算处理本地数据,上传到服务器 #### 软件架构 ``` 两大网联网场景:消费物联网、工业物联网两大场景全覆盖 边缘网关新概念:物联网边缘网关中边缘采集、边缘计算两大主流技术 基础综合运用:C、shell、Makefile、C++、QT、单片机、数据库等基础知识大融合 Linux开发技术点:进程间通信(共享内存、消息队列、本地套接字)、多线程程序设计、文件操作、网络编程 物联网主流通信技术:Json、Modbus、mqtt 各种调试工具学习:mqtt.fx、modbus slave、modbus poll、wireshark、网络调试、串口调试等 企业级开发流程:项目组为单位,PM、SE、主程代表,基于平台组件开发 ``` #### 基础功能 ``` 支持家居设备(M0)及工业设备(用modbus slave模拟)数据采集和远程控制\n 提供用户界面操作 网关支持上报模式修改:变化上报、周期上报、刷新上报 上报方式通过上位机进行配置,配置完成后下发,进程重启生效 变化上报:设备某个数据点发生变化后,将数据点单独进行上报(实时性要求高) 周期上报:按照用户设定的上报周期,定时将所有数据点进行上报(不关注时效) 刷新上报:不会主动上报,只有客户端发送查询命令后才会上报(省流) ``` #### 扩展功能 ``` 历史数据查询 对于数据型的设备,增加历史数据查询功能,比如温度、湿度、光照这类的设备。 网关可以定时存储各设备的历史数据,按照时间戳将各点数据存储到数据库,等待客户端查询。 QT客户端点击某个数据型设备后,进入二级页面,选择查询的时间端,等待网关返回历史数据后,通过曲线图方式显示到界面上。 ``` #### 架构说明 ![输入图片说明](resource/image.png) ``` 多进程设计,遵循软件设计中的高内聚,低耦合。 设备采集进程和边缘采集进程屏蔽设备差异,负责具体的设备数据采集和控制,易于扩展。 设备采集进程负责采集/控制M0设备,M0设备为主动上报设备,采集进程等待M0主动上报即可。 边缘采集进程负责采集/控制工业设备,modbus协议为主从式协议,需要采集进程主动轮询数据点。 数据上报进程负责上报规则更新,并根据上报规则将最新的数据上报给客户端。 客户端和上报进程使用mqtt进行通信,具体通信协议遵循json格式。 设备采集和边缘采集进程使用共享内存和上报进程进行通信,两个采集进程获取到最新数据后,刷新到共享内存,上报进程从共享内存读取后上报即可。 客户端下行控制指令通过mqtt发送给上报进程后,上报进程通过本地套接字或者消息队列方式发送给采集进程,采集进程再进行具体设备的控制。 每个进程包含多个线程,可根据具体功能进行再拆分。 ``` #### 边缘计算模拟 ``` 通过设置界面,设置一些自动化处理阈值,可以自由发挥。比如设定当光照低于某个阈值时候,自动打开灯光设备。温度高于某个阈值时,自动打开风扇或者空调设备。 PS:M0设备上外设有限,能模拟的设备有限,但是modbub可以模拟任意设备,你能想到的都能扩展。此部分功能真正的物联网场景中是客户端配置规则,下发到网关,网关自动完成。如果组内要做,可以根据能力决定是做到客户端还是做到网关。 ``` #### 使用说明 部分代码在hq平台进行开发,需要先安装hq平台或将hq平台源码拷到目录 #### 参与贡献 ``` 1.边缘上报 冯双庆 2.边缘采集 王鸿君 3.Qt 王华胜 4.设备采集 李军卉 ```