基于STM32的智能水质检测系统设计与实现摘要随着水资源污染问题日益突出水质安全监测成为环境保护、日常生活及工业生产中的重要环节。传统水质检测方式存在操作复杂、检测效率低、无法实时监测、需专业人员操作等弊端难以满足实时、便捷、精准的水质监测需求。本文设计并实现了一款基于STM32F103C8T6单片机的智能水质检测系统集成水温、电导率、PH值、浊度四项核心水质参数检测功能具备实时显示、阈值设置、模式切换、异常报警、继电器控制及云端APP远程监控等功能旨在提供一种低成本、高可靠性、操作便捷的智能水质监测解决方案。系统以STM32F103C8T6为核心主控芯片采用DS18B20传感器检测水温、TDS电导率传感器检测水体电导率、PH传感器检测酸碱度、浊度传感器检测水体浑浊度通过OLED显示屏实时展示各项水质参数支持自动与手动模式切换按键可完成阈值设置与模式切换自动模式下当任意一项水质参数超出预设阈值时触发有源蜂鸣器报警并自动开启继电器可外接净水设备等手动模式下可通过按键手动控制继电器开关同时通过ESP8266-01S WIFI模块将水质数据上传至机智云APP实现远程实时查看与监控。测试结果表明该系统检测精度高、运行稳定可靠各项功能均达到设计要求操作便捷、成本低廉可广泛应用于家庭饮用水、鱼缸水质、小型水族箱、农田灌溉等场景的水质实时监测具有较高的实际应用价值与推广前景。关键词STM32F103C8T6水质检测多传感器融合WIFI通信机智云APP阈值报警第一章 绪论1.1 研究背景与意义水是生命之源是人类生存、工业生产、农业灌溉的不可或缺的资源。近年来随着工业废水排放、农业化肥滥用、生活污水乱排等问题的加剧水资源污染日益严重水质安全受到严重威胁直接影响人类健康、生态环境平衡及社会经济可持续发展。据相关数据统计全球约有1/3的人口面临水资源短缺与水质污染问题我国部分地区也存在饮用水源污染、地表水体浑浊、酸碱度失衡等问题水质监测成为保障水资源安全的关键环节。传统的水质检测方法主要依赖专业检测机构采用大型检测设备需采集水样后进行实验室分析存在检测周期长、操作复杂、检测成本高、无法实时监测、需专业人员操作等弊端难以满足家庭、小型养殖、农田灌溉等场景的实时水质监测需求。此外现有小型水质检测设备多存在功能单一、检测精度低、无远程监控、报警机制不完善等问题无法实现水质参数的全面监测与及时预警。基于STM32单片机的智能水质检测系统结合多传感器融合技术、WIFI通信技术与云端APP技术能够实现水温、电导率、PH值、浊度四项核心水质参数的实时采集、显示、报警与远程监控具有成本低廉、操作便捷、检测精准、运行稳定等特点可有效解决传统水质检测的不足为不同场景的水质监测提供便捷、高效的解决方案。因此设计一款功能完善、性能稳定的智能水质检测系统对于保障水质安全、推动水资源保护、满足日常水质监测需求具有重要的实际应用价值与研究意义。1.2 国内外研究现状国外水质检测技术发展较早欧美、日本等发达国家已形成完善的水质监测体系推出了多种高精度、智能化的水质检测设备涵盖实验室大型检测仪器与现场便携式检测设备。这类设备具备多参数同步检测、高精度、远程数据传输、数据分析与预警等功能广泛应用于环境监测、饮用水检测、工业废水处理等领域但存在设备价格昂贵、操作复杂、维护成本高、核心技术封闭等问题难以普及到家庭、小型养殖等民用场景。国内对智能水质检测系统的研究多集中于基于单片机的低成本设计主要面向民用场景与科研学习核心技术以多传感器融合、嵌入式开发、无线通信为主。目前多数设计采用STM32系列单片机作为主控芯片搭配温度、PH值、浊度等传感器实现基本的水质参数检测与显示功能但部分设计存在检测参数单一、精度不足、无线通信不稳定、报警机制不完善、无远程APP监控等问题且在阈值设置的灵活性、模式切换的便捷性等方面仍有提升空间。本文针对现有设计的不足设计一款集成四项核心水质参数检测、支持WIFI远程监控、具备自动/手动模式切换与完善报警机制的智能水质检测系统兼顾实用性、性价比与便捷性。1.3 研究内容与目标1.3.1 研究内容本文围绕基于STM32的智能水质检测系统的设计与实现展开研究结合系统功能需求与元器件特性具体研究内容如下系统总体架构设计明确系统的核心功能与模块划分确定各模块的接口与交互逻辑制定系统的工作流程完成总体方案设计确保各模块协同稳定工作。硬件电路设计基于选用的元器件设计STM32主控模块、水质参数采集模块DS18B20、TDS、PH、浊度传感器、OLED显示模块、按键控制模块、蜂鸣器报警模块、继电器控制模块、WIFI通信模块的电路原理图与PCB板。软件程序设计基于Keil MDK开发环境编写主控程序、传感器数据采集与处理程序、OLED显示程序、按键控制程序、蜂鸣器报警程序、继电器控制程序、WIFI通信程序及机智云APP数据交互程序。系统测试与优化搭建测试环境对系统的各项功能、检测精度、通信稳定性、报警可靠性进行测试针对存在的问题进行优化调整确保系统稳定可靠运行满足设计要求。1.3.2 研究目标设计一款功能完善、性能稳定、操作便捷、成本低廉的基于STM32的智能水质检测系统具体目标如下实现多参数水质检测通过DS18B20、TDS、PH、浊度四种传感器分别实现水温、电导率、酸碱度、浑浊度的实时采集检测精度满足民用场景需求。实现实时显示功能通过OLED显示屏清晰、实时展示当前水温、电导率、PH值、浊度四项参数界面简洁易读更新及时。实现模式切换功能支持自动与手动模式切换通过按键完成模式切换切换后系统立即执行对应模式逻辑。实现阈值设置功能通过按键可设置水温、电导率、PH值、浊度的上下限阈值适配不同场景的水质要求。实现异常报警功能自动模式下当任意一项水质参数超出预设阈值时触发有源蜂鸣器报警同时自动开启继电器可外接净水设备。实现继电器控制功能手动模式下可通过按键手动控制继电器的开启与关闭自动模式下由系统根据水质参数自动控制继电器。实现远程监控功能通过ESP8266-01S WIFI模块将水质数据上传至机智云APPAPP可实时查看各项水质参数实现远程监控。确保系统稳定性系统运行稳定传感器采集数据准确通信可靠报警及时按键操作响应灵敏无卡顿、误报警等问题。1.4 论文结构安排本文共分为6章具体结构安排如下第1章绪论阐述研究背景与意义、国内外研究现状、研究内容与目标及论文结构安排明确本文的研究方向与核心任务。第2章系统总体设计介绍系统的功能需求、总体架构及各模块的功能划分制定系统的工作流程完成总体方案设计。第3章系统硬件设计详细介绍各硬件模块的选型依据、电路设计原理及PCB板的设计与制作过程。第4章系统软件设计详细介绍软件开发环境、软件总体流程及各模块程序的设计思路与实现方法。第5章系统测试与结果分析搭建测试环境对系统的各项功能与性能进行测试分析测试结果并进行优化调整。第6章总结与展望总结本文的研究成果分析系统存在的不足并对未来的改进方向进行展望。第二章 系统总体设计2.1 系统功能需求分析结合智能水质检测的实际场景家庭饮用水、鱼缸、小型水族箱等与用户需求本系统需实现10项核心功能各项功能的具体要求如下主控核心功能以STM32F103C8T6为核心协调各模块工作接收传感器数据、处理指令、控制执行机构确保系统正常运行。水温检测功能采用DS18B20数字温度传感器实时采集水体温度测量范围-55℃~125℃误差≤±0.5℃采集频率1次/秒数据稳定可靠。电导率检测功能采用TDS电导率传感器实时检测水体电导率反映水体中可溶性固体含量测量范围0~1000ppm误差≤±5%采集频率1次/秒。PH值检测功能采用PH传感器实时检测水体酸碱度测量范围0~14pH误差≤±0.1pH采集频率1次/秒满足民用水质监测需求。浊度检测功能采用浊度传感器实时检测水体浑浊度测量范围0~100NTU误差≤±2NTU能够准确反映水体浑浊程度。OLED显示功能采用OLED屏幕清晰展示当前水温、电导率、PH值、浊度四项参数标注对应单位界面简洁易读更新频率与采集频率一致1次/秒无闪烁、黑屏等问题。按键控制功能通过独立按键实现模式切换自动/手动、阈值设置水温、电导率、PH值、浊度的上下限按键操作响应灵敏具备防抖处理避免误操作。自动模式功能自动模式下系统实时对比采集到的水质参数与预设阈值若任意一项参数超出阈值范围立即触发有源蜂鸣器报警并自动开启继电器可外接净水设备、换水设备等参数恢复正常后报警停止继电器自动关闭可选。手动模式功能手动模式下蜂鸣器报警功能关闭用户可通过按键手动控制继电器的开启与关闭满足手动操作需求。机智云APP交互功能通过ESP8266-01S WIFI模块与机智云平台建立连接将采集到的水质参数实时上传至机智云APP用户可通过APP远程查看各项参数实现远程监控。2.2 系统总体架构设计本系统以STM32F103C8T6单片机作为主控核心采用模块化设计思想将整个系统分为6个功能模块各模块相互独立又协同工作确保系统稳定、高效运行。系统总体架构分为三层主控层、采集层、交互与执行层总体架构如图2-1所示论文中需补充架构图。各模块的具体功能划分如下主控层以STM32F103C8T6最小系统板为核心是系统的“大脑”负责接收各采集模块的数据对数据进行滤波、校准、处理执行控制逻辑协调各模块正常工作同时接收按键控制指令与机智云APP指令执行相应的操作模式切换、阈值设置、继电器控制等。采集层包含水质参数采集模块由DS18B20温度传感器、TDS电导率传感器、PH传感器、浊度传感器组成负责实时采集水体的水温、电导率、PH值、浊度四项参数将采集到的数据传输至主控模块进行处理。执行层包含蜂鸣器报警模块、继电器控制模块负责接收主控模块的控制指令执行报警动作与继电器的开启/关闭操作实现异常预警与外部设备控制。显示层即OLED显示模块负责实时展示主控模块处理后的水温、电导率、PH值、浊度四项参数以及当前模式自动/手动、阈值设置状态等信息实现用户与系统的可视化交互。本地交互层包含按键控制模块负责实现用户的本地操作包括模式切换、阈值设置、手动控制继电器是用户与系统进行本地交互的核心模块。远程交互层包含ESP8266-01S WIFI模块负责与机智云平台建立通信连接将水质参数上传至机智云APP实现远程数据查看与监控无需现场操作即可掌握水质状况。2.3 系统工作流程系统上电后首先进行初始化操作包括STM32单片机初始化、各传感器初始化、OLED显示屏初始化、WIFI模块初始化、蜂鸣器初始化、继电器初始化及按键初始化。初始化完成后系统默认进入自动模式初始化各项水质参数阈值可通过按键或APP修改开启各传感器的数据采集功能同时启动WIFI模块连接机智云平台开始执行以下工作流程采集模块实时采集数据DS18B20采集水温数据TDS传感器采集电导率数据PH传感器采集PH值数据浊度传感器采集浊度数据将采集到的数据传输至主控模块。主控模块对采集到的数据进行滤波、校准处理去除干扰信号确保数据准确性将处理后的各项参数存储至数据缓冲区。OLED显示屏实时更新显示依次显示当前水温单位℃、电导率单位ppm、PH值、浊度单位NTU以及当前模式自动/手动更新频率为1次/秒。WIFI模块将数据缓冲区中的各项水质参数上传至机智云平台机智云APP实时接收并展示数据实现远程监控同时系统接收机智云APP发送的指令可选扩展远程阈值设置、模式切换执行相应操作。自动模式逻辑执行主控模块将处理后的各项水质参数与预设的上下限阈值进行对比若任意一项参数超出阈值范围立即控制有源蜂鸣器发出报警声并开启继电器外接设备工作若所有参数均在阈值范围内蜂鸣器不报警继电器保持关闭状态或根据预设逻辑控制。手动模式逻辑执行用户通过按键切换至手动模式后蜂鸣器报警功能关闭用户可通过按键手动控制继电器的开启与关闭OLED显示屏实时显示继电器状态。用户可通过按键进行操作按下模式切换按键切换自动/手动模式按下阈值设置按键进入阈值设置模式依次调整水温、电导率、PH值、浊度的上下限阈值调整后实时更新显示手动模式下按下继电器控制按键控制继电器开启/关闭。系统持续循环执行上述流程直至断电或手动关机若出现数据采集异常、WIFI连接断开等情况系统保持当前状态重新上电后恢复正常初始化流程若WIFI连接断开本地功能采集、显示、按键控制、报警、继电器控制仍正常运行。第三章 系统硬件设计3.1 硬件选型结合系统功能需求、性能要求及成本控制本系统各硬件模块选型严格遵循性价比高、稳定性好、易于开发、适配性强、检测精度满足民用需求的原则具体元器件选型及选型理由如下表3-1所示硬件模块选型型号选型理由主控芯片STM32F103C8T6ARM Cortex-M3内核主频72MHz具备丰富的GPIO口、UART、IIC、ADC等通信接口支持多种传感器与执行机构连接性能稳定、功耗低、成本低廉体积小巧适合小型智能设备设计资料丰富便于开发调试是单片机开发的主流选型能够满足系统多模块协同工作的需求。显示模块OLED屏幕4针IIC协议体积小、功耗低、亮度高、对比度强4针IIC协议接口简单占用GPIO口少适合小型设备分辨率128*64可清晰显示四项水质参数及模式信息界面简洁易读且响应速度快无残影提升用户体验适配系统实时显示需求。温度传感器DS18B20数字式温度传感器单总线通信方式接线简单无需复杂的校准电路测量范围广-55℃~125℃精度高误差≤±0.5℃响应快功耗低价格低廉易于集成适合水体温度的实时采集无需额外的信号转换电路。电导率传感器TDS电导率传感器专门用于检测水体中可溶性固体含量输出模拟信号可通过STM32的ADC接口采集测量范围0~1000ppm精度满足民用场景需求防水设计适合长期浸泡在水中采集数据价格低廉易于集成适配系统电导率检测需求。PH传感器模拟式PH传感器带信号放大测量范围0~14pH误差≤±0.1pH精度高响应快自带信号放大电路可直接将PH值转换为0~3.3V模拟信号适配STM32的ADC接口采集防水设计适合水体酸碱度检测操作简单无需复杂的校准步骤适合民用场景。浊度传感器模拟式浊度传感器基于光折射原理能够准确检测水体浑浊度测量范围0~100NTU误差≤±2NTU输出模拟信号可通过STM32的ADC接口采集防水设计抗干扰能力强适合长期浸泡在水中价格低廉适配系统浊度检测需求。WIFI模块ESP8266-01S基于WIFI协议支持UART通信传输距离远10-20米功耗低、兼容性强体积小巧价格低廉易于集成支持与机智云平台快速对接无需复杂的配置可轻松实现数据上传与远程监控适配系统的远程交互需求。继电器5V单路继电器模块输入电压5V与STM32GPIO口输出电压兼容接线简单可承受较大电流能够驱动外接设备如净水机、水泵等具备光耦隔离功能减少外部干扰保护主控芯片稳定性好适合系统的执行控制需求。蜂鸣器有源蜂鸣器无需额外的驱动电路只需通过GPIO口输出高低电平即可控制发声音量适中响应快价格低廉易于集成当水质参数异常时能够快速发出报警声提醒用户及时处理适配系统的报警需求。手动控制模块独立按键操作简单、可靠性高、价格低廉易于集成采用4个独立式按键设计分别实现模式切换、阈值设置、继电器开启、继电器关闭功能适配系统的本地手动操作需求具备防抖设计避免误触发。电源模块5V USB电源、AMS1117-3.3V5V USB电源方便用户供电兼容性强AMS1117-3.3V稳压芯片可将5V电压稳压至3.3V为STM32单片机、传感器、OLED屏幕、ESP8266-01S模块等需要3.3V电压的模块供电继电器、蜂鸣器采用5V直接供电确保其正常工作具备过流、过压保护功能确保系统安全稳定运行。表3-1 系统硬件材料清单及选型理由3.2 主控模块电路设计主控模块以STM32F103C8T6最小系统板为核心是系统的核心控制单元主要包括电源电路、复位电路、晶振电路及下载接口电路负责协调各模块工作处理数据与控制指令是系统稳定运行的基础。3.2.1 电源电路系统采用5V USB电源供电通过AMS1117-3.3V稳压芯片将5V电压稳压至3.3V为STM32F103C8T6单片机、DS18B20传感器、OLED屏幕、ESP8266-01S WIFI模块、PH传感器、浊度传感器、TDS传感器等需要3.3V电压的模块供电继电器、有源蜂鸣器采用5V直接供电确保其输出足够的功率。电源电路中加入100nF滤波电容减少电压波动滤除电源干扰确保系统稳定工作同时设计电源指示LED用于指示系统是否上电方便用户查看系统工作状态。3.2.2 复位电路采用手动复位与上电复位相结合的方式复位电路由电阻、电容及复位按键组成。上电时电容充电产生复位信号使单片机完成上电复位确保系统上电后正常初始化当系统出现异常如程序卡死、数据采集异常时按下复位按键产生手动复位信号使单片机重启恢复正常工作。复位电路设计简单、可靠性高确保系统在异常情况下能够快速恢复提升系统的稳定性。3.2.3 晶振电路采用外部晶振电路晶振频率为8MHz通过分频电路为STM32单片机提供72MHz的系统时钟确保单片机的运算速度与各模块的同步工作。晶振电路中加入两个22pF电容用于稳定晶振频率减少外界电磁干扰确保系统计时准确、数据处理高效为传感器采集、数据传输、指令执行提供稳定的时钟支撑。3.2.4 下载接口电路采用USB-TTL下载方式通过CH340芯片将USB接口转换为UART接口连接STM32单片机的USART1接口PA9-TX、PA10-RX实现程序的下载与调试。下载接口同时支持串口通信可用于调试过程中的数据打印与指令交互方便开发人员排查问题、调试程序提升开发效率。3.3 水质参数采集模块电路设计3.3.1 温度采集模块DS18B20DS18B20传感器采用单总线通信方式与STM32单片机连接其DATA引脚连接STM32的PB0引脚VCC引脚接3.3V电源GND引脚接地。单总线通信方式接线简单只需一根信号线即可实现数据传输适合小型设备设计且无需额外的信号转换电路。为确保采集数据的准确性在DS18B20的VCC与GND之间加入100nF滤波电容减少电源干扰同时在DATA引脚与VCC引脚之间加入10KΩ上拉电阻确保数据传输稳定避免信号失真。单片机通过DATA引脚发送复位脉冲与应答脉冲控制DS18B20采集水温数据传感器将采集到的数字温度数据反馈给单片机单片机对数据进行处理后存储并显示。3.3.2 电导率采集模块TDS传感器TDS电导率传感器输出模拟信号采用模拟信号采集方式连接STM32的ADC接口PA1引脚。TDS传感器的VCC引脚接3.3V电源GND引脚接地AO引脚模拟输出连接STM32的PA1引脚同时在AO引脚与GND之间并联100nF滤波电容减少信号干扰确保采集数据稳定。当水体电导率变化时TDS传感器的AO引脚输出的模拟电压随之变化0~3.3VSTM32通过ADC接口采集该电压信号将其转换为12位数字信号0~4095再通过标定的换算公式将数字信号转换为电导率值ppm为系统的阈值对比与报警提供数据支撑。3.3.3 PH值采集模块PH传感器PH传感器采用模拟信号输出自带信号放大电路连接STM32的ADC接口PA2引脚。PH传感器的VCC引脚接3.3V电源GND引脚接地AO引脚模拟输出连接STM32的PA2引脚同时并联100nF滤波电容滤除信号干扰确保采集精度。PH传感器的输出电压与PH值呈线性关系通常0~3.3V对应0~14pHSTM32通过ADC接口采集AO引脚的模拟电压转换为数字信号后通过线性换算公式转换为PH值实现水体酸碱度的实时检测。采集过程中可通过软件校准进一步提高PH值的检测精度。3.3.4 浊度采集模块浊度传感器浊度传感器采用模拟信号输出连接STM32的ADC接口PA3引脚。浊度传感器的VCC引脚接3.3V电源GND引脚接地AO引脚模拟输出连接STM32的PA3引脚并联100nF滤波电容减少信号干扰确保采集数据稳定。浊度传感器的输出电压与水体浊度呈负相关浊度越高输出电压越低STM32通过ADC接口采集AO引脚的模拟电压转换为数字信号后通过标定的换算公式转换为浊度值NTU准确反映水体的浑浊程度为系统的异常报警提供数据支撑。3.4 执行模块电路设计3.4.1 蜂鸣器报警模块采用有源蜂鸣器其VCC引脚接5V电源GND引脚通过NPN三极管连接STM32的PB1引脚三极管的基极通过1KΩ电阻连接PB1引脚用于控制蜂鸣器的开启与关闭。当单片机检测到水质参数异常时PB1引脚输出高电平三极管导通蜂鸣器通电发声发出报警提示当参数恢复正常或切换至手动模式时PB1引脚输出低电平三极管截止蜂鸣器停止发声。为避免蜂鸣器干扰其他模块工作在蜂鸣器的VCC与GND之间加入100nF滤波电容减少电源干扰同时在三极管的发射极与GND之间加入下拉电阻确保三极管工作稳定避免误触发。3.4.2 继电器控制模块采用5V单路继电器模块其VCC引脚接5V电源GND引脚接地IN引脚控制端连接STM32的PB2引脚。继电器模块具备光耦隔离功能可有效隔离外部干扰保护主控芯片。当STM32的PB2引脚输出高电平时继电器吸合外接设备如净水机、水泵通电工作当PB2引脚输出低电平时继电器断开外接设备断电停止工作。继电器的输出端可连接外接设备为确保安全在继电器输出端并联续流二极管防止继电器吸合与断开时产生的反向电动势损坏继电器与主控芯片提升系统的可靠性。3.5 交互与显示模块电路设计3.5.1 OLED显示模块OLED显示屏采用4针IIC协议其SDA引脚连接STM32的PB7引脚SCL引脚连接STM32的PB6引脚VCC引脚接3.3V电源GND引脚接地。IIC总线采用主从模式STM32单片机作为主设备OLED显示屏作为从设备单片机通过IIC总线向显示屏发送指令与数据控制显示屏显示相关信息。OLED显示屏的分辨率为128*64将屏幕分为5个显示区域分别显示水温格式水温XX.XX℃、电导率格式电导率XXXppm、PH值格式PH值X.XX、浊度格式浊度XXNTU及当前模式格式模式自动/手动界面设计简洁、清晰便于用户查看各项水质参数与系统工作模式。3.5.2 按键控制模块手动控制模块采用4个独立按键分别实现模式切换、阈值设置、继电器开启、继电器关闭功能。按键1模式切换连接STM32的PA4引脚按键2阈值设置连接PA5引脚按键3继电器开启连接PA6引脚按键4继电器关闭连接PA7引脚每个按键的一端接地另一端通过10KΩ上拉电阻连接对应的GPIO引脚当按键按下时引脚电平变为低电平单片机检测到电平变化后执行相应的操作。为避免按键误触发在程序中加入按键防抖处理延时10ms同时在每个按键两端并联小电容进一步减少外界干扰确保按键操作的可靠性当进入阈值设置模式时通过按键2切换需要调整的参数水温、电导率、PH值、浊度通过按键3、4调整阈值的大小增加/减少。3.5.3 WIFI通信模块ESP8266-01SESP8266-01S WIFI模块采用UART通信方式与STM32单片机连接其TXD引脚连接STM32的USART2_RX引脚PA10RXD引脚连接STM32的USART2_TX引脚PA9VCC引脚接3.3V电源GND引脚接地CH_PD引脚接3.3V电源确保模块正常工作。ESP8266-01S模块初始化完成后通过AT指令配置WIFI连接连接用户家庭WIFI与机智云平台建立通信连接连接成功后单片机通过USART2接口向WIFI模块发送水质参数数据WIFI模块将数据上传至机智云平台机智云APP实时接收并展示数据同时系统可接收机智云APP发送的控制指令可选扩展远程阈值设置、模式切换解析指令后执行相应操作。3.6 PCB板设计与制作根据硬件电路原理图采用Altium Designer软件设计PCB板设计过程中遵循布局合理、布线规范、预留接口、防水防护的原则确保PCB板的稳定性、实用性与安全性具体设计原则如下布局合理将主控模块、采集模块、执行模块、交互模块分开布局减少模块之间的干扰传感器模块DS18B20、TDS、PH、浊度的接口尽量集中便于外接传感器并浸泡在水中电源模块远离信号模块减少电源干扰WIFI模块与其他模块保持一定距离避免无线信号干扰。布线规范电源线、地线尽量粗≥1mm减少电阻损耗信号线尽量短避免交叉减少信号干扰ADC采集信号线PA1、PA2、PA3采用屏蔽布线提高采集精度UART总线、IIC总线采用差分布线提高通信稳定性所有布线避免锐角减少信号反射继电器、蜂鸣器的布线尽量远离传感器采集信号线避免电磁干扰。预留接口预留各传感器、WIFI模块、下载接口、继电器、蜂鸣器的焊接位置便于后期调试与更换模块预留电源接口方便用户供电在PCB板上预留测试点便于后期测试各模块的电压与信号预留传感器接口的防水接口提升系统的防水性能适应水体检测场景。防水防护PCB板表面采用防腐蚀涂层处理防止水体溅落导致短路传感器接口采用防水接头确保传感器长期浸泡在水中时不会出现短路问题提升系统的使用寿命。PCB板设计完成后进行打样制作焊接各元器件焊接完成后进行通电测试检查各模块是否正常工作确保PCB板无短路、虚焊、漏焊等问题同时进行防水测试确保传感器接口与PCB板在水体环境中能够稳定工作为系统软件调试奠定硬件基础。第四章 系统软件设计4.1 软件开发环境本系统软件开发采用Keil MDK5.29开发环境基于C语言进行编程结合模块化设计思想将软件分为多个独立模块便于开发、调试与维护。同时配合机智云平台进行APP数据交互配置确保远程监控功能正常实现。主要开发工具及软件如下Keil MDK5.29用于编写、编译、调试STM32单片机程序支持STM32F103C8T6芯片具备代码编辑、语法检查、仿真调试、程序下载等功能是STM32单片机开发的主流工具能够满足系统多模块程序的开发需求。Altium Designer用于硬件电路原理图与PCB板设计配合软件开发完成系统硬件与软件的协同设计确保硬件与软件的兼容性避免出现硬件与软件不匹配的问题。串口调试助手用于调试串口通信查看单片机发送的数据传感器采集数据、指令执行状态验证数据传输的准确性同时可模拟WIFI模块发送指令调试指令解析功能方便开发人员排查问题。机智云平台用于配置WIFI模块与云端的通信创建设备、定义数据点水温、电导率、PH值、浊度生成机智云APP实现水质参数的远程查看与监控无需单独开发APP降低开发难度。软件开发前需安装STM32F103C8T6的芯片包配置编译环境设置系统时钟频率72MHz、通信接口参数UART波特率9600bps、IIC通信速率100kHz、ADC采样频率1MHz确保程序能够正常编译与下载同时在机智云平台创建设备定义各项水质参数的数据点配置WIFI模块的连接参数确保WIFI模块能够正常连接云端。4.2 软件总体流程系统软件采用模块化设计思想将软件分为主控程序、传感器数据采集与处理程序、OLED显示程序、按键控制程序、蜂鸣器报警程序、继电器控制程序、WIFI通信程序及机智云APP数据交互程序各模块程序相互独立通过函数调用实现协同工作。软件总体流程如下系统上电后首先执行初始化程序包括STM32单片机初始化、GPIO口初始化、ADC初始化、IIC通信初始化、UART通信初始化、各传感器初始化、OLED显示屏初始化、WIFI模块初始化、蜂鸣器初始化、继电器初始化及按键初始化。初始化完成后系统默认进入自动模式初始化各项水质参数的上下限阈值默认阈值可根据民用场景预设如水温20~30℃、PH值6.5~8.5等开启各传感器的数据采集功能同时启动WIFI模块连接机智云平台等待连接成功。传感器采集模块实时采集数据DS18B20采集水温数据TDS传感器采集电导率数据PH传感器采集PH值数据浊度传感器采集浊度数据传输至主控模块主控模块对采集到的数据进行滤波、校准处理去除干扰信号将处理后的数据存储至数据缓冲区。主控模块将处理后的数据发送至OLED显示屏实时更新显示水温、电导率、PH值、浊度及当前模式自动/手动更新频率为1次/秒。WIFI模块连接机智云平台成功后主控模块将数据缓冲区中的各项水质参数按照机智云平台的数据格式通过UART接口发送至WIFI模块WIFI模块将数据上传至机智云平台机智云APP实时接收并展示数据实现远程监控。自动模式逻辑执行主控模块将处理后的各项水质参数与预设的上下限阈值进行对比若任意一项参数超出阈值范围立即控制有源蜂鸣器发出报警声并控制继电器吸合开启外接设备若所有参数均在阈值范围内蜂鸣器不报警继电器保持关闭状态当参数恢复正常后蜂鸣器停止报警继电器自动关闭可选。手动模式逻辑执行用户通过按键切换至手动模式后蜂鸣器报警功能关闭用户可通过按键3继电器开启、按键4继电器关闭手动控制继电器的开启与关闭OLED显示屏实时显示继电器状态开启/关闭