1. > {%
  2. client.global.set('token',response.body.data.token);
  3. %}

注册中心 设备服务 网关 产品服务 解析服务
设备服务层
数据处理层

一个人,想要在某个领域中有所作为,第一点就是接受它,并且爱上它。这是一切的起点。 单元测试:BDD feature cucumber

物联网行业分析

两化融合:工业化 信息化 融合可持续发展模式
M2M:机器与机器的对话
RFID:阅读器与标签之间非接触式的数据通信
传感网:传感器网络(传感、采集、处理、收发),实现对物理世界的动态智能协同感知

需求分析

需求概述

作为一个中台,对设备运行状况进行实时在线监控、预警,不做业务相关的功能。
核心功能列表:

  1. 报文数据采集与指标解析:整个系统的数据来源是通过接收设备发送过来的报文信息,在系统中定义主题和消息内容字段的指标数据为过滤条件,从而对消息进行收集和分析
  2. 报警监控:通过和系统中定义的各种告警级别数据进行对比,一旦发现触发到告警级别的消息,就会通过和告警关联配置的webhook来将告警信息透传到其它系统
  3. GPS定位监控:采集每台设备的GPS定位,并提供设备位置查询功能.

    业务架构图

    图形监控:实时监控 设备分布 异常设备监控
    数据详情:设备状态 指标信息 报警信息
    看板管理:选择看板 自定义看板
    设备管理:设备管理 指标管理
    报警管理:报警日志 报警管理
    系统管理:系统设置

    系统架构

    系统架构图

iot - 图1
阈值数据将放入MySQL里进行存储,设备上报的指标数据包括告警数据将存入TDengine中,设备的地理位置信息数据存入到ES中以便后期搜索。为了提高系统的运行稳定性,有些频繁访问的数据存储在redis中加速读取

数据库设计

mysql数据库有5个表
管理员表tb_admin

列名 数据类型 说明
id bigint 表主键id,自增
login_name varchar(50) 登录账号
password varchar(50) 密码
type tinyint 类型:1超级管理员2普通用户
board varchar(50) 看板列表

指标配置表tb_quota

列名 数据类型 说明
id bigint 表主键id,自增
name varchar(50) 指标名称
unit varchar(20) 指标单位
subject varchar(50) 报文主题
value_key varchar(50) 指标值字段
sn_key varchar(50) 设备识别码字段
webhook varchar(1000) web钩子
value_type varchar(10) 指标字段类型Double Integer Boolean
reference_value varchar(100) 参考值

报警配置表tb_alarm

列名 数据类型 说明
id bigint 表主键id,自增
name varchar(50) 报警指标名称
quota_id bigint 关联指标名称
operator varchar(10) 运算符
threshold int 报警阈值
level int 报警级别 1一般2严重
cycle int 沉默周期(以分钟为单位)
webhook varchar(1000) web钩子

面板配置表tb_board

列名 数据类型 说明
id bigint 表主键id,自增
admin_id bigint 管理员
name varchar(50) 看板名称
quota varchar(100) 指标
device varchar(100) 设备
system tinyint 是否是系统看板
disable tinyint 是否不显示

GPS配置表tb_gps

列名 数据类型 说明
id bigint 表主键id,自增
subject varchar(50) 报文主题
sn_key varchar(50) 设备识别码
type tinyint 类型 单字段 双字段
value_key varchar(50) 经纬度字段
separation varchar(10) 经纬度分隔符
longitude double 经度字段
latitude double 纬度字段

设备管理

设备添加

设备编号 设备标签 设备状态(开关) 是否告警 告警名称 告警级别 是否在线

根据设备id查询设备

设置设备状态

设置设备标签

指标数据采集与断连监控