亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

零部件与材料

Arduino MKR GSM 1400 ×1
Adafruit NeoPixel 环形灯 (WS2812 5050 RGB, 16颗) ×1
GY-21 温湿度模块 ×1
浊度传感器 (光电晶体管输出) ×1
Adafruit 防水 DS18B20 数字温度传感器 ×1
DFRobot Gravity: 模拟矛头式 pH 传感器/计套件 ×1
SparkFun 12mm 轻触开关 ×1
跳线 (若干) ×1
220Ω 电阻 ×1

所需工具

软件与在线服务

项目详解

概述

河流是生存与贸易命脉。过去十年全球致力减少水体污染,但污染源头在河流——人们不直接向海倾倒垃圾,而是倒入河流,最终随河流入海。数据是治理关键。UnifiedWater 旨在提供低成本、可规模化部署的设备,采集并分析水质数据,便于企业/个人协同监测。

监测参数:水温、pH、浊度、大气温湿度 — 涵盖河流污染评估核心指标。

演示视频 | 效果图

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

功能架构

前端设备:MKR GSM 1400 采集数据并经 GSM 上传 Soracom 云。两种工作模式:
• 模式 1:按键单次采样,适合间歇性监测
• 模式 2:定时自动采样上传,适合长期驻留监测

采集流程图示:

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

供电方案:LiPo 电池(板载接口)、移动电源、或 VIN 引脚外接电池。设备采样间隙深度睡眠以省电。

LED 环指示:三种状态
• 多彩循环:初始化/处理中
• 红闪:警告(需放入水中或错误)
• 蓝/绿渐进:正在采样,请置入水中

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

采样过程:传感器完全浸入水中。采样前 6 秒预热,建议预热期间即浸入以获最佳结果。

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

数据封装:以 JSON 发送至 Soracom,示例:

{
  "Latitude": 53.3474617,
  "Longitude": -6.2514529,
  "waterpH": 7.30,
  "waterTurbidity": 94,
  "waterTemp": 12.10,
  "atmoTemp": 14.50,
  "atmoHum": 82,
  "deviceID": 1,
  "deviceName": "device1",
  "epoch": 1559392636,
  "mode": 2
}

后端云平台:Soracom 生态
• Soracom Harvest 接收存储数据
• Soracom Lagoon 构建仪表盘:地图标记采样点(颜色反映污染度)、折线图趋势、汇总表格、邮件告警(pH/浊度异常)

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

可扩展性:多设备并发上传同一仪表盘,低成本易部署,支持 Soracom Krypton 批量注册。未来可实现跨组织共享仪表盘协作。

核心优势

硬件构建指南

步骤 1:物料清单

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

步骤 2:电路连接

建议焊接固化,面包板原理图如下:

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

MKR GSM 准备:焊好传感器后,装入 SIM 卡、GSM 天线、电池。本例用 2节 AA 电池经 VIN 供电。

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

步骤 3:代码逻辑解析

四大核心模块:

采集传感器数据:6 秒预热后循环 16 次,每次点亮一颗 LED。波动大的 pH/浊度各采 16 次取均值;高精度温度仅最后一轮采一次。

Serial.println("Taking Sample");
delay(6000); // 传感器预热
for (int i = 0; i < 16; i++) {
  if (mode == 1) strip.setPixelColor(i, strip.Color(0, 255, 0));
  else strip.setPixelColor(i, strip.Color(0, 0, 255));
  strip.show();
  waterTurbidity += getWaterTurbidity();
  waterPh += getWaterPh();
  if (i > 14) {
    waterTemperature = getWaterTemp();
    atmoTemperature = getAtmoTemp();
    atmoHumidity = getAtmoHumidity();
  }
  delay(500);
}
// 熄灭 LED 环

获取时间与地理位置:时间从同步 GSM 网络的板载 RTC 读取;经纬度从 GPRS 定位获取。

void getCredentials() {
  currentEpoch = processTime(); // RTC 时间
  while (!getLocation());       // 阻塞直到定位成功
}
bool getLocation() {
  if (location.available()) {
    latitude = location.latitude();
    longitude = location.longitude();
    return true;
  }
  delay(500); return false;
}

数据处理:计算均值,串口打印,生成 JSON 字符串。

void processData() {
  waterPh /= 16; waterTurbidity /= 16;
  // 串口输出各项数值...
}
String makeLine() {
  // 拼装 JSON 字符串,含所有字段
  return dataReturned;
}

发送数据:HTTP POST 至 harvest.soracom.io,打印服务器响应,随后进入睡眠等待下一次触发。

void parseData(String dataToSend) {
  if (client.connect(url, 80)) {
    client.println("POST / HTTP/1.1");
    client.println("Host: harvest.soracom.io");
    client.println("User-Agent: Arduino/1.0");
    client.println("Connection: close");
    client.print("Content-Length: "); client.println(dataToSend.length());
    client.println(); client.println(dataToSend);
    // 读取响应...
  }
}

步骤 4:关键变量配置

步骤 5:上传代码与首次采样

将 MKR GSM 连接电脑上传代码(mode=1),传感器浸入水中,按键触发采样上传,重复几次填充 Soracom Air 数据。

步骤 6:配置 Soracom 平台

6.1 创建账号并注册 SIM:按官网向导注册、激活 SIM、创建组、启用 Harvest。

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

6.2 创建组与启用 Harvest

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

步骤 7:配置 Lagoon 可视化看板

创建仪表盘、添加地图/图表/表格组件、设置邮件告警阈值。

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

传感器校准指南

依赖库

外壳制作与最终部署

制作便携且可固定的外壳,支持两种模式切换。

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

确认模式设置正确,即可实地部署。检测你身边的河湖水质,探索仪表盘更多组件!

项目背景

数据是新货币,高效采集是改善环境的关键。通过集体监测河湖污染,唤醒公众关注,推动行动。受 Soracom 大赛启发,希望企业与个人能在共享仪表盘上协作,全球可视化水体健康状况。

你将为阻止水污染做什么?行动必须从今天开始,明天就太晚了。

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

源代码

GitHub 仓库:https://github.com/Andrei-Florian/UnifiedWater-v1

原理图

UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件

schematics_e7TRP6KJKI.fzz

制造工艺

  1. 树莓派 PIR 运动传感器控制 LED 实战指南
  2. 树莓派低成本土壤湿度传感器:智能灌溉 DIY 指南
  3. 树莓派 DS18B20 温度传感器测试与 HC-SR04 超声波测距实战
  4. 树莓派 + MCP9808 + InfluxDB + Grafana:家庭温度监测系统
  5. Sensor Telemetry 2.0.1:基于 Azure IoT Hub 的高精度温度监控系统
  6. 低成本情绪传感器与 EEG:实时情绪检测硬件方案
  7. 树莓派 2 (Windows 10 IoT Core) 采集 Adafruit 10DOF IMU 数据上传 Azure Event Hubs
  8. MyRiver:基于 Arduino MKR FOX 1200 的河流水质远程监测系统
  9. Arduino Cloud 传感器塔:温度、动作与气体监测
  10. 现代复古点唱机:Raspberry Pi + Arduino NeoPixel 声控灯光音乐播放器
  11. 实时物联网压力监测:MKR GSM 1400 + Arduino Cloud + Google Sheets
  12. 氧传感器 (O2) 详解:作用、位置与故障征兆