IoT 智能限流门禁助手 V3:基于 Arduino Cloud 与 MIT App Inventor 的客流管控系统
项目背景与演进
针对疫情期间商铺限流需求,作者经历三代迭代:V1 物理按键设定上限 → V2 ESP8266 本地 Web 服务器 → V3 **Arduino Cloud + MIT App Inventor 手机 APP**。V3 实现云端集中管理、多设备数据同步、历史数据追踪、API 开放集成,适合连锁店、大型场馆、多进出口场景。
核心功能
- 双向人数统计:双 HC-SR04 超声波传感器分别检测进/出方向,自动增减计数。
- 三色灯状态指示:绿灯=可入、黄灯=接近上限、红灯=已满请等待,每色双 LED 并联 MOSFET 驱动,支持扩展高亮灯带。
- 云端同步:Arduino MKR WiFi 1010 接入 Arduino IoT Cloud,实时同步 `customerCount`、`customerLimit` 变量。
- 手机 APP 远控:MIT App Inventor 开发 Android APP,通过 Arduino Cloud REST API 读写变量、切换自动刷新、修改限流阈值。
- 多设备协同:不同进出口设备共享同一 Cloud Thing,自动汇总总人数。
- 历史数据分析:Cloud Dashboard 自动绘制进出趋势图,支持 CSV 导出。
硬件清单
- Arduino MKR WiFi 1010 × 1 (3.3V 逻辑,内置 WiFi/BLE)
- 5V 2.5A 开关电源 × 1 (为 LED 灯带供电)
- HC-SR04 超声波模块 × 2 (入口/出口各一)
- 5mm LED 红/黄/绿 × 各 2 (共 6 个)
- N 沟道 MOSFET (如 IRLZ44N) × 1 (驱动 LED 阵列)
- 330Ω 电阻 × 6 (每 LED 串联)
- 面包板/万用板、杜邦线、外壳
电压域设计要点
MKR WiFi 1010 为 3.3V 逻辑,HC-SR04 需 5V 供电但 3.3V 逻辑兼容。方案:面包板电源模块同时输出 5V (给传感器、LED、MOSFET) 与 3.3V (给 MKR),或用 5V 降压模块 (TPS560430) 产生 3.3V。原理图展示 MOSFET 栅极直驱 3.3V GPIO,源极接地,漏极接 LED 阴极,LED 阳极接 5V 经电阻,实现 3.3V 控制 5V 负载。
软件架构
Arduino 端 (Arduino Cloud)
- Cloud Variables:`customerCount` (Int, Read/Write)、`customerLimit` (Int, Read/Write)、`entryTrigger`/`exitTrigger` (Bool, 仅云端触发)。
- 主循环:轮询两路超声波,边沿检测进/出事件 → 更新计数 → 同步云端 → 更新 LED 状态机 (绿/黄/红)。
- Secret Tab 填入 WiFi SSID/Password、Device ID、API Key。
APP 端 (MIT App Inventor 2)
- 组件:Web 组件 (HTTP 请求)、Clock 定时器 (自动刷新)、按钮/标签/滑块 (UI)。
- 流程:启动 → 输入 Thing ID / Client ID / Client Secret → 点击“连接”获取 OAuth2 Access Token → 定时 GET `/v2/things/{thingId}/properties` 同步数据 → 滑块修改 Limit → PATCH 同步云端。
- 源文件 `shopDoorAssistant2.aia` 可直接导入二次开发。
部署步骤
- 按原理图接线,注意 MOSFET 散热与 LED 电流限制。
- Arduino Create 创建 Thing,定义变量,关联 MKR WiFi 1010,烧录代码,验证 Cloud 连接。
- 导入 `.aia` 至 MIT App Inventor,填入 Thing ID / Client ID / Secret,生成 APK 安装手机。
- 实测:模拟进出触发传感器,观察 LED、Cloud Dashboard、手机 APP 三端同步。
扩展应用场景
- 分离进出口:两台设备各接一路传感器,共享 Cloud 变量,自动汇总。
- 餐厅座位管理:APP 显示剩余桌数/规格,顾客扫码查询。
- 校园错峰:不同年级不同时段限流,防止走廊拥挤。
- 工业安全互锁:危险区域人数超限自动切断设备电源。
项目文件
- Arduino 代码:`shopDoorAssistant_V3.ino` (Arduino Cloud 自动生成框架 + 业务逻辑)
- APP 源码:`shopDoorAssistant2.aia`
- 原理图:`schematic_6LED.png`、`schematic_power.png`
结语
作者首次接触 Arduino Cloud 与 REST API,分享完整教程助力更多开发者快速上手物联网应用开发。疫情虽过,限流管控、人流统计、智能门禁等需求长期存在,本项目提供低成本、可扩展、开源可控的参考实现。欢迎 Star、Fork、Issue 共同完善!
制造工艺