基于PIC24EP512GP微控制器物联网小区汽车安防系统
近年来,随着通信技术的发展,GSM/GPRS等技术已经逐渐运用到汽车防盗系统中,通过发送短信的方式来达到报警的目的。但这种方式通常只是实现了汽车与车主之间的信息交互,并没有将报警信息传递给小区物业,因此在车主收到报警信息赶往停车现场的途中,很可能汽车已经失窃。为了更好地保护小区居民的财产安全,通过物业对小区汽车进行综合管理显得尤为重要。基于上述原因,设计实现了基于物联网的小区汽车安防系统。
ZigBee网络由终端、路由器和协调器三部分组成,为了满足系统功能需求,分别定制了两种类型的终端和路由器。终端包括传感器节点(安装在汽车车门上,用来监控车门)和遥控节点(车主用于开启/关闭安防系统)。路由器包括路由节点(安装在小区内,用来路由信息)和锚节点(安装在停车场上方,用来路由信息和区域定位)。网关由协调器和串口通信软件组成。上位机包括Web服务和数据库服务。
在该系统中,停车场管理员可以通过上位机实时监控小区内汽车的安防状态(在库、异常及离库),并且可以查看汽车的区域定位信息(汽车所在车库及当前状态)和车主的个人信息(车主通过互联网录入)。车主则可以随时登录系统上位机,查看自己汽车的安防状态以及更改个人信息。下面分别就汽车入库、异常、离库三个过程作详细说明。
当ZigBee网络组建成功,车主在小区内停好车后,车主可以通过手中的遥控节点发送“开启命令”至汽车车门上的传感器节点。传感器节点收到“开启命令”后,会向父节点(锚节点)请求ParentID(用于区域定位,详见第4小节),请求到ParentID后,传感器节点会打开其上的红外对射传感器,并分别向服务器和车主手中的遥控节点发送带有ParentID的“开启成功”信息。
遥控节点负责开启、关闭对应汽车上的安防系统,并接收、显示安防信息。硬件部分主要包括CC2530芯片、电源管理单元、天线、晶振、蜂鸣器、开关按键以及液晶等外围电路。其中,蜂鸣器用来报警,开关按键用来控制红外模块的开启和关闭,液晶用来显示安防信息。
传感器节点负责红外模块的开启、关闭以及对车门的监控。传感器节点硬件部分主要包括CC2530芯片、电源管理单元、天线、晶振、蜂鸣器以及红外对射模块等外围电路。其中,红外模块用来监控汽车车门,包括发送和接收两部分,分别安装在车门和门框上。发送端利用HEF40106BT芯片组成的谐振电路在红外信号上加载了38kHz的载波,如图2(a)所示;接收端与CC2530的P05口相连,如图2(b)所示,采用HS0038接收器接收红外调制信号,不但增强了模块的抗干扰能力,而且可以及时检测车门任何形式的异常开启情况。
路由节点和锚节点主要负责信息的路由,锚节点是经过改进的路由节点,但路由节点和锚节点的硬件部分完全相同,都是由CC2530芯片、电源管理单元以及天线、晶振等电路组成。
协调器是ZigBee网络的汇聚节点,负责开启ZigBee网络,给新入网节点分配网络地址,汇聚和处理网络数据,与PC机进行串口通信等。硬件部分由CC2530芯片、电源管理单元、串口模块以及天线、晶振等电路组成,串口模块用来与PC机上的串口通信软件进行通信。
3系统软件设计
本系统的软件设计主要包括遥控节点、传感器节点、网关、WEB服务器和数据库服务器等部分。
3.1遥控节点
遥控节点的软件部分主要实现液晶的驱动和显示、按键的处理、LED的控制以及与传感器节点的通信。程序流程如图3所示。
3.2传感器节点程序设计
传感器节点的软件部分主要实现红外模块的驱动和控制、报警电路的控制以及与遥控节点、父节点、协调器之间的通信。程序流程如图4所示。
3.3网关程序设计
网关是连接ZigBee网络和Internet的桥梁,其软件部分包含协调器软件和串口通信软件两部分。
当协调器收到传感器节点传来的“开启/关闭成功”、“报警”等信息时,协调器会解析信息并以相应的格式通过串口传给串口通信软件。串口通信软件会根据串口数据帧格式解析串口数据,并根据数据内容设置数据库中对应表格相应元素的值。另外,串口通信软件能监控串口的状态,并能实时显示解析的信息,值得注意的是,在打开串口前必须先设置好串口通信的参数,如图5所示。
3.4上位机软件设计
为方便管理,系统使用JavaWeb等技术开发了基于MVC(ModelViewController)模型的B/S(Browser/Server)架构的上位机管理软件。
作为B/S架构软件的支撑,Web服务器和数据库服务器必不可少。考虑到成本和小区用户量等因素,Web服务器使用了免费的轻量级应用服务器Tomcat,数据库服务器则使用了体积小、速度快、成本低的MySQL。另外,为了方便开发,系统使用了ApacheJakarta项目组开发的应用框架Struts2配合Web网页的开发,并且使用功能强大的对象/关系映射(ObjectRelationalMapping)框架Hibernate配合数据库的开发,保证了源码的简练和完全面向对象的风格。
上位机管理软件分停车场管理员和普通用户两部分开发。停车场管理员部分主要实现查看所有用户信息、查看汽车状态、监控车库状态、删除用户、添加新用户、修改密码等功能,普通用户部分主要实现查看汽车状态、查看和修改个人信息等功能。上位机管理软件整体结构及流程框图如图6所示。
4区域定位的实现
ZigBee短距离通信技术标准有一个显著的特点:每个新加入的节点必须通过一个在其通信范围内的路由器(系统中为锚节点)才能入网。根据这一特点,系统实现了区域定位的功能。
系统在每个锚节点中设ZigBee网络唯一的RouterID作为子节点的ParentID,并且锚节点所管辖的范围(用车库号表示,即图1中锚节点定位区域)与RouterID建立一一对应关系存储,在数据库中的MatchAddress数据表中。因此,当传感器节点请求到锚节点的ParentID,并通过ZigBee网络、网关转发到服务器时,服务器就能找到对应的车库号,得知汽车目前所在的位置。