Schritt 6: Controller - Logik
Nun, über die Logik in der Arduino-Steuerung: zählen die Impulse, wenn sie über einen Schwellenwert, Trigger, die die Bewässerung erhalten. Die Logik ist einfach, nicht wahr? Außer nach meinem ersten Iteration entdeckte ich, dass es nicht nur einfach, sondern auch zu simpel ist. Die Mängel:
- Sie können den Boden messen Prozess kontinuierlich ausgeführt, wenn Sie Batterien, als Ihre Energiequelle verwenden nicht halten. Während der Messung verwendet der Controller über 35-40mA (mehr wird ausgelost bei der Bewässerung). Ein Satz von zwei 4R25X 6V Batterien (aka "Laterne") waren in etwa zwei Wochen aufgebraucht – multiplizieren Sie diese mit der Anzahl der Bewässerung Punkte und du wirst sehen, es ist nicht mehr billig. Luftfeuchtigkeit messen Sie besser mit Stunden dazwischen – verwenden Sie Ihren gesunden Menschenverstand, die Zeit zwischen zwei Maßnahmen wird auf die Saison, Temperatur, Höhe der Böden rund um Ihre Anlage, etc. variieren.
- Mehr noch, können Sie sogar Ihre Arduino lebendig zwischen zwei Messungen, ohne etwas zwischen zwei Messungen nicht halten; Pro Mini zieht noch 20 — 25mA – so dass ein Batteriesatz nur 3 bis 4 Wochen dauern. Besser gesagt es in tiefen Schlaf – nach meiner Erfahrung diese Laufwerke auf den Verbrauch um eine bloße 3mA, genug für die gleichen Batterien ca. 20 Wochen lang (nur später ich über Die Garnelen und andere extrem niedrigen ATM368 Stromkreise, die das Leben einer Laterne Batterie voraussichtlich länger als das physische Leben der Batterien selbst verlängern würde lernte. Darüber hinaus wird ein nächstes Mal sein)
- Sie können sich nicht entscheiden, wie viel Wasser Sie verzichten durch die Sonde einfach zu lesen, bis Sie in Betracht "es nass genug" - ziehen denn es einige Zeit für das Wasser dauert, die Erde zu infiltrieren, daher entscheiden Sie es entweder zu früh (wenn die Sonde liegt in der Nähe, wo das Wasser den Boden berührt, so dass der Boden zu schnell nass wird) oder zu spät (wenn die Sonde ein bisschen zu weit ist und es dauert einige Zeit bis das Wasser tatsächlich infiltrieren die (Boden). Bessere Stick mit der Herrschaft des "Wenn es zu trocken ist Gießen eine vorgegebene Menge an Wasser, stoppen und warten auf eine gute während vor der Prüfung wieder"
- Sie nicht zu Hause die Bewässerung Parameter voreingestellt, dann im Feld gehen und erwarten, so funktionieren, wie Sie es zu "abgestimmt". Jeder Boden haben Mineralgehalt, Aufbau, Kompaktheit, Kapazität, Wasser usw. – die Parameter ganz erhebliche Auswirkungen wird zu behalten. Irgendwie, sehe ich mich gehen sie nicht das Feld mit dem Laptop bei mir nur, jeder Bewässerung Punkt mit seiner sehr spezifischen Parameterwerte setup.
Wie auch immer, die oben zeigt, dass der Controller-Logik-Konfiguration mindestens 3 Parameter benötigen und höchst wünschenswert, diese 3 Parameter einstellbaren ohne die Verwendung eines Computers sollte:
- der "Trockenheit Schwelle" - nach Auffassung der Stufe eins Bewässerung benötigt wird
- der Höhe der Zeit zu gießen – gelten dies korreliert gut mit der Menge an Wasser für die Anlage verzichtet
- die Zeit zwischen zwei aufeinander folgenden Luftfeuchtigkeit Lesungen (zwischen die Arduino wandert in tiefen Schlaf)
Natürlich ist auch die Frage der Sonde Lesungen (nach dem Hochladen des Programms), wenn nur aus Gründen der Diagnose, was vor sich geht.
Unter Bezugnahme auf das Schema in der "Controller - Schema", dies ist, wo die PProg0/Rgnd0/Pgnd0 – hochtrabend nennen wir es "Konfiguration-Board" (lowish rechts des Schemas) und CONN_Settings1/CONN_Supply1 (Schema über Arduino Anschlüsse oben) kommen sie spielen: beim Systemstart die analogen Pins A0-A3 der Arduino-Board sind so konfiguriert, wie INPUT_PULLUP während der Setup-Phase und die Logik der 4 Pins überprüft und interpretieren das Ergebnis als einen Befehl der möglichen 16. Deshalb, um "eine Pin zu signalisieren", du musst nur eine Pin mit das "Configuration Board" am Boden zu verbinden (die Pgnd0 DuPont-Pin des Ausschusses"Konfiguration" in der Masse-Pin von der CONN_Supply1 stecken, dann benutzen Sie andere Pprog0 Pins den entsprechenden Pins der Arduino-Konfiguration in die Erdung zu ziehen).
Hinweis: natürlich die ganze Sache hätte mit 4 Mikro-Kippschalter und vielleicht könnte sie auf die Karte passen. Aber ich habe lieber die Sachen so billig wie möglich zu halten (und auf eine Dimension "Makro" - meine Augen sind nicht was sie verwendet werden).
Die Liste der Setup-Befehle - mit den Codes in den {A0, A1, A2, A3} Bestellung:
- Betriebsmodus - {0,0,0,0} - kein Setup, den normalen Betrieb
- Einstellzeit Bewässerung - {1,0,0,0} - Controller wird die Pumpe einschalten und halten Sie ihn auf, bis der Draht vom Stift herausgezogen wird; in diesem Moment der Controller speichert die aufgezeichneten Bewässerungsdauer und nutzt es für die nächsten Zyklen;
- Schwellenwert Feuchtigkeit - {0,1,0,0} - der Controller lesen die aktuelle Feuchtigkeit, interpretiert es als das minimale Niveau und löst die Bewässerung erreicht der Wert dieser Wert (nächste Maßnahme Zyklus)
- 3 Minuten zwischen Feuchtigkeit testen - {1,1,0,0} - legt den Zeitraum zwischen zwei aufeinander folgenden Feuchtigkeit bohrenden Zyklen auf 3 Minuten – nützlich für Testzwecke, nicht empfohlen für lange Laufzeit
- 1 Stunde zwischen Feuchtigkeit testen - legt {0,0,1,0} - den Zeitraum zwischen zwei aufeinander folgenden Feuchtigkeit bohrenden Zyklen bis 1 Stunde.
- 2 Stunden zwischen Feuchtigkeit Testsätze - {1,0,1,0} - die Zeit zwischen zwei aufeinander folgenden Feuchtigkeit bohrenden Zyklen bis 2 Stunden.
- 3 Stunden zwischen Feuchtigkeit Testsätze - {0,1,1,0} - die Zeit zwischen zwei aufeinander folgenden Feuchtigkeit bohrenden Zyklen bis zu 3 Stunden.
- 4 Stunden zwischen Feuchtigkeit Testsätze - {1,1,1,0} - die Zeit zwischen zwei aufeinander folgenden Feuchtigkeit bohrenden Zyklen bis zu 4 Stunden.
- 6 Stunden zwischen Feuchtigkeit Testsätze - {0,0,0,1} - die Zeit zwischen zwei aufeinander folgenden Feuchtigkeit bohrenden Zyklen bis zu 6 Stunden.
- 8 Stunden zwischen Feuchtigkeit Testsätze - {1,0,0,1} - die Zeit zwischen zwei aufeinander folgenden Feuchtigkeit bohrenden Zyklen bis zu 8 Stunden.
- 12 Stunden zwischen Feuchtigkeit Testsätze - {0,1,0,1} - die Zeit zwischen zwei aufeinander folgenden Feuchtigkeit bohrenden Zyklen bis zu 12 Stunden.
- Diagnose-Modus - {1,1,0,1} - führt Feuchtigkeit alle 5 Sekunden zu sondieren und meldet die Anzahl der aufgenommenen Impulse durch die USB-Schnittstelle - hilfreich für Systemdiagnose
- reserviert - {0,0,1,1} - reserviert für zukünftige Erweiterungen
- reserviert - {1,0,1,1} - reserviert für zukünftige Erweiterungen
- reserviert - {0,1,1,1} - reserviert für zukünftige Erweiterungen
- Zurücksetzen auf die Werkseinstellungen - legt den Schwellenwert auf etwas, das kein Boden (egal wie trocken) auslösen, Bewässerung, das Intervall zwischen 2 Luftfeuchtigkeit sondieren zu 6 Stunden und die Bewässerung Zeit auf 5 Sekunden (d. h. legt eine Konfiguration, die sicherlich Änderung für nützliche Zwecke benötigen)
Sie können den Quellcode von der Projektseite auf Githubherunterladen.