亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

智能门禁系统:Windows + Face++ 人脸识别 + Bolt IoT + Arduino 舵机开锁

项目概述

基于「Windows Forms (C#) + Face++ API + Bolt IoT Cloud + Arduino Uno + 舵机」的分布式人脸识别门禁系统。PC 端负责人脸采集、注册、比对 (Face++) 与 Bolt Cloud API 调用;Bolt WiFi 模块作透传网关,将开/关锁指令经 GPIO 传给 Arduino;Arduino 驱动舵机通过尼龙线拉动改装瓶盖联轴机构实现物理开锁。支持门铃按钮触发验证、手动加锁按钮、红绿灯状态指示、蜂鸣器声光反馈。适合抽屉、柜门、鞋柜等小型门禁改造。

系统架构

[Windows PC: 摄像头 + Face++ API + Bolt Cloud API]
        ↑ HTTPS/JSON (指令: D0/D3 高低电平)
[Bolt WiFi Module: 云端透传网关]
        ↑ GPIO 直连 (D0=锁信号, D3=开信号, D4=门铃输入, D6=门铃回传)
[Arduino Uno: 舵机驱动 + 物理机构 + LED/蜂鸣器]

硬件清单

电路连接

Bolt 模块 GPIO 分配

Arduino 侧引脚


#define ServoPin 4
#define LockSignalPin 2    // 从 Bolt D0
#define UnLockSignalPin 3  // 从 Bolt D3
#define BellButtonPin 5    // 物理门铃按钮 (可选冗余)
#define LockButtonPin 8    // 手动加锁按钮
#define RingBellSignalPin 6 // 向 Bolt D4 回传门铃事件
#define BuzzerPin 7
#define GreenLedPin 9
#define RedLedPin 10

软件核心流程

Windows Forms (C#) 端

  1. 初始化:读取配置的 Bolt Device ID / API Key、Face++ API Key/Secret;实例化 Bolt 客户端;启动摄像头预览 (AForge.NET)
  2. 人脸注册:按「添加」→ 调用 Face++ Detect API 确认画面有人脸 → 将当前帧 Base64 编码存入本地 Settings (ImageDataList + NameList)
  3. 门铃监听线程:后台轮询 Bolt.DigitalRead(D4),检测到高电平 → 触发 RingBell_Click (抓拍 → 比对 → 开锁)
  4. 人脸比对:遍历本地人脸库,调用 Face++ Compare API,confidence > 80% 判定通过 → 调用 UnlockDoor()
  5. 开/锁指令:DigitalMultiWrite 同时置 D0/D3 高低电平,脉冲宽度 ~100ms (见代码),防止抖动误触发

Arduino 端

机械联轴机构:瓶盖 + 尼龙线

  1. 饮料瓶颈部锯下,瓶盖钻孔,拧回瓶颈 → 固定于柜门锁舌轴上
  2. 另一瓶盖用铜丝绑定舵机输出臂
  3. 尼龙线绑定两瓶盖,张紧长度使舵机 0°↔120° 对应门完全开/锁
  4. 热熔胶固定舵机机身于柜体

优点:零成本、自适应间隙、可拆卸。缺点:长期拉伸可能松动,建议定期检查张紧度。

关键代码片段

C# 开锁脉冲


private async Task UnlockDoor() {
  var cfg = new MultiPinConfig();
  cfg.AddPinState(DigitalPins.D0, DigitalStates.Low);   // 锁信号低
  cfg.AddPinState(DigitalPins.D3, DigitalStates.High);  // 开信号高
  await myBolt.DigitalMultiWrite(cfg);
  cfg = new MultiPinConfig();
  cfg.AddPinState(DigitalPins.D0, DigitalStates.Low);
  cfg.AddPinState(DigitalPins.D3, DigitalStates.Low);   // 复位
  await myBolt.DigitalMultiWrite(cfg);
}

Arduino 舵机控制


if (lock == HIGH) {
  myServo.write(120);  // 锁定角度
  digitalWrite(GreenLedPin, LOW);
  digitalWrite(RedLedPin, HIGH);
  beep(1000);
} else if (unlock == HIGH) {
  myServo.write(0);    // 解锁角度
  digitalWrite(GreenLedPin, HIGH);
  digitalWrite(RedLedPin, LOW);
  delay(2000);
}

进阶改进方向

常见问题排查

组件数量备注
Bolt WiFi 模块1云端管理,GPIO 透传
Arduino Uno1舵机实时控制
SG90/MG90S 舵机1PWM 控制,0°/120° 对应开/锁
蜂鸣器1锁/开/门铃声光反馈
红/绿 LED + 330Ω各 1锁定/解锁状态指示
轻触按键2门铃 (Bolt D4) + 手动加锁 (Arduino D8)
10kΩ/330Ω 电阻、面包板、跳线若干上拉/限流
热熔胶枪、尼龙线、废瓶盖/瓶颈1 套低成本联轴机构
现象原因对策
门铃按下无反应Bolt D4 未检测到高电平/轮询间隔太长检查 Arduino D6→Bolt D4 接线;缩短轮询间隔 (≥2s 避免配额超限)
人脸比对总失败光线差/角度偏/置信度阈值过高补光、正对摄像头、降低阈值至 70% 测试
舵机抖动/不到位供电不足/尼龙线松动/角度校准错舵机独立供电 5V 2A;重新张紧尼龙线;微调 write() 角度值
Bolt 离线/指令不下发Wi-Fi 信号弱/云端配额用尽/Device ID 错误就近放置路由器;检查 Bolt Cloud 设备状态;核对 ID/Key
烧录 Arduino 失败Bolt TX 占用 Arduino RX (D0)烧录前拔掉 Bolt D0→Arduino D2 连接,烧录后复原

总结

本项目展示了「云端 AI (Face++) + IoT 网关 (Bolt) + 本地执行器 (Arduino)」的经典三层物联网架构。Windows Forms 做人机交互与人脸库管理,Bolt 模块解决了跨网段设备联网难题,Arduino 专注实时舵机控制。瓶盖+尼龙线的低成本机械结构极具创客精神。对于入门物联网、人脸识别集成、云边协同开发的学习者,本项目提供了可落地的完整参考实现。代码与原理图已开源,可直接复现并扩展至智能家居门锁、柜员箱、包裹柜等场景。

制造工艺

  1. 优化螺栓拧紧扭矩工具应用——实现可靠预紧力的验证策略
  2. 基于 Sensorflare 与树莓派的 433 MHz 智能家居控制器构建指南
  3. 树莓派蓝牙近感智能门锁:手机离开自动上锁
  4. 树莓派实时人脸追踪云台:OpenCV + 舵机 + ServoBlaster 实战
  5. 智能调酒师:树莓派驱动的自动鸡尾酒机
  6. 基于 Arduino 与 ESP8266 的 WiFi 智能门锁:手机扫码解锁
  7. GE Digital以智能MES推动制造业转型:疫情后的演进与挑战
  8. 智慧采购:AI与人类洞察的融合
  9. 锁舌螺栓详解:门锁核心部件的功能、类型与安防价值
  10. 智能技术赋能矿山运营优化:从感知到决策的跨越
  11. 最大化物联网投资回报:从盲区到自动化运营的四阶段进阶
  12. 保护智能设备:物联网安全最佳实践指南