【学习笔记】智能家居(8):热水器控制系统
0 引言
市场上的电热水器有储水式电热水器和即热式电热水器两种。即热式热水器的优点是方便快捷,不占空间,安全,最大限度地减少了热量散失,出水温度恒定,缺点是功率较大,对电表、电线的要求较高。储水式电热水器的优点是功率要求低,因可实现上水停电,使用更安全,可实现定时加热,缺点是加热慢,所带保温储水罐占较大空间,不适合长时间连续用水,使用过程中大多需经常调节水温。为提高电热水器的节能性、多功能化、智能化,本文基于Cortex-M3内核,结合温度采集模块、无线传输模块,设计了一个可以远程控制温度的控制系统,最终实现智能家居的热水器控制。
1 总体设计和系统功能
本控制系统针对热水器进行控制,远程操作部分与主控制器以串口连接,智能家居中温度控制节点与主控制器形成一个GPRS网络相互通信,所以通过外部移动终端就可以实现与主控制器的通信从而实现对智能家居中热水器的温度节点的控制。当然也可以由主控制器来直接控制温度节点的运行,这样更快捷。主控制器发送控制命令给温度节点,温度节点收到命令后进行相应分析并做出相应动作,然后返回最终的状态给主控制器,主控制器通过串口将各节点的信息发送到远程操作系统或直接显示到自带的显示液晶上。系统结构图如图1所示。
本系统的终端设备采用模块化的结构设计思想,将终端设备分为主控模块和各个功能模块。主控模块和各功能模块之间有统一的或者特定形式的接口,可根据实际情况选用不同的功能模块。各功能模块又包含多个节点,每个节点即为通信的一个终端,各节点之间相互独立,某一个节点出现故障时不会影响到其他节点的运行。
热水器控制系统的几个主要模块功能如下:
(1)按预设的温度对水胆进行加热控制:在水胆温度到达预设温度后自动停止加热,低于预设温度时自动恢复加热。用户可根据实际情况自行设定水胆温度,例如热水需求量大时可调高水胆温度以满足用水需要,而热水需求量少时则可将水胆温度调低以减少热量散失。
(2)可控恒温和定时加热:用户可在实际范围内任意设定出水温度,由嵌入式设备控制按照用户设定的温度恒温出水;同时可设定开机时间和关机时间,使热水器按设定的时段定时加热。
(3)温度与时间的LCD显示:显示温度及时间。
(4)自动报警:在系统检测到有故障现象时,发出报警信息,该信息通过GPRS网络及时传回远端的终端,并进行漏电保护和干烧防护。
(5)远程控制:在控制端界面显示各个终端的运行情况、当前的实时温度信息,用户指令通过控制端下发到采集端,最后通过采集端回传终端所需要的信息。用户可以通过移动终端控制热水器的开关和温度设定等,并可查询热水器的工作状态。
2 系统硬件设计
热水器硬件电路主要由温度采集模块、主控制器模块、电加热功率驱动模块、电源管理模块、无线传输通信模块和显示模块等组成。
2.1 温度采集硬件设计
2.1.1 检测原理
为对水胆水温、出水温度进行控制及显示,需对水胆水温与出水温度进行检测。本设计采用的温度传感器是负温度系数(NTC)热敏电阻,利用其阻值随温度变化而改变的特性进行温度检测。此热敏电阻的阻值与水温的特性表达式为:
其中,RT0为水温在T0时的电阻值,T0为室温值,即25℃,β是材料的系数。
NTC热敏电阻分别安装在水胆和混水管内以达到测温目的。由温度转换电路将温度值转换为电量,输入到嵌入式系统的电压采样电路并进行模数转换,从而测量到水胆和混水管内的水温度值。
2.1.2 温度转换电路
图2所示为温度转换电路,其中RT1、RT2分别为安装于水胆和混水管内的NTC热敏电阻。当水胆内的温度和混水管内的温度发生变化时,RT1、RT2的电阻值也随之改变,STM32处理器的PA0、PA1端口上的电压也相应地发生变化。PA0、PA1是STM32的模拟量输入端,分别用于检测电阻R01、R02上的电压,然后由STM32的A/D转换电路进行转换,从而测出其对应的温度。
2.2 无线传输通信模块设计
无线传输通信模块分为两大部分:主控模块和无线收发模块。主控模块由微处理器、Flash ROM、SDRAM、复位电路、电源电路等组成。
2.2.1 电源模块
GPRS的供电范围为3.3 V~4.8 V,STM32处理器供电电压为3.3 V。为了满足系统各个部分供电的需求,采用DC5V作为电路板的供电电源,电路部分如图3所示。为简化电路, 其中,采用串联一个二极管IN4007的方法,使GPRS模块的实际电压约为4.3 V左右,满足供电需求。另一部分,通过三端线性稳压芯片LM1117输出3.3 V电压,同时,在LM1117芯片的两端加0.1 μF和100 μF电容进行滤波处理,对STM32芯片部分供电。
2.2.2 传输通信模块
无线传输通信模块选用西门子的MC55模块,其内嵌有TCP/IP协议,不仅降低了设计的难度,也提高了整个系统的性能,便于实现采集数据的远程传输。传输通信模块使用标准的串口直接与STM32相连,如图4所示。由于此模块的接口逻辑电压为2.65 V,不能直接与STM32的端口(工作电压3.3 V)相连,必须使用转换电路实现逻辑电平匹配,因此在两器件间的各管脚之间都连接一个100 Ω的电阻。传输通信模块的RINGO与STM32的RTS1相接, 以中断方式将数据输送到STM32控制器。
2.3 功率驱动模块设计
对水箱内的水加热的控制采用调功型调温系统。所谓调功型调温就是在固定周期内,调节导通和关断之比(占空比),并采用过零触发双向可控硅电路,实现对水温的控制。在占空比为1时,输出连续的正弦波;占空比为0时,不输出正弦波。
由于用STM32F103控制器来控制水温加热模块,因此调功型调温的PWM信号由STM32F103的PB6输出,具体的原理图如图5所示。
直接利用STM32F103的TIM4_CH1(PB6)输出PWM信号,连接到带过零检测功能的光电耦合双向可控硅驱动器MOC3041上,实现控制信号与强电的隔离。MOC3041的输出触发信号控制双向晶闸管T1(BTA20),实现了对水胆水温的控制。
3 系统软件设计
3.1 水温测量程序设计
图6所示为水温测量流程图。水胆和混水管内水温测量得到的温度值均采用相同的数值处理方式,将模数转换的数据进行处理,并作为水温值。将处理过程设计成子程序,以便调用,实现数据处理。不用水时,不必对混水管内的水温进行测量。其中在初始化转换通道及启动转换开始后的采样阶段要满足最小采样时间t。
3.2 GPRS无线数据传输模块
首先通过SPI总线将温度采集处理模块采集到的数据传送到处理器,然后经由串口AT指令传输到GPRS模块,最后发送到GPRS网络,这就需要在STM32平台上构建操作系统。本文在移植Bootloader内核源码包的基础上,首先通过对内核作适当的配置和裁剪,然后使用交叉编译工具将文件编译成内核镜像文件, 最后通过Bootloader下载到设备上运行。同时,为了便于使用和进行应用程序的开发,还要组建文件系统。
GPRS模块包括具有登录GPRS网络功能的芯片及相应的协助处理数字电路,通过通信协议与STM32控制器实现串行通信。传输过程中,把数据压缩为数据包,通过Internet网络接入的指定服务器,送到控制中心的控制主机。其中数据的发送和接收均按照自定义的点到点传输通信协议,确保所传数据的安全以及发送和接收的可靠。
4 结论
随着电子技术的飞速发展,社会发展步入了信息时代,随着人们生活水平的提高,对生活质量的要求也不断提高,这对电子领域提出了更高的要求。采用STM32F103作为控制核心,设计远程控制的智能家用电热水器,可以满足低价格、高性能、尤其是智能化的要求。本系统实现了恒温和水位的自动调节控制功能,通过远程开启和控制热水器实施远程监控功能,从而更加方便地使用热水,也可以远程设定时间监控,设定后不需要人工干预,同时实现了错峰加热,节约电能。在现有众多的控制手段中,采用典型的嵌入式控制系统,相比现在市场上先进的电热水器,更能够满足人们对现代化智能家居的使用要求。
◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆