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

非接触感应水龙头联动门禁系统:后疫情时代的卫生安全方案

项目背景与意义

新冠疫情期间,接触式水龙头与门把手成为交叉感染高风险点。本项目设计一套低成本(约 $11)、易复制的非接触洗手-通行联动系统:超声波检测手部触发出水,红外传感器验证洗手完成后驱动舵机/电磁锁开门,全程零接触,兼具节水与防疫功能。原型采用潜水泵模拟水龙头,舵机模拟门锁,适配家庭、办公室、商场等自动门场景,亦可改装为免洗手液分配器。

硬件架构

模块型号/规格接口/引脚功能
主控Arduino UNO R3核心逻辑、定时、通信1
手部检测HC-SR04 超声波测距Trig D5, Echo D4, 量程 2-400cm1
洗手确认红外避障/循迹模块 (TCRT5000)OUT D3, 检测距离 2cm 可调1
出水执行单路继电器模块 (高电平触发)IN D6, 控制 12V 潜水泵/电磁阀1
开门执行SG90 微型舵机信号 D9, 旋转 0°→90° 模拟开锁1
状态显示16×2 I2C LCD (PCF8574, 0x27)SDA A4, SCL A51
电源5V/2A 适配器 + 12V/1A 适配器 (泵/锁独立供电)共地连接各1

系统工作流程

  1. 待机态:LCD 显示 "Wash your hands before you enter",继电器断开,舵机 0°(门锁)。
  2. 检测洗手:HC-SR04 测得距离 1-15cm,判定有手伸入,清屏显示 "Hands detected / Wash hands - 20s",继电器吸合启动水泵,状态标记 state=1。
  3. 出水持续:水泵持续运行,1s 后 LCD 切换 "You are safe now",保持出水直至手部离开(距离 >15cm),继电器释放停水。
  4. 验证通行:若 state==1 且 IR 传感器检测到手 (LOW),LCD 显示 "You may go in / 10 seconds left",舵机转 90° 开门,延时 10s 后复位 0°,LCD 恢复待机提示,state=0。
  5. 拦截未洗手:若 state==0 触发 IR,LCD 警示 "Wash your hands to grant access",门锁不动作。

核心代码实现


// 关键常量
#define TRIG_PIN 5
#define ECHO_PIN 4
#define IR_PIN   3
#define RELAY_PIN 6
#define SERVO_PIN 9
#define WASH_DIST_MIN 1
#define WASH_DIST_MAX 15
#define DOOR_OPEN_TIME 10000

// 全局变量
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo doorServo;
int state = 0;  // 0=未洗手, 1=已洗手

void setup() {
  lcd.init(); lcd.backlight();
  lcd.print("Wash your hands");
  lcd.setCursor(0,1); lcd.print("before you enter");
  doorServo.attach(SERVO_PIN);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  pinMode(IR_PIN, INPUT);
  pinMode(RELAY_PIN, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // 超声波测距
  digitalWrite(TRIG_PIN, LOW); delayMicroseconds(5);
  digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  long duration = pulseIn(ECHO_PIN, HIGH);
  int distance = duration * 0.0343 / 2;  // cm, 声速 343m/s

  // 红外读取
  int irVal = digitalRead(IR_PIN);  // LOW=有物体

  // 状态机逻辑
  if (distance > WASH_DIST_MIN && distance < WASH_DIST_MAX) {
    // 检测到洗手
    if (state == 0) {
      lcd.clear();
      lcd.setCursor(1,0); lcd.print("Hands detected");
      lcd.setCursor(0,1); lcd.print("Wash hands - 20s");
      digitalWrite(RELAY_PIN, HIGH);
      state = 1;
      delay(1000);  // 继电器防抖
      lcd.clear(); lcd.print("You are safe now");
    }
  } else {
    digitalWrite(RELAY_PIN, LOW);  // 手离开停水
  }

  // 通行验证
  if (state == 1 && irVal == LOW) {
    lcd.clear();
    lcd.setCursor(1,0); lcd.print("You may go in");
    lcd.setCursor(1,1); lcd.print("10 seconds left");
    doorServo.write(90);
    delay(DOOR_OPEN_TIME);
    doorServo.write(0);
    lcd.clear();
    lcd.print("Wash your hands");
    lcd.setCursor(0,1); lcd.print("before you enter");
    state = 0;
  } else if (state == 0 && irVal == LOW) {
    lcd.clear();
    lcd.print("Wash your hands");
    lcd.setCursor(0,1); lcd.print("to grant access");
  }
}

工程化改进建议

执行器升级

感知增强

交互与管理

免洗手液分配器变体

安全与合规

成本估算 (原型 BOM)

项目单价 (CNY)数量小计
Arduino UNO R3 兼容板18118
HC-SR04313
红外避障模块212
单路继电器模块414
SG90 舵机616
I2C LCD160212112
潜水泵 12V15115
电源适配器/线材/外壳30130
合计约 90 元 ($13)

批量采购可进一步压缩至 $8 以内,极具推广价值。

制造工艺

  1. 树莓派接 KY‑033 循迹/门状态传感器:简易 Python 实现
  2. 树莓派构建稳健传感器 API:基于 GY‑91 多功能模块的 Flask 实现
  3. 树莓派 DIY 红外运动传感器:从原理到代码的完整指南
  4. 树莓派蓝牙近感智能门锁:手机离开自动上锁
  5. 树莓派传感器与执行器控制实战:加速度计、舵机与数据流
  6. 树莓派家庭安防系统:PIR 运动检测 + 摄像头邮件报警
  7. Portenta H7 对接 MAX6675 热电偶温度传感器教程
  8. K30 CO₂ 传感器:室内空气质量实时监测
  9. 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
  10. Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
  11. Marposs推出BLÚ LT模块化系统 实现中等复杂度机床实时工控
  12. 仿皮肤软触觉传感器赋能机器人精准抓取