系统业务流程

  • 本章节主要描述系统关键的业务流程,旨在梳理流程,为后续的系统设计提供理论基础。

业务术语

  • 产品
    • 产品是一类设备型号的统称,包括系统中的传感器,电机参数等。系统为每个产品分配一个产品ID(product ID)
  • 设备
    • 定义了产品后,设备是指属于该产品的真实物理设备。每个设备在平台上都有一个设备ID(device ID),同时每个设备都配备一个物联网模块,例如4G模块,每个模块都在物联网平台下都有一个唯一的物联网ID(iot device ID),和唯一的MAC/IMEI地址
  • 设备状态
    • 设备状态指设备是否在线。在线即设备内嵌的模块已链接网络,并成功登陆物联网IoT平台。离线即设备处于脱机状态
  • 产品属性
    • 产品属性用于定义产品的功能点,例如开关机,温度,档位等等属性。属性的类型有三种:整数,浮点数,字符串。
  • 设备属性
    • 设备属性是基于时间的一系列产品属性的值,例如产品定义了开关机属性,那么某一台设备的当前的开关机属性为开机或关机状态(值对应1或0)。设备属性是与时间戳密切相关。某个时间点对应的设备属性,即为设备的属性快照。
  • 设备历史记录
    • 设备每次改变状态后,上报数据到物联网平台,物联网平台都会记录该时刻的数据,历史数据可以回看和进行后续的分析。历史数据存放有效期根据该设备上报数据的频率和数据大小而定。
  • 管理员
    • 物联网数据管理平台为每个管理员开通一个账户,该账户可以操作该企业内的所有设备和数据。
  • 设备所有者
    • 设备所有者指的是设备的拥有者,该设备所有者只能查看该用户关联的设备。设备所有者可以下发控制指令控制设备,可以查看设备的历史记录。
  • 设备分组
    • 管理员可以创建设备分组,并把设备添加到该分组内,方便分组管理设备。另外,权限设置中,也可以把设备组分配给指定的用户,该用户即可操作该组内的设备。
  • 时序数据库
    • 时序数据库是专门用于存储针对时间维度数据的数据库,每个数据记录都有一个时间戳用于标记数据采集的时间,同时指标会有一组关联的label,用于描述该数据的关联属性。
  • 蓝牙mesh网络
    • 蓝牙mesh网络是基于蓝牙标准的多对多的通信协议。蓝牙mesh基于订阅发布模式,mesh网络内的设备称为节点(node),每个节点都有一个唯一的地址,节点同时可以加入到分组中,消息发送者可以通过mesh网络发送消息给指定的节点,或者发送给一个分组,通过这个方式,可以实现1对多的通信。mesh设备入网时使用256bit的椭圆曲线加密,后续的消息通信通过AES-CCM加密数据,可以保证数据在节点间的传输时安全的。

厨房设备组网

  • 厨房设备已集成灶为网关核心,外围设备和集成灶都需要嵌入一个蓝牙mesh的模块,集成灶中的蓝牙mesh模块跟wifi模块一起组成一个子网网关,蓝牙模块负责跟其他设备中集成的蓝牙模块连接成一个近距离的网络,实现集成灶和外围设备的数据交互。
  • 外围设备通过串口与各自的蓝牙模块连接起来,通过给蓝牙模块发送配网指令使蓝牙模块处于待配网状态。用户可通过app对蓝牙模块进行配网, 把设备添加到网关的同一个mesh网络中。
  • 网关中的蓝牙模块负责分发从wifi接收到操控数据到各个外围设备,外围设备的状态和动作也通过mesh网络反馈到网关的蓝牙模块,然后通过wifi上传到云端。

设备所有者操作流程

  • 消费者购买了设备后,每个设备都配有一个独立的二维码,用户可以打开微信,使用扫一扫功能打开数据管理员平台APP。
    • 若用户尚未注册,则显示注册页面,APP通过授权读取用户的手机号和头像等信息,并请求服务器创建账号。
    • 用户登陆后,APP识别用户扫描的唯一二维码编号,通过后台比对用户的身份和设备的绑定关系,若绑定关系存在,则允许该用户访问该设备;若绑定关系不存在,则提示“没有权限”。
    • 用户打开设备控制界面后,用户可以查看设备的历史数据即图表。
    • 设备定期或状态变化后,主动上传数据,用户可以及时通过APP查看设备的状态。
  • 用户还可以通过app,实现子设备的组网。app通过ble mesh为每个需要加网的子设备分配一个唯一地址。当集成灶的Wi-Fi模块上线后,平台会下发该网络已绑定的子设备列表,Wi-Fi模块即可记住该设备列表,后续需要发送数据到指定的子设备时,即可通过该地址映射表搜索设备并转发。

后台操作流程

  • 管理员可以通过后台实现如下操作:
    • 添加后台子用户
    • 添加角色,角色是系统的最小的权限控制单元。每个角色关联多个权限,同时每个角色可以有多个子用户。
    • 分配系统预设权限给角色,例如查看设备的权限,查看产品的权限等等。
    • 添加用户至指定角色。
    • 添加设备
    • 关联设备至角色
    • 添加设备分组
    • 设备分组绑定设备
    • 用户授权设备分组或指定设备

添加后台用户

  • 开发者可以通过后台,自行添加子管理员。子管理员的账号只能被该开发者或系统管理员看到。添加子管理员方式与注册基本一致,通过手机号+密码,或邮箱+密码的方式添加。
  • 子管理员默认没有权限访问后台数据。

添加角色

  • 角色是权限管理的核心,角色可以包含多个用户,角色也可以分配多个权限。同一个角色内的用户有相同的权限。每个用户只能属于一个角色。

分配权限

  • 系统预设一系列权限。管理员可以可以自行添加角色,并把该角色的权限授予新添加的角色,实现角色的继承。

添加用户至角色

  • 后台用户需要分配至一个角色后,方可访问后台的数据。每个后台用户只能归属一个角色。

添加设备

  • 管理员可以通过后台,添加设备,其中包括如下设备信息:
    • 模块对应的设备ID,必填
    • 设备的名称,必填
    • 设备的型号model,选填

关联设备至角色

  • 新增的角色默认无法访问任何设备数据。企业管理员需要把设备添加至指定的角色后,该角色下的用户方可访问该设备的数据。

添加设备分组

  • 管理员可以创建设备分组,并把设备分配至指定的分组中,实现分组管理,该分组也可以授权给指定用户,该用户可以访问该组内所有设备的信息。

查看设备历史记录

  • 管理员可以通过后台查看某台设备的历史记录信息,导出历史记录,聚合统计等。

规则定义

  • 系统管理员可以通过后台自定义指标监控的规则,例如过去5分钟内,监控值超过或低于阈值,则触发短信通知管理员用户。监控规则定义包含了两部分:
    • 指标监测条件,例如过去5分钟,燃气泄漏量 > x
    • 触发动作,例如发送短信通知用户,燃气泄漏。

可视化图表

  • 系统提供可视化的方式,让管理员可以查看当前系统的历史与当前状态。可视化图表包括:
    • 过去n小时的燃气使用量曲线图
    • 过去n天,每天触发报警的次数

系统设计

系统架构

  • 本系统采用微服务架构,对于Wi-Fi设备基于MQTT 通信协议,设备通过mqtt链接到MQTT Broker服务器后,数据由Broker转发至物联网平台,并把数据存储于数据库中。

设备层

  • 设备层是每个终端都会安装一个通讯模块,用于与服务器通信,模块同时会配备一个蓝牙模块,实现子设备的ble mesh组网,对于app层面来说,子设备的属性就是集成灶的一个属性,app不会感知子设备的存在。设备终端采集的数据包括:燃气泄漏量、温度数据、湿度数据等、同时终端模块还可以接收来自服务器的控制请求,执行电机的档位调节。数据采集后,通过MQTT协议上传至服务器,并由服务器执行后续的分析与操作。
  • 设备的Wi-Fi模块会记录已配网的子设备的地址,当服务器下发了控制指令后,会匹配到对应的子设备地址、并转发控制指令到子设备。同理,子设备上报的数据,会经过ble mesh网络传递给集成灶的mesh节点,该节点会把数据转发给Wi-Fi,Wi-Fi模块把该状态转换为集成灶的一个状态,并上传至iot服务器。

服务器层

  • 服务器采用微服务架构,MQTT broker负责消息的订阅与发布,同时实现群组控制。
  • 其中基础设施层包括时序数据库、关系数据库、消息队列,用于存储系统中的数据。
  • 设备管理模块包括如下几个功能:
    • 设备的绑定接口、解绑接口
    • 设备的当前状态数据获取接口
    • 设备的历史数据查询接口
    • 设备的群组接口
  • 规则引擎功能包括:
    • 指标表达式定义,统计时间维度和对应指标的汇总值,支持如下aggregate操作:avg平均值、min最小值、max最大值、sum求和,另外定义规则的阈值,当规则求值超过或低于阈值时,自动触发规则动作,例如发送短信通知用户。
    • 联系人管理,用于保存通知的对象
  • 任务调度系统功能包括:
    • 执行定时任务,计算汇总报表
    • 执行延时任务

用户层

  • 对于用户终端,可以通过APP进行设备的绑定和控制操作,APP端包括如下功能:
    • 用户登陆注册
    • 设备的绑定与解绑
    • 设备状态的读取,如当前温度等数据
    • 设备控制,包括火力调节、模式调节。
    • 设备历史状态查询
  • 用户除了可以通过APP实现移动端的简单控制与数据查看外,还可以通过电脑端网页实现更多的功能与报表查看操作。网页端功能包括:
    • 数据大屏,展示当前所有设备的传感器数据、过去7天的传感器历史数据、过去24小时的分钟数据等
    • 用户管理,查看系统当前的注册用户信息
    • 设备管理,查看系统的设备信息、设备状态、设备控制等操作
    • 设备群组,查看/建立/解散群组、实现群组控制功能
    • 报警规则,用户可以定义报警规则,根据用户定义相关的参数阈值规则,超过或低于阈值时,自动发送短信通知管理员

权限架构

  • 权限架构如下图所示:

  • 如上图所示:

    • 子管理员1和2可以访问设备3,子管理员3和4可以访问设备1,2,3的数据。
    • 企业管理员1可以查看该企业下的所有信息,包括子管理员信息,和其添加的设备信息。

系统功能模块表