Inhaltsverzeichnis:

Autonomes Pflanzenbewässerungssystem - Gunook
Autonomes Pflanzenbewässerungssystem - Gunook

Video: Autonomes Pflanzenbewässerungssystem - Gunook

Video: Autonomes Pflanzenbewässerungssystem - Gunook
Video: Anleitung für AUTOMATISCHE Pflanzen BEWÄSSERUNG Arduino ESP 8266 (Tutorial DIY selber bauen) + Code! 2024, November
Anonim
Autonomes Pflanzenbewässerungssystem
Autonomes Pflanzenbewässerungssystem
Autonomes Pflanzenbewässerungssystem
Autonomes Pflanzenbewässerungssystem
Autonomes Pflanzenbewässerungssystem
Autonomes Pflanzenbewässerungssystem

Dieses Projekt präsentiert ein intelligentes autonomes Pflanzenbewässerungssystem. Das System ist energieautark mit einer 12-V-Batterie und einem Solarpanel und bewässert die Anlage, wenn die richtigen Bedingungen eingestellt sind, mit einem gut durchdachten (hoffentlich) ausfallsicheren System. Es ist intelligent, weil es über die Telegram-App mit dem/den Benutzer(n) kommuniziert.

Die vom System befolgten Schritte sind wie folgt:

  • der Bodenwassergehalt wird immer überwacht;
  • Wenn der Bodenwassergehalt unter einem bestimmten Wert (max_soil_moisture) liegt, wird das System:

    • (?) überprüft, ob der Wassertank (und während) des Bewässerungsvorgangs nicht leer ist, um Schäden am Trockenlauf der Pumpe zu vermeiden;
    • (?) prüft, ob die Mindestbewässerungszeit zwischen zwei Beregnungsereignissen überschritten wird. Dies geschieht, um die Pflanzen während des Tages nicht zu oft zu gießen (am besten irgendwann etwas trocken sein) und um eine gewisse Sicherheit für den Fall zu geben, dass der Bodenfeuchtigkeitssensor kaputt ist;
    • (?) Starten Sie die Bewässerung;
    • stoppt die Bewässerung, wenn:

      • (?) der Bodenwassergehalt einen bestimmten Wert erreicht (max_soil_moisture) oder;
      • (?) der Wassertank ist leer, in diesem Fall wird die Bewässerung fortgesetzt, sobald er wieder gefüllt ist, oder;
      • (?) die Bewässerungsdauer überschreitet die maximal zulässige Dauer für jedes Bewässerungsereignis (watering_max_time). Ziel ist es hier zu vermeiden, dass die Pumpe läuft, bis der Wassertank leer ist, wenn eine Undichtigkeit im System vorliegt, die eine Erhöhung der Bodenfeuchtigkeit verhindern würde;
  • (?) prüft, ob die Pflanzen mindestens in jedem bestimmten Zeitraum (max_wo_water) bewässert werden, um zu verhindern, dass sie absterben, wenn z. B. der Bodenfeuchtesensor ist defekt und liefert immer hohe Werte;

Der Benutzer wird bei jedem wichtigen Schritt (gekennzeichnet ?) durch Telegrammnachrichten benachrichtigt. Der Benutzer kann auch manuell ein Bewässerungsereignis aus Telegram auslösen, selbst wenn der Bodenwassergehalt höher als der angegebene Wert (max_soil_moisture) ist. Es ist auch möglich, das gesamte System ein- und auszuschalten, abzufragen, ob das System in Betrieb ist, oder den aktuellen Wert des Bodenwassergehalts abzufragen (siehe Telegramm-Schnappschuss).

Lieferungen

Material

Hier ist eine Liste der Produkte, die zum Aufbau des Systems verwendet wurden. Ich muss sagen, dass ich keine Anreize von Amazon erhalte, bei denen alle Produkte gekauft wurden.

So steuern Sie das System:

  • NodeMCU-Board (ESP8266) für das Gehirn, 17,99€
  • Relaismodul, 11,99€
  • 120 Prototyping-Überbrückungsdrähte, 6,99€ -> Prototyping
  • 3 Steckbretter, 8,99€ -> Prototyping
  • Wasserdichte Box, 10,99€
  • 525 Stück Widerstände Kit, 10,99€
  • Bedruckte Platine mit Anschlüssen ähnlich einem Steckbrett, 9,27€
  • Elektrische Litzen 20, 22 oder 24 AWG je nach Vorliebe (20 ist fester, muss aber für einige Verbindungen reduziert werden, 22 ist gut, 24 ist billiger), 18,99€

Für die Energieautonomie:

  • 12V Batterie, 21,90€
  • 10W wp 12V monokristallines Solarpanel, 23,90€
  • 12/24V Laderegler, 13,99€

Für den Wassertank:

  • 12V Wasserpumpe, 16,99€
  • DC Stecker/Buchse (zum Anschluss der Pumpe), 6,99€

Die Sensoren:

  • Wasserstandsschwimmer, 7,99€
  • Kapazitiver Bodenfeuchtesensor, 9,49€
  • etwas Nagellack zum Imprägnieren des Bodenfeuchtesensors, 7,99€;

Und das Bewässerungssystem:

Bewässerungssystem, 22.97€

Für insgesamt 237,40€. Das ist nicht billig! Aber denken Sie daran, dass es immer noch billiger ist als ein vorgefertigtes System und mit viel mehr Funktionen! Außerdem sind einige Teile nur für den Prototypenbau (15,98€) und ich habe viele Komponenten in mehreren Stücken für andere Projekte gekauft, z. B. 525 Widerstände sind eine verrückte Menge, Sie benötigen für dieses Projekt weder 3 NodeMCU-Boards noch 6 Relais.

Schritt 1: Code

Um dieses Projekt zu reproduzieren, benötigen Sie einige Tools, etwas Material und den Code aus diesem Projekt.

Code

Um den Code aus diesem Projekt zu erhalten, klonen Sie ihn entweder (oder besser, fork it) aus dem Github-Repository mit GIT..

Dann konfigurieren Sie es nach Ihren Bedürfnissen!

Um Telegram zu verwenden, muss die NodeMCU mit dem Internet verbunden sein. Ich habe es mit seinem WIFI-Modul und meinem Heim-WIFI gemacht. Um Ihre eigene Verbindung zu konfigurieren, öffnen Sie das Skript plant_watering.ino in der Arduino IDE und geben Sie die fehlenden Werte für Ihre WLAN-Anmeldeinformationen ein (ich gehe davon aus, dass Sie WLAN haben):

Zeichenfolge ssid = "xxxxx"; // Name Ihres Wifi String pass = "xxxxx"; // WLAN Passwort

Dann richten wir einen Telegram-Bot ein, bei dem es sich um ein Benutzerkonto handelt, das Ihnen ähnlich ist, aber tatsächlich von einem Roboter (Ihrer NodeMCU) ausgeführt wird. Befolgen Sie dazu die hier beschriebenen Schritte. In wenigen Worten:

  • Öffnen Sie Telegram (und verbinden Sie sich mit Ihrem Konto);
  • Erstellen Sie einen neuen Bot:

    • Suchen Sie BotFather in Ihren Kontakten (geben Sie es in die Suchleiste ein) und öffnen Sie eine Unterhaltung damit (wie Sie es mit jedem neuen Kontakt tun würden);
    • Geben Sie /newbot in die Konversation ein (achten Sie auf den Fall und fügen Sie das /!)
    • Benennen Sie Ihren Bot wie Sie möchten, aber beenden Sie ihn mit "bot" (z. B. "watering_balcony_bot");
    • Botfather gibt Ihnen einen Bot-Token, halten Sie ihn sehr geheim (geben Sie ihn nicht mit GIT weiter!!), wir werden ihn in wenigen Schritten verwenden;
    • Suchen Sie es in Ihren Kontakten und senden Sie ihm diese Nachricht: /start
    • Kopieren Sie das von Botfather zurückgegebene Token und fügen Sie es hier in Ihr plant_watering.ino-Skript ein:

      Zeichenfolgentoken = "xxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxx"; // Telegramm-Bot-Token

Ihr Bot lebt jetzt!

Damit es mit Ihnen kommunizieren kann, muss es Ihre Konversations-ID kennen. Da wir für den Fall, dass wir in den Urlaub fahren, mit anderen teilen möchten, was der Bot sagt, ziehe ich es vor, stattdessen einen Gruppenchat zu erstellen. Erstellen Sie also eine (Neue Gruppe), fügen Sie Ihren Bot hinzu, indem Sie seinen Namen suchen, und fügen Sie vorübergehend einen dritten Bot namens IDBot hinzu. Benennen Sie dann Ihren Gruppenchat nach Belieben. Öffnen Sie Ihren Gruppenchat und geben Sie /getgroupid ein. IDBot gibt eine Zahl wie -xxxxxxxxx zurück (vergessen Sie das Minus beim Kopieren nicht!), das ist Ihre Gruppenchat-ID!

Sie können /getid auch bitten, Ihre persönliche ID zu erhalten, sodass Ihr Bot stattdessen Nachrichten direkt an Sie sendet (nicht an die Gruppe).

Kopieren Sie die ID und fügen Sie sie hier in Ihr plant_watering.ino-Skript ein:

int chatID = -00000000; // Dies ist die ID Ihres Gruppenchats Fügen Sie stattdessen /getid hier ein, wenn Sie möchten, dass der Bot Nachrichten direkt an Sie sendet

Entfernen Sie dann IDBot für alle Fälle aus Ihrer Gruppe (wir möchten nicht, dass Daten durchgesickert sind).

Für den letzten Schritt müssen Sie die CTBot- und ArduinoJson-Bibliotheken installieren. Geben Sie dazu Strg+Maj+I ein, suchen Sie nach CTBot und suchen Sie nach CTBot von Stefano Ledda und klicken Sie auf Installieren. Wiederholen Sie dann für ArduinoJson und suchen Sie nach ArduinoJson von Benoit Blanchon, aber installieren Sie vorerst die Version 5.13.5, da CTBot noch nicht mit der sechsten Version kompatibel ist (Sie können hier überprüfen, ob es Änderungen gibt).

Und das war's, Ihr Code ist fertig! Jetzt können Sie es auf die NodeMCU hochladen! Wenn Fehler auftreten, überprüfen Sie, ob Sie NodeMCU 1.0 als Kartentyp ausgewählt haben und die richtige Version für Ihre Bibliotheken verwenden.

Schritt 2: Werkzeuge

Werkzeuge

Die Tools sind sehr einfach, ich habe für dieses Projekt verwendet:

  • Ein Lötkolben + Zinn (z. B. 220V 60W);
  • Ein Multimeter (mein ist ein TackLife DM01M);
  • Ein flacher Schraubendreher (klein ist besser);
  • Schneidezangen;

Wenn Sie sie haben, können Sie auch einige Abisolierzangen hinzufügen, aber sie sind nicht unverzichtbar.

Schritt 3: Montage

Montage
Montage

Sie finden den Zusammenbau der Teile mit Fritzing, um das Fritzing-Projekt im Github-Repository zu öffnen.

Hinweis: Die NodeMCU ist über ein USB-Kabel mit dem Solarladeregler verbunden (das im Schaltplan hat keins). Ein Beispiel für einen Solarladeregler mit USB finden Sie im Abschnitt Material.

Ich habe alle Custom Parts im Fritzing-Ordner aus dem Github-Projekt zur Verfügung gestellt (alle sind im Internet zu finden, außer dem Wasserschwimmer, weil ich ihn gemacht habe).

Schritt 4: Danksagungen

Ich möchte meinem wunderbaren Partner danken, der mich dies an den Wochenenden tun ließ! Und natürlich alle Macher, die das Projekt möglich gemacht haben, wie @shurillu für die super CTBot-Bibliothek, EstebanP27 für sein Tutorial, aus dem ich viel für dieses Projekt gelernt habe! Danken möchte ich auch svgrepo, von dem ich SVGs als Basis für das Logo verwendet habe.