从零开始设计环保监测物联网系统(二)

从零开始设计环保监测物联网系统(二),第1张

IOT网关,接收sensor数据的总入口,主要是日志,安全防护,流控,协议转换等功能,

图1 IOT网关

之前有提到IOT网关是基于python的twisted框架实现的,初期的时候该IOT网关主要实现的功能是 数据接收和转换功能 安全防护

数据接收和转换功能 ,这里很简单,拟定好数据交互格式后,IOT网关按照约定好的格式进行解析,然后转发给后端服务进行进一步的处理

安全防护设备的区分主要是依靠烧录到硬件的SN号来实现,SN号包含的信息比较多,如生产批次,设备型号等,受制于厂商我安全防护不能做的非常完善,同时sensor与IOT网关的交互不能非常复杂。安全防护这一块理论上是设备接入要一型一密或者一机一密,协议上还应该启用tls/ssl安全通信协议。

图2 鉴权

安全防护要做ssl这类的安全通信协议的话,要考虑设备厂商实现通信模块能力,设备功耗,设备性能(低端设备cpu性能可能比较差,可考虑对称加密形式),IOT网关也需要引入相应模块。

另外认证从性能方面考虑,后期在设备比较多的情况下,可以加入redis等内存型key-value数据库,缓存设备信息,提高鉴权模块性能。

实践中,我们的sensor基本都是依靠电池供电,因此我们的IOT网关基本是面向短链接(后期我们有监测设备,依靠外部电源直接供电,为长连接),因此在每次发起连接我们都要进行一次鉴权,鉴权通过后,设备方可上传传感器监测数据和设备自身状态。

图3 数据交互流程

这一块的调试工作长达半年左右,才基本稳定下来,主要集中在设备商处除了硬件稳定性,还有在调试中发现传输的字符串乱码(c语言处理问题),沾包(厂商开发人员tcp协议不熟),优化传输效率,关闭cork或者 Nagle 算法(传输包很小)。

因为IOT网关不能主动断连接,理论 *** 作中,IOT网关应该和sensor有心跳协议,保证连接的有效性。设备商在数据流程交互完成后,竟然没有close 连接,直接休眠,导致网关所在服务器的连接的文件描述符一直没有正常释放,后面为了预防这种现象,我开启了 *** 作系统层面的keepalve定时器,回收失效连接(系统默认时间是2小时左右,我缩短了失效时间),理论上来说应该是应用层面去实现心跳协议。

整个IOT网关的设计,是无状态,可伸缩的,单网关在普通型ecs上可轻松达到数百tps。

这个系统是水务部门调度管理系统的一个子系统,主要由水务调度中心、遥测终端设备及监控设备组成。
调度中心与遥测终端设备数据通信全部由无线传输的方式完成,其中遥测终端与中心采用GPRS无线通信方式传输水位数据、雨量数据、管道流量以及进行闸门启闭控制;遥测终端设备将传感器采集的数据传输到中心;DVR与中心采用3G/4G的方式传输实时视频,监控各重点监控点位内涝情况。

物联网感知层的安全防护技术的主要特点是:

1、大量的节点数目:

物联网感知对象种类多样,监测数据需求较大,感知节点常被部署在空中、水下、地下等人员接触较少的环境中,应用场景复杂多变。 因此,一般需要部署大量的感知层节点才能满足全方位、立体化的感知需求;

2、多样的终端类型:

感知层在同一感知节点上大多部署不同类型的感知终端,如稻田监测系统,一般需要部署用以感知空气温度、湿度、二氧化碳含量以及稻田水质等信息的感知终端。 这些终端的功能、接口以及控制方式不尽相同,导致感知层终端种类多样、结构各异;

3、较低的安全性能:

从硬件上看,由于部署环境恶劣,感知层节点常面临自然或人为的损坏;从软件上看,受限于性能和成本,感知节点不具备较强的计算、存储能力,因此无法配置对计算能力要求较高的安全机制,最终造节点安全性能不高问题的出现。

物联网感知层基本内容:

感知层位于物联网三层结构中的第三层(其它二层分别是应用层和网络层)。

感知层是物联网的皮肤和五官-用于识别 物体,采集信息。感知层包括二维码标签和识读器、RFID标签和读写器、摄像头、GPS、传感器、M2M终端、传感器网关等,主要功能是识别物体、采集信息,与人体结构中皮肤和五官的作用类似。

感知层解决的是人类世界和物理世界的数据获取问题。它首先通过传感器、数码相机等设备,采集外部物理世界的数据,然后通过RFID、条码、工业现场总线、蓝牙、红外等短距离传输技术传递数据。感知层所需要的关键技术包括检测技术、短距离无线通信技术等。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/10422877.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-08
下一篇 2023-05-08

发表评论

登录后才能评论

评论列表(0条)

保存