APP下载

基于电力线载波通信的智能调光系统设计

2014-03-28刘念杰秦会斌

电子设计工程 2014年8期
关键词:电力线调光网关

刘念杰,秦会斌

(杭州电子科技大学电子信息学院,浙江杭州310018)

随着科技的飞速发展,人们对智能家居中照明的高效控制和照明效果多样化的要求不断提高,同时对网络的依赖也越来越大,智能照明系统应运而生。智能照明系统充分利用电子技术、通信技术和计算机网络技术,运用有效的管理和控制策略,实现高效、环保、节能、舒适的照明效果。

基于电力线载波技术的智能调光控制系统可以充分利用现有的电力线网络传送数据[1],不仅无需重新铺设专用的线缆,也不占用无线通信宝贵的频道资源,符合家庭网络通信的特点,同时电力线调制解调模块的成本也远低于各种无线模块(如Zigbee、Wi-Fi、2.4G等),这无疑成为了解决智能家居系统中数据传输介质的最佳方案之一。但同时低压电力线通常具有强干扰性、负载变化频繁、建立通道难的问题,因此系统充分考虑了这些不利因素,采用QPSK调制的RISE3403为调制解调器,通过S3C6410+Android2.3搭建整个调光系统的智能网关,来实现对灯具的控制。

1 系统的总体构架

整个系统的设计包括S3C6410智能网关服务器设计[2]、电力线载波灯控节点设计、Web客户端的设计、Android触摸屏界面设计。系统采用简单的星状拓扑结构在家庭内部组建独立的电力线网络,各灯控节点与网关之间通过电力线通信,网关通过GPRS、WIFI或Internet等方式对用户提供访问服务,系统的总体构架如图1所示。考虑到与其他通信模块的可兼容性,电力线载波通信模块与智能网关和灯控节点之间均通过串口连接,只要遵循网关与节点之间规定的通信协议格式,就可以在不改变整个系统结构的前提下加入其他非电力线载波的通信模块,扩展出更为复杂的拓扑结构,组网方式变的相对更灵活。

图1 系统的总体构架图Fig.1 Structure diagram of the smart dimming system

2 系统硬件设计

智能网关主控服务器采用Samsung S3C6410处理器,采用外接DM9000以太网卡与USB WIFI模块来接入以太网与WIFI网络,通过串口控制电力线载波模块,同时配置了触摸屏支持本地触摸界面操作,其硬件框图如图2所示。电力线载波灯控节点主要由电力线载波模块、MCU控制单元与LED调光模块3部分构成。Atmega16单片机作为控制单元,主要负责通过串口控制电力线载波调制解调芯片载波信号的发送与接收,以及产生PWM波来驱动调光芯片实现LED的精确调光。电力线载波调制解调芯片采用的是瑞斯康的最新产品RISE3403,调制方式为BPSK或QPSK,并且支持CSMA/CD机制,此芯片可工作于独立式(SPI同步控制)或嵌入式(串口透传)两种模式,系统采用的是其串口透传模式,操作起来更为方便。LED调光驱动芯片采用的是PT4115,它是一款连续电感电流导通模式的降压恒流源,通过DIM引脚输入占空比可调的PWM,便能输出大小可调的横流LED驱动电流,最大输出电流可达1A,最大能够驱动25-30W的LED。载波灯控节点硬件框图如图3所示[3-4]。

图2 网关服务器硬件框图Fig.2 Structure diagram of the server hardware

图3 电力线载波灯控节点硬件框图Fig.3 Structure diagram of the led-control node hardware

3 网关服务器软件设计

网关服务器端软件部分主要由Boa Web服务器、登陆验证CGI程序、调光CGI程序、情景设置CGI程序、定时开关CGI程序、定时开关守护程序以及本地Android界面应用程序和Sqlite数据库等部分构成。由于软件平台是基于ARMAndroid2.3,已移植到S3C6410平台,因此CGI程序不能采用传统的ARM-Linux交叉编译,需从Android NDK开发包抽取出Android交叉编译工具链arm-linux-androideabi,这样编译出来的CGI程序才能在Android平台运行。本地控制界面基于Android SDK开发,开发环境是Eclipse,通过Java JNI技术来实现对底层串口驱动的调用[5]。

3.1 Boa服务器移植

Boa服务器是一个小巧高效的Web服务器,源代码开放、性能高,并且支持CGI,适合用来充当轻量级的嵌入式web服务器。从www.boa.org下载Boa源码,当前最新版本为0.94.13,将其解压并进入源码目录的src子目录,利用从Android NDK开发包里面抽取出来的Android交叉编译工具进行编译。首先解压出源码:tar xzvf boa-0.94.13.tar.gz,cd boa-0.94.13/src,然后生成Makefile文件:./configure,修改Makefile文件:找到CC=gcc,将其改成CC=arm-linuxandroideabi-gcc,再找到CPP=gcc-E,将其改成CPP=armlinux-androideabi-gcc-E,并保存退出。最后运行make进行编译,即得到可执行程序为boa,将调试信息剥去:arm-linuxandroideabi-strip boa,得到的最后程序只有约60KB大小。接下来需要完成Boa的配置,使其能够支持CGI程序的执行。Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。ScriptAlias变量指明了CGI脚本的虚拟路径对应的实际路径,一般所有的CGI脚本都要放在实际路径里,用户访问执行时输入站点+虚拟路径+CGI脚本名,可设置为/www/cgi-bin/。

3.2 CGI程序设计

CGI程序主要用来沟通客户端网页与Web服务器之间的数据交互。浏览器通过Web表单请求CGI程序,服务器收到请求后调用指定的CGI程序进行处理,同时也能够返回数据给网页[6]。CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。由于需要操作S3C6410的硬件即串口,写串口的同时可能需要延时等待数据到达之后再读,因此采用C语言来编写,这样能够方便调用到Linux底层的串口驱动程序,而这是PHP、Python等这些其他脚本语言无法做到的。

网页端所有的CGI请求都是通过XMLHttpRequest这个JavaScript对象完成[7],在调用XMLHttpRequest的open方法发出GET请求之后,它可以同步或异步返回Web服务器的响应,并且能在不刷新整个网页的情况下更新部分控件的数据。调光CGI程序的GET请求参数格式仿照Dali协议进行设计,如需要查询1号灯的亮度等级,则相应的请求形式为/led.cgi?addr=1&cmd=160。定时开关灯守护程序通过有名管道与定时开关灯CGI程序通信,实时监控CGI写入的管道数据,并维护了多个Linux定时器(每个房间对应一个定时器)来真正完成发送开关灯指令的任务。通过嵌入式轻量级数据库Sqlite3来存储各个灯节点的定时开关与亮度等级信息,方便上层进行设置与查询。网关服务器软件流程图如图4所示。

图4 网关服务器软件流程图Fig.4 Flow chart of the server software

4 载波灯控节点软件设计

当电力线载波模块接收到网关服务器经电力线传输过来的Dali控制命令时,触发Atmega16进入串口接收中断模式,Atmaga16对接收数据进行校验与解析,判断该帧中目的ID字段是否与本节点相符(节点ID由Atmega16外接拨码开关设置),若相符则进行进一步判断并执行相应动作:若为灯控制命令,则通过定时器产生相应占空比的PWM输出,若为查询命令,则通过串口返回数据给电力线载波模块进行转发。当电力线上无任何数据到达时,Atmega16设置载波芯片处于低功耗模式,以等待下次被唤醒。载波灯控节点软件流程图如图5所示。

5 系统测试结果与分析

图5 载波灯控节点软件流程图Fig.5 Flow chart of the led-control node software

启动系统后,通过任一远程电脑的浏览器登陆测试,所见控制界面如图6(a)、6(b)、6(c)和6(d)所示,包括:1)调光界面,功能包括单灯或组灯直接亮度调光(通过滑动块调节)、UP与DOWN按钮逐级调光、刷新按钮可实时更新灯的状态;2)情景模式设置界面,功能包括闪烁与渐变两种效果的启用、关闭和设置;3)定时开关灯界面和修改密码界面,功能包括定时开关灯的配置和登陆密码的修改。图7为网关服务器实测图,Android触摸屏控制界面提供了调光与定时开关的功能。图8为载波灯控节点实测图。系统的实际测试环境为120 m2、3室2厅的家庭住户,空调、热水器等大功率电器正常开启,节点放置于离网关最远的两个房间,总测试次数500次,电力线上丢包仅10次、数据差错次数2次,结果表明,QPSK这种载波通信方式的稳定性比较好,基本能够满足系统的设计要求。目前正在对其中出现的一些问题进行改进。

图6 界面Fig.6 Interface

6 结束语

文中设计的基于电力线载波技术的调光系统,充分利用了现有的电力线网络,通过结合成熟的互联网通信手段,使得家居设备的物联网化与远程控制成为可能。系统实现了本地与远程Web两种操作界面,通用性较强,非常适用于家庭或者小型办公室等这些场合。伴随着物联网与智能家居理念的逐渐深入人心,基于电力线通信技术的控制系统将会越来越体现其本身的优越性,有着广阔的应用前景。

图7 网关服务器与触摸屏控制界面实测图Fig.7 Photo of the server and touch screen control

图8 载波灯节点实测图Fig.8 Photo of the led-control node

[1] 杨顺.基于电力线通信技术的新型照明控制系统[J].计算机系统应用,2009,18(11):84-86.YANG Shun.The new lighting control system based on powerlinecommunication[J].ComputerSystems&Applications,2009,18(11):84-86.

[2] 姜天昌,白长清.基于电力线的家庭智能网关[J].电子设计工程,2010,18(3):107-109.JIANG Tian-chang,BAI Chang-qing.Smart home gateway based on PLC[J].Electronic Design Engineering,2010,18(3):107-109.

[3] 林佳森,李智.基于低压电力线的高速载波模块设计[J].信息与电子工程,2012,19(1):43-45.LIN Jia-sen,LI Zhi.Design of smart carrier module based on Low-Voltage power line[J].Information and Electronic Engineering,2012,19(1):43-45.

[4] 王颋,吴兆云.基于电力线载波的智能家居控制系统研究[J].单片机与嵌入式系统应用,2013,13(2):109-111.WANG Ting,WU Zhao-yun.Research of smart home control system based on power line carrier[J].Microcontrollers&Embedded Systems,2013,13(2):109-111.

[5] 王朝华,陈德艳.基于Android的智能家居系统的研究与实现[J].计算机技术与发展,2012,22(6):142-144.WANG Chao-hua,CHEN De-yan.Research and implementation of smart home based on android platform[J].Computer Technology and Development,2012,22(6):142-144.

[6] 潘琢金,王秋实.基于AJAX与CGI的嵌入式瘦Web服务器研究[J].计算机工程与设计,2010,31(20):91-93.PAN Zhuo-jin,WANG Qiu-shi.Study of thin embedded web server based on AJAX and CGI[J].Computer Engineering and Design,2010,31(20):91-93.

[7] 缪静芳,姜平.基于Ajax技术的远程监控动态网页设计[J].南通大学学报:自然科学版,2009,8(3):57-59.MIAO Jing-fang,JIANG Ping.Ajax-based dynamic web design for remote monitoring[J].Journal of nantong university:Natural Science,2009,8(3):57-59.

猜你喜欢

电力线调光网关
服务区LED照明调光算法探究
全海深ARV水下LED调光驱动电路设计
信号系统网关设备的优化
浅谈公路隧道照明调光方案比选
基于电力线载波通信的智能限电装置
基于单片机的大棚自动调光设计
一种压缩感知电力线信道估计机制
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
电力线通信中LDPC译码器的优化设计与实现