基于 Arduino 与 GPRS/GPS 的实时水质监测系统
组件与物料清单
| 组件 | 数量 | 备注 |
|---|---|---|
| Arduino UNO | 1 | 实为 Arduino Genuino 101 |
| A7 GPRS/GPS 模块 | 1 | 集成 GPRS 与 GPS,价格较 SIM900 便宜 |
| 水质传感器套装 | 1 | 含温度、pH、溶解氧、浊度传感器 |
所需工具
- 电烙铁(通用)
应用与在线服务
- Microsoft Azure(免费学生套餐托管网站和数据库)
- Arduino IDE
项目简介
引言
2016 年 9 月,一座水处理厂因污染水流入被迫关闭,供水公司无法定位污染源,造成严重供水中断。我的大学课程要求学生构建系统解决社区问题。自动化水质监测系统将大大简化污染源排查!
系统概览

4 个传感器接入 Arduino Genuino 101。均为电流输出型,需配套调理电路。Arduino 定期采集测量数据,获取 GPS 坐标,通过 GPRS 数据链路将数据包上传至数据库。用户可在网页查看结果:
传感器探头

三个电流输出传感器来自 Global Water,由指导老师提供。本项目使用温度、pH 和溶解氧传感器。遗憾的是溶解氧传感器故障。
另一个是浊度传感器,输出电压与水中悬浮固体颗粒量成正比。
传感器与 Arduino 接口
用电阻将电流输出转换为可测量的电压电平。
A7 GPRS 与 GPS 模块

选择 A7 模块因其比 SIM900 便宜,且集成 GPRS 和 GPS 于一体!
但便宜有代价:
- 模块自带的 GPS 天线其实不是真正的 GPS 天线,需自行购买。
- 默认仅支持 115200 bps UART 通信,即使软件修改波特率,掉电后仍恢复默认。Software Serial 在 115200 bps 下极其不可靠。为此我纠结了两天,最终在 Arduino 代码中实现了波特率自动切换功能。
- 这是新模块,我需自行编写库。源码拼凑自 SIM900 和 Adafruit GPS 库,虽乱但能用,请勿鄙视。
需设计电路控制模块开关。模块有 RESET 和 PWR_KEY 两个控制引脚。PWR_KEY 施加电压至少 2 秒启动模块。复位时将 RESET 拉低至 GND,否则 RESET 应上拉至 5V。我先复位再上电,确保正常启动。
电源系统
电源系统值得专门说明(我觉得),因为电流输出传感器需要最低 10V 工作,高于我们喜爱的 5V。为演示远程工作能力,选用锂离子电池。

两节锂电串联得 7.4-8.4V,一个降压模块输出 5V 供 Arduino 和 A7,一个升压模块输出 11V 供水质传感器。此续航不长,但原型验证非主要关注点。
电路板
系统构建在万能板上,板子和 Arduino Genuino 101 完美装入外壳。

外壳
指导老师给了一个旧外壳,之前学生为水质传感器项目钻好的孔,正好复用!

注意传感器连接器。传感器自带连接器,我找配对插头,型号 GX16,非常通用,未来项目肯定派得上用场!
网页端
最后,花了我几周从零搭建的部分。我零基础搞服务器和网站,项目中自学了 PHP、SQL、JavaScript、CSS 和 HTML。
网站托管在 Microsoft Azure 学生免费套餐,有限制但够用。数据库用 ClearDB(Azure 合作伙伴),同样有内存限制但足够。
代码在仓库,记得在 username_password.php 填入你的凭证。
log.php 将 Arduino 发来的所有数据存入数据库。网页展示 Google Map,在有测量数据的位置显示标记。其他 PHP 文件都是访问数据库取数据的“工具”。
网页响应较慢,全是我硬拼凑的,希望改进。欢迎建议!
代码
水质监测系统
网站代码在 /Website,Arduino 草图和 A7 模块库在 /Arduino
https://github.com/JohnHJ01/Water-Quality-Monitoring-System
原理图
整个系统的原理图
制造工艺
- 树莓派控制水培养殖系统:构建指南与代码
- 使用 OpenSensors 监测空气质量:Arduino 与 Python 实战指南
- 智能室内空气质量与垃圾监测系统
- K30 CO₂ 传感器:室内空气质量实时监测
- SERENA:基于 Arduino Mega 2560 与 TFT 触摸屏的多级密码报警系统
- 基于 Arduino Nano 的智能运动感应水枪
- 非接触体温筛查闸机:Arduino MKR1000 + 红外测温 + 舵机控制
- 实时森林火灾监测系统:短信报警方案
- 智能地下室通风系统:Arduino 驱动的湿度自动控制
- 校园智能体温监测系统 - 精准、实时、安全的学生健康守护方案
- Arduino智能防碰撞预警系统:超声波测距+声光分级报警
- 物联网赋能环境空气质量监测:提升安全、生产力与可持续性