把 AI 塞进「电梯按钮」——基于毫米波手势识别的零接触控制面板
标签:毫米波雷达、手势识别、零接触、电梯 IoT、TinyML、边缘 AI、ESP32-C6、低功耗
----
1. 背景:为什么按钮也要「AI 免触」?
后疫情时代,写字楼每天 2 万人次乘梯:
• 传统按钮成为「细菌培养皿」;
• 红外感应误触率高,戴手套失效;
• 语音识别在井道内回声大,隐私难保障。
于是我们把 毫米波手势识别 塞进 一块 86×86 mm 的电梯按钮背板,实现 零接触、零误触、零安装改造。
----
2. 硬件:按钮背板里的「隐形雷达」
部件 选型 说明
MCU ESP32-C6 160 MHz RISC-V, 320 KB SRAM
雷达 60 GHz FMCW 3 cm 精度,2-20 cm 感应距离
天线 4×4 MIMO 水平/垂直手势识别
供电 24 V 电梯随行电缆 待机 0.3 W,峰值 1.2 W
通信 CAN-Bus + BLE 电梯主板直连 / 手机调试
尺寸 86×86×15 mm 国标 86 盒即插即换
----
3. 算法:64 kB 的「手势翻译官」
模块 参数量 功能
雷达信号编码 0.03 M Range-Doppler 图提取
CNN-GRU 融合 0.05 M 6 类手势分类
误触滤波 0.01 M 手掌/手臂/物体区分
总计 64 kB INT8 边缘一次性推理
手势字典:
• 上滑:1 楼上
• 下滑:1 楼下
• 悬停 1 s:取消
• 双击:开门
• 画圈:紧急呼叫
• 手掌前推:关门
----
4. 训练数据:10 万次电梯井道实录
• 采样场景:写字楼、医院、商场、住宅;
• 干扰样本:手推车、背包、宠物绳;
• 数据增强:多径反射、金属井道回声;
• 标签:6 类手势 × 3 距离 × 2 角度 = 36 子类。
----
5. 训练与蒸馏流水线
python train_elevator.py \--dataset radar_lift_100k \--model micro_gesture \--quant int8 \--export esp32c6
• 教师:1.2 M MobileNetV3 → 学生 0.09 M
• 量化:AWQ 逐层校准
• 误触正则:金属反射惩罚项
----
6. 推理流程:200 ms 闭环
void loop() {RadarFrame f = radar_read(); // 20 msint8_t logits[6];model_forward(f.data, logits); // 8 msuint8_t gesture = argmax(logits);if (gesture == GEST_UP) send_can(1);sleep(50); // 50 ms 周期
}
----
7. 实测:井道 7 天误触率
场景 手势准确率 误触/日 用户满意度
早高峰 96 % 0.3 次 4.8/5
医院病房 94 % 0.2 次 4.9/5
商场儿童 91 % 0.5 次 4.7/5
----
8. 安装与调试
• 即插即用:拆下原按钮 → 插入雷达背板 → 2 分钟完成;
• 手机 App:BLE 调试手势阈值、OTA 升级;
• 旧梯兼容:支持 24 V 干接点 / CAN 双协议。
----
9. 功耗与寿命
模式 电流 寿命
连续扫描 28 mA 电梯 24 V 供电
低功耗间隔 5 mA 10 万次按键寿命
深睡唤醒 0.05 mA 无按键 1 分钟
----
10. 开源 & 商用
GitHub:
https://github.com/lift-ai/gesture-button
已放出:
• ESP32-C6 固件 + 64 kB 模型
• 86 盒 3D 打印壳体
• CAN-Bus 协议文档
首批 5 万套 已在北上广深 300 栋楼宇上线,维保工时 -80 %。
----
11. 结语:让每块按钮都学会「挥手」
当 64 kB 模型也能看懂电梯手势,
当 86 盒即插即换就能零接触,
你会发现 “无接触”不是升级,而是标配。
如果这篇文章帮你少按一次细菌按钮,欢迎去仓库点个 Star ⭐;
也欢迎留言聊聊你把 AI 塞进了哪些「电梯井道」!