基于STM32的鱼缸水质检测系统设计与实现

摘要:本文设计了一种基于STM32F103C8T6核心板的鱼缸水质检测系统。系统通过PH值传感器、TDS导电率传感器、DS18B20温度传感器、电位器模块分别获取水的PH值、TDS值、水温和模拟溶解氧浓度,利用ESP01S WIFI模块将数据传输至云服务器,用户可通过微信小程序查看数据,同时采用OLED屏幕显示相关数据。经测试,系统各项功能运行正常,能有效监测鱼缸水质。

关键词:STM32F103C8T6;鱼缸水质检测;传感器;ESP01S WIFI模块;微信小程序

第一章 绪论

1.1 研究背景与意义

随着人们生活水平的提高,观赏鱼养殖逐渐成为一种流行的休闲方式。然而,鱼缸水质的优劣直接影响观赏鱼的健康和生存。传统的水质检测方法需要人工定期采样并送至专业机构检测,不仅耗时费力,而且无法实时获取水质信息。因此,设计一种能够实时、准确检测鱼缸水质的系统具有重要的现实意义。

本研究旨在设计一种基于STM32的鱼缸水质检测系统,该系统能够实时监测鱼缸水质的多个参数,并将数据上传至云服务器,用户可通过微信小程序随时查看水质信息,同时本地OLED屏幕也能显示相关数据,为观赏鱼养殖提供便捷、高效的水质监测手段。

1.2 国内外研究现状

在鱼缸水质检测领域,国内外已经开展了一些相关研究。国外一些发达国家在传感器技术和物联网应用方面起步较早,已经推出了一些较为成熟的水质检测设备和系统。这些系统通常具有高精度、多参数检测的特点,但价格较为昂贵,且操作相对复杂。

国内在鱼缸水质检测方面的研究也在不断深入,一些企业和科研机构推出了各种水质检测产品。然而,这些产品在功能完整性、数据准确性和用户体验等方面仍存在一定的不足。

1.3 研究目标与内容

本研究的主要目标是设计并实现一种基于STM32的鱼缸水质检测系统,具体研究内容包括:

  1. 硬件选型与设计:选择合适的STM32核心板、各种传感器、WIFI模块、OLED屏幕等硬件组件,并设计合理的硬件电路。
  2. 软件编程与实现:编写系统软件,实现传感器数据的采集、处理、传输和显示等功能。
  3. 云服务器搭建与微信小程序开发:搭建云服务器,实现数据的接收和存储;开发微信小程序,实现用户远程查看水质数据的功能。
  4. 系统测试与优化:对系统进行全面测试,包括功能测试、性能测试等,并根据测试结果对系统进行优化和改进。

第二章 系统总体设计

2.1 系统功能需求分析

根据研究目标,本系统需要具备以下功能:

  1. 水质参数采集功能:通过PH值传感器、TDS导电率传感器、DS18B20温度传感器和电位器模块分别采集水的PH值、TDS值、水温和模拟溶解氧浓度。
  2. 数据传输功能:利用ESP01S WIFI模块将采集到的水质数据上传至云服务器。
  3. 远程查看功能:用户可通过微信小程序远程查看鱼缸水质数据。
  4. 本地显示功能:采用OLED屏幕本地显示水质数据。
  5. 供电功能:通过USB直接给核心板供电,核心板给整个PCB供电。

2.2 系统总体架构设计

系统总体架构如图2-1所示,主要包括STM32F103C8T6核心板、PH值传感器、TDS导电率传感器、DS18B20温度传感器、电位器模块、ESP01S WIFI模块、OLED屏幕、电源模块以及云服务器和微信小程序等。

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

  • STM32F103C8T6核心板:作为系统的主控芯片,负责处理各种数据和控制各个模块的工作。
  • PH值传感器:用于获取水的PH值。
  • TDS导电率传感器:用于获取水质TDS值,TDS值越高表示水越浑浊。
  • DS18B20温度传感器:用于测量水温。
  • 电位器模块:用于采集模拟电压,进而模拟水中溶解氧浓度。
  • ESP01S WIFI模块:用于将水质数据上传至云服务器。
  • OLED屏幕:用于本地显示水质数据。
  • 电源模块:为系统提供稳定的电源供应。
  • 云服务器:用于接收和存储水质数据。
  • 微信小程序:用户可通过微信小程序远程查看水质数据。

2.3 系统设计方案选择

2.3.1 主控芯片选择

选择STM32F103C8T6核心板作为系统的主控芯片,主要原因如下:

  • 高性能:STM32F103C8T6基于ARM Cortex-M3内核,主频高达72MHz,能够满足系统对数据处理和控制的需求。
  • 丰富的外设接口:STM32F103C8T6具有丰富的外设接口,如USART、SPI、I2C、GPIO等,方便连接各种外设模块。
  • 易于开发:STM32F103C8T6的开发环境成熟,有大量的开发资料和社区支持,便于快速开发和调试。
2.3.2 传感器选择
  • PH值传感器:选择具有高精度和稳定性的PH值传感器,能够准确测量水的PH值。
  • TDS导电率传感器:选择测量范围宽、精度高的TDS导电率传感器,能够准确反映水质的浑浊程度。
  • DS18B20温度传感器:DS18B20是一款防水型数字温度传感器,具有测量精度高、抗干扰能力强等优点,适合放在水中测量水温。
  • 电位器模块:通过采集电位器的模拟电压来模拟水中溶解氧浓度,电位器模块具有调节方便、输出稳定的特点。
2.3.3 WIFI模块选择

选择ESP01S WIFI模块,主要原因如下:

  • 低功耗:ESP01S具有低功耗特性,适合嵌入式系统应用。
  • 易于连接:ESP01S支持AT指令集,易于与STM32进行通信和控制。
  • 稳定性好:ESP01S在市场上的应用广泛,稳定性得到了验证。
2.3.4 显示模块选择

选择OLED屏幕,主要原因如下:

  • 显示效果好:OLED屏幕具有自发光特性,显示效果好。
  • 体积小:OLED屏幕体积小,适合嵌入式系统应用。
  • 易于控制:OLED屏幕通过I2C或SPI接口与STM32通信,控制简单方便。

第三章 系统硬件设计

3.1 STM32F103C8T6核心板最小系统设计

STM32F103C8T6核心板最小系统包括电源电路、时钟电路、复位电路和调试接口电路等。电源电路通过USB接口为系统提供5V电源,再通过稳压芯片将5V电源转换为3.3V电源,为STM32和其他电路提供稳定的工作电压。时钟电路采用8MHz的晶振,为STM32提供时钟信号。复位电路确保系统在异常情况下能够可靠复位。调试接口电路用于程序的下载和调试。

3.2 传感器接口电路设计

3.2.1 PH值传感器接口电路

PH值传感器通过模拟信号输出接口与STM32的ADC(模拟 - 数字转换器)引脚相连,实现PH值的采集。接口电路包括电源电路、信号调理电路和ADC接口电路等。电源电路为PH值传感器提供稳定的工作电压。信号调理电路对传感器输出的模拟信号进行放大、滤波等处理,提高信号的质量。ADC接口电路将处理后的模拟信号转换为数字信号,供STM32进行处理。

3.2.2 TDS导电率传感器接口电路

TDS导电率传感器同样通过模拟信号输出接口与STM32的ADC引脚相连,实现TDS值的采集。接口电路设计与PH值传感器类似,包括电源电路、信号调理电路和ADC接口电路等。

3.2.3 DS18B20温度传感器接口电路

DS18B20温度传感器通过单总线接口与STM32的GPIO口相连,实现水温的测量。接口电路包括电源电路和通信电路等。电源电路为DS18B20提供合适的工作电压。通信电路通过单总线协议实现STM32与DS18B20之间的数据传输。

3.2.4 电位器模块接口电路

电位器模块通过模拟信号输出接口与STM32的ADC引脚相连,实现模拟溶解氧浓度的采集。接口电路包括电源电路和ADC接口电路等。

3.3 ESP01S WIFI模块接口电路设计

ESP01S WIFI模块通过USART接口与STM32相连,实现数据传输和通信。接口电路包括电源电路、复位电路和通信电路等。电源电路为ESP01S提供3.3V的工作电压。复位电路确保ESP01S在异常情况下能够可靠复位。通信电路通过USART接口实现STM32与ESP01S之间的数据传输。

3.4 OLED屏幕接口电路设计

OLED屏幕通过I2C或SPI接口与STM32相连,实现显示数据的传输和控制。接口电路包括电源电路和通信电路等。电源电路为OLED屏幕提供3.3V的工作电压。通信电路通过I2C或SPI接口实现STM32与OLED屏幕之间的显示数据传输和控制。

3.5 电源电路设计

电源电路采用稳压芯片将USB接口输入的5V电源转换为3.3V电源,为STM32和其他电路提供稳定的工作电压。电源电路还包括滤波电路和保护电路等,确保电源的稳定性和可靠性。

第四章 系统软件设计

4.1 系统软件总体架构

系统软件采用模块化设计,主要包括主程序、传感器数据采集模块、数据处理模块、WIFI通信模块、OLED显示模块和微信小程序交互模块等。主程序负责系统的初始化和各个模块的调度;传感器数据采集模块负责采集各种传感器的数据;数据处理模块负责对采集到的数据进行处理和分析;WIFI通信模块负责将处理后的数据上传至云服务器;OLED显示模块负责在本地OLED屏幕上显示水质数据;微信小程序交互模块负责处理与微信小程序的通信。

4.2 传感器数据采集模块软件设计

传感器数据采集模块通过ADC或单总线等方式采集PH值传感器、TDS导电率传感器、DS18B20温度传感器和电位器模块的数据。软件设计包括初始化传感器、读取数据等步骤。传感器数据采集模块软件流程图如图4-1所示。

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

4.3 数据处理模块软件设计

数据处理模块对采集到的传感器数据进行滤波、校准等处理,提高数据的准确性和可靠性。软件设计包括滤波算法的实现、校准参数的设置等步骤。数据处理模块软件流程图如图4-2所示。

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

4.4 WIFI通信模块软件设计

WIFI通信模块通过AT指令集与ESP01S WIFI模块进行通信,将处理后的数据上传至云服务器。软件设计包括WIFI模块的初始化、连接热点、发送数据等步骤。WIFI通信模块软件流程图如图4-3所示。

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

4.5 OLED显示模块软件设计

OLED显示模块通过I2C或SPI接口与OLED屏幕进行通信,将水质数据显示在本地OLED屏幕上。软件设计包括OLED屏幕的初始化、数据显示等步骤。OLED显示模块软件流程图如图4-4所示。

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

4.6 微信小程序交互模块软件设计

微信小程序交互模块负责处理与微信小程序的通信,接收用户的请求并返回相应的水质数据。软件设计包括服务器端的接口开发和微信小程序的前端开发。微信小程序交互模块软件流程图如图4-5所示。

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

第五章 云服务器搭建与微信小程序开发

5.1 云服务器搭建

选择合适的云服务器平台,如阿里云、腾讯云等,搭建服务器环境。安装必要的软件和工具,如数据库管理系统、Web服务器等。配置服务器参数,确保服务器能够正常接收和存储来自STM32系统的水质数据。

5.2 数据库设计

设计数据库表结构,用于存储水质数据。数据库表应包括数据ID、采集时间、PH值、TDS值、水温、溶解氧浓度等字段。采用合适的数据库管理系统,如MySQL,实现数据的存储和管理。

5.3 微信小程序开发

使用微信开发者工具开发微信小程序。设计小程序界面,包括数据展示页面、历史数据查询页面等。实现小程序与云服务器的通信,通过调用服务器接口获取水质数据,并在小程序界面上显示。

第六章 系统测试与分析

6.1 系统测试环境搭建

搭建系统测试环境,包括硬件电路连接、软件程序烧录和测试工具准备等。确保系统能够正常工作,各个模块能够正常通信。测试环境包括STM32开发板、各种传感器、ESP01S WIFI模块、OLED屏幕、电源以及云服务器和微信小程序等。

6.2 功能测试

6.2.1 传感器数据采集测试

测试系统是否能够准确采集PH值传感器、TDS导电率传感器、DS18B20温度传感器和电位器模块的数据。测试结果表明,系统能够准确采集各个传感器的数据,且数据误差在允许范围内。

6.2.2 数据传输测试

测试系统是否能够通过ESP01S WIFI模块将水质数据上传至云服务器。测试结果表明,系统能够成功连接WIFI热点,并将数据准确上传至云服务器。

6.2.3 远程查看测试

测试用户是否能够通过微信小程序远程查看鱼缸水质数据。测试结果表明,用户可以通过微信小程序实时查看水质数据,且数据显示准确。

6.2.4 本地显示测试

测试系统是否能够在本地OLED屏幕上正确显示水质数据。测试结果表明,OLED屏幕能够准确显示水质数据,且显示清晰。

6.3 性能测试

对系统的稳定性、响应时间和功耗等性能指标进行测试。测试结果表明,系统稳定性较好,在长时间运行过程中未出现明显的故障;响应时间较短,能够快速响应用户的操作指令;功耗较低,适合嵌入式系统应用。

第七章 总结与展望

7.1 总结

本文设计并实现了一种基于STM32的鱼缸水质检测系统,该系统通过PH值传感器、TDS导电率传感器、DS18B20温度传感器和电位器模块采集水质参数,利用ESP01S WIFI模块将数据传输至云服务器,用户可通过微信小程序远程查看水质数据,同时本地OLED屏幕也能显示相关数据。经测试,系统各项功能运行正常,能有效监测鱼缸水质。

7.2 展望

未来的研究可以进一步完善系统的功能,如增加更多的水质参数检测(如氨氮含量、亚硝酸盐含量等),提高系统的检测精度和可靠性。同时,可以优化微信小程序的用户界面和交互体验,提高用户的使用满意度。此外,还可以考虑将系统与智能家居系统进行集成,实现更加智能化的鱼缸管理。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐