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

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Komponenten und Zubehör

Komponente Menge
Arduino UNO 1
Jumper-Kabel (generisch) 1
PIR-Bewegungssensor (generisch) 2
12 V Power Relais (4PDT) 1
12 V Schaltnetzteil (SMPS) 1
Seeed Grove 2-Kanal SPDT Relais 1
5 V Schaltnetzteil (SMPS) 1
Kippschalter (On)-Off-(On) 1
Raspberry Pi 3 Model B 1
Raspberry Pi Kamera Modul V2 1
Micro SD-Karte 1
Micro-USB auf USB Kabel (generisch) 1
Kühlkörper 1
1 PS Wasserpumpe 1
Stahlkastenprofil (Steel Box Pipe) 1
Wassertank (200 L) 1
PVC-Kunststoffrohr 1
4-Wege-Vernebler (Fogger) 1
Banner-Folie (Flex) 1
T-Stück (Tee Joint) 1
Mikro-Schlauch 1
Wandlampe 1
Bogen (Elbow) 1
Kabelbinder, beidseitig 1

Benötigte Werkzeuge und Maschinen

Apps und Online-Dienste

Über das Projekt

Einführung

Die Hauptidee: Einen Tunnel bauen, der die Ausbreitung von COVID-19 einzudämmen versucht.

Dieser Desinfektions- und Sanitisationstunnel wurde entwickelt, um Personen innerhalb von 15 Sekunden von möglichen Bakterien zu befreien.

Das verwendete Desinfektionsmittel besteht aus einer Kombination von Natriumhypochlorit (NaOCl) und Wasser (H₂O). Es ist nicht flüchtig, was eine lang anhaltende viruzide und bakterizide Wirkung sowie die Desinfektion von Oberflächen ermöglicht.

Ich habe die Initiative ergriffen, diesen intelligenten Desinfektionstunnel zu bauen. Bauzeit: ca. 12 Stunden. Er desinfiziert eine Person vollständig von Kopf bis Fuß in nur 15 Sekunden – die Lösung ist vollständig harmlos*. Gesamtkosten: ca. 30.000 ₹ oder 400 $ (aktualisierter Preis).

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Einsatzbereiche

Funktionsweise

Eine 1-PS-Wasserpumpe ist seitlich am Tunnel angebracht und fördert die Lösung (0,4 % Natriumhypochlorit in 100 Litern Wasser) aus dem Tank. Da das System automatisiert ist, erkennt es, ob jemand den Tunnel betritt. Bei Erkennung startet die Pumpe für 15 Sekunden, damit die Person den Tunnel passieren kann. Ist niemand im Tunnel, schaltet die Pumpe ab – Wasser und Strom werden gespart.

Der feine Desinfektionsnebel schützt Bürger für mindestens 60 Minuten (ca.*) vor Bakterien, da er Luft, exponierte Haut und Kleidung desinfiziert.

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Ein 200-Liter-Kunststofftank für die Lösung und die Hochdruckpumpe befinden sich seitlich am Tunnel, verbunden mit der 4-Wege-Vernebler-Anlage. Nach Berechnung reicht die Lösung für 8–10 Stunden. Ein Bewegungssensor über dem Eingang spart Desinfektionsmittel (kann je nach Personenaufkommen variieren**).

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Flussdiagramm

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Hardware-Aufbau

Den Rahmen baute ich aus Metallprofilen – klappbar für Transport und Lagerung. Die Verkleidung besteht aus Banner-Folie (für Außenwerbung genutzt), die mit Kabelbindern schnell und ohne Spezialkenntnisse am Metallprofil befestigt wird.

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

3D-Modell: https://skfb.ly/6RGvZ

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Der 200-Liter-Tank und die Hochdruckpumpe sind seitlich am Tunnel angebracht und mit der 4-Wege-Vernebler-Anlage verbunden.

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Mikro-Schläuche verteilen die Lösung im Tunnel zu den Verneblern.

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Im Inneren befindet sich eine Hochdruckleitung mit 4-Wege-Verneblern. Der Nebel hinterlässt keine Spuren auf der Kleidung, umhüllt die Person vollständig und zerstört Viren selbst in schwer zugänglichen Kleidungsfalten – mit Schutzwirkung nach dem Verlassen.

Als Lösung wird ein zertifiziertes Mittel verwendet (Zertifikat unten angehängt).

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

4-Wege-Vernebler Spezifikationen

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche
Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Arduino vorbereiten

Die Wasserpumpe arbeitet durch Erkennung von Infrarotstrahlung. Nähert sich ein Mensch dem Bewegungssensor, reflektiert der Körper Infrarotstrahlen – der Sensor gibt ein HIGH-Signal aus. Der Arduino liest dies: Bei HIGH schaltet er das Relais-Modul ein → Power-Relais aktiviert → Wasserpumpe läuft 15 Sekunden (einstellbar). Bei LOW bleibt die Pumpe aus.

Ich verwendete 2 PIR-Sensoren für höhere Präzision – erkennt einer Bewegung, läuft die Pumpe 15 Sekunden.

Ein 5 V Relais kann die Pumpe nicht direkt schalten (meine Pumpe: 16 A, 5 V Relais max. 10 A). Daher wird ein 12 V Power-Relais nachgeschaltet.

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Arduino Code:

/* Smart Disinfection and Sanitation Tunnel */
int relayPin = 12;
int inputPin = 2;
int inputPin2 = 3;
int pirState = LOW;
int val = 0, val2 = 0;

void setup() {
  pinMode(relayPin, OUTPUT);
  pinMode(inputPin, INPUT);
  pinMode(inputPin2, INPUT);
  Serial.begin(9600);
}

void loop() {
  val = digitalRead(inputPin);
  val2 = digitalRead(inputPin2);
  if (val == HIGH || val2 == HIGH) {
    digitalWrite(relayPin, HIGH);
    if (pirState == LOW) {
      Serial.println("Motion detected!");
      delay(15000);
      pirState = HIGH;
    }
  } else {
    digitalWrite(relayPin, LOW);
    if (pirState == HIGH) {
      Serial.println("Motion ended!");
      pirState = LOW;
    }
  }
}

Die finale Verkabelung sieht etwas unordentlich aus, funktionierte aber einwandfrei.

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Raspberry Pi 3 vorbereiten (Optional)

Optional für Datenanalyse und präzises Zählen der Tunnelbenutzer. Es gibt physische Sensoren (PIR, Ultraschall), aber ich fand maschinelles Lernen mit OpenCV in Python präziser. Ein Modell erkennt menschliche Körper, speichert Logs in Dateien, die in einer App visualisiert werden können.

Pi Camera anschließen

  1. Raspberry Pi ausschalten
  2. Kamera-Modul zwischen USB- und HDMI-Port lokalisieren
  3. Schwarzen Plastikclip vorsichtig nach oben ziehen
  4. Flachbandkabel einlegen (Metallkontakte *weg* von Ethernet/USB bei Pi 4)
  5. Clip wieder verriegeln
Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche
Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Pi Camera aktivieren

  1. sudo raspi-config ausführen
  2. „Interfacing Options“ (4. Option) → Enter
  3. „Enable Camera“ (5. Option) → Enter
  4. Rechtspfeil auf „ENABLE“ → Enter
Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche
Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche
Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Pi Camera testen

Mit VNC Viewer verbinden und raspistill -v -o test.jpg ausführen. Bei korrekter Installation sehen Sie Kamerabild auf dem Bildschirm.

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

OpenCV installieren

Anleitung: OpenCV 4 auf Raspberry Pi installieren

Python-Skript (main.py) für Personenerkennung:

import cv2.cv as cv
from datetime import datetime
import time, sys, datetime
count = 0

class MotionDetector():
    def __init__(self, ceil=8, doRecord=True, showWindows=True):
        self.writer = None; self.font = None
        self.doRecord = doRecord; self.show = showWindows
        self.frame = None
        self.capture = cv.CaptureFromCAM(0)
        self.frame = cv.QueryFrame(self.capture)
        if doRecord: self.initRecorder()
        self.frame1gray = cv.CreateMat(self.frame.height, self.frame.width, cv.CV_8U)
        cv.CvtColor(self.frame, self.frame1gray, cv.CV_RGB2GRAY)
        self.res = cv.CreateMat(self.frame.height, self.frame.width, cv.CV_8U)
        self.frame2gray = cv.CreateMat(self.frame.height, self.frame.width, cv.CV_8U)
        self.width = self.frame.width; self.height = self.frame.height
        self.nb_pixels = self.width * self.height
        self.ceil = ceil; self.isRecording = False
        self.trigger_time = 0
        if showWindows: cv.NamedWindow("Image")

    def initRecorder(self):
        codec = cv.CV_FOURCC('D','I','V','X')
        self.writer = cv.CreateVideoWriter(datetime.now().strftime("%b-%d_%H:%M:%S")+".avi", codec, 15, cv.GetSize(self.frame), 1)
        self.font = cv.InitFont(cv.CV_FONT_HERSHEY_SIMPLEX, 1, 1, 0, 2, 8)

    def run(self):
        global count
        started = time.time()
        while True:
            curframe = cv.QueryFrame(self.capture)
            instant = time.time()
            self.processImage(curframe)
            if not self.isRecording:
                if self.somethingHasMoved():
                    self.trigger_time = instant
                    if instant > started + 5:
                        print "Human Detected"
                        count += 1; print(count/2)
                        with open('out.txt', 'a') as f: print(count/2, file=f)
                        with open('log.txt', 'a') as f: print('Timestamp: {:%Y-%b-%d %H:%M:%S} Log Entry : 1'.format(datetime.datetime.now()), file=f)
                        if self.doRecord: self.isRecording = True
            else:
                if instant >= self.trigger_time + 10:
                    print "Stop recording"; self.isRecording = False
                else:
                    cv.PutText(curframe, datetime.now().strftime("%b %d, %H:%M:%S"), (25,30), self.font, 0)
                    cv.WriteFrame(self.writer, curframe)
            if self.show: cv.ShowImage("Image", curframe)
            cv.Copy(self.frame2gray, self.frame1gray)
            c = cv.WaitKey(1)
            if c == 27 or c == 1048603: break

    def processImage(self, frame):
        cv.CvtColor(frame, self.frame2gray, cv.CV_RGB2GRAY)
        cv.AbsDiff(self.frame1gray, self.frame2gray, self.res)
        cv.Smooth(self.res, self.res, cv.CV_BLUR, 5,5)
        element = cv.CreateStructuringElementEx(11, 11, 5, 5, cv.CV_SHAPE_RECT)
        cv.MorphologyEx(self.res, self.res, None, None, cv.CV_MOP_OPEN)
        cv.MorphologyEx(self.res, self.res, None, None, cv.CV_MOP_CLOSE)
        cv.Threshold(self.res, self.res, 10, 255, cv.CV_THRESH_BINARY_INV)

    def somethingHasMoved(self):
        nb = 0
        for y in range(self.height):
            for x in range(self.width):
                if self.res[y,x] == 0.0: nb += 1
        avg = (nb * 100.0) / self.nb_pixels
        return avg > self.ceil

if __name__ == "__main__":
    detect = MotionDetector(doRecord=False)
    detect.run()

Download: main.py

Ausführen: python main.py – Bildschirm zeigt Kamerabild, Terminal zeigt Personenzahl.

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Ich baute ein Gehäuse aus MDF für Arduino und Raspberry Pi 3.

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Dashboard für Desktop/App erstellen

Schritt 1: Apache installieren

sudo apt install apache2 -y

Schritt 2: PHP installieren

sudo apt install php libapache2-mod-php -y

Dashboard herunterladen und entpacken:

cd /var/www/html
wget "https://hacksterio.s3.amazonaws.com/uploads/attachments/1097966/Dashboard.zip"
sudo apt-get install unzip
unzip Dashboard.zip

Browser aktualisieren – Dashboard sollte erscheinen.

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche
Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Raspberry Pi als Wireless Access Point einrichten

Anleitung: Raspberry Pi Access Point

SSID: SanitizingTunnel

interface=wlan0
driver=nl80211
ssid=SanitizingTunnel
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=SecretPassword
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

App-Entwicklung

Android App:

Voraussetzung: Android Studio. Code herunterladen, IP-Adresse des Raspberry Pi anpassen.

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

iOS App:

Voraussetzung: Xcode. Code herunterladen, IP-Adresse anpassen.

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Verwendete Chemische Lösung

Desinfektionstunnel nutzt 0,4 % Natriumhypochlorit-Lösung in 100 Litern Wasser.

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Update: Viele Kommentare bemängelten schädliche Chemikalien. Mein Lieferant (Raman & Weil Pvt. Ltd) bestätigte: Das Mittel hat eine „Declaration“ von Bode Chemie Deutschland zur Wirksamkeit gegen COVID-19.

Offizieller Link: Declaration Bode Chemie

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Alles zusammenfügen

Endlich: Tunnel einschalten, alle Routinen und Apps testen – alles funktioniert nach Plan.

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche
Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche
Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Kosten

Intelligenter Desinfektionstunnel: Automatisierte Sanitisierung für stark frequentierte Bereiche

Details: Google Sheets Kostenübersicht

Code

Arduino Code Tunnel C/C++
/* Smart Disinfection and Sanitation Tunnel */
int relayPin = 12;
int inputPin = 2;
int inputPin2 = 3;
int pirState = LOW;
int val = 0, val2 = 0;

void setup() {
  pinMode(relayPin, OUTPUT);
  pinMode(inputPin, INPUT);
  pinMode(inputPin2, INPUT);
  Serial.begin(9600);
}

void loop() {
  val = digitalRead(inputPin);
  val2 = digitalRead(inputPin2);
  if (val == HIGH || val2 == HIGH) {
    digitalWrite(relayPin, HIGH);
    if (pirState == LOW) {
      Serial.println("Motion detected!");
      delay(15000);
      pirState = HIGH;
    }
  } else {
    digitalWrite(relayPin, LOW);
    if (pirState == HIGH) {
      Serial.println("Motion ended!");
      pirState = LOW;
    }
  }
}
main.py Python
# Vollständiger Code siehe oben (OpenCV Personenerkennung)
Dashboard Files PHP
Keine Vorschau (nur Download).
Sanitation-Tunnel Android Source Code Java
Keine Vorschau (nur Download).
Sanitation-Tunnel Android App Java
Demo App – Keine Vorschau (nur Download).
Sanitation-Tunnel iOS Source Code Swift
Keine Vorschau (nur Download).

Repository: https://github.com/yugn27/Smart-Disinfection-and-Sanitation-Tunnel

Benutzerdefinierte Teile und Gehäuse

smart_disinfection_and_sanitation_tunnel_prlFu8ZRXO.3mf

Schaltpläne

Schaltplan – Fritzing-Datei: smart_disinfection_and_sanitation_tunnel_Zkb20Q5S2B.fzz

Herstellungsprozess

  1. Wie IoT die Landwirtschaft revolutioniert: Vorteile & Smart Farming Einblicke
  2. Arduino Temperatur- & Feuchtelogger mit DHT11 & Ethernet Shield
  3. Smart IoT-Glas bauen: Füllstand überwachen mit ESP8266, Arduino & Ultraschall
  4. Smart Home Automatisierung & Sicherheitssystem mit 1Sheeld
  5. Intelligente selbstschnürende Schuhe mit integrierter Energiegewinnung
  6. Licht & Sound zum Geburtstag: DIY Arduino-Projekt
  7. Autonomes Gesichtsverfolgungs-Robotercar mit Arduino Nano & OpenCV
  8. DIY Guitar Speed Pick & Stomp Pedal – 3D-gedruckter motorisierter Plektrum
  9. Smart Manufacturing: Definition, Vorteile und Implementierung
  10. Hydraulik revolutioniert: Wie Industry 4.0 smarte Fertigung antreibt