何建新
基于AT89C52单片机的粮仓多点温度监控系统设计
何建新
(黄冈职业技术学院电子信息学院,湖北 黄冈 438002)
提出一种基于AT89C52单片机的粮仓多点温度监控系统,旨在实时监测粮仓内多个点位的温度信息,为粮食储存安全提供保障。系统采用AT89C52单片机作为核心控制器,结合4路DS18B20温度检测模块进行温度采集。软件设计中主程序负责系统的初始化、各子程序的调用和执行顺序控制。读出温度子程序负责从DS18B20中读取温度数据,而计算温度子程序负责对读取到的温度数据进行处理,得到实际温度值。为确保系统的稳定性和准确性,对系统进行了功能测试、稳定性测试和准确性测试。测试结果表明,系统能够顺利读取DS18B20温度检测模块采集到的温度数据,具有良好的稳定性和准确性。同时,通过对系统延时进行优化,确保系统能够实时更新温度数据,满足实际监控需求。
AT89C52单片机;粮食;温度监控;系统
粮食在粮仓存放过程中温度的变化对于粮食的质量影响较大。在传统方法中对粮仓的温度监测通常是选择一个统计温度,但对于空间较大的粮仓来说,这种方法并不能准确反映各点温度的变化情况。如果不能及时发现粮仓内的温度变化,会在保管过程中出现各种粮食质量问题[1]。
因此,设计一种基于单片机的粮仓多点温度监控系统,能够实时监测粮仓内各点温度变化并自动报警,能够自动调节粮食的保鲜环境,可以提高粮食的质量及维持粮仓内稳定的环境温度,从而有助于减少粮食的损失和改善人们的生活质量。
图1 粮仓多点温度监控系统的总体框图
构建一个多路温度检测的智能化监测与控制系统,如图1所示,主要由以下几个部分组成。
AT89C52单片机:作为整个系统的数据处理和控制主单元,负责接收 DS18B20 温度传感器的数据,处理数据并通过 NI-VISA 与其他设备进行通信。同时,根据设定的温度阈值,控制 LED 报警灯和蜂鸣器发出警报[2]。
DS18B20 温度传感器:多个 DS18B20 作为温度采集设备,通过单片机与整个系统相连。每个传感器可以进行独立的温度采集,提高整个系统的监测精度和实时性。
人机互动设置按键:通过设置按键,用户可以根据需要对系统进行配置,例如设定温度阈值、选择特定温度传感器等。这些设置将通过单片机实现对整个系统的控制。
LED 和蜂鸣器报警装置:若干个 LED 和 1 个蜂鸣器作为报警装置,当某个 DS18B20 温度传感器检测到的温度超过设定阈值时,相应的 LED 会亮起,蜂鸣器会发出警报。这样可以及时提醒用户注意潜在的温度问题,防止事故的发生。
NI-VISA:作为硬件系统与其他设备的桥梁,实现单片机与上位机之间的通信,方便数据传输和远程控制。
Labview 上位机编程:通过 Labview 软件对上位机进行编程,实现对整个系统的远程监控和控制。用户可以通过上位机查看实时温度数据、设定温度阈值、选择特定温度传感器等。同时,上位机还可以对温度数据进行分析和处理,生成报表以供用户查看。
通过以上各个模块的相互配合,可以实现对多路温度检测的智能化监测与控制,实现了全面、实时、便捷的粮仓多点温度监控,为生产管理和决策提供了可靠的数据支持,保障了粮食的质量和安全。同时,该系统具有简单、易于维护和成本低等优点,使得它在农业领域有很高的实用价值。在未来的发展中,可以结合新技术和新理念,进一步提升系统的性能和功能,以更好地服务于农业生产和粮食储存管理。
图2 粮仓多点温度监控系统电路原理图
根据系统设计目标,在图2右下角,采用四个人机互动设置按键[3]。这四个按键分别具有不同的功能,包括温度点切换、页面切换、加、减,以方便用户对系统进行设置和操作。
温度点切换按键:通过此按键,用户可以在不同的温度采集点之间切换。这有助于用户了解粮仓内各个区域的温度状况,及时发现异常温度变化。通过切换温度点,用户能够监控粮仓内每个采集点的实时温度数据。
页面切换按键:此按键用于在系统的不同页面之间进行切换,如实时温度监测页面、历史数据查询页面、系统设置页面等。用户可以根据需要轻松访问和操作各个功能页面,使得系统操作更加直观和便捷。
加按键:用户可以通过加按键对系统进行相关设置的增加操作,例如在设定温度阈值时,按下加按键可逐步增加阈值,或在选择温度采集点时,按下加按键可逐个向后切换。
减按键:与加按键相对应,减按键用于进行相关设置的减少操作。如在设定温度阈值时,按下减按键可逐步降低阈值;在选择温度采集点时,按下减按键可逐个向前切换。
通过这四个人机互动设置按键,用户可以轻松地在温度采集点之间切换,在功能页面之间切换,以及对系统参数进行加减操作。这使单片机粮仓多点温度监控系统更加易用、高效,有助于管理员对粮仓内的温度状况进行实时监控和管理,确保粮食安全储存。
根据系统设计目标,在图2中,采用四路 DS18B20 温度检测模组,主要由U2、U3、U4、U5,四个DS18B20测温器件构成。这些测温器件将粮仓内不同位置的温度信息实时传输给单片机进行数据处理[4]。
DS18B20 传感器特点:DS18B20 是一款数字式温度传感器,具有较高的测温精度和稳定性。它可以在 -55℃ 至 +125℃ 的范围内测量温度,分辨率可配置为 9 位至 12 位。其数字式输出信号具有较强的抗干扰能力,适用于各种环境条件下的温度检测。
四路 DS18B20 温度检测模组:四个 DS18B20 传感器分别位于粮仓的不同位置,用于实时监测粮仓内多个区域的温度变化。通过这种多点温度监测方式,能够更全面地了解粮仓内的温度状况,为粮食安全储存提供保障。
数据传输与处理:每个 DS18B20 传感器通过与单片机相连,传输测量到的温度信息。单片机接收到各个传感器的温度数据后,进行数据处理和分析,如计算平均温度、检测温度异常等。处理后的数据可以用于实时监控、报警或进行历史数据分析。
系统扩展性:采用 DS18B20 传感器的多点温度监控系统具有较好的扩展性。当需要增加更多的温度检测点时,只需增加相应数量的 DS18B20 传感器并连接至单片机即可。这种灵活的扩展方式使系统能够适应不同规模和需求的粮仓温度监测场景。
通过采用四路 DS18B20 温度检测模组,单片机粮仓多点温度监控系统实现了粮仓内多个区域的实时温度监测,有助于及时发现异常温度变化,确保粮食的安全储存。同时,系统具有良好的扩展性,能够满足不同规模粮仓的温度监控需求。
采用 AT89C52单片机作为核心处理器,搭配 LCD1602 液晶显示模块、声光报警模块等构成一个高效、稳定的粮仓温度监控系统[5]。
AT89C52 单片机:AT89C52 是一款8位单片机,具有较高的性能和稳定性,适合应用于温度监控系统。在本系统中,单片机负责接收温度传感器采集的数据,进行数据处理和分析,并通过液晶显示模块实时显示温度信息。同时,单片机还负责根据设定的温度阈值控制声光报警模块发出警报。
LCD1602 液晶显示模块:LCD1602 是一款16×2字符液晶显示模块,具有较高的显示清晰度和稳定性。在本系统中,LCD1602 用于实时显示粮仓内各个温度检测点的温度数据,方便用户直观地了解粮仓内的温度状况。此外,LCD1602 还可以显示系统设置菜单,便于用户进行参数设置和功能操作。
声光报警模块:声光报警模块主要由蜂鸣器和 LED 灯组成,用于向用户发出温度异常警报。当某个温度检测点的温度超过设定阈值时,单片机控制蜂鸣器发出声音警报,同时 LED 灯闪烁,以提醒用户注意粮仓内的温度异常。声光报警模块的设置可根据用户需求进行自定义调整。
通信接口:本系统可以通过串口、USB 或者无线通信模块与上位机或其他外部设备进行数据交互。通过通信接口,用户可以实现远程监控和控制,以及数据的导出和备份等功能。这大大提高了系统的实用性和灵活性。
基于AT89C52 单片机的粮仓多点温度监控系统具有实时监测、高精度测温、声光报警、人机交互等功能,能够有效地预防因温度异常导致的粮食安全问题。同时,系统具有良好的扩展性和灵活性,可以根据不同规模和需求的粮仓进行定制。可以满足现代农业生产和粮食储存的需求,具有广泛的应用前景。
主程序主要负责系统的初始化、各子程序的调用和执行顺序控制。见图3,具体流程如下。
系统初始化:配置单片机的工作模式,包括定时器、中断、串口通信等相关参数;初始化液晶显示屏(LCD);配置DS18B20的工作模式。程序进行各个传感器的初始化,包括DS18B20温度传感器的精度设置、开始温度转换等。然后进入一个循环中,每1秒钟进行一次温度测量。在循环中,程序通过多路复用器来选择每个传感器,并进行温度读取和处理。
在循环中,程序首先选择一个传感器,通过延时等待完成温度转换,并读取传感器ROM码,进行CRC校验,确保读取的数据正确。然后,程序读取传感器测量的原始温度值,并进行一定的计算和处理,得到最终的温度值。完成对该传感器的温度测量后,程序将温度值储存在内存中,接着进行下一个传感器的温度测量,以此类推,直至所有传感器的温度都测量完毕。
最后,程序将各个传感器的温度值实时显示在液晶显示屏上,包括当前时间、温度值以及一些其他的状态信息。同时,程序会对超过设定阈值的温度进行报警,以提醒用户及时采取措施。
图3 主程序流程图
图4 读出温度子程序流程图
读出温度子程序主要负责从DS18B20中读取温度数据。见图4,具体流程如下。
子程序对DS18B20进行初始化,包括设置传感器的精度和开始温度转换。初始化完成后,子程序通过单总线协议与DS18B20通信,并向其发送读温度命令,等待传感器返回温度值。
接下来,子程序读取传感器ROM码,以获取传感器的唯一标识符,并进行CRC校验,确保读取的数据正确。然后,子程序读取传感器测量的原始温度值,并进行一定的计算和处理,得到最终的温度值。
最后,子程序将温度值返回给主程序,以便实时显示和报警处理。在返回温度值之前,子程序还可以进行一些额外的处理,例如对超过设定阈值的温度进行报警等。
计算温度子程序主要负责对从DS18B20读取到的温度数据进行处理,得到实际的温度值。见图5,具体流程如下:将温度高字节和低字节组合成一个16位数据。判断温度数据的正负号,如果是负数,对数据进行补码处理。对16位数据进行右移1位,得到12位有效数据,表示温度的整数部分和小数部分。计算温度值:将12位有效数据转换为实际温度值。温度值的整数部分可以通过将12位数据右移4位得到,而小数部分可以通过将整数部分移出后的8位数据乘以0.0625(即2的-4次方)得到。将计算得到的实际温度值返回给主程序。
图5 计算温度子程序流程图
为了实现对下位机采集到的温度数据的实时显示和监控,使用Labview软件对上位机进行编程。具体流程:(1) 创建新的Labview项目,设置串口通信参数,包括波特率、数据位、停止位等。(2) 设计用户界面,包括温度数据显示、实时曲线绘制等模块。(3) 编写接收数据子程序:从串口接收来自下位机的温度数据,并进行解析。(4) 编写数据处理子程序:根据接收到的温度数据,进行相应的数据处理,包括实时曲线绘制、数据存储等。(5) 编写控制程序:实现对下位机的启动、停止等控制操作。
为确保粮仓多点温度监控系统的稳定性和准确性,对系统进行了测试与优化。
功能测试主要对系统的多点温度采集、数据处理和上位机显示功能进行验证。系统能够顺利读取DS18B20温度检测模块采集到的温度数据,并通过计算子程序得到实际温度值。同时,上位机能够接收到下位机发送的温度数据,并在Labview编程的界面上实时显示和绘制温度曲线。
稳定性测试主要评估系统在长时间连续运行的条件下的性能。通过长时间运行测试,验证了系统具有良好的稳定性,能够在实际应用场景中正常工作。
准确性测试主要通过对比实际温度与系统显示的温度值,评估系统的精确度。经过测试发现,系统显示的温度值与实际温度值的误差较小,证明了DS18B20温度检测模块具有较高的采集精度,满足粮仓多点温度监控的需求。
根据实际应用场景,对系统的采集与显示延时进行优化。通过调整延时参数,使系统能够实时更新温度数据,满足实际监控需求。
综合以上测试,基于AT89C52单片机的粮仓多点温度监控系统具有较高的稳定性、准确性和实时性。在粮食储存环境中,能够有效地监测多个点位的温度变化,为粮食安全提供有力保障。
基于AT89C52单片机的粮仓多点温度监控系统经过严格的测试及性能分析,证明了其在实际应用中具有较高的可靠性和实用性。未来可以进一步完善系统功能,如增加数据存储、远程监控等功能,为粮仓温度监控带来更多便捷。
基于AT89C52单片机的粮仓多点温度监控系统的软件设计,包括主程序、读出温度子程序和计算温度子程序。系统采用AT89C52单片机作为核心控制器,结合四路DS18B20温度检测模块进行温度采集。通过对系统的测试与优化,实现了对粮仓内多个点位的温度信息的实时监控和显示,为粮食储存的安全提供了有力保障。
[1]刘康灵,刘丹娟.基于单片机的粮仓多点温度监控系统的设计[J].新余学院学报,2017,22(5):148-151.
[2]杨智霞.基于单片机的无线多点温度监控系统设计[J].无线互联科技,2022,19(16):86-88.
[3]刘鹏娟,杨斌.基于单片机的多路温度测量系统的设计[J].电子制作,2022,30(20):39-41+82.
[4]朱高中.基于单片机的粮仓温湿度远程监控系统的 设计[J].湖北农业科学,2013,52(3):677-681.
[5]冯鹏飞.ZigBee在粮仓温湿度远程监控系统中的应用设计与实现[D].河北工程大学,2015.
[6]王文成.基于单片机的粮仓多点温度监测系统设计[J].农机化研究,2010,32(7):90-92+96.
TH811
A
1672-1047(2023)05-0136-04
10.3969/j.issn.1672-1047.2023.05.35
2023-09-18
何建新,男,湖北英山人,副教授。研究方向:电子技术应用研究。
[责任编辑:刘良瑞]