物联网远程角度监测七步设计:424B霍尔角度传感器4-20mA采集与NB-IoT上云讲透

闸门、阀门开度要远程看,现场却常常没电没网线。本文用424B霍尔角度传感器的真实参数,讲清三种输出接口怎么选、STM32怎么把4-20mA换算成角度、以及NB-IoT怎么把数据送上云。

2026-10-05
424B霍尔角度传感器4-20mANB-IoT远程监测RTU

闸门开度、阀门转角、渠闸位置这类"角度量"要远程监测,现场往往既没有稳定市电,也拉不动通信线。物联网方案看起来简单——装个角度传感器、接个 RTU、上 NB-IoT——真正做起来,三个地方最容易翻车:传感器输出接口选错(1-5V 走长线被干扰、0.5-4.5V 比例输出接错参考地)、4-20mA 采集换算把量程算偏、以及低功耗与上报节奏没算清导致电池半年就没电。本文以 424B 霍尔角度传感器为例(非接触霍尔原理、量程 10~120°、分辨率 0.1°、支持 1-5V/4-20mA/0.5-4.5V 三种输出),用三张对比表和七步设计,把从传感器选型到 STM32 采集换算、再到上云的全链路讲透。

一、先看清 424B 的型号含义与参数边界

424B 是霍尔效应的非接触式角度传感器,测量范围从 10° 一直到 120°,采用三引脚密封连接器(不是机械连接形式),带短路保护。非接触这一点对闸门、阀门这种长期振动、频繁动作的场合很关键——没有电刷和机械磨损点,寿命长得多。

它的型号是一串编码,读懂编码就不会选错型号:424 (1)(2)(3)(4)(5)(6)(7)(8)。第 1 位是 EMC 等级:A 表示摩托工业级(200V/m),B 表示一般工业级(10V/m);第 2 位是支撑结构(0 平面支撑/1 球形支撑);第 3 位是输出信号(0=1-5V、1=4-20mA、6=0.5-4.5V 比例输出、7=0.5-4.5V 输出);第 4 位是封装材料(A=PBT);第 5~7 位是三位数的测量角度范围,例如 070 表示量程 70°;第 8 位是 B。

型号(节选) 工作电压 输出形式 消耗电流 分辨率 中心位置 反极性保护
424 A10…10~30V1-5V12V:18mA0.1°3V有
424 A11…10~30V4-20mA8.5V:35mA0.1°12mA有
424 A12…8.5V1-5V12V:18mA0.1°3V有
424 A16…4.5~5.5V0.5-4.5V 比例5V:8mA0.1°典型 2.5V无
424 A17…10~30V0.5-4.5V12V:10mA0.1°典型 2.5V有
424 B11…10~30V4-20mA12V:18mA0.1°12mA有

选型第一原则:现场线缆超过 10 米、或与动力线同槽走,选 4-20mA 型号(如 424 A11);传感器与采集板同板、线短且干净,选 0.5-4.5V 比例输出(如 424 A16),让它与 ADC 共用同一参考电压,天然抵消参考漂移。

二、三种输出接口怎么选:一张表定死

三种输出不是"精度高低"的区别,而是抗干扰、传输距离、采集电路三件事的取舍。4-20mA 是电流环,线路压降不影响读数;电压输出是高压阻抗信号,长线上容性耦合会直接污染读数。

输出形式 抗干扰能力 有效传输距离 采集电路要求 适用场景
1-5V 中(电压信号,怕长线耦合) ≤ 10m 直接进 ADC,需注意参考电压精度 控制柜内短距、采集板就近安装
4-20mA 强(电流环,压降不敏感) ≥ 100m 精密采样电阻 + 差分/单端 ADC 现场闸门、阀门、长线缆、强干扰环境
0.5-4.5V 比例 强(与供电同比例,抵消参考漂移) ≤ 5m ADC 参考必须取传感器同一 5V 供电 传感器与 MCU 同板、共用 5V 的场合

注意 424 A16 型号没有反极性保护,接反会损坏;而 A10/A11/A17 等型号带反极性保护。现场接线端子多、施工人员容易接错,这一点在选型时就要确认清楚。

三、远程角度监测的通信链路怎么搭

角度数据到了采集端,还要送上云。有线、LoRa、NB-IoT 三条路的取舍,取决于现场有没有网、有没有电、上报频次多高。

通信方式 是否需要自建网关 典型距离 功耗特征 适用场景
RS-485 / Modbus RTU 需接RTU或网关 ≤ 1200m(总线) 持续供电 厂区内有电源、有集中控制室的闸站
LoRa 需自建网关 1~5km(视距) 低功耗,电池可用数年 灌区、农田渠闸等分散点位、无蜂窝覆盖
NB-IoT 不需要(走运营商网络) 依赖基站覆盖 低功耗,PSM/eDRX 可做电池供电 有蜂窝覆盖的市政闸门、管网阀门

工程上常见做法是两层结构:现场用 4-20mA 把角度送到就近的 RTU,RTU 用 Modbus 汇总多点,再由 NB-IoT 模块把整包数据上报云平台。这样既利用了 4-20mA 的抗干扰,又避免了每个点位都装一个蜂窝模块的成本。

424B 霍尔角度传感器 4-20mA 电流环 长线抗干扰 RTU / STM32 采样换算 + Modbus NB-IoT 上报云平台 角度 → 电流 → 数字量 → 上云:每一段的误差都要单独核算
图1:424B 远程角度监测链路。4-20mA 解决现场传输,RTU 做换算与汇总,NB-IoT 负责上云

四、4-20mA 采集换算:把量程算对

4-20mA 进 STM32 之前要先转成电压。做法是在回路里串一颗精密采样电阻 Rs,把电流变成电压再进 ADC。取 Rs = 150Ω:

0.6~3.0V 落在 3.3V 参考的 ADC 量程内,留了余量,不会削顶。换算公式是线性的:

角度 = (Vadc − 0.6) ÷ (3.0 − 0.6) × 量程

以量程 70° 的 424 A11 070 型号为例,ADC 读到 1.8V,则角度 = (1.8−0.6)/2.4 × 70 = 35.0°。下面是一段 STM32 的采集与换算示意代码,含多点平均与断线检测(4mA 以下判为断线):

/* STM32 ADC 采集 4-20mA 角度传感器(Rs=150Ω)
 * 4mA -> 0.6V, 20mA -> 3.0V, 量程 RANGE_DEG 度
 */
#include "stm32f1xx_hal.h"

#define V_LOW     0.60f      /* 4mA 对应电压 */
#define V_HIGH    3.00f      /* 20mA 对应电压 */
#define RANGE_DEG 70.0f      /* 传感器量程,按型号填写 */

extern ADC_HandleTypeDef hadc1;

/* 读一次 ADC 并转成电压(12 位、Vref=3.3V、16 次平均) */
static float read_loop_voltage(void)
{
    uint32_t sum = 0;
    for (int i = 0; i < 16; i++) {
        HAL_ADC_Start(&hadc1);
        HAL_ADC_PollForConversion(&hadc1, 10);
        sum += HAL_ADC_GetValue(&hadc1);
    }
    float raw = (float)sum / 16.0f;          /* 0~4095 */
    return raw * 3.3f / 4095.0f;
}

/* 返回角度;负数表示断线或超量程 */
float read_angle_deg(void)
{
    float v = read_loop_voltage();

    if (v < V_LOW - 0.05f)  return -1.0f;    /* <3.7mA: 断线 */
    if (v > V_HIGH + 0.05f) return -2.0f;    /* >20.7mA: 超量程 */

    float deg = (v - V_LOW) / (V_HIGH - V_LOW) * RANGE_DEG;
    if (deg < 0.0f)        deg = 0.0f;
    if (deg > RANGE_DEG)   deg = RANGE_DEG;
    return deg;
}

/* Modbus 保持寄存器映射:角度放大 10 倍存整数,便于上位机解析 */
unsigned short angle_to_reg(float deg)
{
    return (unsigned short)(deg * 10.0f + 0.5f);   /* 35.0° -> 350 */
}

把角度放大 10 倍存成整数(35.0° → 350),是为了避免浮点传输与字节序问题,上位机除以 10 即可。断线检测必须做——4-20mA 的"活零点"设计本意就是让断线(0mA)与量程下限(4mA)可区分,不利用就浪费了。

五、七步落地设计

第 1 步:按现场条件定输出形式

线长 ≤10m 且柜内干净选 1-5V;长线、强干扰选 4-20mA;同板共用 5V 选 0.5-4.5V 比例输出。这一步定错,后面全部返工。

第 2 步:按机械行程定量程

424B 量程 10~120° 可选,型号末三位就是量程。选型时留 10% 余量:实际动作 60°,选 70° 量程,避免长期顶在满量程端点。

第 3 步:确认供电与极性保护

10~30V 宽压型号适合现场 24V;A16 无极性保护,接线端子要防呆;其余型号有极性保护但仍建议加防反接二极管。

第 4 步:4-20mA 回路串采样电阻

Rs=150Ω/0.1%/低温漂,功率按 (20mA)²×150Ω = 60mW 选 0.25W 以上。采样电阻放在低端还是高端要按 ADC 共模范围决定,低端更简单但要接受地电位偏移。

第 5 步:ADC 前端加滤波

采样电阻两端并 0.1µF + 10µF,再串 10Ω 做 RC 低通,抑制现场变频器与接触器噪声。配合 16 次平均,读数抖动可压到 0.1° 量级。

第 6 步:断线与超量程处理

小于 3.7mA 判断线、大于 20.7mA 判超量程,分别上报不同告警码。角度数据带时间戳与有效性标志一起上云,避免上位机把故障值当成真实角度。

第 7 步:定上报节奏与低功耗策略

闸门开度变化慢,无需秒级上报。常态 5~10 分钟一次心跳、开度变化超过阈值(如 2°)立即上报,配合 NB-IoT 的 PSM 模式,电池供电也能撑很久。

六、六个最容易踩的坑

现象 根因 处理
角度读数随线长变低 用了 1-5V 输出走长线,线路压降与耦合损耗 改 4-20mA 型号,电流环对压降不敏感
比例输出型号读数整体漂移 ADC 参考与传感器供电不是同一个 5V 让 ADC 参考取传感器同一 5V,比例关系才成立
量程两端读数"贴边"不变 机械行程超出传感器量程,长期顶死 重新按行程选量程,留 10% 余量
断线时读数显示 0° 未做活零点检测,把 0mA 当成 0° 加 <3.7mA 断线判断并单独上报告警
读数随机跳变 采样电阻未滤波,动力线噪声耦合 RC 低通 + 多次平均 + 采样电阻就近接地
电池几个月就没电 NB-IoT 上报过频,未启用 PSM 降上报频次、变化触发上报、启用 PSM/eDRX

七、总结

闸门、阀门这类远程角度监测,成败不在传感器本身,而在输出接口与采集链路的匹配:长线强干扰就选 4-20mA,同板干净就用 0.5-4.5V 比例输出,量程按机械行程留 10% 余量。424B 提供 10~120° 量程、0.1° 分辨率与三种输出,选型自由度足够覆盖大多数现场。

采集端记住三点:采样电阻 150Ω 把 4-20mA 变成 0.6~3.0V、换算用线性公式并做断线判断、上报带时间戳与有效性标志。把这三件事做对,再配合 RTU 汇总与 NB-IoT 的低功耗上报,整套远程角度监测才能既准又省电。

还想接着看

本文基于《角度传感器 424B、A 系列中文资料》等技术资料整理优化,并结合闸门、阀门开度远程监测的物联网工程实践进行了系统化梳理。

需要定制开发?

沧州艾诺威电子 — 国家高新技术企业,20+项国家专利
嵌入式系统开发 · 物联网方案 · AI智能硬件 · 一站式交付

立即微信咨询

电话:13930711029 | 邮箱:tech@czinv.com | 24小时内响应