摘要: 以STM32F103ZET6为物联网控制模组主控单元,基于机智云平台,针对太阳能热水器设计了一种物联网控制系统,用户通过互联网就能对家中太阳能热水器进行远程控制和运行监测。该系统采用STM32F103ZET6为控制芯片,esp8266 Wi-Fi模块为通信模块,结合其它硬件电路与设计完成对太阳能热水器的远程控制。实验证明该系统能够通过手机终端实现实时监控、加热、上水、定时以及故障报警等功能。
关键词: STM32F103ZET6 ,太阳能热水器,机智云AIoT云平台 ,远程监控
本文为解决此类问题设计了一种基于机智云物联网平台的太阳能热水器控制系统。机智云平台是一个用于物联网开发的云服务平台,为开发者提供了自助式智能硬件开发工具与开放的云端服务。它可以自动生成MCU和移动终端的代码,通过固定式的自助工具、完善的SDK与API服务能力最大限度降低了物联网硬件开发的技术门槛,缩减了开发者的研发成本,提升了产品投产速度,进而帮助开发者进行硬件智能化升级,更好地连接、服务最终消费者。
该系统中主控制芯片STM32F103ZET6通过Wi-Fi无线通信模块将太阳能热水器相关参数和状态发送给基于机智云平台开发的手机APP界面来显示,从而实现远程操作控制,让用户在各个地方都能对家中设备进行查看和操控,操作更加便捷,在满足用户需求的基础上尽可能地减少能耗。
1,总体方案设计
本系统由主控制器STM32F103芯片、温度传感器、液位传感器、电辅热装置、上水控制装置、报警装置、Wi-Fi通讯模块、机智云物联网平台和手机终端组成。其中电辅热装置包括继电器和与之相连接的加热棒,上水控制装置包括继电器和与其相连的电磁水阀。温度传感器和液位传感器将从太阳能水箱中采集的信息传输给主控制器,主控制器将传输过来的数据进行加工、处理与显示。然后,通过Wi-Fi无线通信模块将数据传输给基于机智云平台开发的手机APP界面来显示,用户可通过手机APP设定理想水温和水位。
系统还加入了报警装置和定时功能,当系统发生干烧或者水温过高时,系统会发出报警提醒。此外,用户也可以通过系统定时功能选择任意时间加热和上水,方便快捷,具体的系统结构框图如图1所示。整个系统优化了传感器的选取,同时与机智云物联网开发平台相结合,有针对性地解决了传统控制系统中的不足,使用户能够随时随地查看热水器状态且对热水器进行操控,满足了用户需求,节约了更多能源,改善了用户体验。
太阳能热水器系统结构框图
2 系统的硬件设计
2.1 温度传感器模块与报警装置
本系统需要测量太阳能热水器中的水温,范围为0~100℃,经过综合对比,选择DS18B20作为系统的温度测量模块。DS18B20温度传感器的温度测量范围为-55~+125℃,精度为±0.5℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。使用时需将DS18B20置于太阳能水箱的底部,以保证当太阳能水箱内水位过低时,也能够实时检测水箱内水的温度。
为了防止意外,本系统添加了声光报警装置,该装置是由一个有源蜂鸣器和两个LED灯组成,其中一个是水位报警,另一个是高温报警。当太阳能水箱中水位低于设定值或者水箱中水温高于设定值时,声光报警装置启动,以引起操作人员的注意,同时主控制器也会发出工作信号,停止上水或加热操作。
2.2 液位传感器模块
本系统选择的是科赛沃电子科技有限公司生产的KY系列压力传感器,它采用的是硅压阻式差压压力芯体,压力传感器输出端口的电压与检测口处的压强成正比例线性关系。根据帕斯卡定律,液体内部压强与液体深度有关,因此将检测口放于水箱底部,通过测量输出端口的输出电压,即可计算出水箱水位。使用前需将检测口放置到太阳能热水器蓄水箱底端,导气管高于水箱顶部,这样当液面高于检测点时,测量点处的压器即为液体压强。
2.3 电辅热模块和上水控制模块
本系统中的电辅热模块包含继电器和加热棒,上水控制模块包含电器继电器和电磁水阀。其中继电器是实现外部设备控制的主要手段,因此继电器的有效控制是执行器模块安全稳定运行的保证。继电器种类繁多,本系统经过对加热棒和电磁水阀的功率进行分析,选择了HRS4H-S-DC12V型继电器。图2为该型号继电器的驱动电路图,主控制器通过该电路完成对继电器的控制,从而实现上水和加热两个控制动作。
继电器驱动电路图
下面以上水动作为例,介绍其工作过程。图2中的SIGNAL-IN连接主控制器的某个I/O口,执行器为电磁水阀。当需要打开上水开关时,控制器使该I/O口输出高电平信号,此时MC1413输入引脚1脚为高电平,输出引脚16脚为低电平,此时继电器K3通电吸合,使得继电器输出侧1A和1B导通,输出回路中电磁水阀通电工作,系统开始对水箱上水,同时对应的指示灯发光。当上水到指定值时,控制器使PG14口输出低电平,MC1413的16脚输出为高电平,继电器断电释放,电磁水阀断电停止工作,上水动作结束。
加热控制电路与上水控制电路相同,仅仅是执行器由电磁水阀换成了电加热棒。此外,使用到的继电器驱动电路原理图也与上水控制相同,两个继电器都选择了MC1413进行控制,大大减小了后级电路对主控制器电路的干扰,同时可以将电压信号放大,增强其驱动能力。
本方案选择的电磁水阀是AC220V常闭铜电磁水阀,当接入220V交流电时开关开启,水流通过,断电时开关闭合,水流截止。选择的加热棒是AC220V整体防水加热管,其具有经久耐用、防腐蚀等优点,所选继电器输出侧最高可承受2500W,该加热棒正常工作时的功率为1000W,在继电器可承受的功率范围内,满足系统要求。
2.4 Wi-Fi无线通讯模块设计
通信模块主要采用ALIENTEK公司推出的AKT-ESP8266为核心模块,该模块为UART-Wi-Fi模块。通过对STM32的串口初始化后,模块与主控芯片能够进行串口通信。选用平台为机智云平台,机智云拥有大量的开发经验和技术积累,其所提供的GAgent通信协议能与模块发生交互以进行数据交换[4-6]。平台软件兼容并支持ESP8266模块,在对ESP8266完成初始化之后,工作时通过机智云的手机APP与ESP8266进行云端的数据交换传输,从而完成对系统的控制。而其中的通信内容能够被存储到云平台的开发者中心。
主程序流程图
3 系统软件设计1
3.1 主程序流程
主程序开始后首先对各个模块进行初始化和进行设备的自动配网。然后进入主循环程序,在温度检测、水位检测、报警处理、时间定时、数据传输等子程序不停地被调用的同时也对系统状态进行检测判断,若有异常情况立即进行相应处理,其流程图如图3所示。
在主循环程序中,首先对传感器模块子程序进行调用,读取所检测的温度、水位等数据;然后根据这些数据判断系统是否工作在异常状态,其标准是判断水温是否过高,高于设定值和水位是否过低,低于设定值。若有异常,则控制报警装置发出报警信息,同时发送指令给执行器子程序控制上水装置或加热装置停止工作,若无异常,则继续执行下面的程序;
第二次判断有无接收到手机终端所发出的控制指令,若接收到控制指令则响应该指令,未接收到控制指令则根据时间、系统数据和工作模式调用执行器子程序,对系统的运行状态进行控制。之后调用定时器子程序完成定时操作,最后调用数据传输子程序,将系统数据和运行状态发送至手机终端,进入下一轮循环。
加热流程图
3.2 执行器子程序
执行器子程序包含着完成上水和加热两种动作的整个过程。系统的加热操作过程与上水操作过程基本相同,下面就以加热操作为例,详细讲解执行器子程序的运行流程。加热流程图如图4所示。
当系统温度高于设定值时,控制器会控制继电器断开加热棒的电源,使加热棒处于停止加热状态;当系统温度低于设定值时,判断系统是否处于可加热状态,判断的依据是水位是否过低会导致加热棒干烧。如果处于可加热状态,控制加热棒加热,当水温达到设定水位后,加热棒停止加热。如果未处于可加热状态,则向用户发送低水位信息,提醒用户水位过低,无法加热。
4,机智云物联网平台的设置
4.1 数据点的设置
设计中的通信部分选用了机智云Aiot开发平台[7],首先需要通过机智云平台来完成其通信部分的代码,在机智云平台中生成项目后下载平台提供的部分代码。在生成的项目中,需要向其中添加数据点,数据点的读写类型可区分为只读、可写、报警、故障4种:只读型数据点,即只能够读取数据点的返回数值,而不能对数据点写入数值;而可写型数据点既可以对数据点写入数值也可以读取数据点返回数值;
报警和故障类型的数据点一般用于监测系统故障时的异常变量。本设计中仅使用了前两种,而每种类型数据点又有不同的数据类型。控制开关部分采用了可写类型数据点,布尔量类型数据,即0为关闭,1为开启;变量的设置部分也采用了可写类型数据点,数据类型为数值型;而温度和水位返回值部分采用只读类型数据点,数据类型为数值型[8],用于显示当前太阳能水箱中水温和水位信息。在设计中,数据点是很重要的一部分,所以需先将数据点设置好再进行之后的开发。
采用STM32 Cube MX来创建工程,它能够初始化芯片所有的外设配置,而KeilμVision5作为开发环境。
本设计中选用了10个数据点对应不同的功能,通过对系统需求的分析,该系统需要5个布尔型的数据点来分别实现模式切换、加热状态切换、上水状态切换、加热定时状态切换、上水定时状态切换,同时需要5个数值型的数据点来分别实现温度显示、水位显示、温度设置、水位设置、温度定时设置、水位定时设置。数据点具体情况如表1所示。
4.2 机智云自生成APP的二次开发
机智云AIoT开发平台能够根据开发者创建的项目,生成对应的手机APP框架,在生成的APP框架中已经封装了手机(包括PAD等设备)与机智云智能硬件的通讯过程,以及手机与云端的通讯过程。这些过程包括配置入网、发现、连接、控制、心跳、状态上报、报警通知等。所以在Anddrio Studio的开发环境下对机智云服务平台生成的APP框架进行二次开发时,只需要调用相应的API函数对APP的UI界面进行修改即可。通过对APP的界面的背景,页面进行布局,数据的显示等方面的修改得到了如图5所示的手机APP界面。
5系统测试
为了方便测试,在系统中加了一块LCD显示屏,用于显示系统的参数,方便与手机APP进行对比。所设计的硬件平台在接入12V直流电源后,打开手机APP查看设备是否连接,确认手机APP与主控制器持续通讯后。机智云平台会每隔固定时间会向主控制器发送查询指令,主控制器接收到查询指令后会将所采集的水温水位等数据发送给机智云平台,从而在APP上显示出来。在APP界面中有按钮可对系统的参数和运行状态进行更改,当点击上水按钮后,APP会向主控制器发送控制指令,主控制器接收到指令后会发出信号控制上水继电器吸合,同时在APP界面上会有相应的显示变化。
当主控制器对APP发出的控制指令进行响应后,继电器指示灯会变亮,同时在用于测试LCD屏中开关状态也会有相应变化,S1表示上水开关,S2表示加热开关。图6中Temp代表所水温,Depth代表的是水位,Mode代表的是当前系统工作模式,本文中Auto表示智能模式,T1表示自动上水时间,A1表示上水量,T2表示加热时间,A2表示加热温度。
由图6和图7可以看出,APP显示的数据与用于测试的LCD显示屏参数保图5手机APP终端控制界面图持一致,且在APP界面中进行操作可以完成控制指令的下发。测试表明,所设计的手机APP既能显示热水器的状态和参数,又能达到控制上水和加热的效果。
用于测试的LCD显示屏界面图
远程手机APP显示界面图
本文设计了一种基于机智云物联网平台的太阳能控制系统,以STM32F103ZET6芯片为主控制器,以ATK-ESP8266 Wi-Fi芯片作为物联网通讯模块与机智云物联网平台互联,再配合各个功能模块的电路设计,实现了用户可以通过手机终端的APP在任意时间、任意地点对太阳能进行实时监控。实验表明该系统能够准确和稳定地对太阳能系统进行实时监控。