周承知++朱凌云++范德伟
摘要:利用STC单片机作为控制器设计空调无线控制系统。整个系统包括万能空调遥控模块,能匹配主流品牌空调,设置空调的温度等;CS5463采集模块,能采集空调的运行参数,解决待机耗电问题;无线模块,能远程给控制器发送命令;温度测量模块,测量空调排风口温度。使用Keil软件编写裁剪的μC/OS-II操作系统和运行在其之上的多个系统任务,并结合上位机软件通过了系统硬件的调试和测试。系统接线简单,能够广泛应用于家庭、办公室等场所的空调上。
关键词: STC单片机;万能遥控;无线通信;μC/OS-II;ModBus
中图分类号:TP23 文献标识码:A 文章编号:1009-3044(2017)30-0222-03
Design of A Kind of Wireless Air-conditioning Control System
ZHOU Cheng-zhi1,2,ZHU Ling-yun1,2,FAN De-wei3
(1.School of Information Science and Technology,Donghua University,Shanghai 201600,China;2.Engineering Research Center of Digitized Txtile & Apparel Technology for Ministry of Education,Shanghai,201600,China;3.Shanghai YUANSHANG Science and Technology Co.,Ltd.,Shanghai 201900,China)
Abstract: The STC-based control system is designed to control air-conditioning wirelessly.The system includes powerful remote controlling module,which can apply most air conditioning and set up the temperature;acquisition module Based on CS5463,which solves the standby power consumption by collecting the operation parameters of air-condition;wireless module,which can send conmands remotely and temperature measurement module to measure the temperature of air outlet.The incomplete μC/OS-II operating system and multiple running system tasks are programmed by Keil.The system hardware debugging and verification process are passed. The system has simple connection and can be widely used in families, offices and the others.
Key words: STC MCU; powerful remote control; wireless communication; μC/OS-II; ModBus
随着对生活质量要求的提高,城乡居民家用电器的数量大幅度增加,其中空调的增加对家庭能耗影响较大。文献[1-4]的研究表明空调的装机量还在不断上升,随之而来的是空调用电量的增加问题。公众对空调温度设多少度合适和空调待机耗电也不少缺乏足够的认识,造成了电能浪费的现象,节能不容忽视。针对这样的现状,将单片机控制技术和计算机网络通信技术引入到空调系统中,研究空调的智能控制就变得很有意义。
本文设计的空调无线控制系统可以非用户側远程控制空调的运行,解决温度设置不合理的问题;可以通过CS5463模块采集空调的电流电压,并结合磁饱和继电器,解决空调待机耗电问题。
1 硬件方案设计
结合当前的应用背景和市场需求,控制系统要求具有万能空调遥控、测量室温、远程无线通信、采集空调实时工作参数以及切断空调电源等功能。因此,设计时将系统主要分为万能空调遥控模块、CS5463采集模块、无线模块以及温度测量模块。STC单片机以8051为内核,并进行了大幅度升级优化,具有高速、高可靠、价格低廉、外围模块多等优点,硬件条件上已具备了系统开发的要求[5]。系统结构图如图1所示。
图1 系统结构图
1.1 万能空调遥控模块
该模块采用了singlechip solution公司的SC6688AC单片机[6]。SC6688AC是一款低功耗的高速单片机,内置有丰富的定时器,可以内部完成载波调制和编码任务;内置丰富的数据储存器,无需外挂E2PROM等存储芯片,即可存储空调码库;内置串口,通过UART通信方式进行空调运行模式、温度、风量等参数的设置。基于SC6688AC单片机的万能空调遥控方案具有性能高,使用简单,成本低廉,覆盖空调品牌广等优势。
模块主要包含遥控数据存储芯片、遥控信号发射电路以及ULN2003驱动电路。遥控数据存储芯片是一个串口控制芯片,通讯参数为波特率:9600bps,数据位:8位,停止位:1位,校验:无。STC单片机只要使用一个串口,即可通过串口发送相应指令给遥控数据存储芯片,通过遥控信号发射电路将数据发送出去,实现控制空调的功能。
1.2 CS5463采集模块
该采集模块主要采集空调的当前电压、电流、使用电能等实时工作参数,以达到在空调禁止开启的条件下能够监测空调运行状态的作用,或者空调关闭条件下待机耗电问题。
模块使用的CS5463芯片是一款能够测量电压有效值、电流有效值、计算有功电能以及一个SPI串行接口的功率测量芯片[7]。CS5463包含电压和电流两路模拟量输入通道。首先通过两组R、C低通滤波器,去除输入的高频干扰,接着再输出到CS5463中进行运算,以得到空调工作参数。通过CS5463的计算结果控制与空调连接的磁饱和继电器,控制空调系统的开/关。此外,CS5463还具有片上数字校准功能,用户可通过写值到CS5463校准寄存器,以实现不同的校准功能,减小计算误差。
1.3 无线模块
无线模块使用了SEMTECH公司的SX1278射频芯片[8]。该芯片工作在410-441MHz频段,具有LoRa直序扩频技术,支持Wireless WMBus协议,IEEE802.15.4 g协议,抗干扰能力强,功率低,通讯距离远的优势,理论上传输3000米也不会丢失数据包。此外,芯片还具有加密和压缩算法,可以保障数据安全。图2是SX1278无线模块的电路设计图。
1.4 温度测量模块
DS18B20是一种很常用的数字温度传感器,可以检测-55℃~+125℃范围的温度,体积小,成本低,精度高,抗干扰能力强。本文采用单总线方式接线,应用场合广泛。供电方式采用寄生电源供电,其中VDD和GND引脚必须接地。寄生电源方式只需要一根I/O口测温,而且远距离测温时,不需要本地电源。
2 软件方案设计
软件编程主要用到了Keil uVision5软件,包括移植μC/OS -II系统,编写ModBus协议以及多个调度任务。系统的程序流程图如图3所示。
图3 系统程序流程图
2.1 裁剪的μC/OS-II移植
μC/OS -II是开源的嵌入式操作系统,可以通过条件编译,裁减掉不需要的服务,只移植任务程序中需要的μC/OS-II系统服务。通过裁剪,可以最大限度地减少μC/OS-II系统的存储空间,将其移植到STC单片机上。主要涉及OS_CORE.C、OS_TASK.C和OS_TIME.C三个文件,OS_CORE.C是实现内核功能的内核核心文件,OS_TASK.C是管理任务的文件,OS_TIME.C是管理时间的文件。还涉及对内核进行裁剪和配置的OS_CFG.H;与处理器有关,需要根据STC单片机特性修改的OS_CPU.H;系统头文件μC/OS -II.H和单片机头文件STC15.H。
基于μC/OS-II开发的不同应用任务具有彼此独立的堆栈空间,而且堆栈的大小由程序员根据实际需要单独定义,保证在满足任务运行需要的条件下,消耗最少的RAM空间。系统需要编写的应用任务如下:
OSInit(); //系统初始化
OSTaskCreate(readDS18B20 ,&tcbDS18B20 ,1); //测温任务
OSTaskCreate(readCS5463 ,&tcbCS5463 ,0); //空调参数采集
OSTaskCreate(taskListen ,&tcbListen ,0); //任务监听
OSTaskCreate(taskDecode ,&tcbDecode ,0); //ModBus功能解码
OSTaskCreate(taskBroadcast ,&tcbBroadcast ,0); //ModBus廣播任务
OSStart(); //系统启动
2.2 ModBus协议
ModBus协议支持传统的RS-232、RS-485和以太网设备,常用于电子控制器上。ModBus协议还有很多指令,功能强大,方便上、下位机通讯。ModBus 协议包括请求和应答两部分。例如使用0x06进行写单个寄存器的功能,命令分为请求和响应两部分,协议规定的格式如表1、表2所示。
此外,编程时需要在程序中定义和0x06协议相对应的结构体,程序如下。
typedef struct
{
unsigned char addr; //地址
unsigned char cmd; //功能码
unsigned int address; //寄存器地址
unsigned int value; //寄存器值
}MODBUS_RD_06;
3 系统测试结果
该系统的设计可以通过万能空调码库无线控制空调的开/关,设置运行状态等;可以采集空调当前运行参数,如电压、电流等;可以测量空调风口的温度。本文基于Visual studio 2012环境,使用C#语言根据ModBus协议编写了系统的上位机测试软件,并结合系统硬件,测试了系统控制效果[9]。系统实物图和测试结果如图4所示。
4 结束语
利用STC单片机设计的空调无线控制系统,硬件电路设计简单,能满足设计的功能需求,工作稳定性可靠,且成本低。该空调无线控制系统设计完成后,已经在公司使用空调实际地测试过,已经使用3个多月,性能稳定,基本完成设计要求。
系统的设计可根据ModBus协议开发PC端上位机、移动端应用等,即在电脑端、手机端可以远程遥控空调,使用方式灵活,符合物联网和智能家居的思想。系统性能良好,控制方便,符合当今社会的需求,具有广阔的市场前景。
参考文献:
[1] 肖勇.上海居民用电特点分析及需求侧管理的应对措施[J].上海电力学院学报,2009,25(6):614-618.
[2] 宋奇兵.基于嵌入式技术的中央空调控制器设计[D].安徽:合肥工业大学,2010.
[3] 李令言.中央空调节能控制系统的研究与开发[D].安徽:中国科学技术大学,2011.
[4] 谢吉龙.智能建筑供热节能控制系统的研究[D].哈尔滨:哈尔滨工业大学,2011.
[5] 李友全.51单片机轻松入门(C语言版)——基于STC15W4K系列[M].北京:北京航空航天大学出版社,2015.
[6] 余志鹏.安卓设备控制的万能遥控器的设计与实现[J].电子测试,2015(21),21-23.
[7] 胡新生. 基于CS5463计量芯片的智能电力负荷检测系统[J].可编程控制器与工厂自动化,2009 (5) :92-94.
[8] 彭飞飞.低功耗长距离无线收发模块设计与实现[D].成都:电子科技大学,2016.
[9] 张世明.C#程序设计基础[M].北京:电子工业出版社,2016.