摩登3登录_基于物联网的空调温度智能控制装置的设计

引言

建筑节能已成为“十二五”节能减排的重要一环,而空调 系统的能耗占建筑总能耗的50%以上,由此可以看出,空调 系统的节能对于整个建筑的节能以及经济性具有十分重要的 意义。据美国国家标准局统计资料显示,如果在夏季将空调温 度下调1 °C,将会增加9%的能耗,在冬季将空调温度上调1 °C,将增加12%的能耗。因此,将室内温度控制在设定值精 度范围内是空调节能的有效措施。室内温度为22~27 C,相对 湿度为30%〜70%,被普遍认为是舒适区。目前,人们在使 用空调时过于追求舒适度,夏天制冷时将温度设得过低,冬 天制热时将温度设得过高,从而造成大量没必要的能耗。根据有关文献中的实验表明:夏天制冷时,设定温度为26~28 C;冬天制热时,设定温度为20~24 C;则人体感觉较为舒适, 而且有利于节能。

针对这种情况,本文提出了一种基于嵌入式的空调温度远 程智能控制装置,以对空调温度进行实时监控。如果温度超出 设定的范围(制冷时不能低于26 C,制热时不能高于24 C ), 就自动发出指令通过ZigBee模块传送到现场,而系统中的温 度控制器在接收到指令后,将模仿空调遥控器发出指令,并将 空调温度强制设定到规定的范围内。

1系统硬件设计

嵌入式空调温度远程智能控制装置的主芯片采用三星公司型 号为S3C2440A的芯片 该芯片采用ARM920T内核,0.13呻的 CMOS标准宏单元和存储单元,具有独立的16 KB指令Cache和 16 KB数据Cache,并拥有130个通用I/O 口和60个中断源,其 中包括24通道的外部中断源以及8通道多路利用的ADC。主处

理器采用三星公司的32位RISC微处理器,系统总线采用AMBA 总线,而且外围扩展有RS 232串行接口网络接口键盘以及 LCD触摸屏等。其硬件设计结构图如图1所示。

图1嵌入式空调温度远程智能控制装置硬件结构图

1.1温度传感器

温度传感器采用Dallas公司生产的数字温度传感器,型 号为DS18B20。该温度传感器体积小,适用电压宽且价格比 较便宜。工作电压为3~5.5 V,支持单总线接口,测温范围 为-55~+125笆,精确度达±0.5莒。芯片有电源线、地线及 数据线共三根引脚线,在与微处理器连接时,仅需要一条口线 即可实现与微处理器的双向通讯,并支持多点组网功能,多 个DS18B20可以并联在同一个三线总线上实现多点测温[2]„

DS18B20内部结构中的光刻ROM中有64位序列号是出 厂前就被刻录好的,它是DS18B20的地址序列号,就如同居 民身份证一样,每一个DS18B20温度传感器都各不相同,这 样就可以实现一根总线上挂接多个DS18B20,从而可以很方 便地对现场温度进行多点测控,提高温度监控的准确性。

DS18B20可通过三根线与外部相连,这三根线分别为 GND电源地、I/O数字信号输入/输出端、VDD外接电源输 入端。

1.2温度控制模块

该装置的温度控制模块主要由两部分组成:单片机和红 外遥控发射器。本系统采用的STC11/10xx系列单片机抗干扰 能力强,同时还具有抗静电的能力,其拥有的40个I/O 口 足以满足本装置的需求。系统由红外遥控发射器模仿空调遥 控器发射指令来控制空调温度。下面以某常用品牌空调的红外 遥控器编码方式为例来说明红外遥控的编码方式叫

系统的载波波形使用455 kHz晶体,经内部分频电路, 信号被调制在37.91 kHz,占空比为1/3,调制频率为:

数据格式包括引导码、用户码、数据码和数据码反码, 编码总共占32位。数据反码是数据码反相后的编码,编码时 可用于对数据的纠错。编码格式如图2所示。

位定义:用户码或数据码中的每一个位可以是位“1”, 也可以是位“0”。区分“0”或“ 1”是用脉冲的时间间隔,图 3所示就是其位定义图。

按键输出波形:按键输出有两种方式。一种是每次键下 都有完整的一帧数据;另一种是按下相同的按键后每发送完 整的一帧数据后,再发送重复码,直到按键被松开,其按键 波形如图4所示。

1.3 ZigBee 模块

ZigBee是IEE0.E 802.15.4协议的代名词。这个协议规定的 技术是一种短距离、低功耗的无线通信技术,其特点是传输距 离较近、复杂度低、自组织、低功耗、数据传输速率不高,主要 适合于自动控制和远程控制领域,可以嵌入各种设备叫采用型 号为DRF1605H的ZigBee模块时,其传输距离为1.6 km。用 ZigBee作为无线传输工具的最大优点是可以自动组网,所有 的模块上电后可以自动完成组网,还具有自动修复功能,即使 网络内有模块掉电,也不会影响整个网络的通讯。该型号还 可以配合RS 232底板使用,只需将DRF1605H的UART 口转 换成标准的半双工RS 232接口,就可以与串口直接通讯,使 用方便且效率高。

2系统软件设计

本系统是基于Red Hat Linux5.0的操作系统,并可在此 基础上构建嵌入式开发环境。本系统的内核采用Linux 2.6.29 版本,根文件系统采用YAFFS。采用arm-linux-gcc交叉编译 工具可对程序进行交叉编译,图形界面程序开发采用QT3嵌 入式图形界面开发工具,宿主机与开发板之间的通信可通过串 口或USB接口来完成;本系统的软件开发主要包括Linux系 统的移植、驱动程序及图形界面应用程序三个部分。

2.1 Linux 移植

Linux系统移植主要包括三个部分:Bootloader的编写

和移植、Linux的配置与构建及Linux文件创建叫在进行系 统移植之前要建立交叉编译环境及准备必要的工具包(arm- linux-gcc、busybox及mkyaffs2image工具包)并进行正确安装。 本次移植的Bootloader采用三星公司生产的bootloader(vivi), 在存放vivi的目录下执行命令#make menuconfig。为了按照 缺省配置自动生成头文件,在出现配制界面后,可以不作任何 修改而直接保护退出,然后执行命令#make开始编译,编译 结束后,会在当前目录下生成需要的Bootloader,即vivi ;然 后再采用缺省内核配置文件配置Linux内核,在Linux2.6.29 目录下执行命令#make menuconfig,出现配置界面后,选择 需要的选项,在对应选项上按空格选择为M(表示选中),再 执行命令#make zImage对内核进行编译,编译完成后会生成 zImage文件;Linux的文件创建只需在存放root_qtopia的目 录下执行命令 #mkyaffs2image root_qtopia root_qtopia.img, 只要生成相应的映像文件即可[6]。最后分别将vivi、zImage、 root_qtopia.img下载到开发板的Nand Flash中,然后重启系统, 如果系统正常启动,说明系统移植成功了,否则,应当重复上 面三个步骤,直到能正常启动为止。

2.2设备驱动程序

驱动程序是Linux系统内核的重要组成部分,它与内核 结合有两种方式:一种是静态编译,作为内核的一部分,直 接编译到内核中;另一种是动态连接,即单独作为一个模块 编译,在需要时动态地加载到内核中,不需要时又可以直接从 内核中裁剪出去[7]。本文使用动态连接方式。本装置的驱动 程序主要是DS18B20温度传感器的驱动;另外,网络、触摸屏、 串口等的驱动已包含在移植的Linux系统中。该温度传感器在 单片机中的应用技术已经非常成熟,因此,基于单片机的驱动 程序的开发在此不作介绍,这里主要介绍一下基于S3C2440 开发板中的驱动程序的编写情况。DS18B20温度传感器的工 作流程如图5所示。

图5工作流程图

根据DS18B20的内部通讯协议,主机控制DS18B20完 成温度转换必须经过三个步骤:第一,每一次读写之前都要 对其进行复位操作;第二,复位成功后发送一条ROM指令; 第三是在其后发送RAM指令,这样才能对它进行相关的操作。 对DS18B20的驱动主要是对其进行复位,要求主CPU将数 据线下拉500 us,然后释放。当DS18B20收到信号后,等待 16〜60us,再发出60〜240us的存在低脉冲,主CPU收到 此信号表示复位成功。复位程序的主要代码[8]如下:

#define IO S3C2440_GPB1/* 定义引脚宏,以更改 GPIO 口 */

#define IO_INPUT S3C2440_GPB1_INP /* 定义输入引脚 */

#define IO_OUTP S3C2440_GPB1_OUTP/* 定义输出引 脚*/

void reset(void)

{do {

s3c2440_gpio_cfgpin(IO, IO_OUTP);/* 设置输出引脚 */ s3c2440_gpio_setpin(IO,1);

udelay(1);

s3c2440_gpio_setpin(IO, 0);/* 产生下降沿 */ udelay(600); /*MCU 发出 600 s 低电平 */ s3c2440_gpio_setpin(IO,1); /* 拉回为高电平 */ udelay(60);} s3c2440_gpio_setpin(IO,0);

udelay(240);

while((s3c2440_gpio_getpin(IO))!=0); /* 检测是否收到低 电平*/

while((s3c2440_gpio_getpin(IO))= =0); /* 等待低电平结 束*/

}

2.3 QT与UART的串口通讯

QT/Embedded是由Trolltech公司开发的一款面向嵌入 式可视化编程的软件,具有丰富的控件资源,类库完全采用 C++技术封装且可移植性好,工业控制中的嵌入式操作界面 几乎都是采用QT类库开发的[9]。控制端与设备之间一般都是 通过串口通信,但在QT类库中却没有串口的基础类,这样, 操作界面就无法直接与设备通信。这里,我们用到一个跨平 台的串口类Qextserialport,在QT中加上这个类就可以很方 便地对串口进行读写操作,它是一个开源类,下载地址为: http : //sourceforge.net/projects/qextserialport/files。

界面制作可采用Qt3 designer软件,并利用信号与槽的 原理建立连接关系,添加Qextserialport类的四个文件

qextserialbase.cpp、qextserialbase.h、posix_qextserialport.cpp 及 posix_qextserialport.cppo设 计好操 作界面 wendu.ui 后, 应对界面进行交叉编译,使其能在硬件平台上工作。具体步骤 是:在存放界面目录下执行命令#uic -o wendu.h wendu.ui生 成 *.h 文件;然后执行命令 #uic -o wendu.cpp -impl wendu.h wendu.ui生成*.cpp文件,并修改*.cpp文件:添加相关功能 函数与posix_qextserialport.cpp文件并实现互相调用,同时添 加构造函数完成对串口的相关设置[11];再编写*.pro工程文件, 执行#make命令,生成可执行文件,同时编写wendu.desktop 文件。最后将可执行文件与wendu.desktop文件下载到开发板 对应的目录下,并重启系统。其具体操作界面如图6所示。

图6 用户操作界面

3结语

基于物联网的嵌入式空调温度远程智能控制装置可用于 实现对空调温度实时监控的目的,通过远程控制使空调温度处在一个既不影响人体舒适度,又能有效降低能耗的温度范围内。通过人机交互界面,能实时掌控空调温度,而且操作方便、控制精确,能满足时下节能减排的需要。另外,本装置不仅能做到对一台空调温度的精确控制,而且能推广到对一栋楼的空调甚至是整个空调系统的空调温度实现精确控制,同时本装置维护简单、开发成本低,因而应用前景十分广阔。