HX711称重传感器智能售货机结算技术分析
在写字楼的茶水间、地铁站的角落,甚至医院走廊尽头——你有没有注意到,越来越多的“拿了就走”智能柜正在悄悄改变我们的购物方式?不需要扫码选品,也不用对着屏幕点来点去,开门、取货、关门,手机自动扣款。整个过程行云流水,仿佛这台机器真的“看懂”了你在做什么。
但真相是:它没“看”,它是“称”出来的 🤯
没错,这种无感结算的背后,并非全靠摄像头AI识别,也不是每件商品都贴着RFID标签。 很多中小型智能售货机,其实靠的是一个成本不到5块钱的国产芯片——HX711 + 称重传感器组合 ,通过精确感知重量变化来判断你拿走了什么。
听起来有点不可思议?一块几毛钱的应变片,加上一个24位ADC,真能搞定复杂的商品识别?今天咱们就来深挖一下这套看似简单、实则精巧的技术方案,看看它是如何用“物理思维”解决“数字问题”的。
从一包薯片说起:重量也能“说话”
想象这样一个场景:你打开售货机,伸手拿了一瓶水和一包薯片。机器怎么知道你没只拿水?又怎么分辨你是拿了一包还是两包?
答案藏在 重量的微小差异里 。
现代称重传感器的精度可以做到 0.1克级别 ,而HX711作为其“翻译官”,能把这个细微变化转化为可靠的数字信号。只要系统提前录入商品的标准重量(比如矿泉水550g,薯片78.5g),再结合算法匹配实时重量差,就能反推出用户取走了哪些商品。
而且这套方案还有个巨大优势:
不涉及人脸或行为采集,完全避开隐私雷区
😌
比起动辄上千元的视觉识别模组,它的硬件成本几乎可以忽略不计。
所以你会发现,在零食机、药品柜、成人用品自动售货机这类对隐私敏感或预算有限的场景中,HX711几乎是“标配”。
HX711:专为秤而生的“高精度耳朵”
HX711不是普通的ADC,它是为电子秤量身打造的24位模数转换器,由上海亚辉(AVIA)出品,堪称“国产工业级传感芯片中的性价比之王”。
它到底强在哪?
它听得特别“细”
称重传感器输出的是毫伏级电压信号(比如5V供电下,满载才10mV)。这么微弱的信号,普通MCU根本读不准。而HX711内置了低噪声可编程增益放大器(PGA),能把信号放大64倍或128倍,然后再交给24位Σ-Δ ADC进行数字化处理。
这意味着它的有效分辨率能达到 19.5位以上 ,相当于在一公斤范围内能分辨出0.1克的变化——比一片口香糖还轻!
它会“切换频道”
HX711有两个差分输入通道:
-
通道A
:支持64/128倍增益,适合高灵敏度小量程传感器;
-
通道B
:固定32倍增益,用于辅助测量或温度补偿。
你可以通过时序控制在两个通道之间切换,灵活应对不同货道的需求。
它省电又抗干扰
工作电压2.7V~5.5V,兼容3.3V和5V系统;待机电流小于1μA,非常适合长期运行的无人设备。更妙的是,它采用差分输入设计,能有效抑制共模噪声,哪怕机器被快递车震得嗡嗡响,数据依然稳定。
💡 小知识:为什么是25个脉冲读一次数据?
HX711使用类似SPI的串行协议,但有个“小心机”:你需要给PD_SCK引脚发25个时钟脉冲。前24个用来读取24位数据,第25个自动触发通道切换并复位,确保下次读取的是最新值。
#include <HX711.h>
const int LOADCELL_DOUT_PIN = 3;
const int LOADCELL_SCK_PIN = 2;
HX711 scale;
void setup() {
Serial.begin(9600);
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
if (!scale.is_ready()) {
Serial.println("HX711未检测到,请检查接线!");
while (1);
}
Serial.println("HX711初始化成功");
scale.set_scale(2280.0f); // 标定系数(需实际校准)
scale.tare(); // 去皮清零
}
void loop() {
if (scale.is_ready()) {
float weight = scale.get_units(10); // 取10次平均
if (weight > 0.05) {
Serial.print("当前重量: ");
Serial.print(weight, 3);
Serial.println(" kg");
processSettlement(weight);
} else {
scale.tare();
}
} else {
Serial.println("传感器未准备好");
}
delay(500);
}
这段代码看着简单,但藏着不少工程智慧:
-
get_units(10)不是随便写的。单次采样容易受抖动影响,取多次平均能大幅提升稳定性; -
set_scale()的数值必须现场标定。不同传感器、线路长度、焊接工艺都会影响最终比例因子; -
tare()在空载时调用一次就够了?错!温度漂移会让零点慢慢“跑偏”,建议每天定时自动去皮,或者在每次关门后重新校准基线。
称重传感器:把“力”变成“电”的魔术师
如果说HX711是大脑,那称重传感器就是它的感官。最常见的类型是 应变片式惠斯通电桥 (Strain Gauge Wheatstone Bridge)。
当物体压在弹性体上时,粘在其表面的应变片会发生形变,导致电阻微小变化。四个应变片组成电桥,在激励电压作用下产生差分输出:
$$
V_{out} = V_{in} \times \frac{\Delta R}{R} \times G
$$
举个例子:一个2kg量程、灵敏度2mV/V的传感器,接5V电源,满载时输出就是:
$$
5V × 2mV/V = 10mV
$$
别看只有10mV,经过HX711放大128倍后,就成了1.28V的大信号,轻松被MCU识别。
关键参数怎么看?
| 参数 | 典型值 | 工程意义 |
|---|---|---|
| 量程 | 1kg / 3kg / 5kg | 要略大于单货道最大负载 |
| 灵敏度 | 1~3 mV/V | 数值越高,信噪比越好 |
| 非线性误差 | <±0.05% F.S. | 决定长期计量准确性 |
| 温度漂移 | <±0.05% F.S./℃ | 必须做软件补偿 |
⚠️ 注意:多个传感器并联时要用 四线制接法 (Excitation+, Excitation-, Signal+, Signal-),避免导线电阻引入误差。
实战难题怎么破?这些坑我们都踩过 💣
你以为接上线就能用了?Too young too simple~
真正的挑战在于:现实世界太“脏”了——振动、温漂、多人连续取货、商品摆放位置偏移……任何一个因素都可能导致误判。
❌ 问题1:两瓶水和一瓶饮料重量差不多,咋分?
别指望纯靠重量硬刚!聪明的做法是加入
上下文信息融合
:
- 用户先拿了水,再拿薯片 → 按顺序匹配模板;
- 两次取出间隔小于1秒 → 判断为同时拿取;
- 结合开门时间窗口,排除异常操作。
❌ 问题2:机器被人踢了一脚,报警了?
加 卡尔曼滤波 !它可以区分“真实重量变化”和“瞬时抖动”。设置一个最小稳定时间(比如1秒内变化持续成立才算有效),就能大幅降低误触发率。
❌ 问题3:夏天热胀冷缩,零点飘了?
温度补偿必须安排上!可以在机箱内放置NTC热敏电阻,建立“温度-零点偏移”查找表(LUT),固件中动态修正。
❌ 问题4:用户一口气拿了三样东西,重量叠加怎么办?
用
动态聚类算法
分离增量。假设预设商品库为 {A:100g, B:200g, C:300g},实测ΔW=610g,可能组合有:
- A+B+C = 600g ✅
- 3×B+1×A = 700g ❌
→ 匹配最接近且误差在容差范围内的组合。
系统架构长什么样?来看一张真实部署图 🛠️
[称重传感器阵列]
↓ (模拟信号)
[HX711 ADC模块] × N(每货道独立)
↓ (数字I/O)
[主控MCU] —— ESP32 / STM32F4
↓
[Wi-Fi / 4G] —— 上报交易日志至云端
↓
[云平台] —— 订单管理、库存同步、风控审核
↓
[小程序/App] —— 用户扫码开门 → 自动扣费
每个货道独立称重,好处显而易见:
- 故障隔离:某个传感器坏了不影响其他货道;
- 易于维护:支持热插拔更换;
- 扩展性强:新增品类只需更新本地数据库。
更重要的是,所有原始重量曲线都会缓存在本地Flash中,一旦发生争议,运维人员可以远程调取“称重回放”,就像黑匣子一样还原全过程 👮♂️
最佳实践清单 ✅
如果你正打算做一个基于HX711的项目,这份清单请收好:
-
出厂必须逐通道标定
用标准砝码测出每个货道的scale_factor,写入EEPROM,避免批次差异。 -
机械安装要“垂直受力”
传感器不能歪,否则侧向力会导致测量偏差甚至损坏。推荐使用球头支撑结构自适应对齐。 -
信号线一定要屏蔽双绞线
尤其是走线超过30cm时,普通杜邦线极易引入工频干扰。 -
节能策略很重要
无人状态下关闭HX711时钟使能(PD_SCK拉高),进入休眠模式;仅在扫码开门后唤醒监控。 -
留点冗余,别把鸡蛋放一个篮子里
备1~2个备用通道,主控支持OTA升级,万一算法有问题还能远程修复。 -
安全防护不能少
- 电源端加TVS二极管防静电;
- MCU启用看门狗,防止死机卡住;
- 异常重量(如负值)立即上报告警。
写在最后:这不是终点,而是起点 🚀
HX711或许不是最先进的技术,但它代表了一种极具生命力的设计哲学: 用最朴素的物理原理,解决最实际的问题 。
它不需要昂贵的GPU跑深度学习,也不依赖复杂的光学系统。它只是安静地“感受重量”,然后做出判断。这种克制而高效的解决方案,在追求极致性价比的IoT时代,反而更具竞争力。
未来,随着边缘计算能力提升,我们完全可以在这套基础上叠加更多智能:
- 用轻量级神经网络做重量序列预测;
- 结合用户历史行为优化匹配逻辑;
- 与视觉系统形成互补,构建多模态感知层。
但无论如何演进,HX711所奠定的“精准感知 + 轻量算法 + 低成本部署”范式,仍将是智能零售底层架构的重要基石。
毕竟,有时候最简单的方案,才是最强大的 💪✨
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
9840

被折叠的 条评论
为什么被折叠?



