龚佳妮,吕永旺,周南旭,刘燎原
(江苏建筑职业技术学院,江苏 徐州 221116)
现在智能产品越来越多地在生活中推广应用,智能家电也是家中常见的东西,如智能开关、智能窗帘、扫地机器人或者感知调光系统,采用各种感知控制进行便利化生活已经是日常生活的一部分。随着现代社会对保护自然环境的重视,国内在感知系统测控方面的研究日趋成熟。
灯光感知测控也是感知系统测控的一种,感应开关已经广泛应用于照明、开关、安防3个领域。智慧景观灯的设计就是利用太阳能供电下的自动检测行人、环境参数等,从而实现灯光自动调节的一种节能技术。多棵智慧景观树通过物联网技术连接在一起,实现了树树联动、树与云联动。产品配合由大数据中心、物联网平台以及人工智能云计算中心共同建构的管理云平台,实现了树网联动,使产品拥有极强的智慧处理能力[1]。
本文主要针对智慧树中的路灯系统,介绍了一种根据物体靠近速度与距离进行调光的一种设计方案,并且能通过物联网进行实时监测数值传输。感知调光的依据奌主要有3个:环境光照度、有人进到照明范围、有人将要进到照明范围。基本的工作算法是当周围光照较亮时,景观灯不开展照明工作,太阳能充电系统为系统供电蓄电池提供太阳能储能充电;当周围光照低于一定值时,景观灯开始照明工作;有人进入照明范围,则将根据行人距离景观灯的距离来控制光照的强弱,同时依据树树联合的检测判断出该行人将要进入的下一个照明范围,以提前将下一个景观灯提高亮度,实现友好、安全照明。
项目可用的物联网技术主要是LoRa,ZigBee,WiFi等,本文在以下两个方案中选择。
方案1:选用ZigBee技术。ZigBee是基于IEEE 802.15.4标准的低功耗局域网协议,是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通信技术。主要用于距离短、功耗低且传输速率不高的各种电子设备之间,进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用,其传输距离一般在10~75 m的范围内。
方案2:选用LoRa技术。LoRa 能实现远距离、长电池寿命、大容量的系统,进而扩展传感网络。LoRa 主要在全球免费频段运行,包括433,868,915 MHz等。LoRa技术具有远距离、低功耗(电池寿命长)、多节点、低成本的特性。LoRa的发展势头很好,LoRa设备和网络部署的增多,相互之间会出现一定的频谱干扰[2]。
伴随着LoRa技术的不断壮大,LoRa无线通信设备和互联网部署不断地增加,彼此之间会发生相应的频带影响。而且LoRa在布设过程中,需要用户自己组建互联网,应用上要投入更大。而ZigBee的通信距离合适,抗干扰性强,费用低且模块易得,因此本设计采用方案1技术。
如图1所示为ZigBee组网方式,PC机服务器采集各个景观灯的数据,包括红外传感器、环境参数等[3]。
图1 ZigBee组网方式
1.3.1 各类节点工作过程
(1)节点工作过程:终端节点的工作流程为:数据检测—无线发送数据包—等待路由节点的确认帧。若没有收到确认帧则重发数据包;若收到确认帧则进行下一次数据检测。
(2)路由节点:接收数据包—发送确认帧给终端节点—将数据包无线发送到协调器,等待协调器的确认帧。若没有收到确认帧则重新发送数据包;若收到确认帧,则接收下一个数据包。
(3)协调器节点:接收路由器的数据包,发送确认帧,发送数据包到串口,接收下一个数据包。如果接收节点(协调器、路由器)处在非接收状态下,发送节点(终端、路由器)是要将数据重新传输的。
1.3.2 组网过程
组建一个完整的ZigBee网状网络包括两个步骤:网络初始化、节点加入网络。其中节点加入网络又包括两个步骤,即通过与协调器连接入网和通过已有父节点入网。
网络初始化:ZigBee网络的建立是由网络协调器发起的,任何一个ZigBee节点要组建一个网络必须满足以下两点要求:(1)节点是FFD节点,具备ZigBee协调器的能力;(2)节点还没有与其他网络连接,当节点已经与其他网络连接时,此节点只能作为该网络的子节点,因为一个ZigBee网络中有且只有一个网络协调器。
生活中最常见的是用开关来控制灯的亮灭,可以有很明显的亮和暗的变化。因为人的视觉有1/24 s左右的视觉停留,所以当开关的频率高于这个值时,人就不会看见灯的亮灭闪烁,而是觉得亮度稳定。在这个频率下,每个周期中的正脉冲占整个脉冲周期的比值,即为这个频率下的占空比。占空比从全为高电平的1可以变化到全为低电平的0,不同占空比下所输出的能量是不一样的,所控制的灯的亮度也就不一样。占空比为1时,全功率亮灯,灯最亮;占空比为0时,没有功率提供,因此灯实际上是灭的。由此可知调节这个占空比就能达到调光的目的,目前流行的一种调节占空比来实现控制的调光方式就是PWM调光[4-5]。
在现实中不会有这样的人为高频开关动作,但是用单片机输出高频脉冲就能实现。PWM调光方式是利用简单的数字脉冲,在高于视觉停留的频率下(比如高达50 Hz以上)控制不同占空比的调光技术。只需要提供不同宽窄的数字式脉冲,就可以很轻松的改变输出电流的大小,从而调节光的亮度。
脉宽调制(PWM)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,对模拟信号电平进行数字编码。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
只要带宽足够,任何模拟值都可以使用PWM进行编码。假设一个占空比为10%的PWM输出,即在信号周期中,10%的时间为高电平,其余90%的时间为低电平。再假设供电电源为9 V,占空比为10%,则对应的相当于灯在10%周期内亮,而90%周期内是灭,因此这里的灯光亮度大约相当于全亮时的10%。
(1)环境光照度调光。
如图2所示,环境光照强度越强,PWM波的占空比越低,即高电平所占周期比例越少,从而影响景观灯的光强度变弱。当环境光照强度强到一定程度时,PWM波的占空比为零,此时景观灯处在关闭电源输出状态,照明灯关闭[6-7]。
图2 光照强度与PWM波占空比的关系
(2)红外人体检测。
系统安装的红外人体检测可以检测照明范围内是否有人进入。在需要照明的条件下(如光线低到一定值),有人经过时实现依照环境光条件下的亮灯。
(3)判断行人走向。
根据先后检测的人体信号,系统算法可以判断出行人行进方向,从而提前点亮其前进方向上的下一个灯,并关闭后向灯,以提高照明友好性。
如图3所示,当行人在街道1行走时,进入A的范围后A灯亮;慢慢行走至B点,进入B的范围,B亮A恢复原亮度,同时预判将进入C,此时C亮度提高。再向前当进入十字路口,D和G同时亮起微光,行人左转进入街道2后,G灭D全亮,同时E也提高亮度。
图3 十字路口景观灯分布
系统选用CC2530芯片实现ZigBee组网和现地控制,其最小系统如图4所示,CC2530有两个晶振接口:高速晶振(一般32 MHZ)高精度的低速晶振(一般32.768 KHZ),常用端口有去偶电容(PIN_40)和偏置电阻(PIN_30)IO口、复位电路(PIN_20)、下载仿真端口(VCC,GND,RESET,P2_1,P2_2)、射频电路(PIN_25,PIN_26),以及总计21个通用引脚 P0_0-P0_7,P1_0-P1_7,P2_0-P2_4[8]。
图4 CC2530最小系统
光照传感器检测到的外界环境光照度值以及红外传感器检测到有人经过的信号,均输入给CC2530,经过计算和判断,形成控制的PWM波输出到路灯驱动电路,从而调节亮度[9-10]。PWM调光控制框图如图5所示。
图5 PWM调光控制
为了确保不闪烁,本文设计的系统采用了f=100 Hz的工作频率,可以知道单个周期为t=1/f=1 000 ms/100=10 ms。在10 ms周期下,以1ms为调节增量,则可选定调节的亮度级别为11级,如果需要更多亮度控制级,其控制过程与此处所给过程一致。其调节时的占空比与高、低电平输出时间如表1所示[11]。
由上面看出,在软件循环中,如果产生1 ms的时钟中断,则根据当前的亮度要求,控制相应连续中断数来产生高低电平,就可以实现不同占空比的PWM输出,从而控制亮度。从逻辑上看,以10为倍数构成一个亮度调节周期(即10 ms),每1 ms产生1个时钟中断,每次亮度调节周期开始时,即输出高电平(亮度级级别为0时除外,此时直接输出低电平),而当中断数为亮度级别减1时则电平翻转为低电平,直到到达10个时钟中断数。
比如目前确认亮度为5,则根据表1所示,在连续4个中断(即4 ms)中输出高电平,连续6个中断(即6 ms)中输出低电平,即实现了占空比为40%的PWM波输出,且频率为100 Hz。
1 ms时钟中断的设置见下程序代码说明,其中断软件的流程图如图6所示。
图6 调光中断处理流程
CC2530有4个时钟:16MRC、32MOSC、32KRC、32.768K。无线通信时必须采用外部32M晶振。用到的寄存器:SLEEPCMD,SLEEPSTA,CLKCONCMD,CLKCONSTA。
void InitClock(void)
{
SLEEPCMD &= ~0x04;
while(!(SLEEPSTA & 0x40));
delay();
CLKCONCMD &= ~0x47;
while(CLKCONSTA & 0x40);
SLEEPCMD ∣= 0x04;
}
每1 ms设置一个中断,采用定时器中断的初始化如下代码。
//定时器初始化
void InitT3()
{
T3CTL ∣= 0x08 ; //开溢出中断
T3IE = 1; //开总中断和 T3 中断
T3CTL ∣=0XE0; //128 分频,128/16000000*N=0.5S,N=65200
T3CTL &= ~0X03; //自动重装 00->0xff 65200/256=254(次)
T3CTL ∣=0X10; //启动
EA = 1; //开总中断
}
void main(void) {
InitLed(); //调用初始化函数
InitT3();
while(1){}
}
#pragma vector = T3_VECTOR //定时器 T3
__interrupt void T3_ISR(void) {
IRCON = 0x00; //清中断标志, 也可由硬件自动完成
}
本文所介绍的方法用于基于物联网的多功能智慧景观树的感知调光系统,在亮度调节上,先用1ms中断实现了11级亮度调节,运行效果完全正常。接着通过调节时钟中断的时长和调节周期(f=100 Hz不变),分别实现了50级、100级、256级亮度调节,均运行正常。受时钟中断精度的影响,超过256级的调节,开始出现闪烁,测量输出波形有较大干扰,基本不可用。而256级亮度调节已经完全适应于智慧景观树的路灯照明要求,因此测试结果表明,本文介绍的PWM调光办法是能够完全正常工作的。