关闭视频

基于机智云平台的太阳能热水器控制系统

发表于:2022年03月18日 14:23更新于:2024年05月06日 08:29

本设计基于机智云平台的太阳能热水器控制系统,是针对太阳能热水器设计的物联网控制系统, 用户通过互联网就能对家中太阳能热水器进行远程控制和运行监测。该系统采用 STM32F103ZET6 为控制芯片,ESP8266 WiFi 模块为通信模块,结合其它硬件电路与设计完成对太阳能热水器的远程控制。实验证明该系统能够通过手机终端实现实时监控、加热、上水、定时以及故障报警等功能。

 

机智云平台是一个用于物联网开发的云服务平台,为开发者提供了自助式智能硬件开发工具与开放的云端服务。它可以自动生成 MCU 和移动终端的代码,通过固定式的自助工具、完善的 SDK 与 API 服务能力最大限度降低了物联网硬件开发的技术门槛,缩减了开发者的研发成本,提升了产品投产速度, 进而帮助开发者进行硬件智能化升级,更好地连接、服务最终消费者。

 

该系统中主控制芯片 STM32F103ZET6 通过 WiFi 无线通信模块将太阳能热水器相关参数和状态发送给基于机智云平台开发的手机 APP 界面来显示,从而实现远程操作控制,让用户在各个地方都能对家中设备进行查看和操控,操作更加便捷, 在满足用户需求的基础上尽可能地减少能耗。

 

 

总体方案设计

 

本系统由主控制器 STM32F103 芯片、温度传感器、液位传感器、电辅热装置、上水控制装置、报警装置、Wi-Fi 通讯模块、 机智云服务平台和手机终端组成。其中电辅热装置包括继电器 和与之相连接的加热棒, 上水控制装置包括继电器和与其相连的电磁水阀。

温度传感器和液位传感器将从太阳能水箱中采集的信息传输给主控制器,主控制器将传输过来的数据进行加工、 处理与显示。然后,通过 WiFi 无线通信模块将数据传输给基于 机智云平台开发的手机APP 界面来显示,用户可通过手机 APP设定理想水温和水位。

系统还加入了报警装置和定时功能,当系统发生干烧或者水温过高时,系统会发出报警提醒。此外,用户也可以通过系统定时功能选择任意时间加热和上水,方便快捷, 具体的系统结构框图如图所示。

 

图1 太阳能热水器系统结构框图

 

整个系统优化了传感器的选取,同时与机智云平台相结合,有针对性地解决了传统控制系统中的不足, 使用户能够随时随地查看热水器状态且对热水器进行操控,满足了用户需求,节约了更多能源,改善了用户体验。

 

 

系统硬件设计

 

温度传感器模块

本系统需要测量太阳能热水器中的水温,范围为 0~100℃,经过综合对比 , 选择 DS18B20 作为系统的温度测量模块 。DS18B20 温度传感器的温度测量范围为-55~+125℃, 精度 为±0.5℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。使用时需将 DS18B20 置于太阳能水箱的底部,以保证当太阳能水箱内水位过低时,也能够实时检测水箱内水的温度。

 

声光报警装置

为了防止意外,本系统添加了声光报警装置,该装置是由一个有源蜂鸣器和两个 LED 灯组成,其中一个是水位报警,另一个是高温报警。当太阳能水箱中水位低于设定值或者水箱中水温高于设定值时,声光报警装置启动,以引起操作人员的注意, 同时主控制器也会发出工作信号,停止上水或加热操作。

 

液位传感器模块

本系统选择的是 KY 系列压力传感器,采用的是硅压阻式差压压力芯体,压力传感器输出端口的电压与检测口处的压强成正比例线性关系。根据帕斯卡定律,液体内部压强与液体深度有关,因此将检测口放于水箱底部,通过测量输出端口的输出电压,即可计算出水箱水位。使用前 需将检测口放置到太阳能热水器蓄水箱底端,导气管高于水箱顶 部,这样当液面高于检测点时,测量点处的压器即为液体压强。

 

电辅热模块和上水控制模块

本系统中的电辅热模块包含继电器和加热棒, 上水控制模块包含电器继电器和电磁水阀。其中继电器是实现外部设备控制的主要手段, 因此继电器的有效控制是执行器模块安全稳定运行的保证。继电器种类繁多,本系统经过对加热棒和电磁水阀的功率进行分析,选择了 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,在继电器可承受的功率范围内,满足系统要求。

 

WiFi 无线通讯模块设计

通信模块主要采用AKT-ESP8266为核心模块,该模块为 UART-WiFi 模块。通过对 STM32 的串口初始化后,模块与主控芯片能够进行串口通信。选用平台为机智云平台,机智云拥有大量的开发经验和技术积累,其所提供的GAgent 通信协议能与模块发生交互以进行数据交换。平台软件兼容并支持 ESP8266 模块, 在对 ESP8266 完成初始化之后, 工作时通过机智云的手机 APP 与 ESP8266 进行云端的数据交换传输,从而完成对系统的控制。而其中的通信内容能够被 存储到云平台的开发者中心。

 

 

系统软件设计

 

主程序流程

主程序开始后首先对各个模块进 行初始化和进行设备的自动配网。然后进入主循环程序,在温度检测、 水位检测、报警处理、时间定时、数据传输等子程序不停地被调用的同时也对系统状态进行检测判断,若有异常情况立即进行相应处理,其流程图如图 3 所示。

 

图3 主程序流程图

 

在主循环程序中,首先对传感器模块子程序进行调用, 读取所检测的温度、 水位等数据;然后根据这些数据判断系 统是否工作在异常状态,其标准是判断水温是否过高,高于设定值和水位是否过低,低于设定值。

 

若有异常,则控制报警装置发出报警信息,同时发送指令给执行器子程序控制上水装置或加热装置停止工作,若无异常,则继续执行下面的程序;第二次判断有无接收到手机终端所发出的控制指令,若接收到控制指令则响应该指令,未接收到控制指令则根据时间、系统数据和工作模式调用执行器子程序,对系统的运行状态进行控制。之后调用定时器子程序完成定时操作,最后调用数据传输子程序,将系统数据和运行 状 态发送至手机终端,进入下一轮循环。

 

执行器子程序

执行器子程序包含着完成上水和加热两种动作的整个过程。系统的加热操作过程与上水操作过程基本相同,下面就以加热操作为例, 详细讲解执行器子程序的运行流程。加热流程图如图 4 所示。

 

图4 加热流程图

 

当系统温度高于设定值时,控制器会控制继电器断开加热棒的 电源, 使加热棒处于停止加热状态;当系统温度低于设定值时,判断系统是否处于可加热状态,判断的依据是水 位是否过低会导致加热棒干烧。如果处于可加热状态,控制加热棒加热,当水温达到设定水位后,加热棒停止加热。如果未处于可加热状态,则向用户发送低水位信息,提醒用户水位过低,无法加热。

 

 

 

机智云平台设置

 

数据点设置

本系统设计中的通信部分选用了机智云平台作为云平台,首先需要通过机智云平台来完成其通信部分的代码, 在机智云平台中生成项目后下载平台提供的部分代码。在生成的项目中,需要向其中添加数据点。

 

数据点的读写类型可区分为只读、可写、报 警、故障 4 种:只读型数据点,即只能够读取数据点的返回数值, 而不能对数据点写入数值;而可写型数据点既可以对数据点写入数值也可以读取数据点返回数值;报警和故障类型的数据点 一般用于监测系统故障时的异常变量。

 

本设计中仅使用了前两种,而每种类型数据点又有不同的数据类型。控制开关部分采用 了可写类型数据点,布尔量类型数据,即 0 为关闭,1 为开启;变 量的设置部分也采用了可写类型数据点,数据类型为数值型;而温度和水位返回值部分采用只读类型数据点, 数据类型为数值型,用于显示当前太阳能水箱中水温和水位信息。

 

在设计中, 数据点是很重要的一部分, 所以需先将数据点设置好再进行之 后的开发。采用 STM32 CubeMX 来创建工程,它能够初始化芯 片所有的外设配置,而 Keil μVision5 作为开发环境。

 

本设计中选用了 10 个数据点对应不同的功能,通过对系统需求的分析, 该系统需要 5 个布尔型的数据点来分别实现模式切换、加热状态切换、上水状态切换、加热定时状态切换、上水定时状态切换, 同时需要 5 个数值型的数据点来分别实现温度显 示、水位显示、温度设置、水位设置、温度定时设置、水位定时设 置。数据点具体情况如表1所示。

 

机智云自生成 APP 的二次开发

 

机智云服务平台本身能够根据开发者创建的项目, 生成对应的手机 APP 框架,在生成的 APP 框架中已经封装了手机(包括 PAD 等设备)与机智云智能硬件的通讯过程,以及手机与云端的通讯过程。这些过程包括配置入网、发现、连接、控制、心跳、状态上报、报警通知等。

 

所以在 Anddrio Studio 的开发环境下对机智云服务平台生成的 APP 框架进行二次开发时,只需要调用相应的 API 函数对 APP 的 UI 界面进行修改即可。通过对APP 的界面的背景,页面进行布局,数据的显示等方面的修改得到了如图 5 所示的手机 APP 界面。

 

 

 

系统测试

 

为了方便测试,在系统中加了一块 LCD 显示屏,用于显示系统的参数,方便与手机 APP 进行对比。所以设计的硬件平台在接入12V 直流电源后,打开手机 APP 查看设备是否连接,确认手机 APP 与主控制器持续通讯后。机智云平台会每隔固定时间会向主控制器发送查询指令, 主控制器接收到查询指令后会将所采集的水温水位等数据发送给机智云平台,从而在 APP 上显示出来。

 

在 APP 界面中有按钮可对系统的参数和运行状态进行更改, 当点击上水按钮后,APP 会向主控制器发送控制指令, 主控制器接收到指令后会发出信号控制上 水继电器吸合, 同时在 APP界面上会有相应的显示变化。

 

当主控制器对 APP 发出的控制指令进行响应后,继 电器指示灯会变亮, 同时在 用于测试 LCD 屏中开关 状态也会有相应变化,S1 表示 上水开关,S2 表示加热开关。 

 

图6 LCD 显示屏参数显示图

 

图 6 中 Temp 代表所水温,Depth 代表的是水位,Mode 代表的是当前系统工 作 模式,本文中 Auto 表示智能模 式 ,T1 表示自动上水时间 ,A1 表示上水量,T2 表示加热时间,A2 表示加热温度。

 

图7 APP数据显示界面图

 

由 图 6 和 图 7 可 以 看 出,APP 显示的数据与用于测试的LCD 显示屏参数保 持一致, 且在 APP 界面中进行操作可以完成控制指令的下发。测试表明, 所设计的手机 APP 既能显示热水器的状态和参数, 又能达到控制上水和加热的效果。

 

 

系统总结

 

本文设计了一种基于机智云平台的太阳能控制系统 ,以STM32F103ZET6 芯片为主控制器, 以 ATK-ESP8266 WiFi芯片作为物联网通讯模块与机智云平台互联, 再配合各个功能模块的电路设计,实现了用户可以通过手机终端的 APP 实现实时监控、加热、上水、定时以及故障报警等功能。