Anbindung des Leckschutzsystems „Aquastorozh“ an das Smart Home-System. Hochwasseralarm mit Wassersensor Bodenwassersensor Arduino

In diesem Artikel erfahren wir, wie der Sensor eingesetzt werden kann Arduino-Lecks. Solche Sensoren werden oft unterschiedlich bezeichnet: Regensensor, Feuchtigkeitssensor, Tropfensensor, Lecksensor. In diesem Fall meinen wir fast immer den gleichen Sensor, meist in Form eines vorgefertigten Moduls.

Der Sensor lässt sich leicht an Arduino anschließen, die Skizze für die Arbeit mit solchen Sensoren ist einfach und der Preis ist nicht hoch. Ideale Option für einfache Projekte Arduino Uno, Mega, Nano.

Beschreibung des Sensors

Leckage- und Regensensor eingebaut Arduino-Projekte ermöglicht es Ihnen, das Auftreten von Feuchtigkeitstropfen zu erkennen und rechtzeitig darauf zu reagieren, indem Sie beispielsweise einen Alarm einschalten. Solche Systeme werden in der Agrarindustrie, in der Automobilindustrie und in anderen alltäglichen Bereichen unseres Lebens aktiv eingesetzt. In diesem Artikel betrachten wir die Arbeit mit einem vorgefertigten Modul, das problemlos in jedem spezialisierten Online-Shop erworben werden kann.

Das Sensormodul besteht aus zwei Teilen:

  • „Sensorische“ Tropfenerkennungstafel. Es verfolgt die Menge an Feuchtigkeit, die darauf gelangt. Im Wesentlichen ist der Sensor ein einfacher variabler Widerstand, der an Wasser angeschlossen ist verschiedene Orte, was zu einer Widerstandsänderung führt.
  • Der zweite Teil des Sensors ist ein Doppelkomparator (normalerweise LM393, aber LM293 und LM193 sind mögliche Optionen). Seine Hauptaufgabe besteht darin, den Wert des Sensors in ein analoges Signal von 0 bis 5 Volt umzuwandeln.

Es gibt Sensoroptionen auf dem Markt, bei denen Sensor und Komparator getrennt sind, und solche, die auf einem Panel kombiniert sind.

Der Sensor wird mit einer Spannung von 5 V betrieben, die problemlos von jedem beliebigen Ort aus gestartet werden kann Arduino-Boards. Typischerweise verfügt das Sensormodul über zwei Ausgänge:

  • Analog. Der vom Controller empfangene Wert variiert zwischen 0 und 1023. Wobei 0 – alles ist überflutet oder es regnet, der Sensor ist sehr nass, 1023 – trockenes Wetter, der Sensor ist trocken (bei einigen Sensoren gibt es entgegengesetzte Werte, 1023 – Maximum Luftfeuchtigkeit, 0 – maximale Trockenheit).
  • Digital. Erzeugt Hochspannung (5 V) oder Niederspannung, wenn ein bestimmter Schwellenwert überschritten wird. Die Höhe der Ansprechschwelle wird über einen Trimmwiderstand eingestellt.

Um den Sensor an Arduino anzuschließen, benötigen Sie die Platine selbst (UNO, Mega, Nano oder eine andere) und den Sensor selbst. Wenn Sie die Intensität des Niederschlags überprüfen möchten, empfiehlt es sich, den Sensor nicht horizontal, sondern in einem bestimmten Winkel zu positionieren, damit die angesammelten Tropfen nach unten fließen.

Anschlussplan des Leckagesensormoduls an Arduino:

  • VCC (Stromeingang) – muss mit dem angeschlossenen Gerät übereinstimmen Arduino-Schaltungen nach Spannung und Strom. Das heißt in diesem Fall 5V;
  • GND – Erdung;
  • AO – Analogausgang;
  • DO – digitaler Ausgang.

Den analogen Ausgang verbinden wir mit dem analogen Pin des Mikrocontrollers, zum Beispiel A1. Der digitale Ausgang ist jeweils mit einem der digitalen Pins verbunden. Die Spannungsversorgung erfolgt über den 5V-Pin des Arduino-Boards, Masse ist mit Masse verbunden.

Beim Anschluss von Leckagesensoren in realen Projekten ist darauf zu achten, dass der elektronische Teil des Moduls vor Feuchtigkeit geschützt wird!

Skizzenbeispiel

#define PIN_ANALOG_RAIN_SENSOR A1 // Analoger Eingang für das Signal des Leckage- und Regensensors #define PIN_DIGITAL_RAIN_SENSOR 5 // Digitaler Eingang für das Signal des Leckage- und Regensensors void setup())( Serial.begin(9600); ) void loop ())( int sensorValue = analogRead (PIN_ANALOG_RAIN_SENSOR); // Daten vom analogen Port lesen Serial.print("Analog value: "); // Den analogen Wert an den Portmonitor ausgeben sensorValue = digitalRead(PIN_DIGITAL_RAIN_SENSOR); port Serial .print("Digitaler Wert: "); Serial.println(sensorValue); // Ausgabe digitaler Wert To-Port-Monitor-Verzögerung (1000); // Verzögerung zwischen Messungen)

#define PIN_ANALOG_RAIN_SENSOR A1 // Analoger Eingang für das Leckage- und Regensensorsignal

#define PIN_DIGITAL_RAIN_SENSOR 5 // Digitaler Eingang für das Leckage- und Regensensorsignal

void setup() (

Seriell. begin(9600);

void loop() (

int sensorValue = analogRead (PIN_ANALOG_RAIN_SENSOR ) ; // Daten vom analogen Port lesen

Seriell. print ("Analogwert: " );

// Den Analogwert an den Portmonitor ausgeben

sensorValue = digitalRead(PIN_DIGITAL_RAIN_SENSOR) ; // Daten vom digitalen Port lesen

Seriell. print ("Digitaler Wert: " );

Seriell. println(sensorValue); // Einen digitalen Wert an den Portmonitor ausgeben

Verzögerung (1000); // Verzögerung zwischen Messungen

In diesem Sketch lesen wir einfach die Werte vom Sensor aus und geben sie an den Portmonitor aus. Führen Sie ein Experiment durch und sehen Sie, wie sich der resultierende Wert ändert, wenn Sie den Sensor mit einer nassen oder trockenen Hand berühren. Befeuchten Sie den Sensor – es begann zu regnen oder es trat ein Leck auf, wischten ihn mit einem trockenen Tuch ab – der Regen hörte auf.

Beispiel eines Regenalarmprojekts

Schauen wir uns ein Beispiel mit an akustischer Alarm in Form eines angeschlossenen Summers am Digitalausgang D6. Bei Bedarf können Sie anstelle eines Alarms ein Relais anschließen und verschiedene Vorgänge ausführen, indem Sie das Netzwerk trennen. Im Sketch übermitteln wir die empfangenen Daten über die UART-Schnittstelle an den Portmonitor.

Skizze für ein Projekt mit Alarmanlage

Nachfolgend finden Sie einen Testcode, der zeitverzögert ein Audiosignal auf dem bereits erwähnten digitalen Ausgang 6 aktiviert, um dies auszuschließen Fehlalarme wenn versehentlich Wasser auf den Sensor gelangt. Die Arbeit wird über eine Variable implementiert, die jede Sekunde aktualisiert wird und als Schwellenwert fungiert – curCounter. Der Alarm wird aktiviert, wenn der vom Sensor übermittelte Wert unter 300 fällt. Verzögerung zwischen Feuchtigkeitserkennung und Aktivierung Tonsignal ist etwas über 30 Sekunden.

#define PIN_RAIN_SENSOR A1 // Analoger Eingang für Leckage- und Regensensorsignal #define PIN_ALERT 6 // Digitaler Ausgang für Alarm #define MAX_COUNTER 30 // Schwellenwert für den Zähler #define ALERT_LEVEL 300 // Schwellenwert für den Zähler int curCounter= 0 ; // Zähler zum Sammeln von „Statistiken“, der sich jede Sekunde um 1 erhöht, nachdem der Sensor ausgelöst wurde void setup())( Serial.begin(9600); pinMode(PIN_ALERT, OUTPUT); pinMode(PIN_RAIN_SENSOR, INPUT); // Sie kann die Angabe weglassen, da dies der Standardwert ist) void loop())( int sensorValue = analogRead(PIN_RAIN_SENSOR); Serial.println(sensorValue); // Den Wert an den Port ausgeben monitor delay(300); // kurze Verzögerung / / Wenn wir genügend Gründe für das Auslösen des Alarms gesammelt haben if (curCounter >= MAX_COUNTER)( digitalWrite(PIN_ALERT, HIGH); // Auslösen des Alarms curCounter = MAX_COUNTER; // Schutz vor Variablenüberlauf ) // Bestimmen Sie den Feuchtigkeitsgrad, wenn ( sensorWert< ALERT_LEVEL){ // В очередной раз убедились, что все влажно, увеличиваем счетчик curCounter++; }else { // Интенсивность дождя не превышает порога digitalWrite(PIN_ALERT, LOW); // Выключаем сигнализацию curCounter = 0; // Обнуляем счетчик } delay(1000); // Задержка между измерениями }

#define PIN_RAIN_SENSOR A1 // Analoger Eingang für das Leckage- und Regensensorsignal

#define PIN_ALERT 6 // Digitaler Ausgang für Alarm

#define MAX_COUNTER 30 // Schwellenwert für den Zähler

#define ALERT_LEVEL 300 // Schwellenwert für den Zähler

int curCounter = 0 ; // Zähler zum Sammeln von „Statistiken“, der sich nach Auslösen des Sensors jede Sekunde um 1 erhöht

void setup() (

Seriell. begin(9600);

pinMode(PIN_ALERT, OUTPUT);

pinMode(PIN_RAIN_SENSOR, INPUT); // Kann weggelassen werden, weil Dies ist der Standardwert

void loop() (

int sensorValue = analogRead(PIN_RAIN_SENSOR);

Seriell. println(sensorValue); // Den Wert an den Portmonitor ausgeben

Verzögerung (300); // kurze Verzögerung

Arduino-Wasserstandsensor Entwickelt, um den Wasserstand in zu bestimmen verschiedene Behälter wo keine visuelle Kontrolle möglich ist, um eine Überfüllung des Behälters mit Wasser über den kritischen Punkt hinaus zu verhindern.

Die Bauformen von Wasserstandssensoren können unterschiedlich sein – schwimmend, untergetaucht, einsteckbar. Dieser Sensor Wasser - untergetaucht. Je mehr der Sensor in Wasser eingetaucht ist, desto weniger Widerstand zwischen zwei benachbarten Drähten. Der Sensor verfügt über drei Kontakte zum Anschluss an die Steuerung.

  • + – Sensorversorgung;
  • - - Erde;
  • S - Analogwert.
Der S-Pin stellt einen Analogwert bereit, der zur weiteren Verarbeitung, Analyse und Entscheidungsfindung an den Controller übertragen werden kann. Der Sensor verfügt über eine rote LED, die anzeigt, ob der Sensor mit Strom versorgt wird.

Modulspezifikationen

  • Versorgungsspannung: 3,3-5 V;
  • Stromaufnahme 20 mA;
  • Ausgang: analog;
  • Erfassungsbereich: 16×30 mm;
  • Abmessungen: 62×20×8 mm;
  • Betriebstemperatur: 10 – 30 °C.

Anwendungsbeispiel

Betrachten wir den Anschluss eines Wasserstandsensors an Arduino. Lassen Sie uns ein Projekt für einen akustischen Alarm bei Überschwemmung eines Raumes erstellen. Wenn der Sensor in Wasser eingetaucht ist, gibt der Alarm drei Arten von Tonsignalen aus (geringe Überschwemmung, mittlerer Pegel, kritischer Pegel), die drei Wasserständen entsprechen. Zur Tonwiedergabe können Sie an den digitalen Ausgang einen Piezo-Emitter – ein elektroakustisches Tonwiedergabegerät – anschließen. Aber der Ton ist sehr leise. Um eine angemessenere Lautstärke zu erhalten, wechseln Sie zu Digital Arduino-Pin Lautsprecher, aber nicht direkt, sondern über einen Transistor. Für das Projekt benötigen wir folgende Teile:
  • Arduino Uno-Board
  • Wasserstandsensor
  • Lautsprecher 8 Ohm
  • 500 Ohm Widerstand
  • Transistor KT503e
  • Verbindungsdrähte
Lassen Sie uns die in der Abbildung gezeigte Schaltung zusammenbauen.


Lasst uns starten Arduino-IDE. Erstellen wir eine neue Skizze und fügen Sie die folgenden Zeilen hinzu // Wasserstandsensor // http://site // Kontakt zum Anschluss des Analogausgangs des Sensors int aPin=A0; // Relaisausgangsverbindungskontakt int soundPin=11; // Tonsignalfrequenz int freq=(587,466,293); // Variable zum Speichern des Sensorwerts int avalue=0; // Wert der Ebenen intlevels=(600,500,400); // aktuelle Ebene int level=0; void setup() ( // Initialisieren des seriellen Ports Serial.begin(9600); // Setzen der LED-Anzeigepins // auf OUTPUT-Modus pinMode(soundPin,OUTPUT); ) void loop() ( // Abrufen des Werts von Analoger Ausgang des Sensors avalue =analogRead(aPin); // den Wert an den seriellen Arduino-Port-Monitor ausgeben Serial.print("avalue=");Serial.println(avalue); // Audio von verschiedenen ausgeben Frequenzen für verschiedene Immersionsstufen if(avalue>levels)tone(soundPin,freq,2000); else if(avalue>levels)tone(soundPin,freq,2000); else if(avalue>levels)tone(soundPin,freq,2000). ); sonst noTone(soundPin); / Pause vor der nächsten Erfassung des Wertes 1000 ms Verzögerung(1000); analoge Signale am analogen Eingang des Arduino wurden experimentell ermittelt: > 400 – minimale Immersion; > 500 – durchschnittlicher Immersionsgrad; > 600 – großer Tauchgang. Dementsprechend wird für jede Immersionsstufe ein Tonsignal mit unterschiedlichen Frequenzen über den Lautsprecher abgespielt: minimale Immersion - 293 Hz (D-Note von 1 Oktave); durchschnittlicher Immersionsgrad - 466 Hz (beachten Sie B-Bimol 1 Oktave); großes Eintauchen - 587 Hz (Note D 2 Oktaven). Wenn kein Eintauchen erfolgt, wird das Tonsignal nicht über den Lautsprecher abgespielt.

Häufig gestellte Fragen (FAQ).

1. Power-LED leuchtet nicht2. Beim Eintauchen in Wasser ändert sich der Wert des analogen Ausgangssignals nicht
  • Überprüfen Sie die Sensorverbindung zum Arduino-Eingang.
  • Überprüfen Sie das Vorhandensein und die Polarität der dem Sensor zugeführten Spannung (3,3 - 5 V).

In diesem Artikel erfahren Sie, wie Sie einen Arduino-Lecksensor verwenden können. Solche Sensoren werden oft unterschiedlich bezeichnet: Regensensor, Feuchtigkeitssensor, Tropfensensor, Lecksensor. In diesem Fall meinen wir fast immer den gleichen Sensor, meist in Form eines vorgefertigten Moduls. Der Sensor lässt sich leicht an Arduino anschließen, die Skizze für die Arbeit mit solchen Sensoren ist einfach und der Preis ist nicht hoch. Ideal für einfache Projekte auf Arduino Uno, Mega, Nano.

Der Leck- und Regensensor in Arduino-Projekten ermöglicht es Ihnen, das Auftreten von Feuchtigkeitstropfen zu erkennen und rechtzeitig darauf zu reagieren, indem Sie beispielsweise einen Alarm einschalten. Solche Systeme werden in der Agrarindustrie, in der Automobilindustrie und in anderen alltäglichen Bereichen unseres Lebens aktiv eingesetzt. In diesem Artikel betrachten wir die Arbeit mit einem vorgefertigten Modul, das problemlos in jedem spezialisierten Online-Shop erworben werden kann.

Das Sensormodul besteht aus zwei Teilen:

  • „Sensorische“ Tropfenerkennungstafel. Es verfolgt die Menge an Feuchtigkeit, die darauf gelangt. Im Wesentlichen handelt es sich bei dem Sensor um einen einfachen variablen Widerstand, der an verschiedenen Stellen durch Wasser verbunden ist, wodurch sich der Widerstand ändert.
  • Der zweite Teil des Sensors ist ein Doppelkomparator (normalerweise LM393, aber LM293 und LM193 sind mögliche Optionen). Seine Hauptaufgabe besteht darin, den Wert des Sensors in ein analoges Signal von 0 bis 5 Volt umzuwandeln.

Es gibt Sensoroptionen auf dem Markt, bei denen Sensor und Komparator getrennt sind, und solche, die auf einem Panel kombiniert sind.

Der Sensor wird mit einer Spannung von 5 V betrieben, die problemlos von jedem Arduino-Board aus mit Strom versorgt werden kann. Typischerweise verfügt das Sensormodul über zwei Ausgänge:

  • Analog. Der vom Controller empfangene Wert variiert zwischen 0 und 1023. Wobei 0 – alles ist überflutet oder es regnet, der Sensor ist sehr nass, 1023 – trockenes Wetter, der Sensor ist trocken (bei einigen Sensoren gibt es entgegengesetzte Werte, 1023 – Maximum Luftfeuchtigkeit, 0 – maximale Trockenheit).
  • Digital. Erzeugt Hochspannung (5 V) oder Niederspannung, wenn ein bestimmter Schwellenwert überschritten wird. Die Höhe der Ansprechschwelle wird über einen Trimmwiderstand eingestellt.

Anschließen eines Leckage- und Regensensors an Arduino

Um den Sensor mit dem Arduino zu verbinden, benötigen Sie die Platine selbst (UNO, Mega, Nano oder eine andere) und den Sensor selbst. Wenn Sie die Intensität des Niederschlags überprüfen möchten, empfiehlt es sich, den Sensor nicht horizontal, sondern in einem bestimmten Winkel zu positionieren, damit die angesammelten Tropfen nach unten fließen.

Anschlussplan des Leckagesensormoduls an Arduino:

  • VCC (Stromeingang) – muss hinsichtlich Spannung und Strom mit der angeschlossenen Arduino-Schaltung übereinstimmen. Das heißt in diesem Fall 5V;
  • GND – Erdung;
  • AO – Analogausgang;
  • DO – digitaler Ausgang.

Den analogen Ausgang verbinden wir mit dem analogen Pin des Mikrocontrollers, zum Beispiel A1. Der digitale Ausgang ist jeweils mit einem der digitalen Pins verbunden. Die Spannungsversorgung erfolgt über den 5V-Pin des Arduino-Boards, Masse ist mit Masse verbunden.

Beim Anschluss von Leckagesensoren in realen Projekten ist darauf zu achten, dass der elektronische Teil des Moduls vor Feuchtigkeit geschützt wird!

Skizzenbeispiel

#define PIN_ANALOG_RAIN_SENSOR A1 // Analoger Eingang für das Signal des Leckage- und Regensensors #define PIN_DIGITAL_RAIN_SENSOR 5 // Digitaler Eingang für das Signal des Leckage- und Regensensors void setup())( Serial.begin(9600); ) void loop ())( int sensorValue = analogRead (PIN_ANALOG_RAIN_SENSOR); // Daten vom analogen Port lesen Serial.print("Analog value: "); // Den analogen Wert an den Portmonitor ausgeben sensorValue = digitalRead(PIN_DIGITAL_RAIN_SENSOR); port Serial .print("Digitaler Wert: "); Serial.println(sensorValue); // Ausgabe des digitalen Werts an den Port-Monitor-Verzögerung (1000);

In diesem Sketch lesen wir einfach die Werte vom Sensor aus und geben sie an den Portmonitor aus. Führen Sie ein Experiment durch und sehen Sie, wie sich der resultierende Wert ändert, wenn Sie den Sensor mit einer nassen oder trockenen Hand berühren. Befeuchten Sie den Sensor – es begann zu regnen oder es trat ein Leck auf, wischten ihn mit einem trockenen Tuch ab – der Regen hörte auf.

Beispiel eines Regenalarmprojekts

Schauen wir uns ein Beispiel mit einem akustischen Alarm in Form eines angeschlossenen Summers am Digitalausgang D6 an. Bei Bedarf können Sie anstelle eines Alarms ein Relais anschließen und verschiedene Vorgänge ausführen, indem Sie das Netzwerk trennen. Im Sketch übermitteln wir die empfangenen Daten über die UART-Schnittstelle an den Portmonitor.

Skizze für ein Projekt mit Alarmanlage

Nachfolgend finden Sie einen Testcode, der zeitverzögert ein akustisches Signal am oben genannten Digitalausgang 6 aktiviert, um Fehlalarme bei versehentlichem Eindringen von Wasser in den Sensor auszuschließen. Die Arbeit wird über eine Variable implementiert, die jede Sekunde aktualisiert wird und als Schwellenwert fungiert – curCounter. Der Alarm wird aktiviert, wenn der vom Sensor übermittelte Wert unter 300 fällt. Die Verzögerung zwischen der Feuchtigkeitserkennung und dem Tonsignal beträgt etwas mehr als 30 Sekunden.

#define PIN_RAIN_SENSOR A1 // Analoger Eingang für Leckage- und Regensensorsignal #define PIN_ALERT 6 // Digitaler Ausgang für Alarm #define MAX_COUNTER 30 // Schwellenwert für den Zähler #define ALERT_LEVEL 300 // Schwellenwert für den Zähler int curCounter= 0 ; // Zähler zum Sammeln von „Statistiken“, der sich jede Sekunde um 1 erhöht, nachdem der Sensor ausgelöst wurde void setup())( Serial.begin(9600); pinMode(PIN_ALERT, OUTPUT); pinMode(PIN_RAIN_SENSOR, INPUT); // Sie kann die Angabe weglassen, da dies der Standardwert ist) void loop())( int sensorValue = analogRead(PIN_RAIN_SENSOR); Serial.println(sensorValue); // Den Wert an den Port ausgeben monitor delay(300); // kurze Verzögerung / / Wenn wir genügend Gründe für das Auslösen des Alarms gesammelt haben if (curCounter >= MAX_COUNTER)( digitalWrite(PIN_ALERT, HIGH); // Auslösen des Alarms curCounter = MAX_COUNTER; // Schutz vor Variablenüberlauf ) // Bestimmen Sie den Feuchtigkeitsgrad, wenn ( sensorWert< ALERT_LEVEL){ // В очередной раз убедились, что все влажно, увеличиваем счетчик curCounter++; }else { // Интенсивность дождя не превышает порога digitalWrite(PIN_ALERT, LOW); // Выключаем сигнализацию curCounter = 0; // Обнуляем счетчик } delay(1000); // Задержка между измерениями }

Zusammenfassend

Regen- und Leckagesensor kann in Arduino verwendet werden, um Geräte zu erstellen, die auf das Auftreten von Feuchtigkeit in Form von Tröpfchen reagieren. Zu den Vorteilen des betrachteten Moduls zählen seine Einfachheit, Bequemlichkeit und niedrige Kosten. Der Anschluss des Sensors erfolgt ganz einfach – über analoge oder digitale Ausgänge. Um den Wert in der Skizze zu erhalten, verwenden Sie Standardfunktion analogRead (oder digitalRead für einen digitalen Pin). Mithilfe der erhaltenen Werte können Sie einen Alarm oder Ähnliches einschalten externe Geräteüber ein Relais.

In der Reparaturphase wurde der Leckschutz „Akvastorozh“ installiert. Zwei Wasserhähne (heiß, kaltes Wasser) und 4 kabelgebundene Sensoren. Die Aqua Watch verfügt über ein Relais, das ausgelöst wird, wenn Notfall(Aktivierung des Leckagesensors) und es gibt einen RJ45-Anschluss, über den Sie das Öffnen und Schließen von Wasserhähnen steuern und Steuersignale an die entsprechenden Kontakte senden können. Es ist wahrscheinlich möglich, Daten über die UART-Schnittstelle direkt vom Mikrocontroller auszulesen, weil Dieser Anschluss ist auf der Platine vorhanden, aber ich konnte keine Daten lesen. Es ist möglich, dass der Mikrocontroller Daten ausgibt. Sie müssen ihm einen Anforderungsbefehl senden.

Die Integration des Aqua Watchman in ein Smart Home gemäß den Anweisungen des Herstellers ist nicht ganz intelligent, da es keine Möglichkeit gibt, den aktuellen Zustand der Parameter der Steuereinheit herauszufinden, nämlich den Zustand der Batterien, den aktiven Modus, den Sensorausfallmodus usw . Aus diesem Grund wurde beschlossen, eine direkte Verbindung zum Bedienfeld herzustellen, um den Status der LEDs am Bedienfeld abzulesen.

Die erste Version der Integration von Aqua Watchman in ein Smart Home basierte auf Arduino Nano und dem nRF24L01-Modul. Eine solche Integration war wie eine vorübergehende Lösung, aber es gibt nichts Dauerhafteres als eine vorübergehende und in diesem Stadium Ich habe gerade das nRF24L01-Modul durch einen ESP8266 ersetzt und das Arduino verlassen. Geplant ist, den Arduino loszuwerden und eine Platine mit ESP8266 + MCP23017-Port-Expander zusammen mit Optokopplern zu bauen.



Signale, die zu den LEDs gehen, werden mit den analogen Eingängen des Arduino verbunden. Frontplatte(geschlossen, offen, Sensoren deaktiviert, bereit, überflutet, Fehlfunktion, Batterien schwach), LEDs mit den Nummern 1, 2, 3, 4, 5 sind nicht angeschlossen, da nicht genügend analoge Anschlüsse auf dem Arduino vorhanden sind. Dies ist nicht möglich Verbinden Sie sie mit digitalen ohne zusätzliche Lösungen, da die gesamte Elektronik der Aqua Watch mit 2,5 Volt betrieben wird und die Untergrenze der logischen Einheit genau auf diesem Niveau liegt und es nicht möglich war, stabile Daten zu erhalten. Das nächste Mal werde ich Optokoppler einbauen, um die Pegel anzupassen.

Drei Arduino-Ausgänge sind über Widerstände parallel zu den Tasten geschaltet; wenn die Taste gedrückt wird, werden sie mit Masse kurzgeschlossen.

Arduina liest die Zustände der LEDs aus und übermittelt diese alle 2 Sekunden per UART an den ESP8266, der diese Daten ausliest und per MQTT an den Smart-Home-Server übermittelt.


Ich habe den Hochtöner mit Isolierband versiegelt, weil er sehr laut ist.

Anschlussplan des „Aqua Watchman“ an die GSM-Alarmanlage gemäß Herstellerangaben

Das Akvastorozh-System kann an nahezu jedes GSM-Alarmsystem angeschlossen werden.
Der Anschlussplan ist äußerst einfach und besteht aus nur 3 Stromkreisen:
Schaltkreis „In4“ – „GRD“: Der GSM-Alarm empfängt Informationen über die Aktivierung des Aquawatch-Systems auf dem „Zaliv“
Schaltkreise „R1-1“ – „R1-2“ / „R2-1“ – „R2-2“: Übertragung der Befehle des GSM-Alarms zum „Schließen“ / „Öffnen“ der Hähne des „Aquastor“-Systems

Um die Wasserhähne aus der Ferne zu „öffnen“, müssen Sie sie schließen
Stromkreis „R2-1“ - „R2-2“ nicht länger als 2 Sekunden.
Um die Wasserhähne aus der Ferne zu „schließen“, müssen Sie sie schließen
Kette „R1-1“ – „R1-2“ nicht länger als 2 Sekunden lang.

Anschließen des Aquawatch-Systems an das Smart Home gemäß den Anweisungen des Herstellers

Klassisches Steuergerät:

Während „Hochwasser“ schließt/öffnet das „Aquawatch“-System die Kontakte 1-2 / 2-3 des Niederspannungsrelais für 2 Sekunden und versetzt sie dann in ihren ursprünglichen Zustand zurück.
Um die Abzweigungen aus der Ferne zu „öffnen“, müssen Sie die Kontakte 1-6 des RJ-45-Steckers nicht länger als 2 Sekunden schließen.
Um die Abzweigungen aus der Ferne zu „schließen“, müssen Sie die Kontakte 1-5 des RJ-45-Steckers nicht länger als 2 Sekunden schließen.

Steuereinheit „Aquaguard EXPERT“ PRO*:

*Mit dieser Version des Controllers „Akvastorozh Expert“ können Sie Informationen über die Position der Wasserhähne erhalten
„Aqua-Wächter.“

Während „Hochwasser“ schließt/öffnet das „Aquawatch“-System die Kontakte 1-2 / 2-3 des bistabilen Relais und bleibt in diesem Zustand und signalisiert das „Schließen“ der „Aquawatch“-Hähne.
Wenn ein Signal zum „Öffnen“ der Hähne gegeben wird, öffnet/schließt das „Aquawatch“-System die Kontakte 1-2 / 2-3 des bistabilen Relais und signalisiert so das „Öffnen“ der Hähne
„Aqua-Wächter.“

Jumper Nr. 4 auf der Expert PRO-Controllerplatine eingesteckt diese Option muss getragen werden!

Ein Beispiel für die Visualisierung des Aqua Watchman-Bedienfelds auf der Homepage.

Die Verzögerungen sind rein softwarebedingt und können durch ein wenig Umschreiben des Codes beseitigt werden.