Pflanzengießanlage mit Raspi

Liesel Weppen

Urgestein
Thread Starter
Mitglied seit
20.07.2017
Beiträge
9.015
Weil ich durch das Forum hier auf die Idee gebracht wurde (die sicherlich nicht neu ist) mir eine automatisierte Pflanzengießanlage zu bauen, will ich euch mal an meinem Fortschritt teilhaben lassen.

Wie kam es dazu?
Ich hab hier irgendwo irgendwas über automatisiertes Pflanzengießen gelesen. Da kam mir spontan in den Sinn, ich hab ja einen Raspberry Pi und mit dem müsste das ja irgendwie gehen.
History Repeating: Ich hatte schon vor ~10 Jahren die Idee einfach mal Wetterdaten zu erfassen und wie auch immer auszuwerten. Damals wäre das auf einem Beagleboard gelaufen und ich hab es ziemlich schnell wieder aufgegeben, weil die Softwareentwicklung dafür einfach pures PITA war.

Warum jetzt also doch?
Weil ein Raspi ein vollumfängliches Linuxsystem bereitstellt, auf das ich mit SSH verbinden kann, überhaupt eine Kommandozeile hat und ich im laufenden Betrieb Änderungen vornehmen kann, ohne jedesmal erst einen neuen BSP erstellen muss, diesen aufspielen muss, dann erst sehe ob er läuft, und wenn nicht wos hängt... PITA halt. Deswegen auch möglichst mit einem Raspi direkt... also ohne Arduino oder ähnliches.

Ziel und Einsatzzweck
Ich kann nichts mit zwecklosen "ich will nur mal gucken obs geht" anfangen, ich brauche immer einen praktischen und nützlichen Anwendungsfall. Und ich wenn ich sowas dann schon mache, dann will ich es auch verstehen, statt nur stumpf nachbauen.
Die eigentliche Idee ist, keine 3 Baumtomatenpflanzen im Garten automatisch zu bewässern (und Messwerte zu sammeln, ich bin ein bisschen Datenjunkie).

Hürden und Probleme
Mit Elektronik hatte ich bisher mal so gar nichts am Hut. Schaltungen erstellen, Widerstände, Spannungen messen, ist nicht meine Welt. Aber da muss ich wohl durch. Das Gute daran: Das Projekt lässt sich in einzelne Schritte einteilen. Womit wir bei der Herangehensweise wären. Ich muss nicht die komplette Anlage adhoc zu Ende designen, ich muss auch nicht alles was ich bis zum Ende vielleicht brauche vorab einkaufen, sondern ich kann mich Schritt für Schritt rantasten.

(Finales) Ziel:
  • * Mit Sensoren die Erdfeuchtigkeit in mehreren Behältern auslesen (und natürlich loggen)
  • nach empirisch ermittelten Grenzwerten soll eine Pumpe Wasser in den Kübel pumpen
    • Bevorzugt eine Pumpe für alle zu bewässernden Pflanzen, mit gesteuerten Ventilen an den Auslässen
  • Webinterface mit grafischer Darstellung der Feuchtigkeitsverläufe
  • Da ich im Garten keinen Stromanschluss habe, soll das ganze am Ende via einer Solarzelle samt Akku laufen
Schritt 1:
Einen Raspi aufsetzen der einen Erdfeuchtigkeitssensor ausliest und die Werte loggt.

Schritt 2:
Entsprechend der Erdfeuchtigkeit eine Pumpe ansteuern, die Wasser in den Kübel pumpt.

Schritt 3:
Ein Webinterface erstellen, das die die Verläufe darstellt. Ein Feuchtigkeitsdiagram und wann die Pumpe wie lange lief.

Schritt 4:
Das ganze für mehr als nur eine Pflanze

Schritt 5:
Das ganze mit Solar betreiben.

Schritt X:
Die Weltherrschaft erlangen.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ich sehe das nicht als sinnvollen Ansatz und du wirst früher oder später vor massiven Problemen stehen.

Lass den Pi in der Bude stehen, er kann die Daten wegspeichern. Aber an den Pflanzen solltest du Microcontroller nutzen.
Bei Interesse kann ich das auch etwas genauer erklären.
 
Schritt 1:

Feuchtigkeitssensor anbinden, auslesen und loggen läuft mittlerweile. Weil ich Elektroniknoob bin, habe ich mich zunächst dazu entschieden einen fertigen AD-Wandler (i2c) und fertige Sensoren zu verwenden
Sensor: https://www.amazon.de/gp/product/B07V6M5C4H/
A/D Wandler: https://www.amazon.de/gp/product/B07QHWLTTS/

Läuft soweit erstmal und misst. Das ergab allerdings bereits diverse Erkenntnisse:
  • 1. Der vom Sensor gemeldete Wert entspricht nicht der Feuchtigkeit, sondern eher der Trockenheit. Niedrige Werte sind feucht, hohe Werte sind nass. No big deal, aber ich hätte es anders erwartet.
  • Vermutung: Der Sensor steckt nur ca. 6cm tief in der Erde, aber die Feuchtigkeit sackt ... so vermute ich... nach unten ab.
Erkenntnisse soweit (und das sind für nur Schritt 1 schonmal einige :d):
  • Die fertigen Sensoren messen nur in geringe Tiefe... damit kann man natürlich auch mit rechnen, aber ist ungenau
  • Der fertige Sensor hat Elektronik direkt auf der selben Platine verbaut wie der eigentliche "Fühler"... Kann so man also nicht Outdoor einsetzen. Ausserdem sollen diese Sensoren schnell kaputt gehen, weil Feuchtigkeit nach oben kriecht und die Elektronik beschädigt -> Überraschung... hätte man auch so drauf kommen können
  • => Neuer Schritt 1B: Erdfeuchtigkeitssensoren selbst bauen.
    • Überlegung dazu: Einen resistiven Sensor selbst bauen. Dazu zwei Alustäbe (Alu soll wohl oberflächlich recht schnell korrodieren und schnell einem gewissem Korrosionsstand relativ konstanten Widerstand liefern) in die Erde stecken, die dann auch lang genug sind mehr oder weniger durch die ganze Erde zu messen.
      Eine Schaltung dafür muss ich erst noch bauen. Immerhin habe ich einen Elektronikbastelfreund, der mir bei sowas hilft. Weitere Infos folgen, wenn ich soweit bin.
  • Analog zu obigen Punkten brauche ich einen Wasserstandssensor für das Wasserreservoir (was im ersten Schritt einfach mal ein Eimer mit Wasser sein wird. Zunächst läuft das auch erstmal nur auf meine Zimmerpflanzen), weil die Wasserpumpe definitiv nicht selbstansaugend sein wird und wenn die trockenläuft, geht die Hops. Den Wasserstandssensor will ich ebenfalls selbst bauen, ähnlich zu 1B.
Software:
  • Sämtliche Tutorials basieren auf Python. ICH HASSE PYTHON. Ich mag keine Programmiersprachen, deren Ablauflogik auf Einrückungen im Sourcecode basiert. Aber da muss ich wohl erstmal durch. Ich bin zwar beruflich Softwareentwickler, aber mit Python habe ich nichts am Hut. Grundverständnis ist aber vorhanden, entsprechend kriege ich das auch mit Python hin.
  • Im ersten Schritt habe ich die Sensoren nur ausgelesen (einmal alle 5 min, via Linuxkonsole in einem Screen) und die Werte in eine Textdatei geschrieben. Für erste Erfahrungen hat das gereicht, wurde aber ziemlich schnell recht unpraktikabel.
  • Daher habe ich das Logging auf Speicherung in eine sqlite-Datenbank geändert. Das ermöglicht wesentlich einfacher Zugriffe auf Daten von nur beschränkten Zeiträumen und/oder Datenaggregationen in bestimmten Zeiträumen.
  • Experimente wie man mit Python Diagramme erstellt (matplotlib)
Aktueller Outcome:
graph.png

Wie man evtl. vermuten kann, habe ich bei dem Dropdown ca. 300ml Wasser nachgekippt.
(Im Diagramm ist Wert und Voltage enthalten, weil ich sehen wollte inwiefern diese abweichen)

Generell für Anfänger (wie mich):
Ist nicht ganz billig. Als absoluter Elektroniklaie hatte ich bisher keinerlei Equipment für sowas. Auf der Einkaufsliste stand dementsprechend erstmal einiges, also Grundausstattung:
  • Lötkolben(set)
  • Dritte Hand
  • Multimeter
  • Breadbord
  • Diverse M2M, M2F, F2F Kabel für Steckverbindungen, Krokodilklemmen
  • Widerstände, Transistoren, etc (hab mir da jetzt mal ein Anfängerset mit diversen Teilen bestellt)
Installation soweit mit Messung in nur einem Kübel:

giesssystem1.jpeg
 
Zuletzt bearbeitet:
Heutiger Fortschritt:

  • Breadboard umverkabelt, für bessere Verbindungsorganisation und damit mehr drauf passt
  • DHT11 Temperatur- und Feuchtigkeitssensor angeschlossen, auslesen und mit in die DB schreiben. Also für die Raumtemperatur.
  • Versucht eine Pfostenleiste an ein Kabel zu löten, nach einer Stunde frickeln aufgegeben und Kabelschnellverbinder mit Breadboardkabel benutzt (Löten muss ich noch üben :ROFLMAO:)
  • Zweiten Feuchtigkeitssensor angeschlossen. Der liefert ganze andere Werte als der erste, aber das könnte evtl. auch an der Kabelverbindung (mit den Klemmen) liegen.
  • Auslesescripte geändert das jeder Wert einer Ausleserunde mit dem gleichen Timestamp ins SQL geschrieben wird
  • Dabei bemerkt das meine Timestampspalten im SQL nicht vom Typ Timestamp waren ,also Datenbank neu, Messwerte wieder von vorne sammeln. Das wird sicherlich noch öfter vorkommen
  • Versucht zweiten AD-Wandler (für weitere 4 Kanäle) anzuschließen, hat aber bisher nicht geklappt. Wird nicht mit einer separaten Adresse am I2C-Bus erkannt, stört aber die Messwerte vom ersten. Ja, ich hab den ADDR-Anschluss entsprechend angeklemmt (links sieht man es, rechts ist es von dem weißen Kabel verdeckt) so das beide eigentlich unterschiedliche I2C-Adressen haben sollten. (deswegen sind die Versorgungskabel auf dem Bild auch wieder ausgesteckt)
  • Farbkodierung von Widerständen wiederentdeckt (war schonmal im Physikunterricht in der Schule dran) und festgestellt, das es unmöglich ist diese zu lesen, wenn man eine starke Rot-Grün-Störung hat, also Widerstände mit dem Multimeter messen
  • Festgestellt, das meine Dritte Hand scheiße ist. Der Sockel ist einfach viel zu leicht, verschiebt sich bei der kleinsten Berührung oder wenn z.B. ein Kabel dranhängt. Ausserdem greifen die Klemmen nicht richtig. Wie immer: Wer billig kauft, kauft zweimal.
  • Festgestellt, das mein Lötkolbenhalter Müll ist (oder nicht zu meinem Lötkolben passt). Die Lötspitze berührt die Metallhalterung und das kühlt die Spitze soweit ab, das man nichtmehr löten kann, wenn man den Kolben gerade erst rausgenommen hat.
IMG_20210417_170509.jpg
 
Daher habe ich das Logging auf Speicherung in eine sqlite-Datenbank geändert. Das ermöglicht wesentlich einfacher Zugriffe auf Daten von nur beschränkten Zeiträumen und/oder Datenaggregationen in bestimmten Zeiträumen.

Ein Webinterface erstellen, das die die Verläufe darstellt. Ein Feuchtigkeitsdiagram und wann die Pumpe wie lange lief.

Schau dir hierzu doch einfach mal Prometheus in Verbindung mit Grafana an. Ich denke das führt dich direkt ans Ziel :)
 
Schau dir hierzu doch einfach mal Prometheus in Verbindung mit Grafana an. Ich denke das führt dich direkt ans Ziel :)
Guter Hinweis.
Die Datenerfassung und Speicherung (und Steuerung) will ich allerdings schon möglichst generisch haben, auch wenn das mit Prometheus womöglich auch irgendwie geht, hab ich das zumindest vorerst doch lieber in meinen Scripten und die Daten universaltauglich in sqlite.

Aber Grafana alleine visualisiert das doch ganz praktisch. Jedenfalls deutlich einfacher als das Gefummle mit Matplotlib. :d

Läuft auch schon:
grafana.png
 
Nices Projekt, hatte ich mir auch mal vorgenommen und nie umgesetzt.
Bin sehr gespannt und werde wohl an dir lernen, also gern weiter so ;)
 
Kleines Update:

An der Hardware habe ich bisher kaum weitergebastelt. Nächster Schritt wäre die Pumpe anzusteuern, was allerdings relativ trivial sein dürfte. Auch der zweite ADC läuft noch nicht, wobei ich den aktuell noch nicht unbedingt brauche. Momentan sind die beiden Sensoren jeweils mit beiden Anschlüssen angeschlossen. Allerdings ist der zweite Messwert praktisch irrelevant, wenn ich mir die Daten so angucke. Ich hab also am ersten ADC immernoch zwei Kanäle frei.

Und da bin ich derzeit eher am analysieren der bisherigen Messwerte. Rausfinden was die Sensoren überhaupt messen, wo Grenzwerte wären, ab denen man Bewässern würde. Was für Einflüsse es hat, wie tief oder wo die Sensoren im Topf stecken, ...
Dabei hat sich als recht praktisch herausgestellt, das man in Grafana in den Graphen Notizen einbinden kann. Wann wurde (manuell) gegossen, wie war die gefühlte Feuchtigkeit, etc.

Was mich am basteln der Hardware momentan abhält sind fehlende Teile. Ich bräuchte noch Schlauchverbinder, T-Stücke, Adapterstücke für unterschiedliche Durchmesser (Pumpe und Schlauch haben aktuell 8mm, meine beiden Testventile haben aber 3mm-Anschlüsse (und sind obendrein 5V, geht also nicht direkt an einem GPIO, weil die 3,3V liefern... beim Bestellen mal wieder nicht genau genug hingeguckt)).
Das ganze online zusammenzusuchen ist echt mühsam.
Wäre echt praktisch, wenn man einfach in einen Baumarkt gehen könnte (oder ein Aquariengeschäft) und einfach mal gucken könnte, was es so gibt. :/
Gleiches gilt für einen selbstgebauten Feuchtigkeitsmesser...

Was quasi sowieso klar war, aber meine Messungen jetzt auch bestätigt haben:
Ist die Erde erstmal pfurztrocken, nimmt sie auch kaum mehr Wasser auf. Gibt dann vom Sensor natürlich kurze Spikes nach unten, geht dann aber auch schnell wieder hoch. (Siehe das erste Bild oben). Kriegt man die Erde dann durch konstantes Gießen mit kleineren Mengen wieder "rehydriert", wird der Verlauf deutlich flacher.

Noch eine Erkenntnis:
Der Pi läuft jetzt seit etwas über einer Woche übers Stromzählergerät. Und steht jetzt bei 7d 19h bei 0,484kWh. Macht also einen Durchschnittsverbrauch von 2,588W. Dabei habe ich aber auch per SSH auf dem Pi rumgespielt und diverse SQLs ausprobiert und "früher" auch Graphen mit Mathplotlib generiert. Selbst dabei war der Spitzenverbrauch nur 4,8W.
Und da ist noch das USB-Netzteil (also 230V Netzstrom auf 5V USB) mitgemessen.

Edit: Hab gerade doch noch ein bisschen mit der Pumpe rumgebastelt. Allerdings sind meine ganzen Kabelreste alles Litzenkabel (alte Telefonkabel, Patchkabel, Lautsprecherkabel, ...) und die sind nervig (zum Löten umständlich und zum Stecken unmöglich). Also erstmal 20m Netzwerkverlegekabel bestellt (ist vieeeeel günstiger, als diverse Einzelkabelsets).
 
Zuletzt bearbeitet:
Zwei neue Erkenntnisse:

  1. Sensor 1 meldet Werte grob zwischen 0 und 1500. Werte etwas über 0 ist frisch gegossen, 1500 ist pfurztrocken.
    Sensor 2 meldet Werte zwischen ~80 und 150. Ebenso 80 = nass, 150 ist trocken. Hab mich schon gewundert, wie oben ja auch schon geschrieben.
    Bin jetzt auf die Idee gekommen, einfach mal den Sensor auszutauschen (hab ja 5 davon) und siehe da, der neue Sensor liefert mit jetzt urplötzlich Werte um die 500. Ob das einigermaßen zu den Werten des ersten Sensors passt, wird sich erst noch zeigen, aber sieht jedenfalls schonmal besser aus.
  2. Grafana ist so "schlau" und interpretiert Timestamps aus der Datenbank als UTC und konvertiert sie automatisch zur lokalen Zeitzone. Ich hab die Werte aber bereits in der lokalen Zeitzone in die DB geschrieben. Da wird aktuell UTC+2 haben, hat Grafana die Werte der letzten 2h nie angezeigt.
    Und ich hab mich schon gewundert, warum die Werte erst ca. 2h nach dem ich gegossen habe, wirklich fallen. Habe aber zunächst gedacht, das sich da das Wasser ggf. erst in der Erde verteilt und die Feuchtigkeit so den Sensor erst verzögert erreicht.
    Jetzt schreibe ich die Zeiten in UTC in die Datenbank, was mir natürlich die aktuellen Anzeige verhagelt. Obs also jetzt passt, wird sich in ein paar Stunden zeigen. Hätte aber sowieso spätestens bei der nächsten *#!?% Zeitumstellung zu Problemen geführt.
Punkt 2 ist mir aufgefallen, weil ich einen zweiten Graph drübergelegt habe der die Feuchtigkeit als Durchschnittswert über jeweils 2h ausgibt. Das war gedacht um längerfristige Mittelwerte zu erhalten anhand denen ich entscheiden kann, ob ich die (noch nicht vorhandene) Pumpe einschalte. Man will ja nicht die Pumpe einschalten, nur weil ein einzelner Messwert gerade mal über dem Grenzwert lag... Da ich dabei allerdings entsprechend mit den Timestamps rumgerechnet habe, kam da wohl irgendwie schon UTC raus... die Kurve wurde also um 2h versetzt angezeigt.
 
Nochmal kurzer Zwischenstand:

Zwei Schwimmerschalter sind angekommen. Die werden quasi über der Pumpe vorerst am Schlauch befestigt und direkt in den 12V-Stromkreis der Pumpe geschaltet. Somit ist die Pumpe hardwareseitig deaktiviert, wenn der Wasserspiegel zu niedrig wird und die Pumpe damit vor eventuellen Softwarefehlern geschützt. Die geht nämlich hopps, wenn sie trockenläuft.
Am Ende muss natürlich sichergestellt sein, das Pumpe samt Schwimmerschalter im Regenwasserfass aufrecht stehen bleibt. Ich denke da an eine Art schwere Bodenplatte auf der irgendwie die Pumpe samt Schalter befestigt ist, womit der Schalter immer über der Pumpe steht und das ganze nichtmehr kippen kann.
Trivial aber "unkaufbar": "Adapterhülsen" von 8mm Innendurchmesser Schlauch auf 3mm Aussendurchmesser der Anschlüsse der Magnetventile (praktisch ein 8mm Zylinder mit einem 3mm Loch in der Mitte) kriege ich (hoffentlich) am Wochenende von einem Kumpel aus seinem 3D-Drucker.

Die Sensorwerte bereiten mir immernoch Kopfzerbrechen. Die schwanken irgendwie schon stark.
Pflanze 2 ist gefühlt immernoch recht feucht, passt also erstmal, aber warum der Wert tendentiell eher fällt, erschließt sich mir nicht.
Pflanze 1 schwankt stark, ist gefühlt aber auch noch gut feucht, die Peakwerte wären aber nach meiner bisherigen Erfahrung schon im Bereich "sollte gegossen werden".

Die Sensoren messen natürlich nur recht punktuell. Ich weiß allerdings nicht, ob das das Problem ist.

Es dürfen übrigens gerne Theorien geäussert und/oder Fragen gestellt werden. ;)

Lustigerweise habe ich festgestellt, das sowas ähnliches sogar schonmal erfolgreich Crowdfunded wurde:
Ist allerdings auf 4 Pflanzen beschränkt, benutzt soweit ich das verstanden habe 4 Pumpen für 4 Pflanzen, hat keinen Pumpenschutz ala Schimmerschalter oder ähnliches und ksotet dafür happige 175$, ohne den Raspi.
 

Anhänge

  • Bildschirmfoto_2021-04-28_22-06-43.png
    Bildschirmfoto_2021-04-28_22-06-43.png
    19,1 KB · Aufrufe: 78
Zuletzt bearbeitet:
HAHA! Neue Erkenntnis.

Die sporadischen Dips sind mir auch schon aufgefallen:
1619645564918.png


Ein Freund hat mich darauf hingewiesen, das er schon Erfahrungen damit gemacht hat, das der Pi manchmal Probleme mit der Spannungsversorgung hat, wenn das USB-Nezteil schlecht ist und/oder die Kabel der Spannungsversorgung zu dünn sind.
Hab jetzt mal den Stromanschluss des Pis durch eine Powerbank geschleift, die eventuelle Spannungsengpässe des Netzteils ausgleichen sollte und siehe da, obwohl ich nichts ausser dem Stromanschluss des Pis geändert habe, kriege ich auf einmal viel höhere Werte von den Sensoren
1619645877689.png

Der Dip war ein anderer Versuch, wo der Pi aber auch "Low Voltage" gemeldet hat.
 

Anhänge

  • 1619645551591.png
    1619645551591.png
    18,8 KB · Aufrufe: 62
Wer misst, misst Mist. Again confirmed...

Ich war wohl zu optimistisch und bin wie gesagt Elektronik-DAU.
Sämtliche Tutorials im Internet die sowas beschreiben, "eichen" die kapazitiven Sensoren, indem sie einen Messwert an Luft (= 0% Feuchtigkeit) nehmen und einen anderen Messwert aus einem Glas Wasser (=100% Feuchtigkeit).

Weil mich meine Messwerte wunderten, hab ich mit den nackten Sensoren rumgespielt und auch mit dem Multimeter die gemessenen Spannung nachgemessen um eventuelle unbeabsichtigte Kurzschlüsse oder ähnliches auszuschließen. Die Spannungen passen zu den Messwerten vom ADC. Der ADC funktioniert also wie er soll.

Sensor trocken an Luft liefert 0V.
Sensor in einem Glas Wasser (ca. 250ml) liefert ca. 0,05V. Also praktisch auch Null.
Sensor in die Faust genommen liefert ca. 0,1V. Auch fast Null.
Sensor in einem feuchten Tuch in der Faust, liefert 0,5V... also immerhin etwas.

Wie kommts? Nun, ich bin immernoch nur noch Elektroniklaie, aber... ein kapazitiver Sensor misst die elektrische Speicherkapazität seiner Umgebung. Richtig?
Die Speicherkapazität von 250ml Wasser ist wohl relativ gering.
Die Speicherkapazität meiner Hand/Körpers ist auch relativ gering, wobei da wohl eher die Kontaktfläche ein Problem ist.
Mache ich die Hand nass, ist das Kontaktproblem gelöst und ich messe quasi die Kapazität meines Körpers.

Und siehe da: Messwert in einem 300ml Glas Wasser ist nahezu Null, aber wenn ich den Sensor in einen Eimer mit 3l Wasser halte, was natürlich eine wesentlich höhere Kapazität hat, kriege ich auf einmal Messwerte um 1V. Also ~ das 10fache.

Doh!

Das Positive daran: Ein kapazitiver Sensor misst quasi wirklich den kompletten Wassergehalt in einem Kübel statt nur einen punktuellen Wert (wie es ein resistiver Sensor tun würde)
Das Negative daran: Die Messwerte sind selbst bei "gleicher" Feuchtigkeit vom Volumen des Kübels abhängig.

Halbwegs tauglicher empirischer Beweiß:

Pflanze 1 ist in einem Kübel mit 26cm Durchmesser und 20cm Höhe = 10600ccm
Pflanze 2 ist in einem Kübel mit 20cm Durchmesser und 17cm Höhe = 5780ccm

Nun kann ich natürlich nicht absolut bestimmen ob Kübel 1 und Kübel 2 exakt gleich feucht sind, aber das erklärt, warum die Messwerte von Kübel 1 round about doppelt so hoch sind wie die von Kübel 2.

Umkehrschluss: Da ich ja die Volumina der Kübel kenne, kann ich die Messwerte doch halbwegs gezielt interpretieren.

Wiedermal bestätigt: Glaube nichts, was du im Internet ließt.
Diverse Selbstbaututorials aus dem Internet für sowas funktionieren also NUR, wenn man gleichgroße Kübel bewässern will und die "Eichung" mit einem Glas Wasser ist gelinde gesagt absoluter Bullshit.

Mein zweiter ADC funktioniert übrigens auch nicht solo. Was wohl auch erklären dürfte, warum er nicht unter einer separaten Adresse am I2C-Bus erkannt wird. Genaue Fehlersuche ist noch ausstehend. Evtl. sind die Lötstellen nicht gut genug.

Das ganze Projekt erweist sich als komplexer als ursprünglich gedacht. Wie zu erwarten war, auf der Elektronikseite. Aber jetzt will ichs erst recht wissen. :d
 
Super mach weiter so
Beitrag automatisch zusammengeführt:

Magst du mittlerweile Python?
 
Zuletzt bearbeitet:
Magst du mittlerweile Python?
Nö, nicht wirklich. Momentan ist es noch nicht viel Code. Das meiste habe ich direkt mit nano auf der Konsole geschrieben. Letztens habe ich für größere Umbauarbeiten aber den QtCreator verwendet... der war aber (selbstverständlich) auf Leerzeichen statt Tabs eingestellt. Das mochte aber Python nicht. Alleine schon deswegen hasse ich Python. :d
 
Solange es konsistent verwendet wird ist dies sogar unwichtig..
Ich kann dir spyder für python empfehlen.. da hast auch ein paar ordentliche Tooltipps für den Anfang. Falls du Student bistt, dann empfehle ich Jetbrains
 
Ich nutze immer 4 spaces anstatt einem Tab. Hatte damit noch nie Probleme mit python.

PS: wieso hab ich den Verdacht, dass in Topf 1 und 2 später mal je ein Brokkoli wachsen soll?

PPS: ich empfehle dir natürlich neovim. 👍
 
Solange es konsistent verwendet wird ist dies sogar unwichtig..
Richtig, aber ich verwende nicht immer den gleichen Editor, diverse Editoren haben andere Voreinstellungen und ich installiere mir sicher nicht für jede Sprache einen extra Editor und die Verfügbarkeit ist nicht immer gleich, wenn ich irgendwo mit SSH drauf bin und eine Kleineigkeit ändern muss, mache ich das direkt mit nano (wenn nano nicht da ist, dann halt vi). Und wenn dann noch mehrere Leute zusammen an einem Projekt arbeiten und jeder seinen bevorzugten Editor benutzt, ist die Katastrophe schon vorprogrammiert, wie sich beruflich in diversen Pythonprojekten auch schon öfter gezeigt hat.

Aber gut, um Python ansich solls hier nicht gehen. ;)
 
Neuigkeiten von der Bewässerungsfront:

Hab die Kontakte meines zweiten ADCs nochmal nachgelötet. Er wird jetzt solo erkannt. War also offensichtlich wirklich ein Kontaktproblem. Im Doppelbetrieb hab ich noch nicht getestet.

Hab mir jetzt nach bestem Gewissen und Können an ein Aderpaar aus dem Netzwerkkabel Pfostenleisten gelötet. Da kann ich jetzt direkt die Anchlusskabel die bei den Sensoren dabei waren aufstecken. Sitzt jetzt alles straffer, somit sollten Differenzen durch Kontaktprobleme minimiert sein.
Und damit hab ich jetzt alle meine 5 Sensoren mal getestet. Hab mir ein kleines Script geschrieben, das 5 Messwerte im Abstand von 3s nimmt und den Durchschnitt berechnet:

Sensor 1Sensor 2Sensor 3Sensor 4Sensor 5
Luft14158416
Wasser 1l344393426393266
Wasser 2l558428561679408
Wasser 3l667610597690370
Wasser 4l629624621758464
Wasser 5l724658670751468

Bestätigt meine Theorie soweit. Ist aber irgendwie komplett seltsam, weil nach den bisherigen Experimenten war ein hoher Wert trocken, ein niedriger Nass.
Jetzt ist es auf einmal genau andersrum.... Kann ich mir nicht wirklich erklären.

Sensor 5 ist übrigens der, der auch im Pflanzenkübel schon auffällig niedrige Werte geliefert hat.

Sieht auch so aus, als würde man sich mit 5 Litern allmählich der Grenze der Kapazitätsmessung nähern.

Was mich auch wundert: Die vom ADC gemeldeten Spannungen waren auch bei den hohen Werten immernoch kleiner als 0,1V. Ich versorge die Sensoren mit 3,3V... da würde ich deutlich höhere Spannungen erwarten. Also irgendwie so vielleicht 1-1,5V? Mehr als das 100-fache...
Ich hab nur bisher keine vernünftige Spezifikation zu den Sensoren gefunden. Je nachdem was die Schaltung auf dem Zeug macht, kann das auch stimmen.
Ist aber irgendwie ziemlich doof. Mein aktueller ADS1115 ist ein 16Bit ADC. Wenn man das jetzt so direkt an einem 10- oder gar nur 8bit ADC betreibt, kommen ja ggf bei derartig niedrigen Spannungen schon kaum mehr Unterschiede raus?!

Ich will jetzt demnächst mal noch andere Sachen testen. Z.b. ein nasser Schwamm, wo man den Sensor reinsteckt. Der ist flexibler als Erde und sollte einen gleichmäßigeren Druck auf die Sensorflächen ausüben. Evtl spielt auch der Kontakt der Sensorfläche zum Medium noch eine Rolle.

Undervoltage meldet der Pi immernoch gelegentlich. Hab bei meinen Versuchsmessungen darauf geachtet. Auf die Sensoren scheint es kaum Einfluss zu haben, die Werte sind jedenfalls nicht wahrnehmbar gefallen, wenn der Pi grad mal Undervoltage gemeldet hat. Die wird anscheinend auch nicht durch die Sensoren verursacht, die kam auch hin und wieder mal, wenn ich gar keinen Sensor dran hatte. Ich hab eher den Eindruck, die kommen, wenn der Pi aus irgendwelchen Sleepmodes aufwacht. Die kamen nämlich durchaus, wenn ich nach 5min nix tun, dann auf der Konsole auf einmal auch nur die History abgerufen habe.
Edit: Gerade mal ein USB-Netzteil mit 4A bestellt (für nen Raspi3B+ sollten es wohl 2,5A sein), soll laut Amazon sogar morgen noch geliefert werden. Da bin ich mal gespannt. Das sollte dann auf jedenfall reichen.

Irgendwie alles komplett seltsam.

Ah fast vergessen: Das innere Rohr von meinem Lötkolbenhalter konnte man mit mehr oder weniger Gewalt entfernen. Jetzt klappt das auch. :d

Sensor 1 und 4 hab ich jetzt mal wieder in Pflanzenkübel gesteckt. Sensor 1 meldet vom großen Kübel ~1800, Sensor 4 aus dem kleinen Kübel ~1400. Sollten beide recht trocken sein. Also doch wieder hohe Werte für trocken? Naja, ich lass jetzt mal bis morgen laufen und dann wird gegossen. Mal gucken was passiert.
 
Zuletzt bearbeitet:
So, mit dem 4A-Netzteil hatte ich jetzt keinerlei Undervoltages mehr. Die Messwerte haben damit allerdings nochmal einen Satz nach oben gemacht. Hab noch rausgefunden, das meine Powerbank nur max. 2,1A ausspuckt. Das reicht dann also wohl schon nicht mehr für den Pi. Der will also offensichtlich sporadisch tatsächlich seine vollen 2,5A, auch wenn er eigentlich "nix" tut, bzw. sobald er kurz überhaupt mal irgendwas tut. Hab nebenbei bemerkt, das wenn ich im Browser die Grafana-Ansicht aktualisiere kurzzeitig ein Kern mal auf 100% springt und das gab dann Undervoltage.

Hab rausgefunden, das die AnalogIn-Funktion der adafruit-Lib NICHT "jetzt einmal Sensor auslesen" ist, sondern eine Klasse zurückgibt und jeder einzelne Zugriff auf deren "value" oder "volatage" ist "einmal Sensor auslesen". Sowas steht natürlich nicht in der nicht-vorhandenen Doku (und wird auch in diversen Tutorials entsprechend häufig falsch verwendet) *doh*
Hab ich schonmal erwähnt, das ich Python nicht mag, bzw. allgemein untypisierte Sprachen? (In C hätte man sowas direkt vermuten können, sobald man merkt, das der Rückgabewert ein Pointer oder eine Referenz ist)

Im Kübel kriege ich jetzt wieder hohe Werte für Trocken und die Werte fallen, wenn ich gieße. Also das Gegenteil meiner "Wasserkalibrierung".

ist so eine halbwegs-Spec, die aber auch sagt, das Luft hohe Werte und Wasser niedrige Werte messen sollte. Sie erwähnt aber ebenfalls nicht, ob das Volumen eine Rolle spielt.

Der hier erklärts sogar:
There is a fixed frequency oscillator that is built with a 555 Timer IC. The square wave generated is then fed to the sensor like a capacitor. To a square wave signal that capacitor, however, has a certain reactance, or for argument’s sake a resistance that forms a voltage divider with a pure ohm type resistor (the 10k one on pin 3). The greater is the soil moisture, the higher the capacitance of the sensor. Consequently, there is a smaller reactance to the square wave, thus lowering the voltage on the signal line.

Warum isses dann bei mir in Wasser und Luft genau andersrum, aber in Erde wiederrum richtig?
 
Zuletzt bearbeitet:
Doh... ich bin so dumm... :rolleyes2:

Entweder ich hab einige mistige Tutorials gelesen, oder die hatten andere Sensoren und ich habs nicht gemerkt, oder ich habs missverstanden.

Die Sensoren haben 3 Anschlüsse. Irgendwie war ich der Annahme, das man nur GND und DATA verbinden müsste... was für einen resistiven Sensor mit Spannungsteiler ja auch ausreichen würde.

Hab mir oben gepostetes Quote nochmal durch den Kopf gehen lassen und obendrein nochmal einen Schaltplan dieser Sensoren angeguckt (auch wenn ich den nicht wirklich verstehe) und dann... moment, ein Oszi ist doch ein aktives Bauteil, das braucht Betriebsspannung. So eine kommt aber doch am Sensor gar nicht an. Ja, der dritte Anschluss ist VCC... klar...
Also neue Kabel gebastelt mit 3 Adern, entsprechend angeschlossen und siehe da, jetzt krieg ich auch beim Wassertest Werte wie sie sein sollen. :d

Ein zweiter DHT11 für Luftfeuchtigkeit und Temperatur hängt jetzt auch an nem Kabel aus dem Fenster.
 
Zuletzt bearbeitet:
News today:

Hab heut mehr oder weniger den ganzen Tag dran rumgebastelt und hoffe mindestens der Kack mit den Sensoren war ein Durchbruch.
Also nochmal eine kurze Zusammenfassung der letzten Tage und heutiger Ergebnisse (unter anderem zur Belustigung meiner treuen Leser :d):
  • Der Lötkolbenhalter ist mit dem "ausgebauten" Mittelrohr durchaus brauchbar. Evtl schraube ich noch irgendwas als Beschwerung dran, damit er noch stabiler steht.
  • Ich kriegs mittlerweile einigermaßen hin Kabel an Steckleisten zu löten, ohne das dabei auch gleich die Plastikschiene wegbruzelt (zumindest wenn ich vorher nicht 5 Kaffee intus habe)
  • Auslesen der Sensoren in einem Script mit Endlosschleife mit sleep(300) driftet natürlich. Hat mich genervt, deswegen hab ich das Auslesen der Sensoren jetzt auf einen Cronjob umgestellt. Praktischer Nebeneffekt: Läuft jetzt auch direkt an, wenn ich den PI mal reboote
  • Zweiter DHT11 für Temperatur und Luftfeuchtigkeit angeschlossen, der an einem Kabel aus dem Fenster hängt. Misst also die Aussenwerte. Hat jetzt so erstmal nichts mit dem Projekt zu tun, aber wenn ich hier schon einen Pi 24/7 loggen lasse, interessiert mich das einfach. :d
  • Hab mit der Pumpe rumgespielt. Sie pumpt. Klappt auch mit dem Schwimmerschalter. Ich brauche aber noch eine Lösung um den Schwimmerschalter entsprechend fest mit der Pumpe zu verbinden. Eine Konstrukt das die Pumpe mit dem Schwimmerschalter verbindet und 3D-gedruckt werden kann ist in Planung. Ich hab allerdings keine Ahnung von CAD und hoffe auf Hilfe von ein paar Freunden, wenn man sich mal wieder trifft. Und natürlich auf die Hilfe von meinem anderen Kumpel mit dem 3D-Drucker.
  • Die Pumpe macht überraschender Weiße durchaus gefühlt einen gewissen Druck. Könnte also durchaus klappen da später noch Sprinkler anzuschließen.
  • Hab mir die Schaltrelais für die Pumpe genauer angeguckt. Laut einem Freund von mir, sollte ich die Pumpe aber "einfach" mit einem Transistor steuern können. Das wäre vom Aufbau her simpler und auch günstiger. Werde ich ausprobieren.
  • Und wenn ich schon 3D-Drucke kriege, ist ein Gehäuse für die Sensoren geplant. Der Zweck dabei ist, das ich einen Anschlag hinkriege der die Eindringtiefe der Sensoren in die Erde mehr oder weniger genau begrenzt. Das hat nämlich durchaus Einfluss auf die Messwerte. Obendrein soll das Gehäuse die Sensorelektronik zumindest halbwegs vor Spritzwasser schützen, wirklich wasserdicht wirds vorerst eher nicht, muss es aber auch nicht.
  • Die SQLs von Grafana angepasst, so das bei der 2h-Trendberechnung jetzt der rechte Wert der Durchschnitt der Messwerte der letzten 2h der Werte der linken Messwerte ist. Die Linie der letzten 2 noch nicht kompletten Stunden ändert sich jetzt also mit jedem neuen Messwert. Was ich auch genau so haben will.
  • Der DHT11 meldet immermal wieder Ausrutscher. Seltsamerweise immer 148 Humidity und 9 Temperatur. Hab genau dieser Werte mal aus der Grafana-Darstellung verbannt.
Obendrein werde ich alt. Hab heute gefühlt Stunden damit verbracht irgendwelches Werkzeug zu suchen, nur um dann festzustellen, das es rechts neben mir auf dem Schreibtisch lag. Bin schon am Überlegen ob ich mir zwischen Schreibtisch und Wand ein Holzbrett einzuklemmen um daran Werkzeugaufhänger zu machen.

Die nächste Amazonbestellung ging heute auch raus. Was man nicht alles so braucht...
  • Kabelbinder
  • Ein USB-Ventilator um beim Löten die Dämpfe wegzublasen
  • Messschieber (brauch ich um die Rohdaten für potentielle 3D-Drucke auszumessen)
  • Ein weiteres USB-Netzteil mit mehreren USB-Anschlüssen. Brauch ich für meine Schwanenhals-Schreibtischlampe und dann demnächst für den USB-Ventilator
Man hat ja sonst keine Hobbies.

Vielen Dank übrigens an die bisherigen "Liker". Freut mich ungemein zu sehen, das wenigstens ein paar Leute mitlesen und hoffentlich Spaß dran haben, wie ich hier an Elektronikschaltungen verzweifle. :d

Zum Schluss noch ein Screenshot der aktuellen Werte. Davon ausgehend, das ich die Sensoren jetzt endlich richtig angeschlossen habe und die mit 16bit gewandelt werden, sieht man aktuell schon nach wenigen Stunden einen aufwärtstrend. Wobei aufwärts jetzt heißen sollte, das die Erde trockener wird. Sieht noch etwas wild aus, aber da der Trockenwert jetzt wohl irgendwo bei etwa 20.000 liegen sollte aber das Diagramm mangels Maximalwerten noch recht klein skaliert, sollten die heftig aussehenden Schwankungen letztendlich nur im Promillebereich liegen.

Wer Fragen hat, warum ich was wie mache... nur zu.
 

Anhänge

  • Bildschirmfoto_2021-05-09_22-29-33.png
    Bildschirmfoto_2021-05-09_22-29-33.png
    44,6 KB · Aufrufe: 91
Zuletzt bearbeitet:
So, nachdem ich die Sensoren "richtig" angeschlossen habe, kam leider immernoch nur Mist raus.
Raus kamen nur noch Werte im niedrigen zweistelligen Bereich (0,00xV), wie man an den Screenshots auch sieht.
Da die gemessene Spannung nahe Null ist, dachte ich zunächst an einen Kurschluss irgendwo, mglw. immernoch eine unsaubere Lötstelle am ADC oder sowas. Also habe ich mich auf die Suche begeben und zuerst mal die Sensoren alleine mit dem Multimeter versucht zu messen.

Ergebnis: 10-20mV am Datapin. Egal ob trocken oder in Wasser und mit 3 verschiedenen Sensoren probiert.
Soweit so gut, also messen die Sensoren schon nichts. Aber warum? Sind meine Sensoren kaputt? Aber gleich alle 5 (bzw. die drei nachgemessenen)?

Ich war also schon auf dem Weg zu Amazon um mir nochmal ein 5-er Pack zu bestellen, hab dann aber nochmal einen Blick auf die Rezensionen geworfen. Und siehe da, manchmal können sogar Amazonrezensionen hilfreich sein:
Eine 2-Sterne Bewertung sagt, der Sensor funktiniert nicht mit 3,3V, aber mit 5V (*). Und eine potentielle Erklärung wurde gleich mitgeliefert. Auf DIESEN Sensoren ist ein IC NE555 verbaut (kann ich bestätigen) der aber laut Datenblatt eine Spannung von mindestens 4,5V benötigt. Andere "gleiche" Sensoren haben dagegen wohl einen TLC555, der mit 3,3V funktioniert.

Also meinen Testaufbau nochmal rausgeholt, die Sensoren an 5V angeschlossen und siehe da: Es klappt.

Das erklärt dann wohl auch, warum der Sensor in diversen Tutorials an 3,3V einwandfrei tut, manche (wenige) allerdings tatsächlich schrieben, man sollte den Sensor mit 5V betreiben.

Die Sensoren mit 5V zu versorgen wäre kein Problem, der Arduino hat ja auch 5V. Ich bin mir aber unsicher, ob mein ADC, der ja auf 3,3V ausgelegt ist, nicht ggf. ein Problem kriegt, wenn die Spannung am Messpin >3,3V ist? Der Sensor hat jetzt an Luft z.B. 4V gemessen.
Ich hoffe mal auf "das geht schon" und probiers wohl einfach mal.

(*) Fairer Weise will ich aber trotzdem erwähnen, das in der Beschreibung zu den Sensoren bei diesem Anbieter nichts von 3,3V steht, sondern als Spannung 5V angegeben ist.
 
Zuletzt bearbeitet:
So, jetzt wirds hoffentlich endlich mal was:
1620915076662.png


Die jetzt mit 5V und richtig angeschlossenen Sensoren machen sich auch beim Stromverbrauch schon bemerkbar. Bin jetzt schon bei 3W (statt vorher 2,6W). Wäre also auch noch eine weitere Überlegung die Sensoren nur zum Messen kurz einzuschalten... eigentlich kann man den ADC auch mit ausschalten... Da ists dann halt jetzt nur schon wieder saudoof das ich mit 3,3V und 5V zwei Stromkreise brauche... in Hinblick auf späteren Akku/Soloarbetrieb.
 
Zuletzt bearbeitet:
Ich bin mir aber unsicher, ob mein ADC, der ja auf 3,3V ausgelegt ist, nicht ggf. ein Problem kriegt, wenn die Spannung am Messpin >3,3V ist?
Was sagt das Datenblatt?
Analog Input Voltage Max VDD+0,3
Passt
Wäre also auch noch eine weitere Überlegung die Sensoren nur zum Messen kurz einzuschalten
Ähm ja das ist sowieso eine gute Idee
Akku/Soloarbetrieb.
Ich rate immer noch davon ab den Pi draußen hinzustellen.
 
Es gibt so Lack. Damit kannste den Kuchen einlullen damit er beständiger ist. Auch eine ip65er Verteilerbox dazu, dann geht das draussen..
 
So, ein kleines Update und meine Interpretation dazu.

Die Sensoren scheinen jetzt zu funktionieren. Sieht aktuell so aus:
1621190104122.png


Die Höchststände ganz links bei ~30K sind an Luft. Der Abfall direkt danach ist in Wasser (~14K).
Alles danach ist in den jeweiligen Töpfen.

Gelb scheint schon den maximalen Trockenheitsgrad im Topf erreicht zu haben. Der Abfall ganz rechts kommt daher, das ich alle 30min 20ml aus einer Spritze "gegossen" habe. Letztendlich 7 mal, also am Ende 140ml.

Grün trocknet noch weiter aus. Das lasse ich also erstmal noch weiter laufen.

Die Testerde ist nur ein Joghurtbecher mit ca. 150ml Fassungsvermögen. Der erste Spike war wirklich furztrockene Erde, die ich nach und nach mit 20ml gegossen habe. Das sind die Stufen. Der Trockenwert scheint nach anfänglichem gießen aber auch kaum mehr über knapp 15K zu kommen. Das anfänglich überhaupt nichts gemessen wurde (also ~30K) könnte auch ein Kontaktproblem am Sensor sein, der sich durch erste Bewässerung gelöst hat. Das er später trotzdem nicht wieder höher kommt, wundert mich auch. Könnte aber evtl. tatsächlich mit dem Volumen zusammenhängen.

Es sieht so aus als würde man die absoluten Luft-Wasser-Werte im Topf praktisch eh nie erreichen. Der Min und Max-Wert in der Erde liegt also trotzdem noch irgendwo dazwischen. Klingt für mich plausibel, denn am Ende wird die Erde alleine schon durch Luftfeuchtigkeit nie absolut trocken.

Den Dip um kurz vor 16.05 0 Uhr kann ich mir nicht erklären.

Die drei kleinen Dips, die auf allen 3 Kurven ersichtlich sind, lagen höchstwahrscheinlich daran, das der Raspi laut Crontab täglich um 06:25 nach Updates sucht. Also mal kurz Last anliegt und der Sensor wird natürlich auch genau um 06:25 abgefragt. Gibt dann wohl einen kleinen Spannungsabfall durch die Last. Hab das tägliche Update aber nun auf 06:21 geändert, auch wenn dieser kleine Dip in der Gesamtmessung praktisch komplett irrelevant ist.

Wie man an der grünen Kurve aber schön sieht: Will man hier irgendwas erkennen, reden wir von mehreren TAGEN bevor sich überhaupt was erkennbares tut... Das erschwert die Ausprobiererei natürlich ungemein... Also eigentlich macht es das nicht unbedingt schwerer, aber es dauert halt einfach ewig.
Beitrag automatisch zusammengeführt:

Es gibt so Lack. Damit kannste den Kuchen einlullen damit er beständiger ist. Auch eine ip65er Verteilerbox dazu, dann geht das draussen..
Mein 3D-Drucker sollte morgen kommen. Dann kriegen die Sensoren ein Gehäuse. Für den (viel späteren) outdooreinsatz hab ich mir auch schon überlegt die Sensoren im Gehäuse dann einfach mit Harz auszugießen. ;)
 
Zuletzt bearbeitet:
Zwischenbericht:

Halbwegs vernünftige Verläufe haben sich ergeben. Jetzt scheints also endlich mal richtig zu messen. Allerdings gibts ein paar neue Probleme... oder alte wieder... Soll ja nicht zu einfach sein. :rolleyes2:

1621619509222.png

  1. Seltsamer Drop. Hat sich bei Grün wieder gefangen, bei Gelb gar nicht und bei Blau nur so einigermaßen.
  2. Auch fü den Drop hab ich keine Erklärung. Insgesamt waren die Werte danach wieder etwas niedriger.
  3. Richtig übel. Keine Ahnung wo das herkam. War zu der Zeit nichtmal im Wohnzimmer.
  4. Da hab ich Schrittweise gegossen, deswegen fällt die Kurve langsam
  5. Da hab ich normal gegossen. Fällt quasi mit dem nächsten Wert instant ab.
So etwa seit Punkt 3 krieg ich aber auch wieder Undervoltage. Jetzt wieder jedesmal, wenn ich z.B. Grafana aktualisiere. Warum jetzt doch wieder... keine Ahnung. Hat mein Netzteil jetzt irgendwie ne Macke und liefert doch wieder zu wenig Strom?
Ganz rechts hab ich übrigens nur nochmal an Luft und Wasser gemessen... Die Werte sind jetzt auch etwa um den Abfall von 3 niedriger als bei meiner ersten Vergleichsmessung. :(

Von der anderen Front des gleichen Projekts hab ich mit FreeCAD gespielt und mit dem neuen 3D-Drucker rumprobiert:

Gehäuse für die Sensoren:
Musste erst ein bisschen spielen, bis es gepasst hat. Ganz so exakt druckt der Drucker doch nicht. Liegt nicht unbedingt an der exakten Maßhaltigkeit, sondern an Kanten ergeben sich oft kleine Rundungen. Gerade bei kleinen Strukturen fällt das auf. Eine 1mm Feder passt also nicht unbedingt in eine 1mm Nut.
Ist noch nicht ganz fertig. Ich bin noch am Überlegen wie ich das irgendwie "einrastbar" gestalten könnte. Kleben will ich aktuell (noch) nicht.
1621620377787.png

1621620398016.png

1621620418619.png


Und auch eine Struktur um den Schwimmer an der Pumpe zu befestigen hab ich schon. Die ist damit eigentlich schon fertig.
1621620469224.png


Ich mess jetzt mal die 3,3V-Spannung am ADC mit in der Hoffnung, das ich da evtl. Relationen sehe und die Hoffnung wäre, das ich mit der direkt mitgemessenen Spannung ggf. die Sensorwerte korrigieren kann? Bin aber wie gesagt Elektroniklaie und bin mir nicht sicher, ob das auch repräsentativ für die 5V Versorgung an der die Sensoren hängen ist?
Ich will aber nicht unbedingt die 5V-Spannung durch den ADC jagen, weil der eigentlich nur auf 3,3V ausgelegt ist, auch wenn er auf 4-6V referenziert. Kann mir dazu vielleicht jemand was sagen?
 
Zuletzt bearbeitet:
So, Sensorgehäuse ist "fertig"... 7 Versuche bis die Toleranzen für Nut und Feder gepasst haben und ich die (vorerst) optimale Druckrichtung gefunden habe. Auf 1/100mm genau druckt das Ding halt doch nicht und Ecken sind nicht unbedingt 100%, sondern haben so eine geschätzte 0,2mm Rundung.

Aber jetzt lässts sich zusammenschieben und rastet ein. Den letzten Tick gibt man am besten mit einem Hammer und genauso kriegt man es auch wieder auf... sitzt also schon relativ stramm.

Ein paar Bilder dazu:
Das fertig gedruckte Stück
1621801295878.png


Und hier noch die 3D-Modelle aus FreeCAD:
1621801329707.png

1621801353433.png


Die Feuchtigkeitsmessung läuft weiter, sieht aktuell wieder gut aus... wenns so bleibt, passts erstmal.
Beitrag automatisch zusammengeführt:

Was sagt das Datenblatt?
Analog Input Voltage Max VDD+0,3
Passt
Jo, läuft auch. Die Sensoren laufen aber eigentlich auf der 5V-Schiene. Das Datenblatt bezieht sich aber auf die Spannungsversorgung des ADC, nicht darauf was er an den Messanschlüssen verkraftet. Die eigentliche Spannungsversorgung sind ja nachwievor die 3,3V vom Pi.
Als Referenz kann der ADC aber auch 6V... ich weiß aber trotzdem nicht, ob ich 5V durch den Messanschluss jagen kann.

Ähm ja das ist sowieso eine gute Idee
Das betrifft soweit ich gelesen habe nur die resistiven Sensoren, die einen Widerstand zwischen 2 Kontakten messen. Die Kontakte korrodieren unter Stromeinfluss noch schneller als sie es auch ohne tun würden. Wie auch in deinem Link. Das es ein resistiver Sensor ist, sieht man an den 2 Spitzen, die die unterschiedlichen Kontakte sind. Ich hab aber kapazititve Sensoren, die davon kaum betroffen sein sollen, die haben auch keine zwei Kontakte. Geht in meinem Fall also wirklich eher "nur" darum Strom zu sparen.

Ich verwende solche: https://www.amazon.de/gp/product/B07V6M5C4H
Und eben nicht derartige: https://www.amazon.de/AZDelivery-Hygrometer-Feuchtigkeit-Bodenfeuchtesensor-Arduino/dp/B07CNRJN8W

Auf letztere habe ich bewusst verzichtet, weil ich vorab schon von dem Korrosionsproblem gelesen habe, das früher oder später eh zuschlägt, auch wenn man die Sensoren zwischendrin von der Stromversorgung trennt.

Ich rate immer noch davon ab den Pi draußen hinzustellen.
Der PI wird nicht im Freien sein. Der PI wird letztendlich in meinem Gartenhäusschen platziert. Nur die Sensoren sind dann wirklich im Freien.
Aber bis ich soweit bin, wirds wohl eh noch ne Weile dauern.

Edit: Reichelt hat mir übrigens geantwortet, das deren Sensoren den TLC555 drauf haben sollen. Damit würden sie mit 3,3V funktionieren, was mir Reichelt aber selbstverständlich nicht garantieren will.
Alternativ würde mir ein Elektriker-Arbeitskollege ein paar Sensoren umbauen. Das ist noch in der Queue, weil ich noch auf Antwort von einem Kumpel warte, der ebenfalls Sesnoren braucht, die mit 3,3V laufen. Nebenbei: ein 5er Pack Sensoren und ein 5er-Pack TLC555-Chips ist auf Amazon immernoch günstiger als 5 Sensoren bei Reichelt. :d
Beitrag automatisch zusammengeführt:

Ich würde auch gern mal mit 2 Sensoren in einem Topf (zumindest im großen) messen. Was ich dazu bräuchte wäre eine Möglichkeit VCC und GND vom Pfostenstecker auf 2 Anschlüsse zu verteilen. Also sozusagen ein Mehrfachstecker für einen Pfostenanschluss.
Die Kabel an denen die Sensoren hängen haben aktuell eh 4 Adern, es wäre also noch eine für einen zweiten Sensorwert frei. VCC und GND muss ich aber ja nicht komplett neu vom Pi bis zum Sensor durchziehen.
Ich hab mir schon überlegt eine zweite Pfostenleiste mit einem Jumper an jeweils VCC und GND anzustecken, allerdings ist das sehr sehr wackelig und die Kontakte sollten schon irgendwie halten.
Hat da jemand ne Idee? Gibts da irgendwas brauchbares?
Sieht aktuell so aus:
1621804477711.png
 
Zuletzt bearbeitet:
So, neues Update:

Nachdem ich jetzt die 3,3V über den ADC mitgeloggt habe, war ersichtlich, das diese langsam absinkt. Nach einem Reboot habe ich 3,278V, das sinkt dann aber relativ schnell auf ~3,256V. Das klingt jetzt erstmal nicht sonderlich dramatisch, fand ich aber schonmal auffällig.

Also nochmal Google bemüht und die Spec zum ADS1115 befragt und rausgefunden, das man den wohl auch mit 5V betreiben kann. Ka wie ich draufgekommen bin, das der nur mit 3,3V ginge. Ich meine mal irgendwo in einem Tutorial gelesen zu haben, das man für 5V-Betrieb einen Widerstand entfernen müsste.... Anscheinend aber doch nicht. Allerdings habe ich noch gelesen, das VCC und Messspannungen übereinstimmen sollten. Also wenn der ADC mit 3,3V versorgt wird, sollte man wohl nicht ~5V messen.

Um das auszuprobieren habe ich jetzt einen zweiten ADS eingesetzt. Klappt jetzt auch mit der Adressierung am I2C-Bus mit zweien gleichzeitig und auch die Abfrage aus der Software klappt. Ein ADC läuft jetzt mit 3.3V an dem die Sensoren und die 3,3V vom Raspi direkt hängen und der zweite läuft jetzt mit 5V und da hängt auch die 5V Spannung vom Raspi dran und misst mit.
Über den Verlauf der Spannung kann ich noch nichts sagen, aber die ersten Messungen ergeben gerade mal 4,8V. Die Abweichung ist also schonmal eine ganz andere Hausnummer als auf der 3,3V Schiene.

Weitere Googlerecherche hat ergeben: Die meisten USB-Netzteile sind eigentlich gar keine "Netzteile", sondern nur Schnellladeadapter, die sich gar nicht sonderlich darum bemühen die Spannung konstant (hoch) zu halten, sondern eher nur möglichst viel Strom durchpumpen. Die Spannung scheint zum Laden von Akkus relativ egal zu sein, oder auch wenn man Geräte wie z.B. meine LED-Schreibtischlampe damit betreibt, deren Stromverbrauch ja konstant ist. Aber mit den Stromverbrauchsschwankungen von einem Raspi kommen diese wohl nicht wirklich zurecht. Der läuft zwar (und drosselt ja auch dauernd mal), aber wenn man damit irgendwelche Spannungen misst, ist das natürlich Grütze. Da hilfts dann halt auch nicht, wenn das "Netzteil" 4A durchkriegt.
Also ein Original-Raspi-Netzteil bestellt und dann mal gucken, wies damit läuft.

Da ich jetzt schon 5 Sensorwerte auslese, hab ich auch gleich noch die Python-Skripte so umgeschrieben und das DB-Schema angepasst, das die Sensorkonfiguration dynamisch aus der Sqlite-DB ausgelesen wird.
Die jeweligen ADS stehen jetzt mit Adresse und Gain in der DB, sowie auch jeder Sensor zzgl. an welchem ADC der steckt und an welchem Pin dort. Schön normalisiert und das Python-Skript liest alles aus was es in der DB findet. :)
Musste früher oder später eh sein, weil ich mir irgendwann ggf. auch ein Webinterface für die Konfiguration basteln will. Für jeden neuen Sensor Python-Code ändern oder wie jetzt neu Einträge manuell per SQL in die DB einzutragen ist halt auch nervig.

Edit: Das originale Raspberry-Netzteil kam heute schon. Damit hab ich jetzt tatsächlich schöne stabile 5,1V und 3,28V. Zuckt immernoch ein bisschen hin und her, aber bleibt im Rahmen stabil. Die Gegenrechnung die Netzspannung auf die Messwerte anzuwenden, lässt aber selbst die kleinen Schwankungen nahezu komplett verschwinden, ist also noch glatter.
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh