返回主站|会员中心|保存桌面

AB罗克韦尔服务商    

PLC、变频器、人机界面、传感器

联系方式
  • 联系人:吴经理
  • 电话:18576370666
新闻分类
  • 暂无分类
首页 > 新闻中心 > 水位远程无线采集手机监控!
新闻中心
水位远程无线采集手机监控!
发布时间:2025-09-21        浏览次数:1        返回列表

实现水位远程无线采集并通过手机监控,需要结合传感器采集、无线传输、云平台、手机 APP四个核心环节,适用于水库、水箱、河道等场景的水位监测。以下是完整的实现方案、设备选型及配置步骤:

一、系统整体架构

系统采用 “水位传感器→采集终端→云平台→手机 APP” 的无线传输链路,具体流程:

  1. 水位传感器实时检测水位数据(如 0~10 米);

  2. 采集终端(带无线模块)读取传感器数据,通过 4G/NB-IoT/LoRa 等无线方式上传至云平台;

  3. 云平台存储、处理数据,并提供手机 APP 访问接口;

  4. 用户通过手机 APP 查看实时水位、历史曲线、报警信息。

plaintext

[水位传感器] → [采集终端(无线传输)] → [云平台] → [手机APP]
   (检测水位)    (4G/NB-IoT/LoRa)  (数据存储)  (远程监控)

二、核心设备选型(高性价比方案)

1. 水位传感器(按场景选择)

  • 投入式液位计(适合水箱、水池):型号:昆仑海岸 JYB-KO-Y2(4-20mA 输出,测量范围 0~10 米,精度 ±0.5%),直接投入水中,输出与水位成正比的电流信号。

  • 超声波液位计(适合河道、水库,非接触式):型号:SICK LU10(0~5 米量程,RS485 输出),安装在水面上方,通过超声波反射计算距离。

2. 无线采集终端(核心传输设备)

推荐4G/NB-IoT 一体化采集终端(无需布线,即插即用):

  • 型号:有人 USR-DR302(支持 4G 全网通,带 1 路 4-20mA 输入、1 路 RS485);

  • 功能:读取传感器数据,通过 4G 上传至云平台,支持本地存储(防止网络中断),带继电器输出(可联动报警)。

3. 云平台(数据中转与存储)

  • 免费 / 低成本平台:阿里云 IoT、腾讯云 IoT(支持设备接入、数据存储、API 接口);

  • 工业级平台:有人云、华为云 IoT(提供现成的监控模板,无需二次开发)。

4. 手机 APP(监控终端)

  • 直接使用云平台自带 APP(如 “有人云” APP,支持实时数据、报警推送);

  • 定制开发:若需个性化界面,可基于云平台 API 开发简易 APP(用小程序、Flutter 框架)。

三、硬件连接与配置步骤

1. 硬件接线(以投入式液位计 + USR-DR302 为例)

  • 传感器→采集终端:液位计的 4-20mA 输出端(红 +、蓝 -)接 USR-DR302 的 AI1+、AI1 - 端子;

  • 电源:采集终端接 12V DC 电源(推荐带太阳能电池板,适合无市电场景)。

2. 采集终端配置(通过网页或配置软件)

  1. 连接终端:用网线将电脑与 USR-DR302 连接,访问默认 IP(192.168.1.1),登录管理界面;

  2. 配置传感器参数:

    • 输入类型:选择 “4-20mA”;

    • 量程映射:0~10 米对应 4~20mA(即 4mA=0 米,20mA=10 米);

  3. 配置无线传输:

    • 选择 “4G” 模式,插入 SIM 卡(开通流量套餐,每月 50MB 足够);

    • 云平台对接:选择 “阿里云 IoT”,填入设备三元组(从阿里云平台获取);

    • 上传频率:设置数据上传间隔(如 1 分钟 / 次,降低流量消耗)。

3. 云平台配置(以阿里云 IoT 为例)

  1. 创建设备:登录阿里云 IoT 控制台,创建产品(“水位监测设备”)和设备(获取三元组);

  2. 数据解析:定义物模型(如 “waterLevel” 字段,单位米,数据类型 float);

  3. 可视化配置:添加仪表盘、历史曲线组件,绑定 “waterLevel” 字段;

  4. 报警设置:添加规则(如水位 > 8 米时触发报警),关联短信 / APP 推送。

4. 手机监控配置

  1. 下载云平台 APP(如 “阿里云 IoT Studio”),登录账号;

  2. 绑定设备:在 APP 中添加已创建的水位监测设备;

  3. 查看数据:实时显示当前水位,支持查看近 7 天历史曲线;

  4. 接收报警:当水位超限时,APP 弹窗 + 推送通知(需开启权限)。

四、关键技术细节与优化

1. 数据精度保障

  • 传感器校准:安装前用万用表测量 4mA(0 米)和 20mA(满量程)输出,确保线性;

  • 滤波处理:在采集终端设置 “移动平均滤波”(如 5 次采样平均),平滑波动数据。

2. 低功耗与续航(无市电场景)

  • 供电方案:12V/10Ah 锂电池 + 10W 太阳能板(晴天可持续供电,阴雨天支持 3~5 天);

  • 终端休眠:设置采集终端在非上传时段进入休眠模式(电流 < 10mA)。

3. 抗干扰与稳定性

  • 传感器布线:4-20mA 信号线用双绞屏蔽线,屏蔽层单端接地;

  • 网络冗余:重要场景可选用 “4G+LoRa” 双模终端,确保偏远地区信号稳定。

4. 报警联动(可选)

  • 本地报警:采集终端继电器接声光报警器,水位超限即时响铃;

  • 远程控制:通过 APP 手动触发排水泵(需终端带继电器输出,云平台支持控制指令)。

五、常见问题与解决方案

故障现象可能原因解决方法
手机 APP 无数据更新SIM 卡无流量 / 终端未联网检查 SIM 卡余额,终端管理界面查看网络状态
数据波动大传感器松动 / 水流冲击固定传感器,增加防波管(减少水面波动影响)
报警不推送APP 权限未开启 / 规则配置错手机开启 APP 通知权限,重新配置云平台报警规则

总结

水位远程无线采集系统的核心是 **“传感器精准采集 + 稳定无线传输 + 云平台数据处理”**,推荐采用 “投入式液位计 + 4G 采集终端 + 现成云平台” 的方案,成本低(全套约 1500 元)、部署快(1 天内完成)。手机端通过云平台 APP 即可实现实时监控与报警,适合中小规模的水位监测场景。对于大规模组网(如多测点河道监测),可选用 LoRa 网关 + NB-IoT 终端,降低整体成本。

# 水位数据上传阿里云IoT示例代码(运行在采集终端)

import serial

import time

import json

import urllib.request

import ssl


# 阿里云IoT设备三元组(从平台获取)

PRODUCT_KEY = "a1XXXXXXXXX"

DEVICE_NAME = "water_level_sensor"

DEVICE_SECRET = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

REGION_ID = "cn-shanghai"


# 4-20mA转水位计算(0-10米)

def current_to_level(current):

    # current: 4-20mA对应的电流值(单位:mA)

    if current < 4:

        return 0.0

    elif current > 20:

        return 10.0

    else:

        return (current - 4) / (20 - 4) * 10.0


# 读取传感器电流(模拟量采集,实际需根据硬件调整)

def read_sensor():

    # 模拟读取4-20mA信号(实际项目中替换为硬件接口读取)

    ser = serial.Serial('/dev/ttyAMA0', 9600, timeout=1)

    ser.write(b'READ_AI1\r\n')  # 发送读取指令

    response = ser.readline().decode().strip()

    ser.close()

    

    if response.startswith("AI1:"):

        current = float(response.split(":")[1])  # 解析电流值(mA)

        return current_to_level(current)

    else:

        return None


# 上传数据到阿里云

def upload_to_aliyun(level):

    # 构建JSON数据

    payload = {

        "id": str(int(time.time())),

        "params": {

            "waterLevel": round(level, 2)  # 保留2位小数

        },

        "method": "thing.event.property.post"

    }

    

    # 阿里云HTTPs请求(简化版,实际需加签名,建议用SDK)

    url = f"https://{PRODUCT_KEY}.iot-as-http2.{REGION_ID}.aliyuncs.com:443/topics/{PRODUCT_KEY}/{DEVICE_NAME}/user/update"

    headers = {"Content-Type": "application/json"}

    

    try:

        req = urllib.request.Request(url, data=json.dumps(payload).encode(), headers=headers)

        context = ssl._create_unverified_context()  # 忽略证书验证(测试用)

        response = urllib.request.urlopen(req, context=context)

        print("上传成功:", response.read().decode())

    except Exception as e:

        print("上传失败:", str(e))


# 主循环

if __name__ == "__main__":

    while True:

        water_level = read_sensor()

        if water_level is not None:

            print(f"当前水位:{water_level}米")

            upload_to_aliyun(water_level)

        else:

            print("传感器读取失败")

        time.sleep(60)  # 1分钟上传一次

上述代码为采集终端上传数据到阿里云的简化示例,实际应用中建议使用官方 SDK(如阿里云 IoT Python SDK)处理签名和加密,确保数据安全。通过该系统,用户可在手机上随时随地监控水位变化,及时响应异常情况。

收缩
  • 电话咨询

  • 18576370666
  • 添加微信客服