Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino Social Distancing Herinneringssysteem voor COVID-19

Onderdelen en Benodigdheden

OnderdeelAantalOpmerking
Arduino UNO1Arduino Nano werkt beter, maar UNO gebruikt
Arduino Proto Shield1Optioneel
Adafruit Mini Breadboard1
Elegoo 16x2 LCD Display1
Ultrasonische Sensor HC-SR041
Touch sensor1Of drukknop met pull-down weerstand
NTC Thermistor1Voor temperatuurcompensatie
Weerstand 10kΩ1Voor thermistor
Buzzer1
Draaipotentiometer1Voor LCD-contrast
Jumper draden1 set
Transparante waterdichte behuizing1Voor LCD-zichtbaarheid en regenbescherming

Apps en online diensten

  • Arduino IDE

Over dit project

Wat is het?

De betrouwbaarste manier om de verspreiding van coronavirus te vertragen is afstand houden. Maar om elke 30 seconden om te kijken of iemand naderkt is irritant. Dit apparaat waarschuwt anderen om 1,5-2 meter afstand te houden. Het is een 2-in-1 systeem: de thermistor verbetert de afstandsmeting (geluidssnelheid hangt af van temperatuur) EN stelt twee modi in via een knop/touch sensor:

  • Modus 1 (Waarschuwing): Alarmeert als iemand te dichtbij komt
  • Modus 2 (Meting): Toont temperatuur en afstand op LCD

Hoe werkt het?

  1. Arduino meet temperatuur via thermistor
  2. Temperatuur wordt gebruikt voor nauwkeurigere afstandsberekening

In Modus 1:

  • 200-100 cm: LCD-backlight aan, "Please keep away" + afstand
  • 100-50 cm: LCD-backlight knippert, "Keep away" + afstand, buzzer piept
  • <50 cm: LCD-backlight knippert 2x/sec, "STAY AWAY!" + afstand, buzzer piept snel

In Modus 2: LCD toont afstand (boven) en temperatuur (onder).

Bescherming tegen regen: half plastic flesje dat omhoog kan schuiven. Bevestiging aan rugzak met twee touwtjes voor makkelijke demontage.

Arduino Social Distancing Herinneringssysteem voor COVID-19
Voltooide module in transparante behuizing

Touch sensor schakelt tussen modi.

Arduino Social Distancing Herinneringssysteem voor COVID-19
Moduswisseling via touch sensor

Hoe bouw ik het?

  1. Sluit componenten aan volgens het schema
  2. Importeer bibliotheken in Arduino IDE: Sketch → Include Library → Add .ZIP Library...
    • arduino-lib-hc-sr04-master.zip (https://github.com/Martinsos/arduino-lib-hc-sr04)
    • LiquidCrystal.zip (https://github.com/arduino-libraries/LiquidCrystal)
  3. Upload de code
Arduino Social Distancing Herinneringssysteem voor COVID-19
Breadboard aansluitschema

Code

Hoofdprogramma (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, temp_round;
volatile boolean modes = 0;
double distance;

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

void loop() {
  // Temperatuurmeting via thermistor (Steinhart-Hart vereenvoudigd)
  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;
  
  // Afstand met temperatuurcompensatie
  distance = distanceSensor.measureDistanceCm(tempC);
  temp_round = round(tempC);
  
  if (modes == 1) { // Modus 2: Meting
    backlightOn();
    if (distance >= 300 || distance <= 0) {
      rounded = 0;
      lcd.clear();
      lcd.print("Out of range");
      lcd.setCursor(0, 1);
      lcd.print("Temp: " + String(temp_round) + " C");
    } else {
      rounded = round(distance);
      lcd.clear();
      lcd.print("Dist: ");
      lcd.print(rounded);
      lcd.print(" cm");
      lcd.setCursor(0, 1);
      lcd.print("Temp: " + String(temp_round) + " C");
    }
  } else { // Modus 1: Waarschuwing
    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("Dist: "); 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("Dist: "); 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("Dist: "); 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); }

Benodigde bibliotheken

Schema's

Fritzing bestand: coronavirus_distancing_WQxTcxgmYm.fzz

Arduino Social Distancing Herinneringssysteem voor COVID-19
Electrisch schema van het systeem

Productieproces

  1. Bouw een Squid Game-thema Interactieve Pop met Arduino UNO – DIY Project
  2. Bouw een Arduino Real-Time Clock voor Islamitische Gebedstijden
  3. Arduino Uno Gebaseerde Mensendetectie Robot: Stap-voor-stap Sensorintegratie
  4. Arduino Uno WiFi Webserver: LED aan/uit schakelen via browser
  5. Bouw een eenvoudige rekenmachine met Arduino UNO – Makkelijk project
  6. Afbeeldingen Weergeven op een 1,17-inch TFT LCD met Arduino UNO
  7. Een draagbaar Persistence-of-Vision-display bouwen met Arduino UNO en ATtiny85
  8. Arduino Handwastimer: Simpele DIY-tool om COVID‑19 te bestrijden
  9. Een 8×8 LED-matrix beheersen met Arduino Uno: Stap-voor-stap handleiding
  10. Bouw een 4x4x4 LED-kubus met Arduino Uno & 1Sheeld – Interactief LED-project
  11. 25 kHz 4-pins PWM-ventilatorbesturing met Arduino Uno – Bouw, Code & Test