《武汉工程大学学报》  2016年4期 404-409   出版日期:2016-08-28   ISSN:1674-2869   CN:42-1779/TQ
智能路灯监控与管理系统的设计


1 引 言近几十年以来,随着中国城市和经济的迅速发展,城市照明建设中的资源节约和交通安全等问题也越来越受到普遍关注. 传统路灯照明存在的一种常见现象就是夜间路灯一直亮着,或者亮一会灭一会,完全不将是否有人经过考虑在内. 这样不仅浪费能源,而且存在路灯的使用寿命短、维修成本高等问题. 传统路灯的另一个问题是要么功能单一,只能进行夜间照明;要么就算带有摄像头能对路况进行监控,也需铺设很长的光缆线进行连续的视频图像传输;从而造成路灯系统的建设成本高、受地势影响大,而且这种连续对路况进行摄像的数据量很大,一方面储存成本过高,另一方面视频信息中绝大部分是无用路况信息,加大了调查难度[1]. 智慧城市建设已成为当前的大趋势,在 2011 年的“十二五”规划中,将智慧城市列入建设内容的城市达到了 20 多个,包括北京、天津、上海、广州、深圳、南京、武汉、宁波等. 对于智慧城市的建设,结合上面提到的目前路灯照明的缺陷,本文设计了一种智能路灯监控与管理系统. 该系统通过无线模块将控制台及各个节点的路灯构成无线网络系统,并结合人体红外传感,光敏电阻,摄像头等传感器技术实现路灯智能控制和远程监控. 该系统当传感器系统检测到人体经过时,摄像头才会启动并只拍一张人体正在经过时的照片,并通过无线网络将数据传输到上位机进行显示和存储,可以最大程度减小储存成本,而且照片信息实用性、方便性比路况监控视频高很多. 经测试该系统可用在公路、公共楼道、过道十字路口等场所的照明和监控. 2 系统硬件设计系统总体结构如图1所示,分为控制台及各路灯节点两大部分[2]. 控制台由一台服务器构成,包括上位机软件和数据库. 上位机能够显示路况信息,控制各节点的路灯和摄像头工作状态,存储和管理摄像头传来的图像和视频信息. 路灯节点包括路灯、传感器系统及微处理器,传感器系统包括光敏电阻、人体红外传感器和摄像头. 为了使控制台能控制各个路灯节点,也为了各个路灯节点能将路况信息传递给控制台,就需要在控制台那端使用微处理器完成信息从控制台到各路灯节点的传输,此微处理器也相当于桥接的作用,因而要完成一个带有n个路灯节点的智能系统,需要n+1个微处理器. 本方案微处理器选用意法半导体公司的以ARM Cortex-M3为内核的32位STM32F103ZET6处理器[3],主频率高达72 MHz、可满足大数据量传输的要求;芯片集成有定时器、I2C、SPI总线以及UART功能,可设置低功耗模式,芯片引脚数量多且价格便宜,非常适用于此种多传感器、数据量大且续航能力好的系统. 2.1 控制端硬件电路设计 由上述分析可知,整个系统的硬件结构可分为两大部分:以STM32微处理器为核心的控制端硬件电路,以STM32微处理器为核心的路灯节点硬件电路. 控制端硬件电路的功能,一是通过无线网络接收来自各个路灯节点的视频或图片信息,并将这些信息通过串行通信传给控制台的上位机进行显示及储存;二是接收上位机的控制命令,并将其通过无线网络传输给各个路灯节点,由路灯节点的微控器执行这些命令. 控制端硬件电路结构如图2所示,主要包括串行通信接口、无线模块以及STM32微处理器. 由于STM32单片机需要将路灯节点摄像头拍摄的视频数据传输给上位机显示及储存,而视频的数据量是非常大的,为了能尽快地传输数据,串行通信的波特率设置为单片机72 MHz主频率下最高且不会出错的921 600 bps. 在此种波特率下,没有压缩的视频每秒可以传1~2帧图像,每帧像素320×240,像素深度为16 bits;被压缩的视频可以达到每秒3~5帧图像,每帧像素160×120,像素深度也为16bits,通过肉眼可以轻松地分辨清楚图像中人物信息. 常用的无线模块有GSM、WIFI、ZigBee和RF射频等. GSM无论从距离还是效果来说无疑都是最好的,但是需要向电信营业商交付费用,那么多路灯节点及大数据量传输长期积累会是一笔巨大的开支. WIFI通信速度快可达10~50 Mbps,但是WIFI芯片相对比较昂贵,且安装在城市环境中易受干扰. ZigBee易于组建成多点对多点的无线网络,但是有个致命缺点是最高通信速率仅为250 kbps,速率慢不适合传输大量数据[4]. 而RF射频系列中的NRF24L01模块通信速率可达2 Mbps[5],而且价格非常便宜;其缺点是较远距离会有极少量数据丢失的问题,但可通过程序配置增强发射功率或加入数据校验来解决;因而此系统中使用RF射频模块进行无线数据的传输. 2.2 路灯节点硬件电路设计 路灯节点硬件电路需要实现以下功能:通过红外传感器感应人体经过、光敏电阻感应环境光强,驱动摄像头拍照或摄像,打开或关闭路灯,经无线网络接收控制台的命令,或将图片、视频数据传输给控制台. 因此,设计的路灯节点硬件电路结构框图如图3所示,主要包括红外传感器、光敏电阻、摄像头、继电器、路灯、无线模块和微处理器. 目前使用最广泛的人体红外传感器是LHI778热释电红外线传感器[6]. 它能以非接触形式检测出人体辐射的红外线能量的变化,并将其转换成电压信号输出,将这个电压信号加以放大,便可驱动各种控制电路,此模块只有3个引脚:电源、地、输出引脚,使用起来很方便,为了进一步减少环境中流动风和其它杂光的干扰,可以给此模块加上菲涅尔透镜,当人体进入其感应范围时输出高电平,人体离开感应范围时自动延时一小段时间后输出低电平. 由于路灯在白天不能亮、晚上或者光线昏暗并且有人通过时需要亮,因此需用光敏电阻来检测环境光强,光敏电阻的阻值随着光照强度的增加而减小,因而其两端电压会随之增加,通过TI公司的低价位、高性能TLC549芯片AD采样电压大小,即可知道环境光强的大小. 该系统使用的摄像头是OV7670图像传感器,它体积小、工作电压低、提供单片VGA摄像头和影像处理器的所有功能,适合于嵌入式系统使用[7];最大输出的图片像素为640×480,像素深度为16 bits,显示图像清晰;带有异步的FIFO,使得在高速率下读取摄像头数据并进行处理具有时间余量,且STM32单片机对FIFO操作相对更为方便,图像稳定性也更好,单片机通过I2C接口配置摄像头内部寄存器,实现摄像头的初始化、功能配置及像素数据的读取等功能. 系统中微处理器及各种传感器都工作在3.3 V电压下,而路灯工作在220 V电压下,要想通过微处理器控制路灯的开关就必须要用到继电器,此处用的继电器为SRD-05VDC-SL-C模块. 3 系统软件设计系统软件由路灯节点程序、控制端程序、上位机监控程序三大部分组成. 路灯节点程序的功能是控制各个路灯节点及相连传感器模块(包括红外感应传感器、光敏电阻、继电器和摄像头等)的工作状态;控制端程序则是完成服务器和路灯节点之间通信的数据传递;上位机监控程序可以控制各个路灯节点,也可以观察和查找摄像头拍摄到的路况. 3.1 路灯节点软件程序设计 路灯节点程序包括红外触发控制、摄像头控制、图像压缩处理、无线通信控制以及路灯通断控制等功能模块. 路灯节点程序流程图如图4所示. 微控器低功耗模式下只是一直在判断是否有上位机的控制命令,及是否有红外感应触发;一方面,如果光敏电阻检查到环境昏暗,且红外触发控制模块感应到人体经过,则微控器进入正常工作模式,并调用路灯控制模块打开路灯,调用摄像头控制模块对经过的人进行拍照,通过无线通信模块将图片信息上传给服务器储存,路灯在亮30 s之后会自动关掉,从而实现人至路灯亮,人走路灯灭的功能. 由于每次传输并储存的是人经过的图片数据,因而可以减小数据库储存压力,而且相对于储存路况视频,储存的图片都带有人物信息,后期查询路况更省时省力;另一方面,如果路灯节点的无线通信模块接收到了上位机控制命令,则微控器也会进入正常工作模式,接收到的数据经过命令解析后,判断是调用路灯控制模块打开路灯,还是调用摄像头控制模块对路况进行实时摄像,摄像后的视频信息会经过图像压缩处理再无线发送给上位机,此时无线传输、上位机播放及服务器储存的就是一段压缩后的视频数据. 由于微控器工作频率不可能太高,且微控器要一直读取摄像头数据并控制无线传输,不可能空出太多时间进行视频压缩,且视频压缩算法需要储存大量数据[8],这又会大大消耗微控器的内存资源;在微控器上常见的视频压缩做法是外接视频压缩处理芯片,但是视频压缩芯片并不便宜,会增加系统成本. 为此系统中只用了一种简单快速的减少图像像素的图像压缩算法,其原理如图5所示. 减少图像像素的图像压缩算法通过判断输入像素点是否为奇数行和奇数列从而过滤掉偶数行和偶数列的像素. 这种算法处理时间只用几个时钟周期,不消耗任何内存资源,虽然最后显示的清晰度会下降,但仍可以分辨出图像中人物的特征信息. 这样在固定的无线通信速率下,需要无线传输的像素变成原始的四分之一,正常情况没有压缩的视频每秒可以传1~2帧图像,而压缩的视频每秒可以传3~5帧图像. 3.2 控制端软件程序设计控制端程序包括无线通信控制以及UART串口通信控制两个功能模块. 程序流程图如图6所示. 由程序流程图可知,微控器低功耗模式下只是一直在判断UART串口是否接收到上位机数据,及无线模块是否接收到路灯节点的数据;一方面,如果UART串口通信控制模块接收到数据,则表示上位机需要对路灯节点进行控制,此时只需把此控制命令转换成无线传输的格式,并通过无线通信控制模块发送给相应的路灯节点;另一方面,如果无线通信控制模块接收到数据,则表示路灯节点有图片或视频需要传给上位机储存或播放,此时只需将此数据转换成串口传输的格式,并通过UART串口通信控制模块传输给上位机. 3.3 上位机程序设计上位机实现的方法有多种,而LabVIEW则是其中较简单快捷的一种. 它通过框图连线的形式进行编程,而不是编写文本代码,可以大大提高工程开发效率[9]. 整个上位机监控程序由串口收发送模块、串口接收模块、视频解码播放模块及数据库存储控制模块构成. 串口发送模块用来给路灯节点发送控制命令;串口接收模块用于接收路灯节点的图片或视频数据;视频解码播放模块用以对串口接收到的数据进行解码,形成上位机能识别的格式并加以显示[10];数据库存储控制模块则可以将数据存储在Excel表中,以方便后期随时查询路况. 其中视频解码播放模块程序如图7所示,程序前半部分是利用双重FOR循环及数据移位操作将读取的565RGB像素数据进行分解后再重组,构成LabVIEW的“Image Display”函数能够显示的888RGB像素格式. 4 系统测试 为了检测系统的可靠性,将智能路灯控制与管理系统的一个路灯节点电路放在实验室的走廊内;利用PC机作为控制台,连接好控制端STM32硬件电路,打开上位机软件,进行实地功能测试. 功能测试结果如下:红外感应测试:无环境光,发现没人时路灯灭掉,有人经过时路灯会亮,同时会拍照传输到上位机显示并存储. 光敏电阻测试:有环境光,发现不管是否有人经过,路灯都不会亮. 上位机测试:在上位机界面打开路灯按钮,发现路灯被点亮;摄像头选择慢速/快速摄像模式,此时上位机能显示过道的路况,如图8所示. 稳定性测试:系统不断电连续工作两天,发现系统能稳定记录过往行人信息. 由上述测试可知,此智能路灯监控与管理系统,功能完善,达到了预期效果,系统工作稳定,能应用到实际生活当中. 5 结 语本文设计出的一种智能路灯监控与管理系统,能够智能开关路灯从而最大限度节约电量,并提出了一种拍照监控模式从而能最大限度减少服务器存储压力. 分析了控制端和路灯节点两大结构的各个硬件模块的电路实现,以及相应的软件控制流程,同时介绍了上位机的结构和部分程序,最后对此系统在室外进行了实地的测试. 经测试,此系统能够在昏暗环境下准确实现人到灯亮,人走灯灭的效果,同时能清晰监测人体经过时的路况画面,并无线传输给服务器存储. 但系统还可进一步改进,如提高红外传感器的灵敏度以及视频传输的速度等.