胡 煜,刘岳烯,陈 越,陶 铭
(东莞理工学院 计算机科学与技术学院,广东 东莞 523808)
随着经济和城市化建设的快速发展,各城市道路的路灯亮化系统不断在扩展,但路灯的管理水平也不尽相同。亮化能源使用越来越大,浪费越来越严重,安全隐患频发。随着智慧城市建设的需要,路灯的控制管理需求也在不断加大,管理不到位的情况也有出现,因此对路灯进行智能化管理变得更为重要。基于物联网的信息管理系统的不断创新和发展,对路灯管理水平有很大的促进作用[1]。
物联网(Internet of Things, IoT)是信息科技产业第三次革命。物联网指的是通过信息采集设备,采集所需要的信息,根据规定好的协议,将物体与网络相连接,以网络为介质,实现物物相连。物联网中有人与物体作为主体,能够将物质世界中的物质科学地连接起来,通过传感器,实现物品之间的感应,达到物与物之间,人与物之间相互关联以及有效控制[2]。无线传感器网络(Wireless Sensor Networks, WSNs)是物联网采集网络的重要技术形式,是由部署在监测区域内的大量传感器节点进行观察、采集信息或检测事件的发生等,通过互相通信形成的多跳自组织网络,再将感测数据传输至信宿[3]。随着物联网的技术快速发展,“智慧路灯+物联网”的结合可以有效实现道路亮化智能化管理以及满足节能降耗的需求,方便路灯管理者实时查看路灯信息以及对异常情况作出及时响应。
本套系统采用CC2530处理器作为采集节点的嵌入式系统,搭载系统所需要的各式传感器,以ZigBee作为无线传感网络的数据传输节点,使用CC2530中的串口作为数据传输工具,通过串口将采集到的数据传输到服务器端,路灯管理员可以登陆手机客户端系统,查看路灯的使用情况。不仅如此,当路灯故障时,也会通过手机报错,达到快速告知管理员进行路灯维护的效果。
ZigBee技术是一种低功耗、短距离和低速率下的无线通信技术,过去又称为“FireFly”和“HomeRF Lite”技术,目前被统一称为ZigBee技术[4]。ZigBee技术基于IEEE 802.15.4协议标准,该标准具有稳定性好、自组织能力强、低成本、网络容量大、低能耗等优点,在无线传感网络和无线局域网等领域都得到了广泛的应用[5]。ZigBee模块是一种物联网无线数据终端,通过板载嵌入式系统的采集,利用ZigBee网络为用户提供无线数据传输功能,将采集到的数据汇总并上传处理。该系统采用CC2530作为载体,通过ZigBee协议栈的自组织功能,实现数据的透明传输;ZigBee低功耗设计,最低功耗小于1 mA,使得系统运行时间足够长;且ZigBee提供多路I/O,可以实现数字量输入/输出、脉冲输出等;其中还有3路I/O可实现模拟量采集、脉冲计数等功能,大大方便了传感器对数据的采集。
串行接口(Serial Interface)是采用串行通信方式的扩展接口。串行接口技术是指数据一位一位地通过串口线顺序传送[6]。其特点是通信线路简单,串口只要有一对传输线就可以进行双向通信,从而大大地降低了成本,适用于远距离通信,但传送速度较慢。
同步串行接口(Synchronous Serial Interface, SSI)是指通过同步时钟控制,发送方和接收方同步进行数据的传送。
基于物联网技术的物联网路灯智能控制系统由ZigBee无线传感器网络、基于CC2530的串行通信技术、Android客户端、数据库服务器4部分组成。无线传感器网络由ZigBee协调器节点广播发起组网信号,ZigBee端点通过协议栈进行自组网[7]。ZigBee端节点采集数据后通过ZigBee搭建的无线传感网络发送数据到协调器端,协调器通过CC2530的串行通信技术将数据传输到服务器端。路灯管理人员可以通过手机客户端查询某个路灯节点的数据信息,系统框架结构如图1所示。
图1 系统结构
感知节点的通讯模块采用了CC2530,是TI公司的片上系统,该芯片适合于ZigBee Pro/2007复杂协议栈的应用[8]。这款嵌入式处理器CC2530片上有多个GPIO口,利用其中两个模拟驱动I2C总线,连接PCF8591模块,该模块集成了3个A/D模块、1个D/A模块以及一个光敏模块。PCF8591模块中的光敏用来监测空中的亮暗,利用2个A/D模块分别连接光敏模块(监测路灯亮暗)、红外测距模块。其感知节点硬件结构图如图2所示。
图2 感知节点硬件结构
节点采集到的数据需要经过一系列协议进行数据的收发,协议实际上是定义了一系列的通信标准,编写完协议后,可以通过一系列函数API进行调用。本套系统的无线传感网络基于Z-Stack协议栈。路灯监测系统不仅从传感器收到各个节点发来的数据,还需要获取数据节点的位置,本系统采用编号的方式定位节点,代替GPS定位之类的硬件模块,具体操作过程如图3所示。首先,给节点上电后,ZigBee节点初始化各类传感器,通过Z-Stack协议栈连接成无线传感网络,并初始化串口,连通服务器。由于采用编号的方式写入协议栈代码,便可以根据路灯位置连接CC2530,通过协调器连接服务器,服务器传输数据到Android客户端,在Android端便可以看到所示路灯位置的情况。这时,在Android端的路灯数据开始显示,感知节点初始化完毕。
图3 编号对应节点
智慧物联网的应用,使得路灯系统的自我调节能力较好,能够根据不同的情况开、关灯,管理员也可以根据Android端的数据查询路灯的状况,以及在路灯故障时进行维护。路灯管理系统根据环境亮度以及车辆行驶情况判断是否进行开关灯操作。首先,光敏传感器判断环境亮度是否达到开灯的限度;其次,利用红外测距,判断是否有车经过;综合后,当有车经过时,且环境亮度达到该开灯的条件的时候,路灯亮,为车辆照明,否则灭,减少路灯的能耗。当遇到突发情况需要开灯时,路灯管理者还可以通过Android端进行开灯操作,提高了智慧路灯的灵活性。当路灯发生损坏无法亮灯时,路灯光敏与路灯开关标志(是否正在开灯)共同判断是否出现故障,如果出现故障,会立刻发送待处理事件到Android客户端。具体算法流程图如图4所示。
图4 算法流程
服务器后端系统基于Spring框架编写,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,利用其特性可编写出更干净、更可管理、并且更易于测试的代码[10]。控制层接收安卓客户端发送过来的请求,请求进入业务层代码进行相关的业务处理,并通过数据持久层对数据库进行CIUD操作。主要任务是返回路灯及采集到的所选当前环境的一些实时数据情况,实现对指定路灯的开关控制以及对异常信息的处理审核,通过使用log4j日志框架,相关的硬件异常及客户端的操作详情都会生成日志数据记录到每天的日志文件中。服务器与硬件端通过串口进行通信,接收ZigBee传过来的数据后,解析处理数据并把数据存储到数据库中,如图5所示。服务器启动HTTP进程,处理安卓客户端的数据请求,流程图如图6所示。
图5 数据存储流程
图6 用户请求处理流程
Android系统具有开发性、程序间无界限、程序平等性和程序开发方便快捷等优点。该系统架构由应用程序、程序服务框架、系统库、Android运行时以及Linux内核5个部分组成。在运行程序时,不是使用Java虚拟机来运行,而是采用其自有的Android运行时,包括Dalvik虚拟机和核心库两部分,能使一台移动设备在消耗较少的资源同时运行多个虚拟机程序,并且Android的应用程序都在其自有的Dalvik虚拟机中运行[9]。
Android客户端的主要功能是向用户展示路灯的各项数据以及对路灯进行控制,其模块主要包含有路灯位置显示模块、路灯数据呈现模块、路灯控制模块、异常信息处理模块四个部分,如图7所示。路灯位置显示模块主要是在校园地图上,根据路灯所在的位置在地图打上标签点,实现对路灯位置的显示功能。当用户点击地图上的标签点时,根据标签点的信息通过使用HttpClient网络接口对服务器端请求获取对应的路灯数据,获取数据成功后在数据显示界面对路灯的数据进行显示,并定时向服务器端发送获取数据的请求用以完成路灯数据的更新,实现了路灯数据实时呈现的功能。在路灯数据显示页面的下方,有两个路灯控制按钮“开/关”“人工权限设置”,分别是实现对路灯的开关和路灯控制模式的转换,用户通过点击按钮向服务器端发送数据,服务器端根据用户发送的数据实现对路灯的操作,再将路灯操作的结果返回给客户端的用户,以此来实现对路灯进行控制的功能。当用户点击处理界面时,客户端向服务器端请求异常数据信息,成功后在界面上显示显示异常数据的信息,用户可点击这些异常信息进行处理,处理后点击提交按钮将处理信息返回给服务器端,完成对异常信息的处理。
图7 Android客户端功能结构
系统开始运行,启动硬件端相应路灯节点以及协调器节点、服务器端,将感知节点所获得的路灯数据通过ZigBee发送到协调器节点,协调器节点再通过串口将其发送到服务器端中存储,最终用户通过Android客户端对服务器的访问获得路灯信息,并实现对路灯的控制等。具体的操作如下:用户通过Android客户端可以看到校园地图上路灯感知节点的位置分布图,如图8所示;路灯节点的数据如图9所示;对路灯的控制如图10所示;对异常信息的处理如图11所示。路灯节点除了可以通过Android客户端控制外,还可以通过自身所获得的信息进行智能控制,当路灯上的红外感知器没有感知到车辆经过并且是阴天或夜晚时,将不会开灯,在有车经过时才会开灯;当在白天时,无论有没有车都不会开灯。
图8 路灯位置分布图
图9 路灯状态数据
图10 路灯控制界面
图11 异常信息处理界面
物联网路灯智能控制系统,将物联网技术与路灯进行结合,实现了路灯智能化管理,大幅减少了能耗。随着智慧城市不断发展,路灯更需要智慧物联。本项目虽然实现了路灯的基本功能,但仍存在诸多不足,还有待未来进行进一步完善。