基于嵌入式的恒温箱温度检测系统设计
纪金钟
南通理工学院226001
1 背景
农业、工业、医疗和水产养殖业等领域对于恒温箱[1]的需求日益增长 然而传统的恒温箱在温度控制精度[2]和稳定性方面存在局限性,这给相 随着科技的不断进步和工业的发展,恒温箱控制系统[3]正朝着 研究开发基于 STM32 的温度控制系统恒温箱,将具有更高的精 应用场景。同时,随着物联网和云计算技术的普及,恒温箱控制系统 ,为用户提供更加便捷和高效的使用体验。
2 系统搭建
在基于 STM32 的温度控制系统中,合理设计和连接硬件模块是实现系统功能的基础。本节将详细介绍电源电路模块、液晶显示模块、温度传感器模块、按键电路模块、继电器和蜂鸣器的接口设计与连接模块、无线蓝牙传输模块。
2.1 电源模块
本设计采用直流5V 电源为单片机供电,电源模块设计包含一个三脚电源插座和一个六脚电源开关。电源插座负责连接外部电源,而电源开关则用于控制单片机电路的通断。具体来说,电源插座的第二脚接地,第三脚仅用于稳定插头,并无电气功能,第一脚则连至电源开关的第三脚。电源开关的第一、三脚以及第四、六脚功能相同,均用于输出电源正极。同时,第二、五脚作为单片机的接地引脚,根据输出引脚的选择,相对地选择第五脚或第二脚作为接地。
2.2 显示模块
LCD1602 的主要技术参数包括 16×2 字符的显示能力,工作电压范围为4.5~5.5V,工作电流为2.0mA(5.0V时),最佳工作电压为5.0V,字符尺寸为 2.95×4.35(mm)。此外,LCD1602 采用了标准的16 脚接口。通过间接控制方式与单片机连接,这种方式通过编程实现时序控制,而非依赖接口电路,从而节省单片机的存储空间并简化了连接复杂度。LCD1602 作为数字接口的输出设备,不仅显示效果稳定,操作简便,而且相比其他显示设备具有能耗低、体积小、重量轻等优势。
2.3 温度传感器
DS18B20 温度传感器,由美国DALLAS 半导体公司推出,是一款先进的智能温度传感器。与传统测温元件如热敏电阻等相比,DS18B20 能够直接输出被测温度的数字值,并且用户可以通过简单的编程调整输出的精度,范围从9 位到12 位不等。
2.4 按键模块
在本设计中,配置了三个独立控制按键:设置键、参数增加键和参数减少键。这些按键采用独立式设计,即每个按键通过单独的I/O 线路与单片机相连,彼此操作不会互相干扰。每个按键的一端接地,实现低电平有效的逻辑,即按下任意按键时,相应的 I/O 线路会形成低电平信号。为了消除按键的抖动现象,本设计采用软件方式而非硬件方式。
2.5 继电器与蜂鸣器
继电器和蜂鸣器用于控制加热和报警功能,接口设计与连接需要考虑到其电气特性和控制信号。具体步骤包括:将继电器的控制端连接到STM32 的GPIO 口,通过控制电平实现继电器的闭合和断开。确保继电器的供电和负载回路正确连接,以保证其正常工作。将蜂鸣器的控制端连接到STM32 的GPIO 口,通过控制蜂鸣器的工作频率和占空比实现声光报警功能。根据需要设计合适的电路保护措施,防止继电器和蜂鸣器对STM32 引脚产生过大的电压或电流冲击。
2.6 蓝牙模块
HC05 模块作为一款集成了主从功能的蓝牙串口模块,它具有较高的性能,并能与配备有蓝牙功能的PDA、手机、电脑等设备进行配对。该模块支持的波特率范围广泛,从4800 到1382400,且能与3.3V 或5V 的单片机系统兼容,提供了极大的灵活性和便利性。在微网建立之前,所有设备均处于待命状态。在此状态下,每隔1.28秒未连接的设备会进行一次消息监听。通过预设的32 个调频频率,设备在被唤醒后可以初始化主设备以建立连接。
3 软件开发
在基于 STM32 恒温箱的温度检测设计中,C 语言被广泛应用,极大地简化了编程工作,提高了开发效率。通过使用C 语言,开发者可以快速实现复杂的功能和算法,并生成高效的目标代码,确保系统在资源受限的单片机上高效运行。
3.1 恒温系统主程序设计
系统上电后立即进入传感器引脚配置阶段,这一步骤对于确保后续数据采集的准确性至关重要。每个传感器都被分配了特定的引脚,这样的设计既保证了数据的准确读取,也方便了后期可能的维护和升级工作。下一步,DS18B20 温度传感器开始其数据采集任务。这一阶段,DS18B20 将对环境温度进行连续监测,并将采集到的数据暂存,等待进一步处理。DS18B20 的使用,凭借其高精度和稳定性,为系统提供了可靠的温度监测解决方案。数据采集完成后,系统利用LCD1602 液晶显示模块对信息进行可视化展示。LCD1602 以其简单、直观的显示能力,成为了信息输出的理想选择。此时,通过LCD1602 屏幕,用户可以直观地看到当前的温度数据等信息,这对于用户理解和操作系统极为有帮助。系统还整合了按键扫描功能,这一功能允许用户通过物理按键与系统进行交互。系统持续监测按键状态,一旦检测到按键被按下,便会触发相应的按键处理函数。这样的设计不仅增强了用户体验,也为系统的操作提供了更多的灵活性。继电器的引入为系统提供了实现物理控制的能力。根据采集到的数据和用户的操作,继电器可以控制其他电子设备的开关,如加热器或风扇,以此来调节环境温度。继电器的使用极大地扩展了系统的应用范围,使其能够适应更多的实际应用场景。
3.2 显示模块程序设计
LCD1602 与单片机建立起双向通信,此环节关键在于单片机对LCD1602 的控制权,包括调节屏幕亮度和控制显示内容。经过短暂的延时,系统进入数据写入阶段,此时,温度数据和人体存在与否的信息被实时更新并显示在屏幕上。当用户需要设置温度阈值或人体红外报警值时,LCD1602 能够根据按键操作即时反映数值变化,增强了交互的动态性。通过执行如下命令序列——初始化显示内容、延迟处理、写入指令和数据——LCD1602便能准确展示出当前的环境状态。
具体到程序代码层面,显示内容的初始化采用字符数组 uchar code Init1[]="Temperature: C"; 来定义初始显示信息。接下来的操作包括 LCD 的延时处理 void LCDdelay(uint z);写入指
void write_com(uchar com);和写入数据 void write_data(uchar data);在执行 void Init1602 函数初始化 LCD1602 时,系统通过 write_com(0x38)设定显示模式,并循环调用 write_data(Init1[i]);将初始显示信息写入显示屏。
3.3 温度报警程序设计
该模块由四个主要部分组成:64 位的只读存储器(ROM)、温度感应单元、非挥发性温度报警触发器(TH和TL),以及配置寄存器。ROM 内嵌有独一无二的64 位序列号,这个序列号在生产过程中通过光刻技术固化于每个 DS18B20 芯片中,确保了每个传感器的唯一性。这个64 位的序列号不仅作为 DS18B20 的地址识别码,其内部还包含了用于错误检测的循环冗余校验码(CRC),其计算公式为 CRC=X∧8+X∧5+X∧4+1. 。通过这种设计,可以在同一总线上挂接多个 DS18B20 传感器而不会发生地址冲突。
3.4 按键控制程序设计
为了准确地检测按键动作并防止误触,在软件中实施了简单而有效的去抖动逻辑。具体地,通过条件判断语句if(K1==0)来检测某个按键(例如K1)是否被按下(即检测到低电平)。一旦确认按键被按下,系统则进入一个延时循环 while(K1==0)以消除因按键抖动可能引起的误操作。在这个过程中,如果是增加键被按下,相应的数值会增加;若是减少键(K2)被按下,则执行 delay_key函数以延时,随后通过while(K2==0)循环等待,直到按键释放,从而实现数值减少的操作。这种按键检测与处理机制不仅确保了操作的准确性和可靠性,还通过软件逻辑简化了硬件设计,提高了系统的整体性能。
3.5 蓝牙程序设计
首先需要对蓝牙模块进行上电操作,此时模块上的 LED 指示灯将开始闪烁,表示模块已经进入工作状态。随后,单片机通过执行初始化函数 voi ned int baud);来设置蓝牙通信的波特率,本设计中波特率设定为 9600。此外,通过打开总中断 EA=1 单片机准备好接收和发送数据。数据传输阶段,单片机利用串口发送函数 void uart_send(unsigned cha r len)来发送数据, 其中bufs 代表待发送的数据字符串,len 表示该字符串的长度。单片机将按照串口通信协议, 次性或分批发送这些数据,直到所有数据均被发送完毕。这一过程通过while (len--)循环控制,确保每一位数据都被准确无误地传输至手机端。
4 系统验证
系统初始化、温度控制测试、报警功能测试和性能稳定性测试等步骤,确保了实验操作的规范性。在实验结果分析部分,对系统的温度控制精度、稳定性和报警功能的可靠性进行了详细分析,得出了客观准确的结论。在性能评估与对比分析中,将系统与传统系统和同类产品进行了性能对比分析,评估了系统的竞争优势和改进空间。
参考文献:
[1]赵志强. 基于STM32的水温播报控制系统设计[J]. 农业装备与车辆工程,2021,59(11):127-130.
[2]袁刚,徐俊,程明利,等. 基于STM32的电锅炉温度控制系统的设计[J]. 电子测试,2019(11):1
[3]严向文. 基于STM32的医用多路温度控制系统设计[J]. 机电技术,2021(2):15-17,27.
[4] 徐子恒. 基于STM32 和ZigBee 技术的生鲜柜温度控制系统分析[J]. 现代工业经济和信息化,2023,13(2):158-160.
[5]李天旭,陈广大,王腾腾,等. 基于STM32的恒温水浴温度检测与控制系统设计[J]. 计算机测量与控制,2017,25(6):41-44,48.
[6]贺佩. 基于STM32单片机的温度控制系统设计[J]. 电脑知识与技术,2022,18(8):98-99.