嵌入式开发·基于stm32便携式污水监测船技术细节详解
最后更新于:2026年3月14日 晚上
基于stm32便携式污水监测船技术细节详解
1.为什么选这款核心控制器:STM32F103C8T6
性价比高、资源丰富(GPIO、ADC、定时器、UART接口够用)、生态成熟。对于本项目的数据采集和电机控制,F103的性能完全满足实时性要求。

我选用的主控是STM32F103C8T6。它基于Cortex-M3内核,主频72MHz,拥有64K Flash(相当于固态硬盘)和20K SRAM(内存),对于这个便携式检测船项目来说性价比很高。
在资源分配上,我充分利用了它的外设:
- 串口方面:它有3个USART。我用USART1打印调试日志,USART2对接ESP8266 Wi-Fi模块上传数据到OneNET云平台。
- ADC方面:它有2个12位ADC。我开启了多通道扫描模式配合DMA,实时采集pH值、浊度和TDS传感器的模拟信号。
- 定时器方面:我使用通用定时器产生两路PWM,控制船体电机的差速转向。
总体来说,C8T6的资源刚好满足项目需求,且引脚(48脚)体积小,适合便携式设备。
2.GPIO、ADC、I2C、SPI原理解释
GPIO — 最简单的“引脚开关”
全称:General Purpose Input Output,通用输入输出。
就是单片机最普通的引脚,只有两种状态:
- 高电平:3.3V / 5V
- 低电平:0V
两种模式
- 输出(Output)
- 输出高:灯亮、继电器吸合
- 输出低:灯灭、继电器断开
- 输入(Input)
单片机读取外部电平。
- 读高 / 读低,判断按键按下、传感器信号
一句话理解
GPIO = 单片机的手和眼,能控制也能读取。
ADC — 测量“模拟量”的转换器
全称:Analog to Digital Converter,模拟转数字。
现实世界很多量是连续变化的:
- 电压 0~3.3V
- 温度、光照、声音、电位器旋钮
但单片机只认 0 和 1,所以需要 ADC。
- 外部输入连续电压
- ADC 把它转成数字(比如 0~4095)
- 单片机就能计算:电压 = 多少、温度 = 多少
关键概念
- 分辨率:12 位,即 0~4095
- 参考电压:3.3V
- 数字越大,电压越高
ADC = 把“连续电压”翻译成单片机能看懂的“数字”。
I2C — 两根线的“低速简约通信”
全称:Inter-Integrated Circuit
- SDA:数据线(发数据)
- SCL:时钟线(同步节奏)
- 主机(单片机)发时钟信号,大家同步
- 总线上可以挂多个设备
- 每个设备有唯一地址
- 主机喊地址,对应设备回应
优点 / 缺点
- 优点:线少、简单、支持多设备
- 缺点:速度不快
典型设备
OLED 屏、陀螺仪、温湿度传感器、EEPROM
I2C = 两根线,大家轮流说话,地址找人。
SPI — 四根线的“高速通信”
全称:Serial Peripheral Interface
通常 4 根线
- SCLK:时钟
- MOSI:主机发 -> 从机收
- MISO:从机发 -> 主机收
- CS/SS:片选(选谁通信)
- 全双工:一边发一边收
- 时钟一跳,数据就移一位
- 用 CS 选中一个设备,只跟它说话
- 速度可以非常快
优点 / 缺点
- 优点:极快、全双工、稳定
- 缺点:线多,每个设备要单独 CS
典型设备
Flash、屏、SD 卡、高速 ADC、射频模块
SPI = 高速专车,点对点,速度快到飞起。
超简总结(最好记)
- GPIO:控制高低电平、读开关
- ADC:把模拟电压转成数字
- I2C:2 根线,慢,省引脚,多设备
- SPI:4 根线,快,全双工,高速设备
传感器模块
pH 传感器(E-201 玻璃探头):
- 原理: 用于检测水体的酸碱度(0~14)。它输出的是微弱的电压模拟信号,需要主控芯片进行读取转换。
- 技术细节: pH 值的测量极易受水温影响,因此该模块在硬件设计上与下面的温度传感器(DS18B20)相连,实现了温度补偿,让酸碱度测得更准。
2. 温度传感器(DS18B20):
- 原理: 采用防水型探头测量水温。这是一款高精度的数字温度传感器。
- 技术细节: 它采用单总线(1-Wire)技术,只需要一根数据线就能和主控芯片通信,大大节省了引脚资源。
3. 浊度传感器(TWS):
- 原理: 检测水中有机物、无机物等悬浮颗粒的多少(即水的浑浊程度)。
- 技术细节: 光学原理,水越浑浊,透过的光越少,传感器将其转化为电压信号传入 STM32 的 ADC 接口。
4. TDS 电导率传感器:
- 原理: 检测水中溶解的固体总量(如重金属离子、可溶性盐等)。导电率越高,说明水中杂质可能越多。
三、系统的“神经网络”:物联网通信技术(传输)
小船在水上测到的数据,需要实时传回岸上,这就需要强大的无线通信技术。
- 1. 硬件通信模块:ESP-01S WiFi 模块
- 该模块支持2.4GHz频段,能在100米范围(视距)内提供稳定的无线网络。它通过串口(RX/TX)与 STM32 通信,把单片机里的数据打包发到互联网上。
- 2. 通信协议:MQTT 协议
- 为什么用 MQTT: 在复杂的水域环境中,网络信号可能不好。MQTT 是一种轻量级、低开销、高可靠的物联网协议。它采用“发布-订阅”模式,即使在网络不稳定的情况下,也能最大程度保证数据不丢失。
- 3. 云端中枢:OneNET 物联网云平台
- 由中国移动提供的物联网平台。小船作为“设备”接入该平台,源源不断地把水质数据上传到云端数据库中;同时,云平台也可以向下发指令(比如遥控小船的动作)
四、系统的“决策端”:软件可视化与 AI 技术(应用)
终端用户(监测人员)如何看数据?如何分析污染?***
- 1. 跨平台可视化界面(H5 / 微信小程序 / PC端):
- 系统开发了多个客户端。通过调用 OneNET 云平台的 API 接口,抓取云端数据,并使用ECharts 数据图表,把枯燥的数字变成直观的折线图、仪表盘,实时显示水温、pH值、电量等。
- 2. 引入大模型技术(科大讯飞星火认知大模型):
- 这是本系统的一项极大创新。论文中提到接入了“科大讯飞星火大平台”的 API。
- 底层技术: 采用 WebSocket 协议实现网页端与 AI 服务器的双向实时通信。
- 应用场景: 当检测到异常数据(例如某区域 pH 值突然过低,呈强酸性),监测人员可以在系统里直接询问 AI 大模型。AI 会结合当前的水质数据,提供高效的数据分析、污染源追踪建议或异常问题的解决方案(类似于给系统配备了一个水质环保专家)。