Inhaltsverzeichnis:

IoT APIS V2 - Autonomes IoT-fähiges automatisiertes Pflanzenbewässerungssystem - Gunook
IoT APIS V2 - Autonomes IoT-fähiges automatisiertes Pflanzenbewässerungssystem - Gunook

Video: IoT APIS V2 - Autonomes IoT-fähiges automatisiertes Pflanzenbewässerungssystem - Gunook

Video: IoT APIS V2 - Autonomes IoT-fähiges automatisiertes Pflanzenbewässerungssystem - Gunook
Video: 30 удивительных изобретений автомобилей, которые вам обязательно понадобятся | Дизайн автомобиля 2024, Juli
Anonim
IoT APIS V2 - Autonomes IoT-fähiges automatisiertes Pflanzenbewässerungssystem
IoT APIS V2 - Autonomes IoT-fähiges automatisiertes Pflanzenbewässerungssystem
IoT APIS V2 - Autonomes IoT-fähiges automatisiertes Pflanzenbewässerungssystem
IoT APIS V2 - Autonomes IoT-fähiges automatisiertes Pflanzenbewässerungssystem

Dieses Projekt ist eine Weiterentwicklung meiner vorherigen instructable: APIS - Automated Plant Irrigation System

Ich benutze APIS jetzt seit fast einem Jahr und wollte das vorherige Design verbessern:

  1. Möglichkeit, die Anlage aus der Ferne zu überwachen. So wurde dieses Projekt IoT-fähig.
  2. Einfach zu ersetzender Bodenfeuchtefühler. Ich habe drei verschiedene Designs des Feuchtigkeitssensors durchgemacht, und egal welches Material ich verwendet habe, es ist früher oder später erodiert. So sollte das neue Design möglichst lange halten und sich schnell und einfach austauschen lassen.
  3. Wasserstand im Eimer. Ich wollte wissen, wie viel Wasser noch im Eimer vorhanden ist und aufhören zu gießen, wenn der Eimer leer ist.
  4. Besseres Aussehen. Eine graue Projektbox war ein guter Anfang, aber ich wollte etwas schaffen, das etwas besser aussah. Sie werden der Richter sein, ob ich dieses Ziel erreichen konnte…
  5. Autonomie. Ich wollte, dass das neue System in Bezug auf Leistung und/oder Verfügbarkeit des Internets autonom ist.

Das resultierende Projekt ist nicht weniger konfigurierbar als sein Vorgänger und verfügt über zusätzliche nützliche Funktionen.

Ich wollte auch meinen neu erworbenen 3D-Drucker nutzen, daher müssen einige Teile gedruckt werden.

Schritt 1: Hardware

Hardware
Hardware
Hardware
Hardware

Sie benötigen die folgenden Komponenten, um IoT APIS v2 zu erstellen:

  1. NodeMcu Lua ESP8266 ESP-12E WIFI-Entwicklungsboard - auf banggood.com
  2. SODIAL(R) 3-Pin-Ultraschallsensor-Abstandsmessmodul, Dual-Transducer, Drei-Pin-on-Board - auf amazon.com
  3. DC 3V-6V 5V Kleine Tauchwasserpumpe Aquarium Pumpe - bei ebay.com
  4. Dreifarbige LED - auf amazon.com
  5. Vero-Board - auf amazon.com
  6. PN2222-Transistor - auf amazon.com
  7. Schrauben, Bolzen und Muttern aus Kunststoff
  8. Lötgeräte und Zubehör
  9. Drähte, Widerstände, Stiftleisten und andere verschiedene elektronische Komponenten
  10. Leeres Tropicana OJ 2.78 QT-Glas
  11. 2 verzinkte Nägel

Schritt 2: Gesamtdesign

Gesamtkonzept
Gesamtkonzept
Gesamtkonzept
Gesamtkonzept

Das Gesamtdesign besteht aus folgenden Komponenten: 1. Bodenfeuchtesonde und Pflanzenbewässerungsgehäuse (kombiniert - 3d gedruckt)2. Schläuche und Verdrahtung3. Behälterwasserlecksensor (3d gedruckt)4. Steuermodul, das oben auf dem OJ-Glas montiert ist (in der 3D-gedruckten Hülle platziert und eingeschlossen)5. Tauchwasserpumpe6. NodeMCU-Skizze7. IoT-Konfiguration8. Stromversorgung: USB über Steckdose -ODER- Solarpanel (autonomer Modus)Besprechen wir jede Komponente einzeln

Schritt 3: Tauchwasserpumpe

Tauchwasserpumpe
Tauchwasserpumpe
Tauchwasserpumpe
Tauchwasserpumpe

Die Tauchwasserpumpe befindet sich unter dem Griff des OJ-Behälters (um eine Störung der Wasserstandsmessung zu vermeiden). Die Pumpe wird so platziert, dass sie etwa 2-3 mm über dem Boden des Gefäßes "schwebt", um freien Wasserfluss zum Einlass zu ermöglichen.

Da die Pumpe für den normalen Betrieb vollständig untergetaucht sein sollte, sollte der minimale Wasserstand im Gefäß etwa 3 cm (etwa 1 Zoll) betragen.

Schritt 4: Steuermodul oben auf dem OJ Jar montiert

Steuermodul auf der Oberseite des OJ Jar montiert
Steuermodul auf der Oberseite des OJ Jar montiert
Steuermodul auf der Oberseite des OJ Jar montiert
Steuermodul auf der Oberseite des OJ Jar montiert
Steuermodul auf der Oberseite des OJ Jar montiert
Steuermodul auf der Oberseite des OJ Jar montiert

Ich habe ein großes Tropicana OJ-Standardglas als Wasserbehälter gewählt. Diese sind weit verbreitet und Standard.

Das Steuermodul wird nach dem Entfernen des Originalhahns auf den Behälter gelegt.

Die Plattform, auf der sich das Steuermodul befindet, ist 3D-gedruckt. Die STL-Datei wird in den Abschnitten Dateien und Skizzen dieser Anleitung bereitgestellt.

Pumpe, Schläuche und Kabel werden durch den Griff des Tropicana-Behälters geführt, um Platz für die Wasserstandsmessung zu schaffen.

Der Wasserstand wird durch den Ultraschall-Abstandssensor gemessen, der in die Steuermodulplattform integriert ist. Der Wasserstand wird als Differenz zwischen der Entfernungsmessung eines leeren Gefäßes und eines mit Wasser bis zu einem bestimmten Niveau gefüllten Gefäßes bestimmt.

Steuermodul und US-Sensor sind mit einem 3D-gedruckten "Dome" bedeckt. Die STL-Datei der Kuppel wird im Abschnitt Dateien und Skizzen dieser Anleitung bereitgestellt.

Schritt 5: Steuermodul - Schaltpläne

Steuermodul - Schaltpläne
Steuermodul - Schaltpläne
Steuermodul - Schaltpläne
Steuermodul - Schaltpläne

Schemata für das Steuermodul (einschließlich der Liste der Komponenten) und Breadboard-Designdateien finden Sie im Abschnitt Dateien und Skizzen dieser Anleitung.

HINWEIS: Die Arbeit mit NodeMCU erwies sich in Bezug auf die verfügbaren GPIO-Pins als eine Herausforderung. Fast alle GPIOs erfüllen eine Reihe von Funktionen, wodurch sie entweder nicht oder im Deep Sleep-Modus nicht verwendet werden können (aufgrund spezieller Funktionen, die sie während des Bootvorgangs abspielen). Am Ende habe ich es geschafft, ein Gleichgewicht zwischen der Verwendung von GPIOs und meinen Anforderungen zu finden, aber es brauchte einige frustrierende Iterationen.

Zum Beispiel bleiben eine Reihe von GPIOs während des Tiefschlafs "heiß". Das Anschließen von LEDs an diejenigen verfehlte den Zweck der Reduzierung des Stromverbrauchs im Tiefschlaf.

Schritt 6: Behälter-Wasserlecksensor

Tablett-Wasserlecksensor
Tablett-Wasserlecksensor
Tablett-Wasserlecksensor
Tablett-Wasserlecksensor
Tablett-Wasserlecksensor
Tablett-Wasserlecksensor

Wenn Ihr Topf unten ein Überlaufloch hat, besteht die Gefahr, dass Wasser über die untere Schale läuft und auf den Boden (Regal oder was auch immer Ihre Pflanze steht) verschüttet wird.

Mir ist aufgefallen, dass die Bodenfeuchtigkeitsmessung stark von der Sondenposition, der Bodendichte, der Entfernung vom Bewässerungsauslass usw. beeinflusst wird. Mit anderen Worten, die Messung der Bodenfeuchtigkeit kann nur schädlich für Ihr Zuhause sein, wenn Wasser über die untere Wanne läuft und überläuft.

Der Überlaufsensor ist ein Abstandshalter zwischen dem Topf und der unteren Schale, wobei zwei Drähte um die Stangen gewickelt sind. Wenn Wasser die Schale füllt, werden die beiden Drähte verbunden und signalisieren so dem Mikrocontroller, dass sich Wasser in der unteren Schale befindet.

Schließlich verdunstet Wasser und die Drähte werden getrennt.

Unteres Fach ist 3D gedruckt. Die STL-Datei ist im Abschnitt Dateien und Skizzen dieser Anleitung verfügbar.

Schritt 7: Bodenfeuchtesonde und Bewässerungsgehäuse

Image
Image
Bodenfeuchtesonde und Bewässerungsgehäuse
Bodenfeuchtesonde und Bewässerungsgehäuse
Bodenfeuchtesonde und Bewässerungsgehäuse
Bodenfeuchtesonde und Bewässerungsgehäuse

Ich entwarf ein sechseckiges 3D-gedrucktes Gehäuse, um eine kombinierte Bodenfeuchtigkeitssonde und ein Bewässerungsgehäuse zu sein.

Eine 3D-Druckdatei (STL) ist im Abschnitt Dateien und Skizzen dieser Anleitung verfügbar.

Das Gehäuse besteht aus zwei Teilen, die zusammengeklebt werden müssen. Ein modifizierter Anschluss mit Widerhaken wird in die Seite des Gehäuses geklebt, um Schläuche zu befestigen.

Zur Platzierung der verzinkten Nägel sind zwei 4,5-mm-Löcher vorgesehen, die als Bodenfeuchtesonden dienen. Die Verbindung zum Mikrocontroller wird über speziell auf die Nägel abgestimmte Metall-Abstandshalter erreicht.

3D-Design wird mit www.tinkercad.com erstellt, einem großartigen und einfach zu bedienenden und dennoch leistungsstarken 3D-Design-Tool.

HINWEIS: Sie fragen sich vielleicht, warum ich nicht einfach eine der vorgefertigten Bodensonden verwendet habe? Die Antwort lautet: Die Folie auf denen löst sich innerhalb von Wochen auf. Tatsächlich erodieren die Nägel auch nach einer begrenzten Zeit unter Spannung und müssen mindestens einmal im Jahr ersetzt werden. Das obige Design ermöglicht das Ersetzen der Nägel innerhalb von Sekunden.

Schritt 8: Schläuche und Verkabelung

Schläuche und Verkabelung
Schläuche und Verkabelung

Das Wasser wird über einen halbdurchsichtigen Schlauch aus superweichem Latexgummi (mit 1/4" Innendurchmesser und 5/16" Außendurchmesser) an den Plan geliefert.

Der Pumpenauslass erfordert einen größeren Schlauch und einen Adapter: Chemikalienbeständige Polypropylen-Stutzen, gerade Reduzierstücke für 1/4" x 1/8" Schlauch-ID.

Schließlich dient eine chemikalienbeständige Polypropylen-Stutzenverschraubung, gerade für 1/8 -Rohr-ID als Anschluss an das Bewässerungsgehäuse.

Schritt 9: NodeMCU-Skizze

NodeMCU-Skizze
NodeMCU-Skizze

NodeMCU-Skizze implementiert mehrere Funktionen von IoT APIS v2:

  1. Verbindet sich mit dem bestehenden WLAN-Netzwerk -ODER- läuft als WLAN-Access Point (je nach Konfiguration)
  2. Fragt NTP-Server ab, um die lokale Zeit zu erhalten
  3. Implementiert einen Webserver für die Pflanzenüberwachung und die Anpassung der Bewässerungs- und Netzwerkparameter
  4. Misst die Bodenfeuchtigkeit, Wasserlecks in der unteren Schale, den Wasserstand im Glas und bietet eine visuelle Anzeige über eine 3-Farben-LED
  5. Implementiert Online- und Energiespar-Betriebsmodi
  6. Speichert Informationen zu jedem der Bewässerungsläufe lokal im internen Flash-Speicher

Schritt 10: NodeMCU-Skizze - WiFi

NodeMCU-Skizze - WiFi
NodeMCU-Skizze - WiFi

Standardmäßig erstellt IoT APIS v2 einen lokalen WLAN-Zugangspunkt namens "Plant_XXXXXX", wobei XXXXXX die Seriennummer des ESP8266-Chips an Bord von NodeMCU ist.

Sie können über die URL auf den integrierten Webserver zugreifen: https://plant.io Der interne DNS-Server verbindet Ihr Gerät mit der APIS-Statusseite.

Von der Statusseite aus können Sie zur Seite mit den Bewässerungsparametern und zur Seite mit den Netzwerkparametern navigieren, wo Sie IoT APIS v2 mit Ihrem WLAN-Netzwerk verbinden und den Status an die Cloud melden können.

IoT APIS unterstützt Online- und Energiesparmodi:

  1. Im Online-Modus hält IoT APIS die WLAN-Verbindung ständig aufrecht, sodass Sie Ihren Anlagenstatus jederzeit überprüfen können
  2. Im Energiesparmodus überprüft IoT APIS periodisch die Bodenfeuchtigkeit und den Wasserstand, versetzt das Gerät zwischendurch in den "Tiefschlaf"-Modus und reduziert so seinen Stromverbrauch drastisch. Das Gerät ist jedoch nicht ständig online verfügbar und Parameter konnten nur während des Hochfahrens des Geräts geändert werden (derzeit alle 30 Minuten, abgeglichen mit der Stunden-/Halbstunden-Echtzeituhr). Das Gerät bleibt alle 30 Minuten für 1 Minute online, um Konfigurationsänderungen zuzulassen, und wechselt dann in den Tiefschlafmodus. Wenn sich der Benutzer mit dem Gerät verbindet, wird die "Up"-Zeit für jede Verbindung auf 3 Minuten verlängert.

Wenn das Gerät mit dem lokalen WLAN-Netzwerk verbunden ist, wird seine IP-Adresse an den IoT-Cloud-Server gemeldet und auf dem mobilen Überwachungsgerät angezeigt.

Schritt 11: NodeMCU-Skizze - NTP

NodeMCU-Skizze - NTP
NodeMCU-Skizze - NTP

IoT APIS v2 verwendet das NTP-Protokoll, um die lokale Zeit von den NIST-Zeitservern abzurufen. Die richtige Zeit wird verwendet, um zu bestimmen, ob das Gerät in den "Nacht"-Modus wechseln sollte, d. h. vermeiden, dass die Pumpe läuft oder die LED blinkt.

Die Nachtzeit ist für Arbeitstage und Wochenendmorgen getrennt konfigurierbar.

Schritt 12: NodeMCU-Skizze - Lokaler Webserver

NodeMCU Sketch - Lokaler Webserver
NodeMCU Sketch - Lokaler Webserver
NodeMCU Sketch - Lokaler Webserver
NodeMCU Sketch - Lokaler Webserver
NodeMCU Sketch - Lokaler Webserver
NodeMCU Sketch - Lokaler Webserver

IoT APIS v2 implementiert einen lokalen Webserver für Statusberichte und Konfigurationsänderungen über die Schaltfläche Netzwerk konfigurieren) bietet die Möglichkeit, eine Verbindung zu einem lokalen WLAN-Netzwerk herzustellen und zwischen Online- und Energiesparmodus zu wechseln. (Änderungen an der Netzwerkkonfiguration führen zum Zurücksetzen des Geräts) Die Bewässerungskonfigurationsseite (zugänglich über die Schaltfläche Wasser konfigurieren) bietet die Möglichkeit, die Bewässerungsparameter zu ändern (Bodenfeuchtigkeit zum Starten/Stoppen der Bewässerung, Dauer des Bewässerungslaufs und Sättigungspause zwischen den Durchläufen, Anzahl der Durchläufe, etc.) Webserver-HTML-Dateien befinden sich im Datenordner der IoT APIS Arduino IDE-Skizze. Sie sollten als SPIFF-Dateisystem in den NodeMCU-Flash-Speicher hochgeladen werden, indem das hier befindliche Tool "ESP8266 Sketch Data Upload" verwendet wird.

Schritt 13: NodeMCU-Skizze - Lokales Bewässerungsprotokoll und Zugriff auf das interne Dateisystem

NodeMCU-Skizze - Lokales Bewässerungsprotokoll und Zugriff auf das interne Dateisystem
NodeMCU-Skizze - Lokales Bewässerungsprotokoll und Zugriff auf das interne Dateisystem

Falls keine Netzwerkverbindung verfügbar ist, protokolliert das IoT APIS v2-System alle Bewässerungsaktivitäten lokal.

Um auf das Protokoll zuzugreifen, verbinden Sie sich mit dem Gerät und navigieren Sie zur Seite „/edit“und laden Sie dann die Datei „watering.log“herunter. Diese Datei enthält den Verlauf aller Bewässerungsläufe seit Beginn der Protokollierung.

Ein Beispiel für eine solche Protokolldatei (in tabulatorgetrenntem Format) ist diesem Schritt beigefügt.

HINWEIS: Die Download-Seite ist nicht verfügbar, wenn IoT APIS v2 im Access Point-Modus ausgeführt wird (aufgrund der Abhängigkeit von der Online-Java-Script-Bibliothek).

Schritt 14: NodeMCU-Skizze - Bodenfeuchtigkeit, Bodenwannen-Wasserleck, Wasserstand, 3-Farben-LED

Image
Image
NodeMCU-Skizze - Bodenfeuchtigkeit, Bodenwannen-Wasserleck, Wasserstand, 3-Farben-LED
NodeMCU-Skizze - Bodenfeuchtigkeit, Bodenwannen-Wasserleck, Wasserstand, 3-Farben-LED
NodeMCU-Skizze - Bodenfeuchtigkeit, Bodenwannen-Wasserleck, Wasserstand, 3-Farben-LED
NodeMCU-Skizze - Bodenfeuchtigkeit, Bodenwannen-Wasserleck, Wasserstand, 3-Farben-LED

Die Bodenfeuchtemessung basiert auf dem gleichen Prinzip wie das ursprüngliche APIS. Bitte beziehen Sie sich auf das instructable für die Details.

Undichtigkeiten in der Wasserwanne werden erkannt, indem über interne PULLUP-Widerstände kurzzeitig Spannung an die unter dem Topf befindlichen Drähte angelegt wird. Wenn der resultierende PIN-Status LOW ist, befindet sich Wasser in der Schale. PIN-Zustand von HIGH zeigt an, dass der Stromkreis "unterbrochen" ist, daher befindet sich kein Wasser in der unteren Schale.

Der Wasserstand wird bestimmt, indem der Abstand von der Oberseite des Gefäßes zur Wasseroberfläche gemessen und mit dem Abstand zum Boden eines leeren Gefäßes verglichen wird. Bitte beachten Sie die Verwendung des 3-Pin-Sensors! Diese sind teurer als die vierpoligen HC-SR04-Sensoren. Leider gingen mir die GPIOs auf NodeMCU aus und ich musste jeden Draht abschneiden, den ich konnte, damit das Design auf nur einer NodeMCU ohne zusätzliche Schaltkreise funktioniert.

Die 3-farbige LED wird verwendet, um den APIS-Status visuell anzuzeigen:

  1. Mäßig GRÜN blinkend - Verbindung zum WLAN-Netzwerk
  2. Schnell GRÜN blinkend - NTP-Server abfragen
  3. Kurzes durchgehendes GRÜN - mit WiFi verbunden und aktuelle Uhrzeit von NTP erfolgreich erhalten
  4. Kurzes durchgehendes WEISS - Netzwerkinitialisierung abgeschlossen
  5. Blinkt schnell WEISS - Start des Access Point-Modus
  6. Blinkt schnell BLAU - Bewässerung
  7. Mäßig blinkend BLAU - sättigend
  8. Kurzes festes AMBER gefolgt von kurz anhaltendem ROT - keine Zeit von NTP erhalten
  9. Kurzzeitig durchgehendes WEISS beim Zugriff auf den internen Webserver

LED funktioniert nicht im "Nacht"-Modus. Der Nachtmodus konnte nur zuverlässig bestimmt werden, wenn das Gerät mindestens einmal die lokale Zeit von den NTP-Servern beziehen konnte (lokale Echtzeituhr wird verwendet, bis die nächste Verbindung zu NTP hergestellt ist)

Ein Beispiel für die LED-Funktion finden Sie hier auf YouTube.

Schritt 15: Solarenergie, Powerbank und autonomer Betrieb

Solarenergie, Powerbank und autonomer Betrieb
Solarenergie, Powerbank und autonomer Betrieb
Solarenergie, Powerbank und autonomer Betrieb
Solarenergie, Powerbank und autonomer Betrieb
Solarenergie, Powerbank und autonomer Betrieb
Solarenergie, Powerbank und autonomer Betrieb

Eine der Ideen hinter IoT APIS v2 war die Fähigkeit, autonom zu arbeiten.

Das aktuelle Design verwendet ein Solarpanel und eine vorläufige 3600-mAh-Powerbank, um dies zu erreichen.

  1. Solarpanel ist auf amazon.com erhältlich
  2. Powerbank ist auch auf amazon.com erhältlich

Das Solarpanel hat auch einen 2600-mAh-Akku eingebaut, aber es war nicht in der Lage, den 24-Stunden-APIS-Betrieb selbst im Energiesparmodus aufrechtzuerhalten (ich vermute, dass der Akku mit gleichzeitigem Laden und Entladen nicht gut zurechtkommt). Eine Kombination aus zwei Akkus scheint ausreichend Leistung zu liefern und ermöglicht das Aufladen beider Akkus während des Tages. Das Solarpanel lädt die Powerbank auf, während die Powerbank das APIS-Gerät auflädt.

Bitte beachten Sie:

Diese Komponenten sind optional. Sie können das Gerät einfach mit einem beliebigen USB-Adapter mit Strom versorgen, der 1A Strom liefert.

Schritt 16: IoT-Integration - Blynk

IoT-Integration - Blynk
IoT-Integration - Blynk
IoT-Integration - Blynk
IoT-Integration - Blynk
IoT-Integration - Blynk
IoT-Integration - Blynk

Eines der Ziele für das neue Design war die Möglichkeit, Bodenfeuchtigkeit, Wasserstand und andere Parameter aus der Ferne zu überwachen.

Als IoT-Plattform habe ich Blynk (www.blynk.io) aufgrund der Benutzerfreundlichkeit und der ansprechenden visuellen Gestaltung gewählt.

Da mein Sketch auf der kooperativen Multitasking-Bibliothek TaskScheduler basiert, wollte ich keine Blynk-Gerätebibliotheken verwenden (sie sind nicht für TaskScheduler aktiviert). Stattdessen habe ich die HTTP-RESTful-API von Blynk verwendet (hier verfügbar).

Die Konfiguration der App ist so intuitiv wie möglich. Bitte folgen Sie den beigefügten Screenshots.

Schritt 17: Skizzen und Dateien

Skizzen und Dateien
Skizzen und Dateien

Die Skizze von IoT APIS v2 befindet sich auf dem Github hier: Skizze

Einige Bibliotheken, die von der Skizze verwendet werden, befinden sich hier:

  1. TaskScheduler - kooperative Multitasking-Bibliothek für Arduino und esp8266
  2. AvgFilter - Integer-Implementierung des Average-Filters zur Glättung von Sensordaten
  3. RTCLib - Implementierung der Hard- und Software Real Time Clock (von mir modifiziert)
  4. Zeit - Änderungen für die Zeitbibliothek
  5. Timezone - Bibliothek, die Zeitzonenberechnungen unterstützt

HINWEIS:

Datenblätter, Pin-Dokumentation und 3D-Dateien befinden sich im Unterordner "files" der Hauptskizze.

HTML-Dateien für den integrierten Webserver sollten mit arduino-esp8266fs-plugin (das eine Dateisystemdatei aus dem Unterordner "data" des Hauptskizzenordners erstellt und in den Flash-Speicher hochlädt) in den NODE-MCU-Flash-Speicher hochgeladen werden.

Indoor-Gartenwettbewerb 2016
Indoor-Gartenwettbewerb 2016
Indoor-Gartenwettbewerb 2016
Indoor-Gartenwettbewerb 2016

Zweiter Platz beim Indoor Gardening Contest 2016

Empfohlen: