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
- Schweißgerät
- Trennschleifer (Cut-Off Machine)
- Lötkolben (generisch)
- Lötzinn, bleifrei
- Lasercutter (generisch)
Apps und Online-Dienste
- Arduino IDE
- Raspberry Pi Raspbian
- OpenCV
Ü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).
Einsatzbereiche
- Lebensmittelmärkte
- Büros
- Einkaufszentren
- Flughäfen
- Bushaltestellen
- Bahnhöfe
- Polizeistationen
- Hochschulen
- Krankenhäuser
- Wohnanlagen
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.
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**).
Flussdiagramm
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.
3D-Modell: https://skfb.ly/6RGvZ
Der 200-Liter-Tank und die Hochdruckpumpe sind seitlich am Tunnel angebracht und mit der 4-Wege-Vernebler-Anlage verbunden.
Mikro-Schläuche verteilen die Lösung im Tunnel zu den Verneblern.
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).
4-Wege-Vernebler Spezifikationen
- Ausstoßrate: 30 l/h / 0,5 l/min (pro Vernebler)
- Empfohlener Druck: 45–60 psi
- Mittlere Tröpfchengröße: 65 µm (bei 55–60 psi)
- Erforderliche Filtration: 130 µm (120 Mesh)
- Benötigte Pumpe: 40–45 m Förderhöhe
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.
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.
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
- Raspberry Pi ausschalten
- Kamera-Modul zwischen USB- und HDMI-Port lokalisieren
- Schwarzen Plastikclip vorsichtig nach oben ziehen
- Flachbandkabel einlegen (Metallkontakte *weg* von Ethernet/USB bei Pi 4)
- Clip wieder verriegeln
Pi Camera aktivieren
sudo raspi-configausführen- „Interfacing Options“ (4. Option) → Enter
- „Enable Camera“ (5. Option) → Enter
- Rechtspfeil auf „ENABLE“ → Enter
Pi Camera testen
Mit VNC Viewer verbinden und raspistill -v -o test.jpg ausführen. Bei korrekter Installation sehen Sie Kamerabild auf dem Bildschirm.
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.
Ich baute ein Gehäuse aus MDF für Arduino und Raspberry Pi 3.
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.
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
App-Entwicklung
Android App:
Voraussetzung: Android Studio. Code herunterladen, IP-Adresse des Raspberry Pi anpassen.
iOS App:
Voraussetzung: Xcode. Code herunterladen, IP-Adresse anpassen.
Verwendete Chemische Lösung
Desinfektionstunnel nutzt 0,4 % Natriumhypochlorit-Lösung in 100 Litern Wasser.
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
Alles zusammenfügen
Endlich: Tunnel einschalten, alle Routinen und Apps testen – alles funktioniert nach Plan.
Kosten
Details: Google Sheets Kostenübersicht
Code
- Arduino Code Tunnel
- main.py
- Dashboard Files
- Sanitation-Tunnel Android Source Code
- Sanitation-Tunnel Android App
- Sanitation-Tunnel iOS Source 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
- Wie IoT die Landwirtschaft revolutioniert: Vorteile & Smart Farming Einblicke
- Arduino Temperatur- & Feuchtelogger mit DHT11 & Ethernet Shield
- Smart IoT-Glas bauen: Füllstand überwachen mit ESP8266, Arduino & Ultraschall
- Smart Home Automatisierung & Sicherheitssystem mit 1Sheeld
- Intelligente selbstschnürende Schuhe mit integrierter Energiegewinnung
- Licht & Sound zum Geburtstag: DIY Arduino-Projekt
- Autonomes Gesichtsverfolgungs-Robotercar mit Arduino Nano & OpenCV
- DIY Guitar Speed Pick & Stomp Pedal – 3D-gedruckter motorisierter Plektrum
- Smart Manufacturing: Definition, Vorteile und Implementierung
- Hydraulik revolutioniert: Wie Industry 4.0 smarte Fertigung antreibt