Inhaltsverzeichnis:

DIY - Automatisierte Gartenbewässerung - (Arduino / IOT) - Gunook
DIY - Automatisierte Gartenbewässerung - (Arduino / IOT) - Gunook

Video: DIY - Automatisierte Gartenbewässerung - (Arduino / IOT) - Gunook

Video: DIY - Automatisierte Gartenbewässerung - (Arduino / IOT) - Gunook
Video: Anleitung automatische Pflanzen BEWÄSSERUNG & DATALOGGING Arduino uno (DIY selber nachbauen) + Code! 2024, Juli
Anonim
DIY - Automatisierte Gartenbewässerung - (Arduino / IOT)
DIY - Automatisierte Gartenbewässerung - (Arduino / IOT)
DIY - Automatisierte Gartenbewässerung - (Arduino / IOT)
DIY - Automatisierte Gartenbewässerung - (Arduino / IOT)
DIY - Automatisierte Gartenbewässerung - (Arduino / IOT)
DIY - Automatisierte Gartenbewässerung - (Arduino / IOT)

Dieses Projekt zeigt Ihnen, wie Sie eine Bewässerungssteuerung für einen Hausgarten bauen. Kann Bodenfeuchtigkeitswerte messen und die Bewässerung über einen Gartenhahn aktivieren, wenn der Boden zu trocken wird. Der Controller enthält auch einen Temperatur- und Feuchtigkeitssensor. Der Controller aktiviert den Gartenhahn nicht, wenn die Temperatur zu niedrig ist. Sensormesswerte und Statistiken über Wasserverbrauch / Laufzeiten werden auf ThingsBoard IOT zur Visualisierung und Analyse aufgezeichnet. Warnungen und E-Mails werden ausgelöst, wenn die Bewässerungssteuerung keine Daten mehr sendet, der Boden zu trocken oder zu gesättigt ist.

Voraussetzungen

  • Arduino-Kenntnisse einschließlich mindestens grundlegender Codierung für Arduino und Löten.
  • 1x Gartenhahn unter Druck

Stückliste

  • Gartenbewässerung Polyrohr, Düsen, Tropfer usw.
  • Elektronischer Wasserhahn-Timer mit zwei Zifferblättern (z. B.: Aqua Systems Electronic Digital Tap Timer)
  • Zapfdruckminderer 300kpa
  • Arduino Uno
  • Lora Arduino Schild
  • Lora Gateway (Nicht erforderlich, wenn Sie ein lokales Things Network Gateway in Reichweite haben)
  • DHT11 Temperatur-Feuchte-Sensor
  • 5V Relais
  • Telefonkabel
  • Kabelbinder
  • Geteilte Wellrohre für die Automobilindustrie
  • Kfz-Anschlussleisten
  • 2x verzinkte Nägel
  • 1x Widerstand
  • Silizium / Dichtungsmasse
  • PVC-Zement
  • PVC-Grundierung
  • PVC-Rohr 32 mm Breite x 60 mm Länge
  • PVC-Rohr 90mm Breite x 30cm Länge
  • 3x PVC Push Endkappen 90mm
  • 1x PVC-Schraubendkappe 90mm
  • 1x PVC Gewindeeinsatz Fitting 90mm
  • 1x PVC Push Endkappen 32mm
  • 1x 3,2V Stromquelle (Tap-Timer) [Batterien, AC Multivolt Adapter]
  • 1x 6-12V Stromquelle (arduino) [Batterien, USB, USB zu AC Adapter]
  • Gewindedichtband
  • Isolierband

Schritt 1: Gartenbewässerung installieren

Gartenbewässerung installieren
Gartenbewässerung installieren
Gartenbewässerung installieren
Gartenbewässerung installieren

Polyrohr verlegen, Düsen, Tropfleitungen und Tropfer montieren. Die Bewässerungssteuerung funktioniert mit jeder Bewässerungsausrüstung. Im Kern misst es die Bodenfeuchte und aktiviert den Tap-Timer, wenn der Boden zu trocken ist. Der Controller kann kalibriert werden, um den Tiefpunkt für die Sättigung einzustellen, wie lange der Tap-Timer eingeschaltet sein soll und wie oft der Controller die Sättigung überprüfen soll.

Diese Einstellungen können auf dem Arduino geändert und im EPROM-Speicher gespeichert werden. Die Einstellungen können auch durch die IOT-Integration aktualisiert werden. Bei diesem Projekt wird der Controller alle vier Stunden ausgeführt und der Wasserhahn 3 Minuten lang geöffnet, wenn der Boden zu trocken ist. Es kann ein paar Mal hintereinander laufen, wenn es trocken / heiß ist, oder ein- oder zweimal am Tag.

Schritt 2: Tap-Timer anpassen

Tap-Timer anpassen
Tap-Timer anpassen

Bringen Sie den Wasserhahn-Timer an und experimentieren Sie mit den einstellbaren Einstellrädern, um eine ungefähre Frequenz und Laufzeit zu ermitteln, die für Ihre Bewässerungsanlage am besten geeignet sind. Wir werden den Timer entfernen und ihn so ändern, dass er mit einem Arduino funktioniert.

Schritt 3: Arduino-Build

Arduino-Build
Arduino-Build
Arduino-Build
Arduino-Build
Arduino-Build
Arduino-Build
Arduino-Build
Arduino-Build

Verwenden Sie den Schaltplan als Leitfaden für den Aufbau. Auf den Fotos wurden Telefonkabelverdrahtungen und Schraubklemmleisten für Anschlusspunkte verwendet. Etwas Löten ist erforderlich.

Tippen Sie auf Timer-Modifikation

Nehmen Sie den Tap-Timer vorsichtig auseinander. Wir werden die beiden einstellbaren Zifferblätter fest verdrahten, damit sie vom Arduino anstelle der manuellen Zifferblätter gesteuert werden können. Der linke Frequenzregler ist fest mit der Reset-Position verdrahtet, so dass der rechte Regler zwischen der Ein-/Aus-Position umgeschaltet werden kann. Das rechte Zifferblatt hat einen Draht, der vom mittleren rechten Kontakt und dem äußeren rechten Kontakt kommt, wie gezeigt. Standardmäßig befindet sich der Timer in der Aus-Position. Wenn die beiden Drähte in Kontakt kommen, schaltet sich der Timer ein. Wenn die beiden Drähte an ein 5V-Relais angeschlossen sind, kann ein Arduino dann den Kontakt zwischen den beiden Drähten schließen / öffnen. Mit einem Draht in der gemeinsamen Relaisklemme und dem anderen in der normalerweise geschlossenen Klemme stellen wir sicher, dass der Timer ausgeschaltet wird, wenn das Arduino ausgeschaltet wird. Wenn Sie den Relaisstift auf HIGH setzen, wird der Timer eingeschaltet; Wenn Sie ihn auf LOW setzen, wird der Timer ausgeschaltet.

Bodensonde

Für dieses Projekt werden die beiden Nägel an einen Draht gelötet, der mit Schraubklemmen verbunden ist. Das Terminal eines Nagels geht direkt auf Masse. Der andere ist mit einem analogen Eingang im Arduino und einem Widerstand verbunden. Der Widerstand ist mit dem Arduino 5V-Signal verbunden. Im Wringdiagramm dargestellt.

Temperatur-/Feuchtigkeitssensor

Der DHT11 Temp / Humidity Sensor ist mit den 5V des Arduino, Masse und einem digitalen Pin des Arduino verdrahtet.

Lora-Schild

Dieses Projekt verwendete auch ein Dragino Lora Shield (nicht im Schaltplan gezeigt).

PVC-Basis

Die PVC-Basis für das in diesem Projekt verwendete Arduino wurde so konzipiert, dass der Temperatur- / Feuchtigkeitssensor freigelegt werden kann, während alle anderen Komponenten im wasserdichten PVC-Gehäuse gesichert bleiben. Ein kleines Loch wird für den Sensor gebohrt / geschnitten und Silikon wird verwendet, um ihn an Ort und Stelle zu halten, während Feuchtigkeit daran gehindert wird, das Arduino zu erreichen. Im Diagramm dargestellt.

Schritt 4: Arduino-Programmierung

Arduino-Programmierung
Arduino-Programmierung

Verbinden Sie die Komponenten über ein Steckbrett oder Klemmleisten zum Programmieren und Testen

EPROM-Konfiguration

Zuerst müssen wir Konfigurationsvariablen in den EPROM-Speicher schreiben. Führen Sie den folgenden Code auf Ihrem Arduino aus:

Code auf Github verfügbar

Hier wird der DRY_VALUE auf 960 gesetzt. 1024 bedeutet, dass der Boden vollständig trocken ist, 0 bedeutet vollständige Sättigung, 960 war ein guter Sättigungswert für den verwendeten Widerstand, die Kabellänge und die verwendeten Nägel. Dies kann je nach Ihrer eigenen Konfiguration variieren.

VALVE_OPEN ist auf 180000 Millisekunden (3 Minuten) eingestellt. Wenn/wenn der Tap-Timer eingeschaltet ist, bleibt er 3 Minuten lang geöffnet.

RUN_INTERVAL ist auf 14400000 Millisekunden (4 Stunden) eingestellt. Dies bedeutet, dass die Steuerung alle vier Stunden die Bodenfeuchtigkeit überprüft und den Tap-Timer für 3 Minuten einschaltet, wenn die Sättigung niedrig ist (größer als 960).

Der obige Code kann jederzeit geändert und diese Werte geändert werden.

Programmcode

Code auf Github verfügbar

Abhängigkeiten:

  • Zeitgesteuerte Aktion
  • Funkkopf

In diesem Beispiel wurde das Dragino Lora-Schild und insbesondere das gleichzeitige Lora-Beispiel verwendet, bei dem der Schild direkt mit dem Dragino Lora-Gateway verbunden ist.

Dies kann für die Verwendung des Things Network angepasst werden, indem der Code im Abschnitt "BEGIN: lora vars" entfernt und das Programm geändert wird, um das folgende Dragino-Beispiel aufzunehmen oder um mit anderen Radios/Wifi-Schilden usw. zu arbeiten.

Der mitgelieferte Code geht davon aus, dass DHT11_PIN der digitale Pin 4 ist, der RELAY_PIN der digitale Pin 3 und der analoge Bodenfeuchte-Pin der analoge Eingang 0 ist.

Eine Debug-Variable kann auf true gesetzt werden, damit serielle Debug-Meldungen mit Baudrate 9600 protokolliert werden können.

Schritt 5: Gehäusebau

Gehäusebau
Gehäusebau

Schneiden Sie das PVC-Rohr so, dass es dem Tap-Timer und der Arduino-Basis entspricht. Bohren Sie Löcher für die Wasserhahnarmatur und die Schlaucharmatur. Bohren Sie Löcher in das Rohr, die breit genug für die Kfz-Leitung sind, schieben Sie 10 cm lange Leitungen der Leitung in die Löcher und ziehen Sie die Drähte aus dem Arduino und tippen Sie auf den Timer. Dies sollte beinhalten:

Vom Arduino

  • Stromversorgungskabel und / oder ein USB-Kabel vom USB-Anschluss des Arduino.
  • Erdfeuchtekabel (VCC, GND, A0)
  • Zwei Drähte von den NC- und gemeinsamen Schraubklemmen des Relais

Vom Tap-Timer

  • Stromversorgungskabel
  • Zwei Drähte von den rechten Wählkontakten

Schritt 6: Controller vor dem Kleben testen

Controller vor dem Kleben testen
Controller vor dem Kleben testen
Controller vor dem Kleben testen
Controller vor dem Kleben testen

Stellen Sie sicher, dass alles noch funktioniert, bevor Sie alles versiegeln.

Die Fotos oben zeigen einen Beispielaufbau in einem Esky, bei dem die Bodenfeuchtigkeitssonde in einen Topf gelegt und die Zapfuhr mit Wasser aus einer Softdrinkflasche ausgestattet wurde.

Ein Tropfer wurde an den Hahn-Timer angebracht.

Dies war eine gute Möglichkeit, um zu testen, ob das Setup die Pflanze nicht über- oder unterwasserte.

Dieses Beispiel kann so lange ausgeführt werden, wie es zum Kalibrieren des Controllers erforderlich ist.

Schritt 7: Kleber / wasserdichte Gehäuse

Kleber / wasserdichte Gehäuse
Kleber / wasserdichte Gehäuse

Verwenden Sie PVC-Primer und PVC-Zement, um die Endkappen und die Kupplung zu sichern.

Verwenden Sie Dichtungsmasse/Silizium, um alle Lücken um das automatische Kabelrohr und die Armaturen der Zeitschaltuhr zu füllen.

Hier wird für die Zugänglichkeit eine Schraubendkappe am Arduino-Gehäuse verwendet.

Schritt 8: Installieren

Installieren
Installieren
Installieren
Installieren
Installieren
Installieren

An einem klaren Tag installieren. Die Komponenten und Drähte müssen trocken bleiben, bevor sie versiegelt werden.

Platzieren Sie den Controller irgendwo in der Mitte zwischen dem Ort, an dem sich der Gartenhahn befindet, und dem Ort, an dem die Bodensonde platziert wird.

Bringen Sie den Tap-Timer an und stellen Sie sicher, dass er nicht mit Strom versorgt wird, bis die Installation abgeschlossen ist.

Bringen Sie die Bodensonde an.

Bringen Sie die Klemmenleisten an jeder Komponente an und verlegen Sie dann das Telefonkabel von den Schraubklemmen jeder Komponente und stellen Sie sicher, dass das Kabel mit einem automatischen Kabelkanal bedeckt ist. Alles miteinander verbinden

Dichten Sie alle Anschlüsse und alle anderen freiliegenden Teile mit Gewindedichtband und dann mit Isolierband ab.

Dichten Sie alle losen/freiliegenden Bereiche des geteilten Kabelkanals mit Gewindedichtband und dann mit Isolierband ab.

Schließen Sie den Timer an eine 3,2 V Stromquelle an. Entweder an einen Akku oder an einen 3,2 V DC - AC Adapter, der an eine Netzsteckdose angeschlossen wird.

Verbinden Sie das Arduino mit einer 6-12V DC-Stromquelle. Entweder ein Akkupack oder ein USB / DC-AC-Adapter, der an eine Netzsteckdose angeschlossen wird.

Einschalten und testen!

Schritt 9: ThingsBoard-Integration - Überwachung und Berichterstattung

ThingsBoard-Integration - Überwachung und Berichterstattung
ThingsBoard-Integration - Überwachung und Berichterstattung

In diesem Beispiel wurde ein Dragino Lora-Schild verwendet, das mit einem Dragino Lora-Gateway verbunden ist. Unabhängig davon, ob Sie dieses Setup, ein anderes Lora-Setup oder eine andere IOT-Konnektivität verwenden, können die von der Bewässerungssteuerung gesammelten Daten an eine IOT-Plattform wie Thingsboard weitergeleitet werden. Standardmäßig überträgt das Programm den folgenden Datenstring, wobei jedes Zeichenbyte hex-codiert ist:

TXXXHXXXSXXXXRX

Auf T folgt die Temperatur, auf H folgt die Luftfeuchtigkeit, auf S folgt der Sättigungsgrad und auf R eine einzelne Ziffer, die sich darauf bezieht, welche Aktion beim letzten Laufintervall ausgeführt wurde. Dies kann entweder 0-5 sein, wobei jede Ziffer bedeutet:

0: Das Programm wird initialisiert1: Temperatursensorfehler2: Temperatur war zu niedrig für den Betrieb3: Bodenfeuchtigkeit zu trocken, daher wurde der Tap-Timer aktiviert4: Bodenfeuchtigkeit fein, sodass der Tap-Timer nicht aktiviert wurde5: Die Bewässerungssteuerung wurde deaktiviert

Es gibt mehrere Möglichkeiten, eine Kopie von Thingsboard auf Ihrem eigenen Gerät zu installieren, oder Sie können hier ein kostenloses Konto auf unserer ThingsBoard-Installation einrichten.

Richten Sie Ihr Gerät in Thingsboard ein

Befolgen Sie diese Anweisungen, um ein neues Gerät in Thingsboard hinzuzufügen, das als "Bewässerungscontroller" bezeichnet wird.

Telemetriedaten vom Gerät übertragen

Befolgen Sie diese Anweisungen, um eine Methode zum Pushen von Telemetriedaten vom Gerät an Thingboard über MQTT, HTTP oder CoAp einzurichten.

Auf unserem Server pushen wir alle vier Stunden den folgenden JSON auf https://thingsboard.meansofproduction.tech/api/v1/…, wenn das Gerät läuft (mit Live-Daten):

Außerdem schieben wir die folgenden Attribute regelmäßig an https://thingsboard.meansofproduction.tech/api/v1/… mit Daten darüber, wann der Knoten zuletzt gesehen wurde:

Dies wird für Warnungen verwendet, die ausgelöst werden, wenn das Gerät aufhört, Daten zu übertragen.

Erstellen Sie ein Dashboard

Erstellen Sie ein Dashboard wie hier beschrieben. Unsere Widgets umfassen:

Ein einfaches Karten-Widget, das aus dem Telemetriefeld lastRunResult erstellt wurde. Ein vertikales digitales Messgerät für das Temperaturtelemetriefeld. Eine aus dem Telemetriefeld lastRunResult erstellte Zeitreihentabelle mit den Daten der letzten Tage. Dabei wird eine Datennachbearbeitungsfunktion verwendet:

1024-Wert zurückgeben;

Und setzt einen minimalen und maximalen Wert von 0-100. Auf diese Weise kann der Sättigungsgrad als Prozentsatz ausgedrückt werden. Ein Messgerät zur Anzeige des Feuchtigkeitswerts. Ein Zeitreihen-Balkendiagramm mit Temperatur, Feuchtigkeit und Laufergebnis, gruppiert in 5-Stunden-Perioden für die letzte Woche, aggregiert, um Maximalwerte anzuzeigen. Dies gibt uns eine Bar für eine vierstündige Laufveranstaltung. Eine Datennachverarbeitungsfunktion wird verwendet, um das Laufergebnis entweder als 0 oder 120 auszudrücken, je nachdem, ob Wasser gelaufen ist oder nicht. Dies gibt ein einfaches visuelles Feedback, um zu sehen, wie oft in einer Woche Wasser fließt. Eine statische HTML-Karte, die ein Bild des Gartens zeigt.

E-Mail-Benachrichtigungen

Wir haben Regeln verwendet, um E-Mail-Benachrichtigungen für die Bewässerungssteuerung einzurichten. Alle verwenden Nachrichtenfilter und eine Aktions-Plug-in-Aktion zum Senden von E-Mails.

Um eine E-Mail-Benachrichtigung zu senden, wenn die Bewässerungssteuerung keine Daten sendet, haben wir den 'Geräteattribute-Filter' mit dem folgenden Filter verwendet:

typeof cs.secondsSinceLastSeen !== 'undefiniert' && cs.secondsSinceLastSeen > 21600

Um eine E-Mail zu senden, wenn der Boden zu trocken wird, verwenden Sie den folgenden Telemetriefilter

Sättigungstyp != "undefiniert" && Sättigung > 1010

Um eine E-Mail zu senden, wenn der Boden zu feucht wird, verwenden Sie den folgenden Telemetriefilter

Sättigungstyp != "undefiniert" && Sättigung

Empfohlen: