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

Hochwasserfrüherkennungssystem mit Arduino – Quellcode

Frühe Flut Überwachung System – Schaltungs- und Projektquellcode

In Entwicklungs- und Nichtentwicklungsländern sind Überschwemmungen die massive Naturkatastrophe, die den Verlust von Leben und Eigentum von Menschen und Tieren verursacht. Überschwemmungen aufgrund von Erdbeben in Ozeanen, Wirbelstürmen, Regenfällen und anderen Naturkatastrophen ereignen sich jedes Jahr in vielen Teilen der Welt.

Bei Regen führt ein unkontrolliertes Entwässerungssystem in verschiedenen geografischen Regionen zu Überschwemmungen und vielen Menschenleben. Wenn wir ein System haben, das uns frühzeitig vor Überschwemmungen warnt, können wir Menschenleben retten. Ein System, das Technologie verwendet, um den Anstieg des Wasserstands zu erkennen und die Menschen im Voraus zu warnen, damit viele Menschen evakuiert werden können.

Also bringen wir Ihnen in diesem Projekt einen Prototyp, der verwendet werden kann, um den Wasserstand in einem Teich, Damm oder Reservoir zu erkennen und dann einen Alarm mit einem Summer zu senden. Dies ist nur ein kleiner Prototyp, in dem wir ein Arduino UNO, einen Ultraschallsensor, einen Summer, ein LCD und einige Verbindungsdrähte verwenden werden.

Verwandte Projekte:

Schaltplan für Hochwasserfrüherkennung

Erforderliche Komponenten

Verwandte Projekte:

Lassen Sie uns nun nacheinander die in dieser Grundschaltung verwendeten Komponenten kennenlernen.

Arduino UNO

Arduino ist eine Open-Source-Plattform, die zur Entwicklung von Elektronikprojekten verwendet wird. Es kann jederzeit leicht programmiert, gelöscht und neu programmiert werden. Auf dem Markt sind viele Arduino-Boards wie Arduino UNO, Arduino Nano, Arduino Mega, Arduino Lilypad usw. erhältlich, die je nach Verwendung unterschiedliche Spezifikationen haben.

In diesem Projekt werden wir Arduino UNO verwenden, um Haushaltsgeräte automatisch zu steuern. Es verfügt über einen ATmega328-Mikrocontroller-IC, der mit einer Taktfrequenz von 16 MHz läuft. Es ist ein leistungsstarkes Gerät, das mit USART-, I2C- und SPI-Kommunikationsprotokollen arbeiten kann.

Dieses Board wird normalerweise mit der Software Arduino IDE über ein Micro-USB-Kabel programmiert. Der ATmega328 wird mit einem vorprogrammierten Onboard-Bootloader geliefert, der das Hochladen des Codes ohne die Hilfe externer Hardware erleichtert. Es hat eine große Anwendung bei der Herstellung von Elektronikprojekten oder -produkten. Die Programmiersprache C und C++ wird verwendet, um das Board zu programmieren, das sehr einfach zu erlernen und zu verwenden ist.

Verwandte Projekte:

Arduino IDE macht es viel einfacher zu programmieren. Es trennt den Code in zwei Teile, d. h. void setup() und void loop(). Die Funktion void setup() wird nur einmal ausgeführt und hauptsächlich zum Initiieren eines Prozesses verwendet, während void loop() den Teil des Codes darstellt, der kontinuierlich ausgeführt werden soll.

Dieses Modell besteht aus 6 analogen Eingangspins und 14 digitalen GPIO-Pins, die als Eingangs-Ausgang verwendet werden können, von denen 6 PWM-Ausgang und Analog mit pinMode(), digitalWrite() bieten, digitalRead()- und analogRead()-Funktionen. 6 analoge Eingangskanäle Kanäle sind von den Pins A0 bis A5 und bieten eine Auflösung von 10 Bit.

Das Board kann entweder über ein USB-Kabel mit 5 Volt oder über eine DC-Buchse mit 7 bis 20 Volt mit Strom versorgt werden. Es gibt einen Spannungsregler an Bord, um 3,3 Volt für den Betrieb von Geräten mit geringer Leistung zu erzeugen.

Da der ATmega328 auf USART-, SPI- und I2C-Kommunikationsprotokollen arbeitet, hat er 0 (Rx)- und 1 (Tx)-Pins für die USART-Kommunikation, SDA (A4) und SCL (A5) Pin für I2C und SS (10), MOSI (11), MISO (12) und SCK (13) Pins für das SPI-Kommunikationsprotokoll.

Verwandte Projekte:

HC-SR04 Ultraschallsensor

HC-SR04 ist ein Ultraschallsensor, der hilft, Entfernungen an vielen Orten ohne menschlichen Kontakt zu messen. Es funktioniert nach dem gleichen Prinzip wie RADAR und SONAR und bietet eine effiziente Möglichkeit, Entfernungen sehr genau zu messen.

Theoretisch kann es Entfernungen bis zu 450 cm messen, aber praktisch kann es Entfernungen von 2 cm bis 80 cm mit einer Genauigkeit von 3 mm messen. Es wird mit 5 Volt, Strom kleiner 15mA und 40 Hertz Frequenz betrieben.

Auf dem HC-SR04 sind ein Sender und ein Empfänger installiert. Die Entfernung wird mit der grundlegenden Geschwindigkeits-, Entfernungs- und Zeitformel berechnet, die wir alle in unserer Schule gelernt haben, d. h.

Entfernung =Geschwindigkeit x Zeit

Der Sender des HC-SR04-Sensors sendet eine Ultraschallwelle in die Luft. Wenn diese Welle von einem Objekt im Bereich des Sensors reflektiert wird, wird die reflektierte Welle in der Luft vom Empfänger des Sensors empfangen. Um die Entfernung mit der obigen Formel zu berechnen, sollten wir also die Geschwindigkeit und Zeit kennen.

Wir wissen, dass die universelle Geschwindigkeit der Ultraschallwelle etwa 330 m/s beträgt. Die Zeit wird von der Schaltung gemessen, die auf dem Mikrocontroller aufgebaut ist. Der Echo-Pin wird für die Zeitspanne hoch, die die Ultraschallwelle benötigt, um zum Empfänger zurückzukehren. Auf diese Weise können wir den Abstand zwischen dem Objekt und dem Ultraschallsensor HC-SR04 berechnen.

Verwandte Projekte:

Schnittstelle zwischen HC-SR04 und Arduino UNO

Der HC-SR04-Ultraschallsensor kann mit allen Mikrocontrollern wie Arduino, PIC, Raspberry Pi usw. verwendet werden. In diesem Projekt werden wir den HC-SR04-Ultraschallsensor mit Arduino UNO verbinden . Das HC-SR04-Modul hat vier Pins:VCC, GND, Trig und Echo.

Wir versorgen das HC-SR04-Modul mit 5 Volt und GND zum Arduino UNO. Der Trigger-Pin und der Echo-Pin sind die Eingangs- und Ausgangspins, so dass sie mit den Eingangs- und Ausgangspins des Arduino UNO verbunden werden müssen. Um die Entfernung zu messen, stellen wir also zuerst den Auslösestift für 10 Mikrosekunden auf „hoch“ und dann auf „niedrig“.

Dadurch wird eine Ultraschallwelle mit einer Frequenz von 40 kHz erzeugt, die zum Objekt geht und zum Empfänger des Moduls zurückreflektiert wird. Wenn die Welle ein Objekt erkennt, kehrt sie sofort zum Empfängerteil des Moduls zurück und der Echostift wird für die Zeitdauer, für die sie zum Sensor zurückkehrt, „hoch“.

Nun ergibt diese Zeitspanne multipliziert mit der Wellengeschwindigkeit von 330 m/s die Entfernung zwischen dem HC-SR04-Modul und dem Objekt.

Verwandter Beitrag:

16×2-LCD-Display

Die Verbindung von 16 x 2 LCD mit Arduino UNO ist ziemlich einfach. Es gibt verschiedene Arten von LCDs auf dem Markt, aber das, das wir in diesem Projekt verwenden, ist 16 × 2, was bedeutet, dass es zwei Zeilen hat und in jeder Zeile können wir 16 Zeichen anzeigen.

Dieses Modul enthält den HD44780-Treiber von Hitachi, der die Schnittstelle und Kommunikation mit den Mikrocontrollern unterstützt. Dieses LCD kann im 4-Bit-Modus und im 8-Bit-Modus arbeiten. Im 4-Bit-Modus werden nur 4 Datenpins benötigt, um eine Verbindung zwischen LCD und Mikrocontroller herzustellen, während im 8-Bit-Modus 8 Datenpins benötigt werden.

Hier werden wir es im 4-Bit-Modus verwenden, da es weniger Drähte erfordert und die Schaltung vereinfacht. Schauen wir uns die Pin-Beschreibung von 16×2 LCD an.

Pin-Beschreibung des 16×2-LCD-Moduls:
Pin auf LCD Beschreibung
VSS Erdungsstift
VCC +5V Stromversorgung
VEE Pin zum Ändern des LCD-Kontrasts
RS Registerauswahl:Datenmodus oder Befehlsmodus
RW Lese- oder Schreibmodus
E LCD aktivieren
DB0-DB7 Daten und Befehle werden über diese Pins eingespeist
LED+ Anode der Hintergrundbeleuchtungs-LED
LED- Kathode der Hintergrundbeleuchtungs-LED

Dieses LCD hat kein eigenes Licht, daher befindet sich hinter dem Bildschirm eine LED, die als Hintergrundbeleuchtung für das Display dient. Die Schnittstelle dieses LCD mit Arduino UNO ist ziemlich einfach, da Arduino IDE eine LiquidCrystal-Bibliothek bietet, die viele eingebaute Funktionen hat, um alles auf dem Display einfacher zu initialisieren und zu drucken. Die LCD-Funktionen, die wir hauptsächlich in diesem Projekt verwenden werden, sind:

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

Arbeitsweise des Hochwasserfrüherkennungssystems und des Quellcodes

Ein Ultraschallsensor wird auf einer Basishöhe so platziert, dass Sender und Empfänger dem Wasserspiegel zugewandt sind. Arduino UNO misst den Abstand zwischen Sensor und Wasserstand.

Das LCD druckt den Abstand zwischen ihnen. Wir werden einen Richtwert für den Hochwasserstand festlegen, und wenn das Wasser den Richtwert erreicht, stellen wir den Summer auf „Hoch“ und das LCD druckt den Text, der vor dem Hochwasser warnt.

Code-Erklärung

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

Die eingebaute Bibliothek für die LCD-Anzeige ist enthalten. Die Funktion LiquidCrystal lcd() nimmt die Pin-Nummer der mit Arduino UNO verbundenen Daten. Lcd.begin() initiiert das 16×2 LCD.

pinMode(18,OUTPUT); //trigger pin
pinMode(19,INPUT);  //echo pin
pinMode(20,OUTPUT); //buzzer

Pins 18 und 20 sind jeweils Ausgangspins für Trigger und Buzzer und Pin 19 ist als Eingang für Echo-Pin eingestellt.

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

Die Zeitvariable 't' erkennt die Zeitdauer, bis der Auslösestift hoch gesetzt wird, was weiter verwendet wird, um die Zeit in Zentimetern zu berechnen und den Wert in der Variablen 'dist' zu speichern.

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);
}

In diesem Code haben wir den Hochwasserzustand eingestellt, da der Abstand zwischen Wasserstand und Ultraschallsensor 40 cm beträgt. Wenn der Wasserstand also 40 cm oder weniger erreicht, wird der Summer auf HOCH gestellt, um Alarm zu geben, und das LCD druckt und zeigt eine Hochwasseralarmmeldung an.

Vollständiger Quellcode:

#include 
LiquidCrystal lcd(2,3,4,5,6,7);

float t = 0;
float dist = 0;

void setup()
{
 lcd.begin(16,2);
 pinMode(18,OUTPUT); //trigger pin
 pinMode(19,INPUT);  //echo pin
 pinMode(20,OUTPUT); //buzzer
 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 is rising. Kindly evacuate");
 delay(2000);
}
else
{
 digitalWrite(20,LOW);
 delay(2000);
}
}

Verwandte Projekte:


Industrietechnik

  1. C# verwenden
  2. Verwendung von Symphony Link als Wasserleckerkennungssystem für Rechenzentren
  3. Temperaturbasiertes Gerätesteuerungssystem mit LM35
  4. DTMF-Decoder, der nur Arduino verwendet
  5. Anwesenheitssystem mit Arduino und RFID mit Python
  6. Robotersystem zur Erkennung von Menschen mit Arduino Uno
  7. Arduino-Alarmsystem:SERENA
  8. Waldbrandüberwachungs- und -erkennungssystem (mit SMS-Warnungen)
  9. Ein Sturzerkennungssystem basierend auf Arduino, Windows und Azure
  10. 5 Vorteile der Verwendung des IoT-betriebenen Wasserleckerkennungssystems von Biz4intlias in der Industrie