基于嵌入式开发板的大棚控温系统设计
2021-12-24刘克凡
刘克凡
(渭南师范学院,陕西 渭南 714099)
0 引言
温度作为基本的环境参数,在人们的生活、工作中有着重要的作用,而在工农业生产,尤其是蔬菜大棚的使用中,更是需要对温度进行实时而精密的检测控制。由于传统的温度计精度不高,也欠缺其它的控制功能。而开发板的集成度高,拥有多种功能,同时兼顾了能耗较低、稳定性好的特点。
因此文章将以开发板为蓝本,DS18B20测温单元为基础来完成温控系统的设计,使用放风机等元件实现对大棚内部温度的控制。同时将测量数据上传至PC机,用以记录大棚所在的温度环境,实现对于大棚内温度的精准控制。
1 温控系统的硬件设计
温控系统框图如图1所示,测温系统采用DS18B20测温单元,由于开发板上没有DS18B20,将DS18B20接上后开发板需要先检测其是否成功接入。系统通过LCD液晶显示屏显示温度情况与测温操作,使用按键来切换温度设定与当前温度的显示。另有一报警系统,若大棚内的当前温度连续三次掉至温度设定外时,将通过蜂鸣器进行报警并紧急关闭设备。
图1 温控系统框图
开发板会将最低/最高温度记录在存储器中,以便使用PC来查看温度情况。整个系统通过开发板输出的信号来控制温度调节模块的运作以达到控温的目的。
1.1 开发板模块
STM32开发板块中选择了一个STM32F103ZETT6作为MCU,拥有64 kbs RAM、512 kb FLASH、两个数字定时器、四个普遍广泛使用的数字定时器、两个高级别的定时器、两个新的DMA数字控制器、三个12位数的ADC、一个12位U的DAC、一个新的SDIO数字接口、一个新的FSMC数字接口,三个FSSPI,两个SDIIC,五个数字串口,一个FSUSB,一个FSCA与112个U的普通I/O口[1]。
开发板在系统中作为信息的接收与储存端,可将测得的温度信息放入存储器中,是最为核心的设计模块。
1.2 测温模块
DS18B20测温管理单元系统采用了高频晶振转换方式来进行测量输入温度的作业,无论温度高低,晶振的振荡频率不会随输入温度发生变化[2]。DS18B20电路图如图2所示。
图2 DS18B20电路图
图3为DS18B20测温单元系统图,将高温度频率系数晶振输入振荡时的频率输入一个温度减法测量计数器a,另外还有一低于高温度频率系数晶振的振荡频率与其输入振荡时的频率相同,其输入的一个温度减法测量计数器b。当b值归零时测量温度。测量时,计数器a对低温度系数晶振产生的脉冲信号进行减法计数,当计数器a的预置值减到0时,温度寄存器的值将加1,计数器a的预置将重新被装入,计数器a重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器b计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图3 DS18B20系统图
此外,斜向功率补偿累加器还设计了可以用来同时补偿其在测温处理过程中的斜率补偿和温度纠偏以及同时修正测温处理过程中可能存在的非线性测温误差。此装置的检测精度为0.1 ℃,测温范围为-55 ℃~125 ℃。
表1为DS18B20测温格式表,DS18B20接收主机传来的开始温度自动变化控制命令后系统便会自动进行温度转换。当温度转换器的工作全部完成后,温度额定值就以16位作为带符号的可扩展的第二进制进位补码的形式被分别存储在高速数据暂存器和存储器的第1,2个进位字节。系统可同时通过一个平台单线或多个数据接口直观地直接读取该平台计算机的所有数据,读取时间以低位为前,高位为后,数据的输出格式以0.062+5+℃/lsb的数据形式输出来直观显示。
表1 DS18B20温度值格式表
高五位用做定义温度前符号位,分辨率0.0625。正温度把16进制数转成10进制即可;负温度把16进制数取反后加1再转成10进制数,例如00FA是(15*16+10)*0.0625=15.62 ℃,第二个是0032是(3*16+2)*0.0625=3.125 ℃(负的)。
测温模块是温度数据输入开发板的端口,也是测量温度的基本模块。
1.3 LCD模块
本开发板采用 TFTLCD的通用模块接口,支持2.4寸、3.8寸等尺寸的TFTLCD模块。
图4为LCD电路图,LCD液晶与开发板直接相连,通过开发板内部的LCD控制器来控制LCD的动作,LCD接收到控制器发出的帧同步信号等信号后便会开始动作。由于LCD接口与 fsmc 总线相连,可大幅增加 LCD 的刷屏速率,因此能支持高速度的帧率显示,使人眼的视觉暂留,以便实现动态显示的功能。
图4 LCD 1602电路图
LCD模块是本设计的主要显示模块,承担了几乎全部的显示功能。
1.4 警报模块
报警装置采用开发版自带的HT6872音频功率放大器来驱动板载的8Ω 2W喇叭。当遇到意外情况时,由开发板给出报警信号,驱动喇叭报警提醒工作人员情况。
1.5 时钟模块
时钟模块采用了开发板自带的STM32芯片作为计时器,其功能强大,含有多种定时器,拥有SPI与IIC等通道接口。
本项目使用了2个减法计数器作为测温模块的基本构成,另有2个定时器作为时钟显示。
本模块在设计中主要起到定时与时间显示的作用。
1.6 按键电路
本设计共使用6个开发板的独立按键,为SW0~SW5,其中SW0为确定键,SW5为退出键,SW1为选择键,用户可使用这三键在面板中来回切换,SW2、SW3为调整键,用来进行对时间与阈值的设定调整,SW4为上传键,用以上传开发板中所保存的温度数据。
按键电路是本设计的主要控制手段。
1.7 控温模块
控温模块为放风机,通过将大棚内部的空气从出风口抽出形成负压,再由进风口放入外界空气,根据需求,可在进风口加装升温或降温设备以进行温度控制[3]。
控温模块接收开发板传来的信号进行动作,例如接收到升高温度信号,便让放风机通道中的加热棒启动以加热空气。
2 温控系统的软件设计
2.1 主程序设计
主程序主要有以下功能:温度数据的测量与存储;温度的显示与阈值设置;控温系统的控制与警报系统。
显示系统拥有3个界面,分为当前温度-时间显示界面,温度-时间折线图界面与温度阈值设定界面。可通过触摸屏来设定温度的上下限与上传温度数据。当温度超过阈值时,温控系统会启动,为大棚调节气温。
图5为主程序设计流程,系统的时钟控制采用了开发板自带的定时/计数器,现将定时器A时间设为10 ms,当定时器A溢出十次(1 s)后计数器A发出测温信号并将标志位置零。
图5 主程序流程图
另有一个计数器B,每当计数器A溢出360次(1 h)后便发出一次信号,让RAM存储当前DS18B20测出的温度,当使用者打开温度-时间折线图界面时,将温度数据以折线的形式表示。
由于所需测温器较多,本项目使用Wire搜索算法,采用二叉树的搜索操作,将一个大棚中的所有测温器数据收集,以节约成本、提升效率。
温度的上传采用其它的定时器,当时间过了2 h后,通过定时器将存储器的数据通过I2C总线上传到PC。
2.2 报警系统设计
为了用户的安全与设备防护考虑,在主程序外另有一温度报警计数器,若启动温控系统后,测温系统连续3次测得温度超过设定阈值时,报警计数器便发出信号,让蜂鸣器报警,以提示他人温控系统出现异常。
2.3 控温系统设计
控温系统由开发板的2个I/O口控制,分别输出升温与降温信号,给到控温系统的设备上,启动升/降温为高电平,关闭为低电平,用变换电路来增大开发板的控制信号以控制系统的设备运作。
3 测试结果
3.1 控温系统测试
测试过程中,报警系统与温度阈值的功能正常,蜂鸣器音量足够,测温系统与德国菲索AFRISO电子温度计对比,测试结果如表2所示,以测量的实验结果论,本系统的测量结果与AFRISO电子温度计结果基本一致,温度的误差不超过1 ℃,以比例来论,误差不超过3%。
表2 测温结果对照表
需要注意的是,由于环境限制,无法模拟大棚的整体温度情况,计算太过复杂,所以测试采用了小规模模拟的方式,并未出现意外情况。
3.2 警报系统测试
警报系统测试过程中,蜂鸣器功能正常,开发板检测到温度异常后立即发出信号,将控温系统停转,同时使蜂鸣器报警。
经测试,警报系统没有出现过误报或拒报的情况,可靠性较高。
4 结语
本温控系统设计基于STM32战舰开发板为控制的核心,由DS18B20测温器、放风机、蜂鸣器等设备单元组成。功能包括高精度温度检测、LCD温度显示、温度警报设置、实时时钟、放风机温度控制等功能,并且设计简洁,可靠性与灵敏度高,另增有上传数据功能,可使用PC查看当天温度数据。
经测试,本设计的功能完好,测温误差不超过0.1 ℃,控温误差未超过一次,温度上传功能可以将当天的室温储存并上传至PC实现温度的记录功能。