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

基于Arduino的COVID-19社交距离提醒系统

组件与物料

基于Arduino的COVID-19社交距离提醒系统Arduino UNO (Arduino Nano 更适合,但此处使用 UNO)×1
基于Arduino的COVID-19社交距离提醒系统Arduino Proto Shield (可选)×1
Adafruit Mini Breadboard×1
Elegoo 16x2 LCD 显示屏×1
基于Arduino的COVID-19社交距离提醒系统超声波传感器 HC-SR04 (通用)×1
触摸传感器 (也可用按钮,需下拉电阻)×1
NTC 热敏电阻×1
基于Arduino的COVID-19社交距离提醒系统电阻 10k Ω×1
基于Arduino的COVID-19社交距离提醒系统蜂鸣器×1
基于Arduino的COVID-19社交距离提醒系统旋转电位器 (通用) (用于调节 LCD 对比度)×1
基于Arduino的COVID-19社交距离提醒系统杜邦线 (通用)×1
透明防水盒 (需透明以便看 LCD,防小雨)×1

应用与在线服务

基于Arduino的COVID-19社交距离提醒系统Arduino IDE

项目介绍

这是什么?

减缓冠状病毒传播最可靠的方法是与他人保持距离;预防胜于治疗。但每隔 30 秒回头看看是否有人靠近很烦人。如果有设备能提醒他人与你保持 2 米距离就好了。这就是本项目的目的:提醒他人与你保持 2 米社交距离。这是一个二合一装置:热敏电阻不仅用于温度补偿提高测距精度(声速随温度变化),还配合按钮/触摸传感器切换两种模式:

工作原理

模式 1(报警模式):

模式 2(测量模式): LCD 第一行显示距离,第二行显示温度。

为防雨,顶部加装半个塑料瓶作为遮雨罩,可上推。设备通过两根绳子挂在背包底部,易于拆卸。

基于Arduino的COVID-19社交距离提醒系统

触摸传感器用于切换模式。

基于Arduino的COVID-19社交距离提醒系统

如何制作

按照下方电路图连接元件。

导入“代码”部分的两个库:在 Arduino IDE 中点击“草图”→“包含库”→“添加 .ZIP 库...”选择下载的 .zip 文件。两个库都必需。

基于Arduino的COVID-19社交距离提醒系统

完成接线和库安装后,上传下方代码。

代码

主程序 Arduino

#include <HCSR04.h>
#include <LiquidCrystal.h>

#define trigPin 7
#define echoPin 6
#define buzzer 9
#define backlight 10

LiquidCrystal lcd(12, 11, 5, 4, 3, 8);
UltraSonicDistanceSensor distanceSensor(trigPin, echoPin);

int tempReading;
double tempK;
float tempC;
int rounded;
int temp_round;
volatile boolean modes = 0;
double distance;

void setup() {
  lcd.begin(16, 2);
  attachInterrupt(0, changeMode, FALLING);
  pinMode(2, INPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(backlight, OUTPUT);
  digitalWrite(backlight, HIGH);
  backlightOn();
}

void loop() {
  tempReading = analogRead(A0);
  tempK = log(10000.0 * ((1024.0 / tempReading - 1)));
  tempK = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * tempK * tempK)) * tempK);
  tempC = tempK - 273.15;
  distance = distanceSensor.measureDistanceCm(tempC);
  temp_round = round(tempC);

  if (modes == 1) { // 模式 2:测量模式
    backlightOn();
    if (distance >= 300 || distance <= 0) {
      rounded = 0;
      lcd.clear();
      lcd.print("Out of range");
      lcd.setCursor(0, 1);
      lcd.print("Temperature:" + String(temp_round) + " C");
    } else {
      rounded = round(distance);
      lcd.clear();
      lcd.print("Distance: ");
      lcd.print(rounded);
      lcd.print(" cm");
      lcd.setCursor(0, 1);
      lcd.print("Temperature:" + String(temp_round) + " C");
    }
  } else { // 模式 1:报警模式
    if (distance >= 300 || distance <= 0) {
      rounded = 0;
      lcd.clear();
      backlightOff();
    } else {
      rounded = round(distance);
      if (distance >= 200) {
        backlightOff();
        lcd.clear();
      } else if (distance <= 200 && distance > 100) {
        backlightOn();
        lcd.clear();
        lcd.print("Please keep away");
        lcd.setCursor(0, 1);
        lcd.print("Distance:");
        lcd.print(rounded);
        lcd.print(" cm");
      } else if (distance <= 100 && distance > 50) {
        backlightOn();
        lcd.clear();
        lcd.print("Keep away");
        lcd.setCursor(0, 1);
        lcd.print("Distance:");
        lcd.print(rounded);
        lcd.print(" cm");
        delay(200); buzz(); backlightOff(); delay(100); unbuzz(); backlightOn(); delay(100);
      } else if (distance <= 50) {
        backlightOn();
        lcd.clear();
        lcd.print("STAY AWAY!");
        lcd.setCursor(0, 1);
        lcd.print("Distance:");
        lcd.print(rounded);
        lcd.print(" cm");
        delay(200); buzz(); backlightOff(); delay(200); unbuzz(); backlightOn(); delay(200);
        buzz(); backlightOff(); delay(200); unbuzz(); backlightOn();
      }
    }
  }
  delay(700);
}

void changeMode() { modes = !modes; }
void backlightOn() { digitalWrite(backlight, HIGH); }
void backlightOff() { digitalWrite(backlight, LOW); }
void buzz() { digitalWrite(buzzer, HIGH); }
void unbuzz() { digitalWrite(buzzer, LOW); }

所需库文件

原理图

coronavirus_distancing_WQxTcxgmYm.fzz 基于Arduino的COVID-19社交距离提醒系统

制造工艺

  1. 自制《鱿鱼游戏》主题互动娃娃——Arduino UNO DIY项目
  2. 自制 Arduino 伊斯兰祷告时间实时时钟
  3. 基于 Arduino Uno 的人体检测救援机器人:传感器集成分步指南
  4. Arduino Uno WiFi 网页服务器:通过浏览器控制 LED 开关
  5. Arduino 串口简易计算器:两数四则运算演示
  6. Arduino UNO 驱动 1.17 英寸 TFT 屏显示图片 (SD 卡读取)
  7. 自制便携式视觉暂留显示器:Arduino UNO 与 ATtiny85
  8. Arduino 洗手计时器:抗击 COVID-19 的简易 DIY 工具
  9. Arduino Uno驱动MAX7219级联8×8 LED矩阵:从入门到动画显示
  10. 用 Arduino Uno 和 1Sheeld 构建 4x4x4 LED 立方体 - 互动音乐可视化项目
  11. Wi-Servo:基于 ESP8266 的 Wi-Fi 网页端舵机远程控制系统
  12. Arduino Uno 控制 25kHz 4 针 PWM 风扇 - 硬件、代码与测试