Бесконтактный кран с управлением от двери: безопасное решение для COVID-19
Компоненты и материалы
| Компонент | Описание | Кол-во |
|---|---|---|
| Arduino UNO | Контроллер | 1 |
| Беспайковая макетная плата (половинчатая) | Только силовая шина | 1 |
| Ультразвуковой датчик HC-SR04 | Обнаружение рук у крана | 1 |
| ИК-датчик (IR tracking sensor) | Обнаружение руки у двери (2 см) | 1 |
| Сервопривод SG90 | Открывание двери (90°) | 1 |
| RGB LCD 16x2 (I2C) | Сообщения пользователю | 1 |
| Релейный модуль (1 канал) | Управление насосом | 1 |
| Погружной водяной насос | Подача воды (лучше соленоидный клапан) | 1 |
| Перемычки (Male/Female, Male/Male) | Соединения | 1 компл. |
Инструменты
- Мультитул / отвертка
Приложения и сервисы
- Arduino IDE
О проекте
COVID-19 — серьезная пандемия. Вирус передается контактно. Меры: мытье рук с мылом 20+ сек. Но если после мытья коснуться загрязненного крана — риск заражения. Автоматические двери решают проблему ручки, но кран часто остается ручным.
В этом проекте: доступ в помещение только после мытья рук. Прототип стоит ~$11, простое изготовление. Бесконтактный кран экономит воду. Создан в локдаун из подручных материалов. Рекомендую соленоидный клапан вместо насоса. Трубка = кран. Применимо в ТЦ, офисах, домах (с автоматическими дверями — заменить реле на твердотельное). Можно адаптировать под автоматический дозатор санитайзера (емкость должна быть герметичной).
Видео работы прилагается.
Как это работает






- Мытье рук: поднесите руки к ультразвуковому датчику (<15 см). Реле включает насос — вода идет через трубку 20 сек.
- После мытья: поднесите руку к ИК-датчику (<2 см). Серво поворачивается на 90° — дверь открывается на 10 сек, затем закрывается.
- Попытка входа без мытья: ИК срабатывает, но LCD показывает «Wash your hands to grant access» — дверь не открывается.
Код
Touchless Faucet with Door Control (Arduino)
// TOUCHLESS FAUCET WITH DOOR CONTROL SYSTEM
// ARDUINO PROJECTS BY R
// AUTHOR: RUCKSIKAA RAAJKUMAR
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define trig 5
#define echo 4
Servo servo;
const int sensor = 3;
const int Relay = 6;
int state;
int value;
long duration;
int distance;
void setup() {
lcd.begin();
lcd.print("Wash your hands");
lcd.setCursor(0,1);
lcd.print("before you enter");
servo.attach(9);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(sensor, INPUT);
pinMode(Relay, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trig, LOW);
delayMicroseconds(5);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
value = digitalRead(sensor);
duration = pulseIn(echo, HIGH);
distance = (duration/2) * (331.3/10000);
Serial.println(distance);
if(distance > 1 && distance < 15) {
lcd.clear();
lcd.setCursor(1,0); lcd.print("Hands detected");
lcd.setCursor(0,1); lcd.print("Wash hands - 20s");
digitalWrite(Relay, HIGH);
state = 1;
delay(1000);
lcd.clear(); lcd.print("You are safe now");
} else {
digitalWrite(Relay, LOW);
}
if((state == 1) && (value == LOW)) {
lcd.clear();
lcd.setCursor(1,0); lcd.print("You may go in");
lcd.setCursor(1,1); lcd.print("10 seconds left");
servo.write(90);
delay(10000);
servo.write(0);
lcd.clear(); lcd.print("Wash your hands");
lcd.setCursor(0,1); lcd.print("before you enter");
state = 0;
} else if((state == 0) && (value == LOW)) {
lcd.clear(); lcd.print("Wash your hands");
lcd.setCursor(0,1); lcd.print("to grant access");
}
}
Схемы
Производственный процесс
- Датчик слежения за линией на Raspberry Pi — простой детектор двери/линии KY‑033
- Построение надёжного Temperature & Sensor API на Raspberry Pi с модулем GY‑91
- Построение DIY инфракрасного датчика движения для Raspberry Pi — пошаговое руководство
- Создание умного автозамка двери с использованием Bluetooth-близости смартфона
- Мастерство управления датчиками и исполнительными механизмами на Raspberry Pi: акселерометр, сервопривод и потоко…
- Система домашней безопасности на Raspberry Pi: обнаружение движения PIR + камера с email-уведомлениями
- Интеграция термопары с Arduino Portenta H7 через MAX6675
- Датчик CO2 K30: мониторинг качества воздуха в реальном времени на Arduino
- Роботизированный захват с кожоподобным мягким тактильным датчиком для точной манипуляции
- Marpresents BLÚ LT: модульная система управления станками в реальном времени