基于STM32单片机的液位自动检测与控制系统设计(全部资料)

基于STM32单片机的液位自动检测与控制系统设计

摘要

本设计基于STM32单片机,构建了一个液位自动检测与控制系统。该系统能够实现液体液面高度的自动检测与控制,支持通过按键模块和手机APP调节液面高度范围、切换手动/自动模式,并具备声光报警、液晶显示和手机APP远程监控功能。同时,系统还集成了温度、湿度和烟雾检测功能,当相关参数超出设定阈值时,通过蜂鸣器进行报警。

关键词

STM32单片机;液位检测;自动控制;手机APP;声光报警

目录

一、引言
(一)研究背景与意义
(二)国内外研究现状
(三)研究内容与方法

二、系统总体设计
(一)系统需求分析
(二)系统总体架构
(三)硬件选型

三、硬件电路设计
(一)单片机核心电路
(二)液位检测电路
(三)按键与显示电路
(四)水泵控制电路
(五)温度、湿度与烟雾检测电路
(六)报警电路
(七)通信电路

四、软件设计
(一)主程序设计
(二)液位检测与控制子程序
(三)温度、湿度与烟雾检测子程序
(四)报警子程序
(五)通信子程序

五、系统测试与结果分析
(一)测试环境搭建
(二)功能测试
(三)性能测试
(四)结果分析

六、结论与展望
(一)研究结论
(二)未来展望

一、引言

(一)研究背景与意义

随着工业自动化和智能家居的快速发展,液位检测与控制系统在各个领域得到了广泛应用。传统的液位检测方法存在精度低、实时性差、操作复杂等问题,难以满足现代工业生产和智能家居的需求。因此,研究一种高精度、实时性强、操作简便的液位检测与控制系统具有重要意义。

本设计采用STM32单片机作为核心控制器,结合超声波传感器、温度传感器、湿度传感器和烟雾传感器等多种传感器,实现液位的自动检测与控制,并通过手机APP实现远程监控和调节。该系统不仅能够提高液位检测的精度和实时性,还能降低人力成本,提高生产效率,在工业生产、农业灌溉、智能家居等领域具有广泛的应用前景。

(二)国内外研究现状

国内外在液位检测与控制系统方面的研究已经取得了显著的成果。传统的液位检测方法主要包括浮球式、电容式、电阻式等,但这些方法存在精度低、易受干扰等问题。随着传感器技术和微控制器技术的发展,基于超声波、雷达、激光等新型传感器的液位检测方法逐渐得到应用,这些方法具有精度高、实时性强、非接触式测量等优点。

在控制系统方面,国内外学者和工程师们不断探索新的控制算法和控制策略,以提高系统的稳定性和控制精度。同时,随着物联网技术的快速发展,远程监控和智能控制成为液位检测与控制系统的重要发展方向。

(三)研究内容与方法

本设计的研究内容主要包括以下几个方面:

  1. 系统总体设计:根据系统需求,设计系统的总体架构,选择合适的硬件和软件平台。
  2. 硬件电路设计:设计单片机核心电路、液位检测电路、按键与显示电路、水泵控制电路、温度、湿度与烟雾检测电路以及报警电路等。
  3. 软件设计:编写系统的主程序、液位检测与控制子程序、温度、湿度与烟雾检测子程序、报警子程序以及通信子程序等。
  4. 系统测试与结果分析:搭建测试环境,对系统的各项功能进行测试,分析测试结果,验证系统的性能和稳定性。

本设计采用模块化的设计方法,将系统分为多个功能模块,分别进行设计和调试。同时,采用仿真和实验相结合的方法,对系统的各项功能进行验证和优化。

二、系统总体设计

(一)系统需求分析

根据设计要求,系统需要具备以下功能:

  1. 液体液面高度的范围可以由按键模块进行调节,还能由手机APP进行调节。
  2. 按键模块还能进行手动/自动模式的切换以及选择是否进入警戒值调节界面。
  3. 将超声波传感器检测到的液面数据与设定的警戒值范围进行比较,判断是否发出声光警报提示、是否启动水泵。
  4. 把检测到的数据传送给液晶显示屏显示;手机APP同时接收数据并显示液面实时高度。
  5. 系统有两种抽水方式:自动模式和手动模式。自动模式下,将收集到的液面值与设定的警告值进行比较,决定出水口阀的开闭,从而实现液面的自动控制;手动模式下,可以手动打开或关闭出水阀门。
  6. 在液面设置温度传感器进行测量水的温度情况并且显示在显示屏上。温度报警值为55℃;湿度报警值为20%RH;烟雾报警值为5%obs/m;通过蜂鸣器进行报警。

(二)系统总体架构

系统总体架构如图1所示,主要由单片机核心模块、液位检测模块、按键与显示模块、水泵控制模块、温度、湿度与烟雾检测模块、报警模块以及通信模块等组成。

<img src="https://example.com/system_architecture.png" />

图1 系统总体架构图

(三)硬件选型

  1. 单片机:选择STM32F103C8T6单片机作为核心控制器,该单片机具有高性能、低功耗、丰富的外设接口等优点,能够满足系统的需求。
  2. 液位传感器:选择超声波传感器HC-SR04作为液位检测传感器,该传感器具有测量精度高、测量范围广、非接触式测量等优点。
  3. 显示屏:选择OLED显示屏作为显示模块,该显示屏具有功耗低、反应迅速、适用温度范围广泛等特点。
  4. 按键模块:选择独立按键作为输入模块,用于设置液面高度范围、切换手动/自动模式以及选择是否进入警戒值调节界面。
  5. 水泵:选择直流水泵作为抽水设备,该水泵具有体积小、功耗低、控制方便等优点。
  6. 温度传感器:选择DS18B20温度传感器,该传感器具有精度高、抗干扰能力强、数字信号输出等优点。
  7. 湿度传感器:选择DHT11温湿度传感器,该传感器能够同时测量温度和湿度,具有成本低廉、性能稳定等优点。
  8. 烟雾传感器:选择MQ-2烟雾传感器,该传感器对烟雾敏感,能够实时检测烟雾浓度。
  9. 报警模块:选择有源蜂鸣器作为报警设备,当系统检测到异常情况时,通过蜂鸣器发出声光报警提示。
  10. 通信模块:选择ESP8266 Wi-Fi模块作为通信模块,实现系统与手机APP之间的数据传输和远程监控。

三、硬件电路设计

(一)单片机核心电路

单片机核心电路如图2所示,主要包括STM32F103C8T6单片机、电源电路、晶振电路和复位电路等。电源电路为单片机提供稳定的3.3V工作电压;晶振电路为单片机提供时钟信号;复位电路用于在单片机出现异常时进行复位操作。

<img src="https://example.com/mcu_core_circuit.png" />

图2 单片机核心电路图

(二)液位检测电路

液位检测电路如图3所示,采用超声波传感器HC-SR04进行液位检测。超声波传感器的VCC引脚连接到单片机的3.3V引脚,GND引脚连接到GND,Trig引脚连接到单片机的GPIO引脚(如PA0),Echo引脚连接到单片机的GPIO引脚(如PA1)。单片机通过发送触发信号给Trig引脚,并接收Echo引脚返回的回波信号,计算超声波传播的时间,从而得到液位高度。

<img src="https://example.com/liquid_level_detection_circuit.png" />

图3 液位检测电路图

(三)按键与显示电路

按键与显示电路如图4所示,采用独立按键作为输入模块,OLED显示屏作为显示模块。按键模块的引脚连接到单片机的GPIO引脚(如PA2、PA3等),用于设置液面高度范围、切换手动/自动模式以及选择是否进入警戒值调节界面。OLED显示屏的VCC引脚连接到单片机的3.3V引脚,GND引脚连接到GND,SCL和SDA引脚连接到单片机的I2C引脚(如PB6、PB7),用于显示液位高度、温度、湿度和烟雾浓度等信息。

<img src="https://example.com/button_display_circuit.png" />

图4 按键与显示电路图

(四)水泵控制电路

水泵控制电路如图5所示,采用继电器模块控制水泵的开关。继电器的控制引脚连接到单片机的GPIO引脚(如PA4),水泵的正极连接到继电器模块的输出引脚,负极连接到GND。当单片机检测到液位低于设定的下限值时,控制继电器模块闭合,从而启动水泵进行抽水;当液位高于设定的上限值时,控制继电器模块断开,从而停止水泵抽水。

<img src="https://example.com/pump_control_circuit.png" />

图5 水泵控制电路图

(五)温度、湿度与烟雾检测电路

温度、湿度与烟雾检测电路如图6所示,采用DS18B20温度传感器、DHT11温湿度传感器和MQ-2烟雾传感器进行检测。DS18B20温度传感器的数据线连接到单片机的GPIO引脚(如PB8),用于测量水的温度;DHT11温湿度传感器的数据线连接到单片机的GPIO引脚(如PB9),用于同时测量温度和湿度;MQ-2烟雾传感器的模拟输出引脚连接到单片机的ADC引脚(如PA5),用于测量烟雾浓度。单片机通过读取传感器的数据,实时显示温度、湿度和烟雾浓度,并在超出设定阈值时触发报警。

<img src="https://example.com/temp_humidity_smoke_detection_circuit.png" />

图6 温度、湿度与烟雾检测电路图

(六)报警电路

报警电路如图7所示,采用有源蜂鸣器作为报警设备。蜂鸣器的正极连接到单片机的GPIO引脚(如PA6),负极连接到GND。当单片机检测到异常情况(如液位超出警戒值范围、温度超出报警值、湿度超出报警值或烟雾浓度超出报警值)时,控制蜂鸣器发出声光报警提示。

<img src="https://example.com/alarm_circuit.png" />

图7 报警电路图

(七)通信电路

通信电路如图8所示,采用ESP8266 Wi-Fi模块实现系统与手机APP之间的数据传输和远程监控。ESP8266模块的TX、RX引脚分别连接到单片机的USART引脚(如PA9、PA10),VCC引脚连接到单片机的3.3V引脚,GND引脚连接到GND。单片机通过USART接口与ESP8266模块进行通信,将检测到的数据发送给手机APP,并接收手机APP发送的控制指令。

<img src="https://example.com/communication_circuit.png" />

图8 通信电路图

四、软件设计

(一)主程序设计

主程序流程图如图9所示。系统上电后,首先进行初始化操作,包括单片机初始化、外设初始化、变量初始化等。然后,系统进入主循环,不断读取液位传感器、温度传感器、湿度传感器和烟雾传感器的数据,并进行处理。根据处理结果,判断是否发出报警信号、控制水泵的开关以及更新显示屏和手机APP的显示内容。同时,系统还不断检测按键输入和手机APP发送的控制指令,根据指令进行相应的操作。

<img src="https://example.com/main_program_flowchart.png" />

图9 主程序流程图

(二)液位检测与控制子程序

液位检测与控制子程序流程图如图10所示。单片机通过发送触发信号给超声波传感器的Trig引脚,并接收Echo引脚返回的回波信号,计算超声波传播的时间,从而得到液位高度。然后,将液位高度与设定的警戒值范围进行比较。如果液位低于下限值,则控制水泵启动抽水;如果液位高于上限值,则控制水泵停止抽水;如果液位处于警戒值范围内,则保持水泵状态不变。同时,将液位高度数据发送给显示屏和手机APP进行显示。

<img src="https://example.com/liquid_level_detection_control_subprogram_flowchart.png" />

图10 液位检测与控制子程序流程图

(三)温度、湿度与烟雾检测子程序

温度、湿度与烟雾检测子程序流程图如图11所示。单片机通过读取DS18B20温度传感器、DHT11温湿度传感器和MQ-2烟雾传感器的数据,获取温度、湿度和烟雾浓度信息。然后,将温度、湿度和烟雾浓度数据与设定的报警阈值进行比较。如果温度超出报警值(55℃)、湿度超出报警值(20%RH)或烟雾浓度超出报警值(5%obs/m),则触发报警信号,控制蜂鸣器发出声光报警提示。同时,将温度、湿度和烟雾浓度数据发送给显示屏和手机APP进行显示。

<img src="https://example.com/temp_humidity_smoke_detection_subprogram_flowchart.png" />

图11 温度、湿度与烟雾检测子程序流程图

(四)报警子程序

报警子程序流程图如图12所示。当单片机检测到异常情况(如液位超出警戒值范围、温度超出报警值、湿度超出报警值或烟雾浓度超出报警值)时,调用报警子程序。报警子程序首先控制蜂鸣器发出声光报警提示,然后更新显示屏和手机APP的显示内容,提示用户异常情况。同时,报警子程序还记录报警事件的时间和类型,以便用户后续查询和分析。

<img src="https://example.com/alarm_subprogram_flowchart.png" />

图12 报警子程序流程图

(五)通信子程序

通信子程序流程图如图13所示。单片机通过USART接口与ESP8266 Wi-Fi模块进行通信。当单片机需要发送数据时,将数据打包成指定的格式,并通过USART接口发送给ESP8266模块。ESP8266模块接收到数据后,将其发送给手机APP。当单片机需要接收数据时,通过USART接口接收ESP8266模块发送的数据包,并解析数据包的内容。根据解析结果,单片机执行相应的操作,如更新液位高度范围、切换手动/自动模式等。

<img src="https://example.com/communication_subprogram_flowchart.png" />

图13 通信子程序流程图

五、系统测试与结果分析

(一)测试环境搭建

为了验证系统的性能和稳定性,搭建了如图14所示的测试环境。测试环境包括水箱、水泵、液位传感器、温度传感器、湿度传感器、烟雾传感器、单片机开发板、OLED显示屏、按键模块、蜂鸣器以及ESP8266 Wi-Fi模块等。通过向水箱中加水或放水来模拟液位的变化,通过加热装置改变水的温度,通过加湿装置改变环境的湿度,通过点燃香烟产生烟雾来模拟烟雾浓度的变化。

<img src="https://example.com/test_environment_setup.png" />

图14 测试环境搭建图

(二)功能测试

对系统的各项功能进行了测试,包括液位检测与显示、按键输入与调节、水泵控制与抽水、温度检测与显示、湿度检测与显示、烟雾检测与显示、报警功能以及手机APP远程监控等。测试结果表明,系统能够准确检测液位高度、温度、湿度和烟雾浓度,并通过显示屏和手机APP实时显示。按键模块能够正常设置液位高度范围、切换手动/自动模式以及选择是否进入警戒值调节界面。水泵能够根据液位高度自动控制开关,实现液面的自动控制。当温度、湿度或烟雾浓度超出设定阈值时,系统能够触发报警信号,控制蜂鸣器发出声光报警提示。手机APP能够远程监控系统的运行状态,并发送控制指令进行系统调节。

(三)性能测试

对系统的性能进行了测试,包括液位检测精度、温度检测精度、湿度检测精度、烟雾检测精度、响应时间以及稳定性等。测试结果表明,液位检测精度达到±1mm,温度检测精度达到±0.5℃,湿度检测精度达到±5%RH,烟雾检测精度达到±1%obs/m。系统的响应时间小于1s,能够满足实时性要求。在连续运行72小时的过程中,系统未出现异常情况,表现出良好的稳定性。

(四)结果分析

通过对系统的测试和结果分析,可以得出以下结论:

  1. 系统能够准确检测液位高度、温度、湿度和烟雾浓度,并通过显示屏和手机APP实时显示,满足了系统的设计要求。
  2. 按键模块能够正常设置液位高度范围、切换手动/自动模式以及选择是否进入警戒值调节界面,操作简便,用户体验良好。
  3. 水泵能够根据液位高度自动控制开关,实现液面的自动控制,提高了系统的自动化水平。
  4. 当温度、湿度或烟雾浓度超出设定阈值时,系统能够触发报警信号,控制蜂鸣器发出声光报警提示,有效保障了系统的安全性。
  5. 手机APP能够远程监控系统的运行状态,并发送控制指令进行系统调节,实现了系统的智能化控制。

六、结论与展望

(一)研究结论

本设计基于STM32单片机,成功构建了一个液位自动检测与控制系统。该系统通过超声波传感器、温度传感器、湿度传感器和烟雾传感器等多种传感器,实现了液位、温度、湿度和烟雾浓度的实时检测与显示。通过按键模块和手机APP,用户可以方便地设置液位高度范围、切换手动/自动模式以及远程监控系统的运行状态。系统还具备声光报警功能,当检测到异常情况时,能够及时发出报警信号,保障系统的安全性。

(二)未来展望

虽然本设计已经实现了液位自动检测与控制系统的基本功能,但仍存在一些不足之处和改进空间。未来,可以进一步优化系统的硬件电路和软件算法,提高系统的检测精度和响应速度。同时,可以增加更多的传感器和功能模块,如压力传感器、流量传感器等,以扩展系统的应用范围。此外,还可以将系统与云计算平台相结合,实现数据的远程存储和分析,为用户提供更加智能化的服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科创工作室li

你的鼓励将是大学生的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值