现如今,传感器已经融入人们的生活中,能分析用户日常行为,增加用户与周边的互动方式。
比如经常接触到的人体红外传感去、烟雾报警器、燃气报警器等等,通过一些基础的传感器,可以提升生活的便捷以及安全性。
人体红外传感器
时刻守护家庭安全,实现人来灯亮,人走灯灭。
主要作用是用来智能感应人体移动的,通过网关实现报警和智能场景的联动。
搭配灯光/智能开关使用,在半夜起床上厕所,厕所灯光自动亮起,为你照亮黑暗,回到床上,一分钟后自动关灯。
搭配摄像头使用,当陌生人潜入家中,人体红外传感器会立刻感知,闪烁红灯,并通过网关向你的手机APP推送报警提醒。
搭配声光报警器使用,当有小偷潜入家中,触发人体红外传感器,声光报警器接受到信号响起警报,吓退小偷。
门窗磁传感器
实时检测门窗开合,远程掌握,异常状态及时提醒
安装在门窗、抽屉等位置,实时监测开合状态,与网关联动实现报警提醒和智能场景联动。
晚上回家,打开家门,灯光自动亮起,窗帘自动打开音箱设备开启,背景音乐开始播放,美好生活就此开启。
离家后,自动布防,当有陌生人潜入家中,你的手机APP会自动发送报警信息;当你离家不确定是否关门窗时,通过手机就可以查看。
水浸传感器
轻松防御水患,避免水漫浸家,及时报警
实时监测家中是否漏水,当积水漫过传感器两极时,并通过网关将报警信息推送至手机APP,是你随时随地知晓,杜绝水漏灾患。
燃气泄漏传感器
防患燃气事故,保障用气安全
精准探测天然气,一旦泄漏浓度达到警阈值,立即报警,第一时间发现家中险情,无论你是在家还是外出,当发生燃气泄漏时,报警信号会通过网关立刻提送至手机APP,使你能及时知晓家中险情。
联动排风系统,杜绝事故发生,当检测到家中天然气泄漏时,联动智能插座,开启排风扇、抽烟机,及时消除隐患。
烟雾传感器
快速识别火情,保障家庭安全
精准感知烟雾浓度,迅速发出火警,防患于未“燃”,能迅速发现火灾的发生,并通过独立声音报警和向网关发送无线信号等方式,及时提醒用户报警、灭火或者逃生,降低或避免损失。
SOS紧急按钮
应急报警,安全无忧
当老人或小孩发生紧急情况时,按下紧急按钮,报警信息就会及时推送至手机APP,使家人及时知晓和救助。
联动声光报警器,当家人在家发生紧急情况,只需按下中间按钮,声光报警器收到信号后,就会立刻发出高声贝报警,使家里人第一时间知晓并采取救助。
声光报警器
高分杯声光报警,响彻全屋
联动其他传感器,发生险情立即发出高分贝报警声,同时红色LED灯会快速闪烁。
用户可以使用APP实现外出警戒、在家警戒、取消警戒,紧急报警等 *** 作,以实现对无线声光报警器的控制。
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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)