Featured Project

基于 NB-IoT 和 LoRa 的分布式水质监测系统

Back to Projects ↑

这是我的本科毕业设计,目标是解决传统人工采样监测实时性差、覆盖范围有限、运维成本高的问题。系统以 STM32F103C8T6 为核心,设计 LoRa 节点 A / B 采集温度、TDS、pH、浊度等水质参数,再由 LoRa 节点 C 汇聚数据,并通过 BC26 NB-IoT 模块和 MQTT 协议上传至 OneNET 云平台,手机端可远程查看数据和接收异常提示。

01

多节点采集

节点 A 负责温度和 TDS,节点 B 负责 pH 和浊度,OLED 本地实时显示。

02

混合通信

LoRa 负责低功耗远距离汇聚,NB-IoT 负责广域上云,兼顾覆盖与成本。

03

阈值预警

温度、TDS、pH、浊度超出阈值时触发蜂鸣器、RGB LED 和移动端提醒。

04

软硬件闭环

完成原理图、PCB、焊接、Keil 程序调试、OneNET 接入与系统联调。

STM32F103C8T6 LoRa NB-IoT MQTT OneNET OLED PCB Design Keil5 / C

System Architecture

LoRa 近端组网,NB-IoT 远程上云

系统采用“采集节点 + 汇聚节点 + 云平台 + 移动端”的结构。节点 A / B 在现场分别采集温度、TDS、pH 和浊度,通过 LoRa 把数据发送到节点 C;节点 C 负责 OLED 汇总显示、异常报警,并通过 BC26 NB-IoT 模块将数据以 MQTT 协议上传到 OneNET。

分布式水质监测系统架构图
Data path from sensor nodes to LoRa gateway, OneNET cloud, and mobile alerts.
分布式水质监测系统硬件实物联调
Hardware prototype during integrated testing.

Hardware Prototype

从原理图、PCB 到实物联调

硬件部分围绕 STM32 主控、LoRa 通信、BC26 NB-IoT、OLED 显示、蜂鸣器与 RGB LED 报警模块展开。完成 PCB 制作、焊接和模块联调后,系统可以在本地实时显示水质数据,并在异常阈值触发时给出声光提示。

MCU STM32F103C8T6
Local UI OLED + Alarm
Upload MQTT / OneNET

Field Data Flow

采集、汇聚、展示形成完整数据链路

节点 A 负责温度和 TDS,节点 B 负责 pH 和浊度;节点 C 汇聚 LoRa 数据后进行格式化、OLED 刷新、阈值判断和云端上报。测试中各节点能够稳定完成多参数采集与远程查看。

LoRa 节点 A 和节点 B 的 OLED 数据显示
LoRa acquisition nodes with local OLED readings.
节点 C 汇聚网关硬件实物
Gateway node for LoRa aggregation and NB-IoT upload.

Cloud & Mobile

OneNET 数据看板与移动端提醒

云端接收节点 C 上传的水质数据后,移动端可以查看实时参数和历史状态。当温度、TDS、pH 或浊度超过设定阈值时,系统同步触发本地声光报警与远程异常提示,减少人工巡检滞后。

  • 数据上报周期按实验场景调试到约 500ms。
  • 阈值逻辑覆盖温度、TDS、pH、浊度四类关键指标。
  • 适用于水源保护、城市水质巡检与养殖水体监测等场景。
OneNET 云平台水质数据页面
OneNET cloud dashboard for remote data observation.
移动端水质监测正常与异常状态界面
Mobile view for normal status and alarm feedback.

Engineering Notes

我在项目中完成的关键工作

这个项目不只停留在方案设计,而是把硬件、嵌入式程序、通信链路和云端展示串成了可运行系统。

01

硬件设计与焊接

绘制采集节点与汇聚节点电路,完成 PCB、焊接、供电与模块连线检查。

02

嵌入式程序调试

使用 Keil5 / C 完成传感器读取、串口通信、OLED 显示、蜂鸣器和 RGB LED 控制。

03

通信与云端接入

调通 LoRa 节点通信、BC26 NB-IoT 联网、MQTT 上报和 OneNET 数据展示。

04

系统联调与验证

通过实物测试验证多节点采集、异常阈值报警、远程查看和移动端提示流程。