基于机智云的STC单片机水温智能控制系统的设计与实现-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1293|回复: 0

基于机智云的STC单片机水温智能控制系统的设计与实现

[复制链接]
发表于 2021-11-17 16:10 | 显示全部楼层 |阅读模式
本文设计了一种物联网的水温控制系统,包括机智云物联网平台,DS18B20水温传感器、水温主控制器和通信模块STC单片机、esp8266无线模块等。系统通过采集当前水温的状态和按键的控制状态,采用PID算法得到控制值,输出信息给加热驱动和直流电机模块,实现水温的加热,同时通过并口和通信模块连接,通信模块通过串口和ESP8266连接,ESP8266通过WiFi连接物联网平台,实现温度的远程监测和控制。

1、系统总设计
系统硬件包括STC单片机控制电路、通信电路、液晶显示电路、加热驱动电路、温度均匀搅拌装置和无线WiFi模块组成的系统硬件装置。系统硬件模块连接如图1所示。系统软件主要采用C语言编写,通过C语言和Keil搭建软件编程环境,机智云物联网平台和硬件电路开发板作为调试工具来完成系统设计。



2 关键电路设计
2.1系统主控模块和通信模块


在智能化控制方案中,系统采用两个STC单片机搭建方案,一个STC单片机作为主控制器,负责信号的处理、显示、输出控制等。另一个STC单片机作为通信控制器和ESP8266无线WiFi连接,解决通信中通信协议数据量大和控制器RAM小的问题。其中ESP8266无线WiFi器件为核心的数据传输模块,连接机智云物联网平台,数据通过通信链路实现传输,在机智云物联网平台上或终端进行数据监测。其硬件原理图如图2所示。


2.2 系统工作电源及最小系统工作原理图

系统工作电源采用直流稳压电源,利用变压器把220V交流变直流,通过桥式镇流、滤波、稳压器件LM7805和LM1117RS-3.3分别得到5V和3.3V的工作电源。直流加热电源采用集成24V/200W的开关电源供电。5V和3.3V的电源分别为STC单片机最小系统和ESP8266无线WiFi模块供电,其中STC单片机最小系统包括电源电路、复位电路、时钟电路及下载电路。硬件原理图如图3所示。



2.3 信号采集及电机搅拌原理图


温度采集采用DS18B20传感器对水温进行采集,加热系统采用直流加热棒进行加热。在整个加热和水温采集环节,发现采集的温度点不一样,得出温度控制参数不一致,经过不断实验和发现,温度在加热过程中存在不均匀现象,会有不同温区存在。为解决水温不均匀的现象,设计一种搅拌装置,在水温加热过程中周期性对加热区的水进行搅拌,使得DS18B20能够采集到较准确的水温值,在整定PID过程中能够得到更为准确的PID参数,进而提高系统稳定性和可靠性。硬件原理图如图4所示。


2.4 信号输出驱动及液晶显示电路原理图


系统采用24V/200W直流电对加热棒进行加热,加热棒的温度直接影响水的温度,因此控制加热棒温度就能控制水的温度。设计一种PWM(脉宽调制)信号对直流加热棒的驱动电压加热时间进行控制,进而控制加热的热能,PWM信号是实际温度与设定温度的差值通过PID计算得到的一个控制值,能够精确控制温度信号。为使控制器的PWM输出能够控制24V/200W的驱动信号,用SSR单项固态继电器设计了输出驱动电路,经反复实验表明,该驱动电路能够满足系统的要求。其显示部分用带中文字库的字符液晶ST7920控制的12864显示温度数据和温度设定,并实现温度曲线的实时绘制和温度控制时间的显示。其硬件原理图如图5所示。


3 软件流程架构及算法

随着通信技术的发展,STC单片机的功能越来越强大,有代表性的编译软件有Keil、IAR、CodeWarrior等。代码语言有汇编语言、C语言、Java语言等。C语言具有良好的逻辑及功能性,本次设计选择STC单片机作为主控制器,编程语言选用C语言,编译软件选用软件Keil。


3.1 系统软件设计总体流程图


整体系统软件设计是由系统中不同功能模块整合在一起实现系统功能。系统中包括PWM输出程序设计、PID温度控制程序、按键扫描程序、液晶显示驱动程序、WiFi模块通信程序、报警电路、DS18B20温度传感驱动程序及电机驱动搅拌装置。根据软件框架图,设计程序流程图,为程序的功能实现、算法编码、软硬件调试、后期维护提供条件。程序总体流程图如图6所示。



图6 程序总体流程图


3.2 系统核心控制和通信算法理论


PID温度控制是一种成熟技术,具有结构简单、易于理解和实现的特点。在工业控制中90%以上的控制系统回路都具有PID结构。PID调节将设定值W与实际值y进行比较构成偏差,并将其比例、积分、微分通过线性组合构成控制量。采用PID控制效果的好坏很大程度上取决于PID三个控制参数的确定。PID控制主要构成如如7所示。



图7 模拟PID控制

PID控制的动态方程为:


其中,Kp为调节器的比例放大系数;Ki为积分时间常数;Kd为微分时间常数。

水温系统的智能控制采用PID增量式算法,根据实验结果和数据,采用先比例再积分,最后微分的实验凑试法进行PID参数整定。比例系数的整定取消积分和微分的作用,采用纯比例控制,将比例系数从小到大调节,观察系统的响应,直到响应速度快且有一定范围的超调,得出比例系数。

积分部分的整定,如果系统的静态差达不到系统要求,这时需加入积分,整定时积分系数由大到小逐渐递减,观察输出,直至系统静态误差减小或消除,得出积分系数。微分系数的整定,如系统通过比例和积分调节都不能达到要求,需加入微分系数,同样,整定时使微分系数从小到大逐渐增加,观察超调量和稳定性,同时微调比例系数和微分系数,观察系统的输出响应、超调量和稳定性。通过不断实验和整定,电源为200W直流加热系统,加热0.5升的纯净水,在温度变化为20℃时,超调量不超过0.1℃,得出PID的比例系数为19,积分系数为0.036,微分系数为0.8,能够使PWM输出达到系统控制要求。


智能水温控制系统,通信部分主要是STC单片机之间的通信、STC单片机和ESP8266 WiFi的通信,以及ESP8266 WiFi和机智云之间的通信。由于STC单片机模拟了PWM的定时输出,如果利用串口进行通信,会出现不稳定现象,为避免这种现象,STC单片机之间的通信采用并行口,结合P15、P16实现并口通信协议,协议内容如表1所示。STC单片机通信控制从P0端口接收到温度控制器传输的数据后,用串口连接ESP8266 WiFi模块,ESP8266 WiFi模块连接当前环境的路由器热点,与机智云服务器建立TCP连接,进行数据传输。



同时,
手机终端或WEB终端发送控制命令,通过命令数据
→机智云服务器
→ESP8266 WiFi
→STC单片机通信控制
→STC单片机控制系统的通信流程,对温度进行远程监控。



4 实验数据结果

根据软硬件测试,系统自检正常,温度显示正常,通信正常。设定STC单片机控制水温在一定范围内,对整体水温控制系统进行测试,在20~60℃范围内实现多组设定,温度控制实验效果如图8所示。


图8 温度控制实验效果

通过实验结果分析,每个测试的目标温度反映实际和误差,在相同测试环境下,将温度计和温度采集模块所测得温度进行比对,将数值记录得到表2,从而得到标度误差。


5 结束语

设计以STC单片机结合增量式PID、PWM脉宽输出、机智云物联网平台,完成了系统软硬件设计,经过综合调试和测试,验证了该远程控制系统软硬件设计结构合理,性能可靠,操作方便。由于时间和实验条件限制,该系统设计仍有一些缺点和不足,没有采用更高性能的处理器来完成硬件和软件设计,未来有待进一步完善。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 07:42 , Processed in 0.068632 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表