入行物联网两年半,想写点东西记录踩过的坑,能让自己反省的同时,也希望能帮到其他小伙伴。
本人仍是小白,请看客朋友谨慎参考。另,本人主要从事智慧用电和智慧医疗行业,其他行业不一定有参考性。
以下所有内容均是从物联网平台设计的角度出发,并非单纯从物联网概念考虑。
一、物联网平台架构
1.1 感知层
作为物联网的基石,物联网设备是至关重要的,一切数据均来自于此。比如:有一个温湿度设备,可以采集机房温湿度。有一块电表,可以采集电压、电流、用电量等。
如果按照用途或者行业,设备有不计其数。如果按照采集类型来分,物联网设备可以分为:边缘网关、网关子设备、独立设备。
1.1.1 边缘网关
物联网设备采集数据的方式有很多(有很多种协议),有些协议还是召读式(服务端发送指令,设备回复响应数据),有些设备甚至只能采集数据,不能把数据上传到服务端。非常不方便。
边缘网关的出现可以完美的解决这个问题,他可以适配很多种常见协议,能简化数据采集和服务端接收的工作量。只需要把各种物联网设备接到边缘网关上,就能实现统一格式(协议)上报数据。
边缘网关的工作方式,可以理解为一个功能强大的播放器,无论你是mp4、avi、rtsp、rtmp还是别的视频,都能通过播放器播放。我们只需要学会操作播放器,不需要去研究具体的视频方式。
- 边缘网关的作用远不止采集不同协议这么简单,感兴趣的可以自行百度。不过要根据公司选购的网关设计系统,有些公司采购的网关很便宜,功能也很弱。
- DTU(数据终端单元)严格意义不算是边缘网关,但是他的作用在很多情况下,可以看作简化版的边缘网关。
1.1.2 网关子设备
网关子设备就是网关下连接的设备,可能是原始的设备,也可能是原始设备的转换设备,比如DTU。这个其实是不需要专门去了解的,但是系统设计的时候肯定是要录好的,毕竟客户肯定是需要具体知道哪个设备产生了报警。
1.1.3 独立设备
某些设备具有独立上传数据的功能,比如某些智慧电表可以直接通过某类协议上传。
1.2 网络层
有道是十鸟在林,不如一鸟在手。再厉害的设备,如果不能把数据传输到服务端,都是没有意义的。对于开发者而言,我们需要不需要关注设备的通讯协议,只需要关注设备的传输协议即可。
按照服务端的技术分类,我一般把传输协议分为:MQTT、TCP、UDP、HTTP。
以上分类为个人主观划分,严格意义上MQTT也属于TCP,不过我们一般都是分开处理,所以就分开写了。
另外Modbus、IEC104等主召协议,我们一般都用网关处理,很少单独少传,后面有机会单独介绍。
1.3 数据层
我们一般把这层称为数据中心,专门负责数据接收、数据处理、数据清洗、数据转换、数据入库等功能。
1.4 业务层
这个就比较简单了,基本上就是对数据的应用,比如展示设备数据、报警、形成报表等。
二、物联网数据分类
我们公司是做用电起家的,所以我们对数据的分类一般也已用电的方式来的,此概念不具有权威性,但是比较好区分,仅供参考。
2.1 遥测
这类数据是最常见的,是设备的数值量参数,比如:温度、湿度、电流、电压。
2.2 遥信
状态信号类参数,比如:开关、烟感、水浸、门禁,只要是存在分合闸、报警不报警这样的状态变化,都属于遥信。
2.3 遥脉
主要是用来代表累加类参数,比如:用电量、用水量、用气量,这类累加能耗的数据。
三、物联网告警
3.1 通讯告警
记录设备上线、离线记录。我们一般会分为两种:及时上报上下线信号、设备长时间不上传数据判断离线(设备上传数据为上线)。
3.1.1 设备及时上报上下线信号
这种非常好理解,无论是MQTT还是通过Netty构建TCP、UDP服务端,当设备上电、断电等情况都会上报信号,只要记录下记录就行。
3.1.2 设备长时间不上传数据判断离线
希望各位小伙伴在设计物联网系统时,一定要考虑到这种方式,非常实用。举两三个场景例子:①主召类设备没有上下线信号;②某些设备(尤其是MQTT协议的设备)运行长时间,会出现自动重启的情况(会在几秒类重新一次离线和一次上线),系统内就会出现两条报警,没问题,但是客户可能会质疑设备的稳定性;③某些设备长时间运行,会出现卡死情况,比如设备上传了上线信号,但是就是不上报数据,重启后能正常上传。这个时候不通过时间来判断,就不能及时发现设备出现问题。
判断离线的时间最好通过设备上传间隔来定,比如设备每30秒上传一次数据,连续300秒未上传数据,就能判定离线。
3.2 越限告警
通常我们会为遥测至设置限值,建议最好是设置两级:上上限、上限、下下限、下限。
举例一个实际场景:机房温度一般建议恒温在25-30℃,当室内温度达到55℃左右,就会对机房服务器运行造成影响。那么我们的限值肯定是不能设置到55℃的,这样起不到预警作用。
所以,如果我们把上限设置到40℃,上上限设置到50℃,当达到40℃时就会报警,提醒注意。到50℃时就是非常危险了。
3.3 变位告警
变位告警主要是针对遥信数据,比如开关分闸、烟感报警,这些都是非常危险的情况。