Vor 3 Jahren habe ich mir eine automatische Blumengiessanlage mit ATmega8 Mikrocontroller gebaut. Das Ding ist immer noch in Betrieb und meinen Zimmerpflanzen geht es immer besser. Hier ist er, der Giess-o-mat. Sourcecode ist im Anhang.
Vorsicht bei dem Gleichstrom durch die Messelektroden! (sind zwar nur 5V über 10K aber trotzdem) Dadurch zersetzen sich die Elektroden und bilden giftige Stoffe für die Pflanzen... Manchen macht das nichts, andere verrecken schnell ;)
No Name wrote:
> Was für Pumpen benutzt du denn?
Ich benutze billige Mini-Zimmer-Brunnen-Pumpen von Conrad. Die
funktionieren gut, solange das Wasser nicht höher als ca. 50 cm gepumpt
werden muss.
> Hallo, > > habe eben deinen Beitrag "Gies-O-Mat" gesehen, > da ich mich erst seit kurzem mit der Elektronik und Mikrocontrollern > befasse fand ich deinen Schaltplan sehr interessant. Kann auch fast > alles nachvollziehen. Hätte da aber noch ein paar Fragen zu Sachen die > ich leider nicht auf dem Plan entziffern kann. > - Was für Relais werden benutzt? liege ich richtig das die 12V > Spulenspannung haben? und auf den Lastkontakten direkt die 230V > schalten? > - die Gleichrichtung habe ich auch gecheckt, aber welchen Wert hat der > Kondensator? > - welchen Spannungsregler wird verwendet? > - wo wird die 12V für die Relais abgegriffen? > Hoffe du findest die Zeit mir diese Fragen zu beantworten. Die Relais haben 12 V Eingangsspannung und eine Schaltleistung, die größer ist als die Leistung meiner Pumpen. Für den Elko im Gleichrichter gilt, je größer desto besser. Meiner hat 2200µF. Die 12 V werden direkt hinter dem Gleichrichter abgegriffen. Im Schaltplan habe ich der Übersichtlichkeit halber dafür das Symbol mit dem Doppelpfeil nach oben eingezeichnet. Die 5V für den ATmega liefert ein IC7805.
Hallo, was mich interessiert: Du steuerst die Relais mit einem npn-Transistor als Emitterfolger an. Die Emitterspannung kann also nie höher werden als Ub-Ube. Im konkreten Fall also 5V (maximal vom AVR-Port) - ca. 0,7V Ube = 4,3V. Das ist die Spannung, die die maximal Relais bekommen. Damit ziehen die sicher an? Gruß aus Berlin Michael
Gast wrote:
> Vorsicht bei dem Gleichstrom durch die Messelektroden!
Ich würde daher die Meßspannung nur jede Stunde kurz für das Messen
einschalten.
Peter
bei einen ähnlichem Projekt. habe ich als Messelektroden. die kohlestifte der AA Alkalibaterien verwendet. die korrodieren zumindestens nicht.
Michael U. wrote: > Hallo, > > was mich interessiert: Du steuerst die Relais mit einem npn-Transistor > als Emitterfolger an. Die Emitterspannung kann also nie höher werden als > Ub-Ube. > Im konkreten Fall also 5V (maximal vom AVR-Port) - ca. 0,7V Ube = 4,3V. > Das ist die Spannung, die die maximal Relais bekommen. Damit ziehen die > sicher an? > > Gruß aus Berlin > Michael Hallo, im Schaltplan habe ich statt der +12V Spannungsversorgung nur Antennen-Symbole eingezeichnet. Da wird es vielleicht nicht deutlich, dass am Kollektor der Transistoren 12 V anliegen. Ube muss nur größer als 0,7 V sein, um die 12 V auf die Relais durchzuschalten. Gruß Christian
Hallo, nein, Du hast schon richtig die Kollektoren mit ß12V beschriftet. Du hast auch recht, daß Ube (also die Spannung zwischen Basis und Emitter ca. 0,7V sein muß, um einen Transistor durchzusteuern. Sie wird auch nie merklich größer, weil die B-E-Strecke für den Basisstrom eine Dioden in Flußrichtung darstellt. Ub gegen GND ist maximal +5V (Uout des AVR-Pins), die Emitterspannung also maximal ca. 4,3V, egal, was am Kollektor anliegt. Deshalb heißt ein Emitterfolger ja auch gern Spannungsfolger... Gruß aus Berlin Michael
Hallo Michael, you are so right man ! Mit dem Relais als Emittefolger funktioniert die Schaltung aber auch gut. Für alle, die das Gerät nachbauen wollen, habe ich den Schaltplan nach den Regeln aus dem Lehrbuch korrigiert. Im Anhang der korrigierte Eagle-Schaltplan. Viel Spass beim nachbauen Christian
Könntest du mal Details zum Sensor und zu den Messwerten posten, insbesondere den Zusammenhang zwischen Feuchte und Widerstand? Grüsse Robert
das wichtigste über die Feuchtigkeitsmessung steht jetzt im Artikel Giess-o-mat. Die Software zur Feuchtigkeitsmessung ist allerdings bis jetzt noch etwas einfach gestrickt. Wenn die Anlage falsch parametriert wird oder wenn die Elektroden verrosten, kann es passieren, dass der Giess-o-mat das ganze Wasser aus einem großen Eimer in einen kleinen Blumenpott pumpt.
Hallo Christian, warum hast Du dem Max232 keine Spannungsversorgung gegönnt? Geht das auch ohne?
Das Max232 Schaltplansymbol in Eagle hat keine Spannungsversorgungseingänge. Man muss natürlich +5V und Masse anschliessen. Der Chip erzeugt daraus dann 24V.
Hallo, bemühe mal invoke bei Eagle, dann kannst Du auch die Spannungsanschlüsse des MAX sichtbar machen. Gruß aus Berlin Michael
Hallo und guten Tag, der Bauvorschlag Giess-o-mat ist prima, leider habe ich ein problem bei der erzeugung einer für den ATmega8 verständlichen HEX-Codes, Wer kann mir helfen Gruß Walter-kg
Hi, wo ist das Problem ? Makefile liegt doch bei. Kommandozeile: make und siehe da: ein HEX File mit 1Mhz. Gruß Sven
...imho müsste man das ganze aber noch etwas aufpumpen, denn 10L wasser und nen atmel in meiner wohnung, da muss die SW schon asil-c enstprechen :) wollt ich auch schon ewig mal bauen, nur für den urlaub - aber bei >15 pflanzen scheue ich den verschlauchungsaufwand doch noch etwas... Klaus.
Hallo Sven, danke für die HEX Datei. Aber ich komme immer noch nicht klar, wie ich die vorhandenen Dateien xxx.c, xxx.h , xxx.sla Makefile u.s.w umwandeln kann. Bräuchte mal ein kleines Sampel für to do Nicht für ungut, aber ich komm einfach nicht zurecht. Gruß Walter-kg
"Wenn die Anlage falsch parametriert wird oder wenn die Elektroden verrosten, kann es passieren, dass der Giess-o-mat das ganze Wasser aus einem großen Eimer in einen kleinen Blumenpott pumpt." Wäre doch leicht zu umgehen. Programmier einene Höchstmenge an Wasser pro Pott und Gießvorgang (ein Drittel des Pottvolumens sollte bei jeder Pflanze massig ausreichen um die gesamte erde zu befeuchten). Will das Programm die Höchstmenge überschreiten, wird dieses unterbrochen und eine Fehlermeldung ausgegeben. Außerdem könnte er ja auch auf den zeitbedingten Gießmodus umstellen (mit vorsichtigen Parametern für das Gießen)...nur für den Fall, das man zu spät merkt, dass was mit den Elektroden nicht stimmt. Programmiertechnisch dürfte das ja kein Problem sein wie läuft das eigentlich...wird die erde homogen befeuchtet oder läuft das wasser praktisch in der Vertikalen einfach runter? Werde mir jedenfalls das Projekt hier als Vorlage nehmen für ein eigenes. Als Anfänger benötige ich jedoch noch einiges an Hilfe. Wenn hier irgend jemand zufälligerweise nochmal reinschauen sollte, vorzugsweise der Christian Bergmann oder andere die mir vorallem mit der Messung weiterhelfen können, wäre ich dankbar für jegliche Hilfestellung (aber achtung...ich brauche noch ein wenig mehr Hilfestellung ;) )
Hallo, bei meinem Projekt habe ich schliesslich auf die Feuchtigkeitsmessung verzichtet und steuere die Pumpen nur noch per Timer. Ich habe eine Palme, für die schaltet der Giess-o-mat die Pumpe alle 24 Stunden für 45 Sekunden an. Eine andere Blume bekommt nur alle 7 Tage 30 Sekunden lang Wasser. Ab und zu muss ich jetzt halt überprüfen, ob die Wassermenge so passt und evtl. nachjustieren. Wenn jemand Lust hat, die Feuchtigkeit in der Blumenerde zu messen und evtl. meinen Code dazu verbessert - finde ich gut und gebe auch gerne Hilfestellung. Der Code für die Steuerung der Pumpen steckt in giessomat.c in der Funktion autogiess(). autogiess() wird jede Sekunde ein Mal aufgerufen. Eins muss ich noch zur Verlegung der Schlauchleitungen sagen: Das Ende der Schlauchleitung muss immer ein bisschen höher gesteckt werden als der Wasserspiegel im Eimer, sonst läuft das Wasser weiter, wenn die Pumpe schon ausgeschaltet ist. Gruß Christian
Hi! Ich habe mir überlegt eine automatische Bewässerung zu bauen, und bin dabei ziehmlich schnell auf diesen Thread gestossen. Leider bin ich noch ziehmlich unerfahren mit entwickeln von Schaltungen, und habe auch grad erst angefangen mit microcontrollern zu experimentieren. Ich wollte die Steuerung eigentlich über einen Sensor laufen lassen, damit die Pflanzen auch immer die richtige Menge Wasser bekommen. Hier der Low-cost Sensor: http://www.dietmar-weisser.de/analogtechnik/BodenFeuchte/FeuchteSensor_1.php Das Signal (Frequenz um die 100khz) müsste man dann auswerten und bei Bedarf die Pumpe schalten. Was haltet ihr davon, und ist das über den "einfachen" Counter im Controller möglich? Grüße, Freed
Hallo, der Sensor gefällt mir gut. Bei der kapazitiven Messung braucht man keine Elektroden in die Blumenerde stecken. Die Messung der Frequenz kann man bei dem ATmega8 Mikrocontroller mit der Timer/Counter Funktion an den Pins T0 oder T1 machen. An den Giess-o-Mat könnte man also maximal 2 der Sensoren direkt anschliessen. Die Pins T0 und T1 werden zur Zeit als Digitalausgänge zur Steuerung der Pumpen benutzt. Sie müssten auf andere Pins umverdrahtet werden und die Software entsprechend angepasst werden.
Hi! Also der Sensor funktioniert soweit ganz gut. Mit dem Multimeter bekomme ich auch realistische Werte im Zeitverlauf. (Frequenz steigt langsam an bis ich wieder gieße). Leider funktioniert das ganze mit dem mega8 bei mir noch nicht so wunderbar... bekomme andere Werte als mi dem Multimeter, und im Zeitverlauf scheint sich kaum etwas zu ändern. Werde als nächstes mal probieren alles auf einen Platine zu bauen. Bisher nur übers Steckbrett. Vielleicht waren die Entfernungen zu groß?! Grüße
Der Sensor muss auch mit dem mega8 funktionieren. Kannst du Frequenz und Spannung am Eingangspin des mega 8 messen ? Hast du den Eingangspin so konfiguriert, dass er als Timer/Counter arbeitet ? Läuft das Zählerregister bei deiner Messung vielleicht über ? Wenn du willst, poste mal deinen Sourcecode. Ich werde demnächst auch mal versuchen, so einen Sensor zum Laufen zu bringen. Gruß Christian
Hi! Scheint mitlerweile zu funktionieren! Lag wohl an schlechten Kontakten. Hier mal der Code. Bisher wird nur Frequenz gemessen, und dann per UART an den Rechner geschickt, der das ganze protokolliert. Grüße $regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 Dim Zaehler As Long Dim Result As Long Config Timer0 = Counter , Edge = Rising On Timer0 Sprung_in_sup Config Timer1 = Timer , Prescale = 256 On Timer1 Timer_irq Enable Timer0 Enable Timer1 Enable Interrupts Load Timer1 , 15625 Do Wait 10 Print Result Loop Sprung_in_sup: Incr Zaehler Return Timer_irq: Zaehler = Zaehler * 256 Result = Timer0 + Zaehler Timer0 = 0 Zaehler = 0 Load Timer1 , 15625 Return End
Dieser Thread ist nicht mehr aktuell. Eine neue Version befindet sich [Beitrag "Giess-o-mat mit AVR Version 2" hier]
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.