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

Arduino-basiertes Frühwarnsystem zur Fluterkennung – Quellcode & Schaltplan

Frühwarnsystem zur Flutüberwachung – Schaltplan & Projekt-Quellcode

In Entwicklungs- und Industrieländern ist Überschwemmung die verheerendste Naturkatastrophe mit Verlusten an Menschen- und Tierleben sowie Sachwerten. Fluten durch Seebeben, Hurrikane, Starkregen und andere Naturkatastrophen treten weltweit jährlich auf.

Bei Starkregen führen unzureichende Entwässerungssysteme in vielen Regionen zu Überschwemmungen mit vielen Todesopfern. Ein System, das frühzeitig vor steigendem Wasserstand warnt, könnte viele Leben retten durch rechtzeitige Evakuierung.

In diesem Projekt stellen wir einen Prototyp vor, der den Wasserstand in Teichen, Stauseen oder Talsperren erkennt und per Summer alarmiert. Dies ist ein Kleinst-Prototyp mit Arduino UNO, Ultraschallsensor, Summer, LCD und Verbindungskabeln.

Verwandte Projekte:

Schaltplan für Früherkennung von Überschwemmungen

Arduino-basiertes Frühwarnsystem zur Fluterkennung – Quellcode & Schaltplan

Benötigte Komponenten

Verwandte Projekte:

Nun lernen wir die verwendeten Bauteile einzeln kennen.

Arduino UNO

Arduino ist eine Open-Source-Plattform für Elektronikprojekte. Einfach programmierbar, löschbar und neu programmierbar. Viele Boards verfügbar: Arduino UNO, Nano, Mega, Lilypad etc. mit unterschiedlichen Spezifikationen.

In diesem Projekt nutzen wir Arduino UNO zur automatischen Steuerung. Er basiert auf ATmega328 Mikrocontroller mit 16 MHz Takt. Unterstützt USART, I2C, SPI.

Programmierung über Arduino IDE per Micro-USB. ATmega328 hat vorprogrammierten Bootloader – Code-Upload ohne externe Hardware. C/C++-Programmierung, leicht erlernbar.

Verwandte Projekte:

Arduino IDE trennt Code in void setup() (einmalig, Initialisierung) und void loop() (kontinuierlich).

Board: 6 Analog-Eingänge (A0–A5, 10-bit), 14 digitale GPIO-Pins (6 mit PWM), programmierbar über pinMode(), digitalWrite(), digitalRead(), analogRead().

Stromversorgung: USB (5 V) oder DC-Buchse (7–20 V). Onboard-Regler für 3,3 V (Low-Power).

Kommunikation: USART (Pin 0 Rx, 1 Tx), I2C (SDA A4, SCL A5), SPI (SS 10, MOSI 11, MISO 12, SCK 13).

Verwandte Projekte:

HC-SR04 Ultraschallsensor

Der HC-SR04 misst berührungslos Entfernungen präzise. Funktionsprinzip wie RADAR/SONAR.

Theoretisch bis 450 cm, praktisch 2–80 cm mit 3 mm Genauigkeit. Betrieb: 5 V, <15 mA, 40 kHz.

Arduino-basiertes Frühwarnsystem zur Fluterkennung – Quellcode & Schaltplan

Der Sensor hat einen Sender und einen Empfänger. Entfernungsberechnung über Grundformel:

Distanz = Geschwindigkeit × Zeit

Sender sendet Ultraschallwelle. Wird sie von Objekt im Erfassungsbereich reflektiert, empfängt der Empfänger das Echo. Zur Berechnung brauchen wir Geschwindigkeit und Zeit.

Ultraschallgeschwindigkeit ≈ 330 m/s. Zeit wird vom Mikrocontroller gemessen: Echo-Pin geht HIGH für die Dauer der Hin- und Rücklaufzeit. Daraus lässt sich Distanz berechnen.

Verwandte Projekte:

Anbindung HC-SR04 an Arduino UNO

HC-SR04 funktioniert mit Arduino, PIC, Raspberry Pi etc. Hier Anbindung an Arduino UNO. Modul hat 4 Pins: VCC, GND, Trig, Echo.

VCC/GND an 5 V/GND des Arduino. Trig (Eingang) und Echo (Ausgang) an digitale I/O-Pins des Arduino.

Zur Messung: Trig-Pin für 10 µs auf HIGH, dann LOW. Erzeugt 40 kHz-Ultraschallimpuls. Trifft auf Objekt, reflektiert zurück. Echo-Pin geht HIGH für Rücklaufzeit. Multipliziert mit Schallgeschwindigkeit (330 m/s) ergibt Distanz.

Verwandte Beiträge:

16×2 LCD-Display

Anbindung 16×2 LCD an Arduino UNO ist einfach. Verschiedene LCD-Typen verfügbar; hier 16×2 (2 Zeilen, je 16 Zeichen).

Modul hat HD44780-Controller (Hitachi) für Mikrocontroller-Kommunikation. Arbeitet in 4-Bit- oder 8-Bit-Modus. 4-Bit-Modus benötigt nur 4 Datenleitungen – weniger Kabel, einfachere Schaltung. Hier 4-Bit-Modus.

Arduino-basiertes Frühwarnsystem zur Fluterkennung – Quellcode & Schaltplan

Pin-Belegung 16×2 LCD-Modul:
Pin am LCDBeschreibung
VSSMasse (GND)
VCC+5 V Versorgung
VEEKontrasteinstellung
RSRegister Select: Daten- oder Befehlsmodus
RWLesen/Schreiben-Modus
EEnable LCD
DB0–DB7Daten- und Befehlseingabe
LED+Anode Hintergrundbeleuchtung
LED-Kathode Hintergrundbeleuchtung

LCD hat kein eigenes Licht – LED-Hintergrundbeleuchtung. Anbindung an Arduino UNO einfach durch LiquidCrystal-Bibliothek in Arduino IDE mit vielen eingebauten Funktionen. Hauptfunktionen in diesem Projekt:

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
lcd.begin()
lcd.clear()
lcd.print()

Funktionsweise des Frühwarnsystems zur Fluterkennung & Quellcode

Ein Ultraschallsensor wird an einer Basisposition montiert, sodass Sender und Empfänger zur Wasseroberfläche zeigen. Arduino UNO misst Distanz zwischen Sensor und Wasserspiegel.

LCD zeigt die Distanz. Wir definieren einen Schwellenwert für Flutwarnung. Erreicht das Wasser diesen Wert, wird Summer auf HIGH gesetzt und LCD zeigt Warnttext.

Code-Erklärung

#include <LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7);
lcd.begin(16,2);

Einbindung der LCD-Bibliothek. LiquidCrystal lcd() nimmt Pin-Nummern der Datenleitungen zum Arduino. lcd.begin() initialisiert 16×2 LCD.

pinMode(18, OUTPUT); // Trig-Pin
pinMode(19, INPUT);  // Echo-Pin
pinMode(20, OUTPUT); // Summer

Pins 18 und 20 als Ausgänge (Trig, Summer), Pin 19 als Eingang (Echo).

t = pulseIn(19, HIGH);
dist = t * 340 / 20000;

Variable t erfasst Zeit bis Echo-Pin HIGH. Zur Distanzberechnung in cm in Variable dist gespeichert.

if (dist < 40) {
  digitalWrite(20, HIGH);
  lcd.clear();
  lcd.setCursor(0,1);
  lcd.print("Water level is rising. Kindly evacuate");
  delay(2000);
} else {
  digitalWrite(20, LOW);
  delay(2000);
}

Flutbedingung: Distanz < 40 cm. Dann Summer HIGH (Alarm), LCD zeigt Evakuierungsmeldung. Sonst Summer LOW.

Vollständiger Quellcode:

#include <LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7);
float t = 0;
float dist = 0;

void setup() {
  lcd.begin(16,2);
  pinMode(18, OUTPUT); // Trig
  pinMode(19, INPUT);  // Echo
  pinMode(20, OUTPUT); // Summer
  lcd.setCursor(0,1);
  lcd.print(" Water Level Detector");
  delay(2000);
}

void loop() {
  lcd.clear();
  digitalWrite(20, LOW);
  digitalWrite(18, LOW);
  delayMicroseconds(2);
  digitalWrite(18, HIGH);
  delayMicroseconds(10);
  digitalWrite(18, LOW);
  delayMicroseconds(2);
  t = pulseIn(19, HIGH);
  dist = t * 340 / 20000;
  lcd.clear();
  lcd.setCursor(0,1);
  lcd.print("Distance: ");
  lcd.print(dist/100);
  lcd.print(" m");
  delay(1000);
  if (dist < 40) {
    digitalWrite(20, HIGH);
    lcd.clear();
    lcd.setCursor(0,1);
    lcd.print("Water level rising. Evacuate!");
    delay(2000);
  } else {
    digitalWrite(20, LOW);
    delay(2000);
  }
}

Verwandte Projekte:

Industrietechnik

  1. C# using-Anweisungen meistern: Importe, Aliase und statische Direktiven
  2. Symphony Link: Zuverlässige Wasserleckerkennung für Rechenzentren
  3. LM35-basiertes Temperatursteuerungssystem mit AT89S52 Mikrocontroller
  4. DTMF-Decoder mit Arduino bauen – ganz ohne zusätzlichen IC
  5. RFID-Anwesenheitssystem mit Arduino & Python – Daten direkt in phpMyAdmin (XAMPP) speichern
  6. Arduino-Uno-Roboter zur Personenerkennung – Sensorintegration Schritt für Schritt
  7. SERENA: Eigenes Arduino Mega 2560 Alarmsystem mit TFT-LCD-Touchscreen
  8. Echtzeit-Waldbrand-Überwachungssystem mit SMS-Alarm
  9. Fortschrittliches Sturz-Erkennungssystem mit Arduino, Windows IoT & Azure Cloud
  10. Warum Biz4Intellia IoT-Wasserleckageerkennung industrielle Effizienz steigert – 5 Schlüsselvorteile