×
嵌入式 > 技术百科 > 详情

无线传感网络(WSN)设计经典参考实例(四)

发布时间:2020-06-12 发布时间:
|

1.4 滤波

  第一步:设定RSSI 的期望值,如式(3)式所示:

  

  其中, R 0 是预期的RSSI 值,R 是实际得到的RSSI 值, R 1 是前一次得到的RSSI 值,R2是在此之前的第二次得到的RSSI 值,α、β、γ 分别是R, R1 , R2 在期望值中所占的权重,分别将其设置为0.6,0.25,0.15。

  第二步:设定阈值,阈值是在大量实验基础上进行总结再设定的,该系统中设为0.5。

  第三步:除噪,若期望值0 R 和当前值R 差的绝对值小于设定的阈值,就让令上一次的值作为当前值,R= 1 R ,同时2 R = 1 R;若期望值和当前值差的绝对值已经大于阈值,则令期望值作为当前值,R= R 0 ,同时, R2 = R 1 , R 1 = R 0 ;实验结果表明:通过以上滤波处理,不仅减小了节点不稳定带来的轨迹震荡,节点的轨迹变化曲线更加趋于平缓。

  1.5 串口数据提取

  在串口通信协议中一个串口通信数据帧的格式如图5所示:

  

  图5 串口通信数据帧的格式

  Sync 是一个数据帧的起始和结束标志符,用0x7E 来表示该标志符。紧跟在起始Sync后面的是Type标志符。CRC用来表示冗余校验码,其中,参与冗余校验的字段为TOS MsgHeader 和Payload,这两个字段存放的是网关收到的一个传感器节点发出的完整的路由包。

  最后面的一个Sync 用来表示帧的结束。

  在实验过程中,串口接收到的原始数据如图6 所示:

  

  图6 串口原始数据

  通过对上表中数据分析得知:表中第一条数据中0x7E 表示一个数据帧的起始,0x42 表示一个数据帧的Type,不要求接收方对发送方回复一个确认包。从第二行第五个数据开始时对上层应用有用的字段,在进行上层开发时,可以从该处提取出串口中的数据,其中0x0100,表示数据包的ID 号,紧跟其之后的是两个字节0x3A00 表示接收到的数据包的序列号,接下来的0x 0200 表示锚节点的ID 号为2,0x0500 表示Move 节点的ID 号为5,0x0800 表示从2 号锚节点获取到的5 号Move 节点的RSSI 值为8, 接下来的0x 0300 表示锚节点的ID号为3,0x0500 表示Move 节点的ID 号为5,0x0C00 表示从3 号锚节点获取到的5 号Move节点的RSSI 值为0x0C, 接下来的0x 0400 表示锚节点的ID 号为4,0x0500 表示Move 节点的ID 号为5,0xF800 表示从4 号锚节点获取到的5号Move节点的RSSI值为0Xf8,接下来的F207FE 为CRC 字段,最后一个7E 为数据帧的结束字段。通过以上分析,可以快速从串口通信数据中提取所需的字段,为上层开发奠定基础。

  2 系统设计

  2.1 系统架构

  系统由底层(硬件层),中间层(串口消息解析层),上层(数据处理层)系统的构架如图7所示。

  

  图7 系统架构

  2.2 底层模块设计

  底层模块通过Move 节点发送数据到Node1,Node2,Node3 节点,Node1,Node2,Node3节点分别从Move 节点中取出RSSI 值并将这些值连同自身的SOURECE_ADDRESS 值封装到数据字段并通过Forward 节点转发给Sink 无线网关节点。底层模块结构如图8 所示:

  

  图8底层结构2.3 中间层模块设计

  该层主要负责接收来自底层的串口消息,该层的重点就是对串口数据包的内容进行解析,获取数据包中节点的RSSI 值、锚节点ID 号等信息,并将其交给上层进行处理。

  2.4 上层模块设计

  本文将该基于无线传感网络的人群异常活动视频监控系统的上层模块分为以下六个子模块:

  串口配置模块:该模块主要对串口的各项参数进行配置,在不同的网关连接上PC 机时配置不同的串口,使该系统的可扩展性增强。

  实时监控模块:该模块主要负责将无线传感网络中移动节点的轨迹信息实时显示在监控画面当中;用户通过点击显示样例轨迹了解轨迹的概念;通过清除轨迹操作清除屏幕上的所有轨迹信息;此外,用户可以通过调整显示刷新周期,对轨迹数据的动态刷新周期进行设置;如果刷新周期设置过长,则通过手动刷新按钮刷新轨迹以实时观察移动节点的估计信息。

  历史回放模块:该模块主要根据用户的设置回放移动节点的历史轨迹。用户根据自己的要求回放具体时间移动节点的轨迹信息,如回放一天、一天的一段时间;几天、几天里面的一段时间或者一个精确时间的被监控人员的轨迹信息。此外,该模块提供设置回放周期功能,用户根据自己的需求设置每次回放的移动节点位置信息的个数和回放周期,系统将反馈给用户查询的时间段内数据库中所有记录的条数,用户通过系统能清楚地知道需要回放的记录条数以及待回放的记录条数。

  历史数据查询模块:该模块主要负责历史数据的查询功能,模块包括人员位置/轨迹一般查询、人员位置 /轨迹高级查询、历史警报信息查询三大功能。其中,人员位置/轨迹高级查询,主要根据用户输入的时间段信息查询人员的轨迹信息,用户根据需求查询一天、一天的一段时间、几天、几天的一段时间或者是一个精确时刻的轨迹信息。此外,该部分还提供了一些其他功能,如用户在显示轨迹区域单击一个点,该单击点的在绘图区域的坐标、该坐标对应的实际区域中的坐标及查询人员在该实际坐标出现的次数都将被列出来显示。历史数据查询模块的另外一个重要功能就是历史警报信息的查询功能。该功能允许用户查看所有的警报信息,即被监测人员所出现的所有非安全区域的信息。此外,系统提供用户根据需要删除部分选定的警报信息的功能。

  非安全域设置模块:该模块主要负责非安全域的设置。非安全域的正确设置对系统的自动报警功能及系统的可靠性起着极其重要的作用。所以只有拥有设置权限的用户才能进行非安全域的设置。如果被监控的人员出现在非安全区域,系统将触发警报。非安全域即定义一个非安全域的中心和非安全域的半径,所有处在该非安全域中的点将触发报警功能。该模块允许拥有权限的用户根据实际需要对非安全域进行修改,添加,删除和查询等操作。

  人员信息指南模块:该模块主要实现了对历史数据的统计工作。用户根据需求查询指定区域内出现的时间,此外,该模块还提供查询指定时间内被监控人员出现区域的功能。在指定区域出现的时间查询窗体中,用户设置需查询的区域或者根据输入要查询的时间段,查询结果将显示所有查询到的记录条数,此外,该部分还提供了其他的一些功能,如用户可以获得被监控人员每个小时时段出现的次数以及每个小时时段在每天的24 小时中所占的比例,这样根据查询的结果用户很容易获取在指定区域被监控的人员出现的最频繁的时间。在指定时间内位置信息查询功能中,用户输入要查询的时间段,得到查询结果后,用户单击任意一条查询结果,就可获取该单击点对应时刻和对应地点被监控人员出现的次数。

  报警并录制现场模块:报警并录制现场模块:该模块提供报警和对现场进行录像功能,系统在发现人员出现在非安全域时自动触发报警并对现场进行一段时间的录像操作。此外,系统还提供解除警报或结束现场录制的功能。

3 系统实现

  3.1 系统开发环境

  本系统需要使用摄像头、micaz 节点及无线网关。图9所示为该系统中使用的主要硬件设施,从左至右依次为micaz 节点、无线网关,摄像头。无线网关与PC 机通过串口连接,micaz 节点之间通过无线方式进行相互之间的通信,摄像头负责对现场进行录像。

  

  图9 硬件设施

  3.2 系统展示

  图10显示了系统整体运行主界面,用户可以通过该界面进入到各个子模块界面当中进行相关操作。

  

  图10 系统运行主界面

  图11 显示了被监控人员的轨迹信息的实时监控画面:

  

  图11实时轨迹监控

  

  图12 历史数据回放

  

  图13 非安全域设置

  

  图14 人员在指定区域出现的时间查询

  

  图15 历史轨迹高级查询

  

  图16 报警并录制现场

  4 结束语

  本文基于无线传感网络定位技术,设计一个人群异常活动视频监控系统。针对传统的视频监控系统中存在监控盲区等问题,本文设计的系统通过传感器节点射频芯片的接收信号强度对人员进行定位;通过设立非安全域监视和识别人员的异常活动,当异常活动出现,便自动报警并对现场进行录像。本文设计的系统有效地避免了监控盲区的出现,同时自动报警功能让监控系统的工作效率得到提高。展望未来,视频监控系统的安全性、高效性以及智能化仍将是一个重点研究方向。




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
VR十大误区:眼睛离屏幕太近真的会瞎吗?