APP下载

基于AVR单片机和VC++ 6.0的路灯远程监控系统设计

2019-03-16黎琼温泉彻铁新城

计算机时代 2019年2期
关键词:无线通信自动控制路灯

黎琼 温泉彻 铁新城

摘  要: 为提高道路照明系统控制的可靠性、便捷性和灵活性,并达到节能降耗的效果,设计了一套路灯远程监控系统。系统包括路灯控制终端和上位机软件两大部分。路灯智能控制终端基于AVR单片微处理器开发,集远程手动控制、定时开关控制和光感自动开关控制于一体,增加了路灯远程控制方式的多样性;采用定时-光感协调控制技术,弥补了独立的光感自动控制抗干扰(外界光源、遮挡等)能力差的不足。上位机软件基于Visual C++ 6.0编程环境开发,具有控制模式切换、参数配置、接收信息显示等功能。采用无线通信方式,减小了布线的难度,缩短了建设的周期。

关键词: 路灯; AVR单片机; 远程监控系统; 节能; 无线通信; 自动控制

中图分类号:TP39          文献标志码:A    文章编号:1006-8228(2019)02-34-05

Design of street-lamp remote monitoring system with AVR microcontroller and VC++ 6.0

Li Qiong1, Wen Quanche2, Tie Xincheng1

(1. School of Information Engineering, Lingnan Normal University, Zhanjiang, Guangdong 524048, China;

2. School of mathematics and statistics, Lingnan Normal University)

Abstract: In order to improve the reliability, convenience and flexibility of road-lighting system, and save the electrical energy, a street-lamp remote monitoring system is designed in this paper. This system is consisted of a terminal controller and a monitoring program in host computer. The terminal controller is developed by using AVR microcontroller, and remote manual mode, timing mode and light-dependent mode are integrated, which improve the diversity of street-lamp remote controlling. Meanwhile, a coordination control method combined with the timing and light-dependent modes is presented, which overcomes the defects in resistance to interference (irradiated and sheltered conditions, etc.) of traditional light-dependent mode. The monitoring program is developed with Visual C++ 6.0. This program can switch the operating mode, set the parameters and display the receiving data. The wireless communication is adopted and as a result, the work of cabling can be saved and the construction cycle of system can be reduced.

Key words: street-lamp; AVR Microcontroller; remote monitoring system; power-saving wireless communication; automatic control

0 引言

道路照明系統是小区、学校、公园等场所的重要组成部分,对其开关时刻进行可靠、有效的控制,将有助于人们出行方便和安全,同时提高能源的有效利用率,实现节能照明。现有的路灯照明大多采用人工手动开关、定时自动开关或光感自动开关的控制方式[1-4]。手动控制方式存在电能浪费大、路灯使用寿命短、无法远程监测和控制,人工作业量大等问题;定时自动控制存在无法适应季节变化,或者阴雨天气对路灯开关时间的动态需求等问题;光感自动控制存在抵抗外界光源、遮挡等干扰的能力差等问题。

本文设计了一种路灯远程监控系统。该系统由路灯智能控制终端和主机软件两大部分组成。其中,路灯智能控制终端的主控芯片采用了AVR单片微处理器,集成了远程手动开关控制、定时开关控制和光感自动开关控制等功能,采用定时-光感协调控制技术,弥补了单纯的光感自动控制抗干扰能力差的不足,同时提高了路灯控制的灵活性。主机软件与控制终端之间的数据交换采用的是无线通信技术,避开了RS485总线通信方式布线难度大[5]、布线要求高,以及电力载波通信中干扰的繁杂性和不确定性等问题[6],缩短了系统的建设周期,提高了系统的稳定性和可靠性,具有更好的适用性。

1 系统构成

系统基本组成如图1所示。主机软件通过串口/无线信号转换器将配置、控制、查询等指令,以无线通信的方式发送给路灯控制终端,路灯控制终端在接收到指令信息后将做出相应的响应,在满足开关条件或接收到主机软件发送的实时开关指令时,智能控制终端将控制交流接触器,做出相应的开关动作,从而实现对路灯的自动开关或远程实时开关控制。

2 路灯控制终端的硬件设计

2.1 MCU及外围电路

控制终端的主控制器采用ATMEL公司的AVR单片机,型号为Atmega8。Atmega8内部集成了较大容量的存储器和丰富的硬件接口电路,并且在软件上能有效的支持C语言及汇编语言。由于其先进的指令集以及单时钟周期指令执行时间,Atmega8可获得高达1MIPS/MHz的数据吞吐速率[7-9]。其主要特点如下。

⑴ 高性能、低功耗。采用先进的RISC指令集结构;有130条功能强大的指令,大多数为单周期指令;内有32个8位通用工作寄存器。

⑵ 大容量的片内存储器,编程方便。8K字节的Flash和512个字节的EEPROM;支持在线编程ISP和在应用编程IAP。

⑶ 丰富强大的片内外设。两个具有独立预分频器的8位定时器/计数器,其中一个具有比较功能;另一个具有预分频器、比较功能和捕获功能的16位定时器/计数器;3通道PWM;多路通道10/8位A/D转换;面向字节的两线接口;可编程的串行USART;可工作于主机从模式的SPI接口;具有独立片内振荡器的可编程看门狗定时器;片内模拟比较器。

⑷ 特殊的微控制器性能。上电复位以及可编程的掉电检测;片内经过标定的RC振荡器;5种休眠模式(空闲、ADC噪声抑制、省电、掉电和Standby模式)。

Atmega8单片机的上述技术特点,使其能很好地满足路灯控制终端的设计要求。

2.2 无线数据收发模块

控制终端和主机软件之间的无线通信采用SM43型低功率ISM(Industrial Scientific Medical)波段无线通信模块。其主要特点如下:

⑴ 低发射功率。发射功率仅为150mW。

⑵ 符合ISM频段通信标准,无需申请频点。载频频率在300-365MHz,400-480MHz,800-960,2400-

2500MHz范围内可选。

⑶ 多信道,多速率。提供多个通信信道,有1200、2400、4800、9600、19200Bit/s等11种通信速率可选。

⑷ 传输距离远。天线高度大于1.5米,增益为3dBi的情况下,传输距离可达1500m。

⑸ 高抗干扰能力和低误码率。GFSK调制方式,采用高效前向纠错信道编码技术,提高了数据抗突发干扰和随机干扰的能力,在信道误码率为10-3时,可得到10-5~10-6的实际误码率。

因此,该型无线通信模块已被广泛应用于工业遥控、无线数据采集和传输、政府路灯节能设备、智能家居、楼宇自动化等方面,满足路灯控制终端的设计要求。

2.3 光感模块设计

光敏元件采用光敏电阻器。光敏电阻是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器。光敏电阻器的阻值随入射光线(可见光)的强弱变化而变化,在黑暗条件下,它的阻值(暗阻)可达1-10M欧,在强光条件(100LX)下,阻值(亮阻)仅有几百至数千欧姆。光敏电阻器对光的敏感性(即光谱特性)与人眼对可见光的响应很接近,只要人眼可感受的光,都会引起它的阻值变化。

利用Atmega8提供的10位逐次比较的ADC实时采集光敏电阻的阻值变化,以此判断环境亮度的變化情况。光控电路如图2所示。

在图2中,由于10K电阻和光敏电阻RG1串联分压,可得PC0端的电压VPC0:

则转换后的数字量为:

其中,VPC0表示选定的输入引脚上的电压,VAREF表示选定的参考电源的电压(本设计选为VCC)。

2.4 继电器驱动电路

采用固态继电器来控制交流接触器的开通与判断,从而实现对路灯的远程开关控制。继电器型号为SSR-S203ZA[10],该型继电器需要大于5mA的驱动电流。因此,为了提供充足的驱动力,保证继电器的可靠工作,采用三极管驱动方式,如图3所示。当PB0引脚输出高电平时,继电器输出端闭合,从而控制交流接触器主触点闭合为路灯送电;反之,则断开路灯的工作电源。

2.5 时钟芯片电路

定时芯片为DS1302,它是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,可以对年、月、日、周日、时、分和秒进行计时,并具有闰年补偿功能,工作电压为2.5V~5.5V。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到RST(复位)、I/O(数据线)和SCLK(串行时钟)三个引脚[11-12],分别连接到Atmega8的PD7、PD6和PD6引脚。DS1302的引脚和连接方法如图4所示。X1和X2是振荡源,必须外接32.768kHz晶振。VCC1为后备电源,VCC2为主电源,当VCC2大于VCC1+0.2V时,VCC2给DS1302供电;当VCC2小于VCC1时,DS1302由VCC1供电。因此,将VCC2连接系统的+5V供电电源,VCC1接3.3V锂电池,这样能够保证芯片不间断计时。

3 路灯控制终端的软件设计

3.1 主程序架构

定时-光感协调控制模式下的主程序流程如图5所示。

图5中,开灯时间段1的值可设定为冬季的天黑时刻;开灯时间段2的值可设定为夏季的天黑时刻;关灯时间段1的值可设定为夏季的天黑时刻;关灯时间段2的值可设定为冬季的天黑时刻。下面举例说明这样设置的好处(假设开灯时间1和2分别设为17:30和19:00,关灯时间1和2分别设为5:30和7:00)。

情况1:假设自17:00起,光敏探头被长时遮挡,此时虽然根据亮度值判断已满足开灯条件,但是由于时间未到开灯时间1,系统将不会做出开灯动作,直到17:30。

情况2:假设自17:00起,光敏探头被外界光源长时照射,直到19:00,此时虽然根据亮度值判断不满足开灯条件,但是由于时间已到开灯时间2,系统将做出开灯动作。

从上述案例的分析可知,定时-光感协调控制模式可以有效的防止外界强光源、遮挡等干扰条件下系统的误动作,保证系统的可靠工作。对于关灯控制的分析不再赘述。

3.2 MCU的端口及串口初始化

Atmega8有23个I/O引脚,分成3个8位的端口B、C和D,其中C口只有7位。I/O端口作为通用数字输入/输出口使用时,都具备真正的读-修改-写特性[7]。Atmega8采用方向寄存器DDRx、数据寄存器PORTx和输入引脚寄存器PINx(x为B、C或D,分别代表B口、C口或D口)3个8位寄存器来控制I/O端口。DDRx的每一位用于控制一个I/O引脚的输入输出方向。当DDRx.n=1时,I/O的Pxn引脚处于输出模式。此时,如果PORTx.n=1,I/O引脚将呈高电平,可提供20mA的输出电流;当PORTx.n=0时,I/O引脚呈低电平,可吸收20mA的输入电流。当DDRx.n=0时,I/O的Pxn引脚处于输入模式。此时引脚寄存器PINx.n中的数据就是外部引脚的实际电平。此时可以通过PORTx.n的设置来控制内部的上拉电阻的使用与否。本文的Atmega8引脚初始化函数如下:

void port_init (void)

{ PORTB=0x00;

DDRB=0x01;

PORTC=0x00;

DDRC=0x00;

PORTD=0x00;

DDRD=0xE0;

}

Atmega8带有一个全双工通用同步/异步串行收发模块USART,其可以分为三部分:时钟发生器、数据发送器和接收器。USART涉及到寄存器有:

USART控制和状态寄存器A:UCSRA

USART控制和状态寄存器B:UCSRB

USART控制和状态寄存器C:UCSRC

波特率寄存器:UBRRL和UBRRH

本文中,串口的配置参数为:波特率9600 bit/s,8位数据位,1位停止位。程序代码如下:

void uart0_init(void)

{ UCSRB=0x00;

UCSRA=0x00;

UCSRC=BIT(URSEL) | 0x06;

UBRRL=0x2F;  //设置波特率为9600

UBRRH=0x00;

UCSRB=0x98;

}

3.3 无线通信程序设计

DS1302控制字节的最高有效位(位7)必须是逻辑1才能写入数据;位6为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,若为1表示进行读操作[11]。读写流程如图6所示。

4 上位机软件设计

上位机软件基于Visual C++ 6.0编程环境开发[13-15]。通过上位机软件,监控中心可以发送配置、查询、控制等指令给路灯控制终端,并接收控制终端返回的数据信息;根据采集到的数据信息,分析路灯的实时工作状态、配置情况等,并以良好的界面将接收到的重要参数显示出来,并存入数据库中,便于查询和管理。上位机软件界面如图7所示。在软件界面中,可以完成串口的参数配置,路灯控制模式(手动、定时、光控和定时/光控混合控制四种模式)的选择和相关参数的配置(开关时间、开灯亮度值、关灯亮度值等),路灯控制终端时钟芯片的校时,路灯实时状态的查询等功能;同时提供了接收信息代码的显示功能,便于系统的调试。

下面以定时控制为例,简要介绍上位机软件的操作方法:在路灯编号下拉框中选择或填入正确的路灯控制器编号(以08为例),选中“定时”,如图7,如果信息接收框中接收到信息,且BE位后的第1-4位依次为“08 83 01 01”(FE为前导码,BE为起始码,ED为结束码,最后一个字节为和校验码),则表示通讯成功,此时路灯控制器即被设置为定时控制状态;继续在定时开关时刻编辑框中输入相应的时间值,并选择相应的星期值(0-6分别代表星期日-星期六,如果选择9则表示每天都采用相同的时间配置)如图8,点击“设定”,如果信息接收框中接收到信息,且BE位后的第1-4位依次为“08 83 01 01”,则表示参数设置成功。

5 结束语

本文针对现有路灯控制系统存在的不足,设计了一种路灯远程监控系统。基于AVR单片机开发了控制终端,该终端集远程手动开关控制、定时开关控制和光感自动开关控制功能于一体,并采用定时-光感协调控制技术,弥补了单纯的光感自动控制抗干扰能力差的不足。基于Visual C++ 6.0编程环境开发了上位机监控软件。监控软件中可以完成路灯控制模式(手动、定时、光控和定时/光控混合控制四种模式)的选择和相关参数的配置(开关时间、开灯亮度值、关灯亮度值等),路灯控制终端时钟芯片的校时,路灯实时状态的查询等功能;同时提供了接收信息代碼的显示功能,便于系统的调试。

参考文献(References):

[1] 崔佳民,秦会斌,罗友.无线路灯控制系统的研究[J].电子与封装,2007.7(12):42-45

[2] 郭琼,蔡亚辉,姚晓宁.基于Zigbee的路灯控制系统设计[J].照明工程学报,2012.23(2):86-90

[3] 黎洪生,刘苏敏,胡冰等.基于无线通信网络的智能路灯节能系统[J].计算机工程,2009.35(14):190-191,214

[4] 万飞.基于FPGA的路灯控制系统[J].照明工程学报,2012.23(5):121-127

[5] 聂可富.基于RS-485总线的抄表系统设计[D].南京航空航天大学,2011.

[6] 张允霞.基于载波通讯的智能路灯控制系统研究[D].哈尔滨工业大学,2008.

[7] 马潮等.ATmega8原理及应用手册[M].清华大学出版社,2003.

[8] 张文泉,彭建怡,张志璐等.基于AVR单片机的检测设备通讯系统设计[J].计算技术与自动化,2013.32(2):76-80

[9] www.atmel.com. Atmel's ATmega8 Datasheet.

[10] http://www.lt-dz.com/erji/s203za.htm.A外型固态继电器.

[11] www.alldatasheet.com. DS1302 Datasheet.

[12] 张宁丹,金桂.基于STC89C52单片机DS1302时钟芯片定时开关的设计与仿真[J].现代电子技术,2013.36(8):4-6

[13] 黄金明.Visual C++ 6.0 基础与实例教程[M].中国电力出版社,2007.

猜你喜欢

无线通信自动控制路灯
简易热水器自动控制设计
路灯
基于DCS自动控制循环水液面的改造
无线通信技术在测绘工程中的应用分析
基于ZigBee的舱内人员巡检系统的应用研究
编组站停车器自动控制开通方案