针对 COVID-19 的带门控系统的非接触式水龙头
组件和用品
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| Adafruit RGB 背光 LCD - 16x2 | | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
关于这个项目
目前,COVID-19 是一场严重的流行病。冠状病毒正在人与人之间迅速而轻松地传播。有多种方法可以遏制这种病毒的传播,其中一种方法是用肥皂洗手至少 20 秒。有时,如果该人在洗手后不小心触摸了可能被污染的水龙头,则他/她感染这种冠状病毒疾病的可能性更高。如果您外出,在进入您的场所之前洗手是安全的。您不必触摸门把手,因为门锁系统是自动化的。在我的项目中,一个人只有在他/她洗手后才能被授予访问权限。
该人去公共场所时可能戴着口罩,但他们的手可能不干净。即使他/她清洁了他们的手,他们也可能会接触到被病毒携带者接触过的表面。病毒携带者的手会被污染。根据湿度和温度等环境条件,冠状病毒可以在受污染的表面上持续数小时到数天。通过在进入场所前洗手,可以防止这种传播冠状病毒的方式。
在这个项目中,我制作了一个自动门控制系统安全洗手的原型。我做了一个非接触式水龙头,这样你就不必接触水龙头的表面,而且是自动的。原型很便宜——建造成本仅为 11 美元左右——而且易于制造。这个水龙头是自动的,不用时也能防止浪费水。
我使用家里的资源制作了这个原型,因为我的国家被封锁了,我不能出去。您可以重新制作这个项目,甚至改进它,但您也可以尝试将任何装水的容器变成水龙头。我建议您使用电磁水阀而不是潜水水泵。在这个原型中,管子被建模为水龙头。该模型可用于商场、办公室和您的家。该机型可用于有自动推拉门或自动门系统的场所,用固态继电器模块代替单通道继电器模块。
该样机也可用作酒精类洗手液自动分配器,但在使用洗手液时,容器应关闭,因为酒精会蒸发。
这是一个展示该原型如何工作的视频:
工作原理 图> 图> 图> 图> 图>
如果要洗手,请将手放在距离超声波传感器 15 厘米范围内。根据我的 Arduino 程序,这将打开继电器模块。潜水泵接继电器模块和外接电源。可以调整外部电源以提供合适的电压。打开水泵,水从容器中通过一根管子泵到你的手上,在这个原型中被建模为水龙头。
洗手后,将手放在红外跟踪传感器前面。当在 2cm 内检测到物体时,IR 传感器会发送一个 LOW 信号。 LOW 信号使伺服电机旋转 90° 并打开门(在此模型中)。 10秒后门会自动关闭。
如果您在未洗手的情况下将手放在红外跟踪传感器前,门将不会打开,并且 LCD 显示模块会显示一条信息,要求您洗手。
代码
带门控系统的非接触式水龙头Arduino
使该项目成功运行所需的代码// 带门控系统的无接触水龙头// ARDUINO PROJECTS BY R// 作者:RUCKSIKAA RAAJKUMAR#include #include #包括 LiquidCrystal_I2C lcd(0x27, 16, 2);#define trig 5#define echo 4Servo Servo;const int sensor =3; const int Relay =6;int state;int value;持续时间长;int 距离;void setup() { lcd.begin(); lcd.print("洗手"); lcd.setCursor(0,1); lcd.print("进入前");伺服.attach(9); //伺服电机连接到D9 pinMode(trig, OUTPUT); // 设置触发引脚为OUTPUT pinMode(echo, INPUT); // 将回声引脚设置为 INPUT pinMode(sensor, INPUT); // 将红外传感器的引脚配置为 INPUT pinMode(Relay, OUTPUT); // 配置继电器模块的引脚为OUTPUT Serial.begin(9600); // 设置波特率为 9600}void loop() { digitalWrite(trig, LOW);延迟微秒(5);数字写入(触发,高); // 将触发引脚设置为高电平以发送超声波(脉冲) delayMicroseconds(10);数字写入(触发,低);值=数字读取(传感器); //读取红外传感器发送的数字信号并将其存储在'value'变量中duration =pulseIn(echo, HIGH); // 计算触发引脚发出的脉冲到达回波引脚所需的时间(以微秒为单位)。距离=(持续时间/2)*(331.3/10000); // 使用空气中的声速(m/s)和所用时间(存储在持续时间变量中)以厘米为单位计算传感器到障碍物的距离 Serial.println(distance); if(distance>1 &&distance<15){ // 如果你把手放在 15 厘米以内 lcd.clear(); lcd.setCursor(1,0); lcd.print("检测到手"); lcd.setCursor(0,1); lcd.print("洗手 - 20 秒");数字写入(继电器,高); //打开潜水泵或电磁水阀 state=1; // 将状态变量分配给 1 delay(1000); // 必须使用1秒的延迟时间来防止点击继电器模块lcd.clear(); lcd.print("你现在安全了"); }else{ 数字写入(中继,低); //关闭潜水泵或电磁水阀 } if((state==1)&&(value==LOW)){ // 如果洗手后将手放在红外传感器前面 lcd.clear (); lcd.setCursor(1,0); lcd.print("你可以进去了"); lcd.setCursor(1,1); lcd.print("还剩 10 秒");伺服.写(90);延迟(10000); //门将打开10秒servo.write(0);液晶显示器(); lcd.print("洗手"); lcd.setCursor(0,1); lcd.print("进入前");状态=0; } else if((state==0)&&(value==LOW)){ // 如果你在进入lcd.clear()之前没有洗手; lcd.print("洗手"); lcd.setCursor(0,1); lcd.print("授予访问权限"); } }
示意图