Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino-basiertes Social-Distancing-Erinnerungssystem für COVID-19

Komponenten und Materialien

Arduino UNO (Arduino Nano empfohlen, aber UNO verwendet) × 1
Arduino Proto Shield (optional) × 1
Adafruit Mini Breadboard × 1
Elegoo 16×2 LCD Display × 1
Ultraschallsensor HC-SR04 × 1
Berührungssensor (alternativ Taster mit Pull-Down-Widerstand) × 1
NTC-Thermistor × 1
Widerstand 10 kΩ × 1
Summer × 1
Drehpotentiometer (für LCD-Kontrast) × 1
Steckdrähte (Jumper Wires) × 1
Transparentes, wasserabweisendes Gehäuse (für LCD-Sichtbarkeit & Regenschutz) × 1

Apps und Online-Dienste

Über dieses Projekt

Was ist das?

Die zuverlässigste Methode, die Ausbreitung des Coronavirus zu verlangsamen, ist Abstandhalten – Vorbeugen ist besser als Heilen. Doch ständig alle 30 Sekunden umzudrehen, um nach herannahenden Personen zu schauen, ist lästig. Dieses Gerät warnt andere automatisch, den Mindestabstand von 2 Metern einzuhalten. Es ist ein 2-in-1-System: Der Thermistor dient nicht nur der präziseren Entfernungsmessung (Schallgeschwindigkeit hängt von der Temperatur ab), sondern ermöglicht per Taster/Touchsensor den Wechsel zwischen zwei Modi:

Funktionsweise

  1. Der Arduino misst die Temperatur über den NTC-Thermistor.
  2. Die Temperatur wird für die genaue Entfernungsberechnung per Ultraschall verwendet.

Im Modus 1 (Alarm):

Im Modus 2 (Messung): LCD zeigt oben die Distanz, unten die Temperatur.

Zum Regenschutz wurde eine halbe Plastikflasche als Abdeckung angebracht, die bei Regen hochgeschoben werden kann. Das Gerät wird mit zwei Schnüren am Rucksackboden befestigt und ist leicht abnehmbar.

Arduino-basiertes Social-Distancing-Erinnerungssystem für COVID-19

Der Touchsensor dient zum Umschalten der Modi.

Arduino-basiertes Social-Distancing-Erinnerungssystem für COVID-19

Aufbau

  1. Bauteile gemäß Schaltplan verbinden.
  2. Bibliotheken installieren: In Arduino IDE → Sketch → Bibliothek einbinden → .ZIP-Bibliothek hinzufügen: arduino-lib-hc-sr04-master.zip und LiquidCrystal.zip.
  3. Code hochladen.
Arduino-basiertes Social-Distancing-Erinnerungssystem für COVID-19

Code

Hauptprogramm (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) { // Modus 2: Messung
    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 { // Modus 1: Alarm
    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); }

Benötigte Bibliotheken

Schaltpläne

Datei: coronavirus_distancing_WQxTcxgmYm.fzz (Fritzing)

Arduino-basiertes Social-Distancing-Erinnerungssystem für COVID-19

Herstellungsprozess

  1. Squid Game Puppe mit Arduino UNO bauen – Interaktives DIY-Projekt
  2. Arduino Echtzeituhr für islamische Gebetszeiten bauen
  3. Arduino-Uno-Roboter zur Personenerkennung – Sensorintegration Schritt für Schritt
  4. Arduino UNO WiFi Webserver: LED per Browser steuern
  5. Einfacher Taschenrechner mit Arduino UNO – Einsteigerprojekt
  6. Bilder auf 1,17-Zoll-TFT-LCD mit Arduino UNO anzeigen
  7. Tragbares Persistence-of-Vision-Display mit Arduino UNO und ATtiny85 bauen
  8. Arduino Handwasch-Timer: Einfaches DIY-Tool gegen COVID-19
  9. 8×8 LED-Matrix mit Arduino Uno meistern: Schritt-für-Schritt-Anleitung
  10. 25-kHz-4-Pin-PWM-Lüftersteuerung mit Arduino Uno – Bau, Code & Test