教程|什么?这个公共饮水机可以隔空接水
在防控疫情中,常洗手保持双手卫生是个人可以做到的最有效方式之一。但日常生活中,触摸一些公共设施在所难免。目前公共场所设置的大部分饮水机,基本都是接触式按钮操作,疫情期间多人高频接触使用,存在一定的病毒传播风险。
那么,问题来了:如何应用开放科技,降低公共饮水机潜在的接触传播风险,科学防疫?隔空打牛听过,怎么还能出个隔空接水?
别急,今天柴火菌给大家推荐的教程,就是应用Arduino和一些传感器模块(舵机、旋转角度传感器、红外距离中断传感器)对公司公共饮水机的接触式按钮进行了改造,实现感应式隔空接水。
溜不溜?手把手教程,请往下看:
教程难度:入门级
项目时长:10小时
软件工具
Arduino IDE
硬件清单
Arduino Uno rev3 x1
Seeed Grove 扩展板 V2.0 x1
Seeed Grove - 红外距离中断传感器 v1.2 x1
Seeed Grove - 舵机 x1
Seeed Grove - 旋转角度传感器 x1
扫码一键买齐所有硬件物料
步骤1:硬件连接
按照下图所示,将舵机、旋转角度传感器、红外距离中断传感器3个模块通过即插即用的Seeed Grove借口接入BaseShield,再将BaseShield底部两侧排针插入arduino uno拓展口即可。备注:Arduino Uno + BaseShield的硬件组合,可替换成Seeeduino Lotus主控,压缩整体硬件体积。
步骤2:写代码+程序烧录
#include <Servo.h>
Servo myservo; // create servo object to control a servo
#define SENSOR 7 //connect IR Sensor to pin7
int anglepin = A0; // analog pin used to connect the potentiometer
int angle; // variable to read the angleue from the analog pin
void setup() {
Serial.begin(115200);
myservo.attach(8); // attaches the servo on pin 8 to the servo object
pinMode(SENSOR,INPUT);
myservo.write(15);
}
void loop() {
short sensor=0;
sensor=digitalRead(SENSOR);
// Serial.print("sensor=");
Serial.println((int)sensor);
angle = analogRead(anglepin); // reads the angleue of the potentiometer (angleue between 0 and 1023)
angle = map(angle, 0, 1023, 0, 180);
if(0==sensor)
{
Serial.println("Sensor is triggered!!");
delay(200);
myservo.write(angle);
}
else{
myservo.write(angle-30);
}
}
舵机控制小备注:
一般标准舵机的轴都支持在0-180度角度间任意转动。而连续旋转舵机还支持轴以各种速度进行旋转。
“ servo.write(angle)”将一个值写入舵机,进而相应地控制舵机轴旋转。如果使用标准舵机,设置轴的角度值后(以度为单位),舵机轴即会旋转到相应的角度。如果使用连续旋转舵机,你需要设置的是舵机的转速(0表示一个方向的全速转动,180表示另一方向的全速,而90左右的值表示无运动)。
步骤3:硬件安装
将整体硬件安装在饮水机的合适位置,可以使用热熔胶进行固定。安装前记得向你们公司的行政部门报备下,要不然会被批评(别问我为什么知道😊)。
安装好之后,就可以愉快而又安全地在公共区域,不用接触开关,就可以接水啦。
文末点击阅读原文可以前往该教程英文页面
🤖️🤖️🤖️
文末互动话题
上面这个隔空接水操作,你觉得如何
留言区见
欢迎分享,保证让你上墙
写在最后-文末小广告
接下来,柴火将基于开源硬件套件(包含部分上诉项目所用的技术模块)定期开设课程,该课程将涉及(但不限于)以下节点:硬件基础原理;传感器应用;基本结构搭建;软件编程与硬件结合;原型搭建;创客马拉松等。
如果你也想玩转开源硬件,
用科技赋能创新落地,
欢迎扫码填写课程意向报名哟!
----END----
Chaihuo x.factory|深圳,河北