最近一直在搞物联网采集的项目,涉及到软件和硬件。从总体架构上分了四端吧:
1.嵌入式设备:负责采集传感器数据,并与后台的采集端通信,俗称网关。
2.采集端:负责采集网关数据,并做数据存储和告警。
3.web后台:查询统计数据,为web前端提供接口。
4.web前端:数据可视化,设备信息展示。
第一版程序设计将采集的调度放到了采集端,导致采集端压力太大,并且实时性太差。服务端1分钟调度一次采集,在架构设计时考虑设备的指标一分钟一次已经足够了,向温度指标,电压指标有了异常5分钟以内告警用户可以接受。但是,在给用户部署后,用户对实时性特别不满意。并且人体红外传感器根本就不能正常工作,红外传感器每分钟采集一次,人从传感器下面走过去也就3秒钟,这种模式下只有采集周期恰好遇见有人入侵,才能告警。
问题已经出现了,之后就是对架构进行重构。第二版程序结构:采集端只负责给网关发送配置信息,网关在不断的轮询采集,定时给采集端上报数据,异常信息实时上报。经过一段时间的重构测试,再次给用户更新。用户就比较满意了,重告警产生到推送到手机上需要3~5秒吧。