Schaltungscheck für Bewässerungssystem mit mehreren Pumpen, Feuchtigkeitssensoren und Port-Expander

  • Hallo an alle!


    Ich bin dabei, eine kleine Bewässerungsanlage zu planen, die 6 bis 8 kleine Kästen bewässern soll. Dazu habe ich den folgenden Aufbau geplant und wollte diesen aber vor der Umsetzung durch euch prüfen lassen, da ich mich in der Elektrotechnik nur recht begrenzt auskenne. Eine kurze Textbeschreibung findet ihr unter dem Aufbau. Für jegliche Tipps, Hinweise auf Fehler oder ein "Das sollte so funktionieren" wäre ich sehr dankbar!


    Mit einem Klick kommt ihr zur Vollbildansicht.



    Im Aufbau sind prinzipiell drei Stromkreise zu finden.


    1. Port Expander

    Der Port Expander (MCP23017) wird vom Raspberry mit 3,3V versorgt und durch GPIO 2 (SDA) und GPIO 3 (SCL) angesteuert.
    Die blauen Kabel sollen als Input die Sensordaten aufnehmen. Die orangenen Kabel sollen als Output das Relay und damit die Pumpen steuern.


    2-A. Sensoren

    Die Sensoren befinden sich an einer 5V Spannung, jeweils in Parallelschaltung. Ein Analog/Digitalwandler wandelt das Signal um. Ich nutze hier in den D0-Ausgang für das Signal.


    2-B. Relay

    Das Relay nutzt gleichfalls die selbe 5V Spannungsquelle vom Raspberry. Es erhält die Steuerungssignale vom Port Expander, um die Pumpen nacheinander(!) ein- und auszuschalten.


    3. Pumpen

    Die Pumpen werden mit einem externen 12V-Stromanschluss versorgt. Der Stromkreis ist durch das Relay völlig losgekoppelt vom Rest der Schaltung. Um keine Überlastung zu provozieren, möchte ich die Pumpen definitiv nur einzeln, nacheinander aktivieren und nicht mehrere zur selben Zeit.


    Nun zu meinen vielen Fragen:

    a) Ist das Projekt auf diese Art und Weise generell möglich?

    b) Ist die Parallelschaltung der Sensoren okay? Die Spannung liegt dann dauerhaft an. Messen dann auch die Sensoren dauerhaft? Dann müsste ich dies vielleicht auch ein- und ausschaltbar bauen.

    c) Ist es ebenfalls in Ordnung, Relay und Sensoren parallel zu schalten und die gleiche Stromquelle nutzen zu lassen oder sollte ich hier noch ein eignen 5V-Kreis vom Raspberry beziehen?

    d) Tutorials hatten keine weiteren Bauteile (Widerstände, Dioden) vor Feuchtigkeitssensoren oder Relay geschalten. Aufgrund fehlender Elektrotechnikkentnisse habe ich dies nun auch nicht getan. Wäre hier jedoch etwas empfehlenswert / zu beachten?


    Über jede einzelne Antwort auf eine Frage, Hinweise zur Schaltung oder irgendein Feedback wäre ich sehr dankbar! Es muss ja bei den vielen Fragen nicht gleich eine vollständige Antwort sein.

    Ich danke euch und wünsche euch schon mal ein schönes Osterfest!

    Viele Grüße
    Anne

  • b) Ist die Parallelschaltung der Sensoren okay? Die Spannung liegt dann dauerhaft an. Messen dann auch die Sensoren dauerhaft? Dann müsste ich dies vielleicht auch ein- und ausschaltbar bauen.

    Ja, die Sensoren messen dauerhaft, d.h., dass zwischen den Elektroden die ganze Zeit ein Strom fließt.

    Dies Art der Sensoren misst über die anliegende Spannung den Leitwert des Mediums...


    Falls du die Elektrodenflächen nicht vergoldet oder anderweitig passiviert hast, setzt eine Elektrolyse ein, die zur Korrosion der Elektroden und Entstehung von (meist giftigen) Kupfersalzen führt, welche die Erde langsam vergiften.

    Zusätzlich ändert sich das Messergebnis langsam...


    Ein temporäres Zuschalten der Spannung nur zum Messzeitpunkt verzögert das alles, das ungeschützte Kupfer zersetzt sich dennoch langsam bzw. bildet eine Oxidschicht aus (abhängig von den Bodenbestandteilen), die das Messergebnis verfälschen.


    tltr:

    Diese Art von Sensoren sich schlecht. Für kurze Demonstrationen für Kinder etc. ok, für einen ernsthaften, dauerhaften Aufbau ungeeignet.

  • a) Grundsätzlich sollte das Projekt gut machbar sein. Hier ist wieder die Frage (Beitrag mit Hinweisen), warum der PI. Für das was Du beschreibst ist ein Arduino besser geeignet. Der PI hat seine Stärken in der Visualisierung, Netzwerkanbindung, Umgang mit großen Datenmengen - davon sehe ich nichts. Oft macht es auch Sinn, die Steuerung mit Arduino zu machen und den Raspberry zur Anzeige / Datenablage zu verwenden.

    b) Zentris hat hier schon gute Einwände. Basierend darauf würde ich eher kapazitive Sensoren vorschlagen (Beispiel).

    c) Gegen parallel schalten spricht nichts, wenn der jeweilige Stromkreis nicht überlastet wird. Dass Du für die Motore eine eigene 12V Versorgung hast, ist sicherlich ein Vorteil (kein Einfluss auf Raspberry)

    d) Ich weiß nicht, was das für A/D Wandler sind - aber offensichtlich stellst Du den Pegel am Poti ein und bekommst ein digitales Signal. Ich würde empfehlen die Signale analog auszuwerten - dadurch bist Du flexibler und kannst auch den Verlauf der Messung beurteilen. Wenn Du einen Arduino nimmst hast Du meist 8 A/D Wandler an Board - ansonsten gibt es für den Raspberry z.B. den MCP3008 (Affiliate-Link).

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Ich würde zumindest den Relaisspulenstrom aus dem 12 V Pumpenstromkreis speisen. Es gibt auch 12 V Relaismodule, oder Spannungswandler.


    Wie schon gesagt: Kupfer in Erde korrodiert. Dafür gibt es Sensoren im Glasröhrchen, die die Kapazität messen.


    Und für 6 - 8 Kästen würde ich eine Pumpe nehmen mit 6 - 8 Magnetventilen, die im stromlosen Zustand geschlossen sind.


    Servus !

    RTFM = Read The Factory Manual, oder so

    Edited once, last by RTFM ().

  • Vielen Dank erst einmal für die ganzen Antworten - und ich freue mich, dass es grundsätzlich erst einmal so machbar ist. Leider habe ich mir die meisten Komponenten vor fast einem Jahr zusammengesucht, das Projekt dann pausieren müssen und jetzt bei der vielen Zeit wieder Lust darauf bekommen. Aus diesem Grund geht es mir vor allem um Fehlerbehebung bzw. -vermeidung, da ich keine Bauteile oder den Pi beschädigen möchte. Alle Hinweise sind natürlich trotzdem super, vielleicht steige ich bei erfolgreicher Umsetzung und zufriedenstellendem Einsatz dann ganz schnell lieber auf die kapazitiven Sensoren um und teste auch mal ohne A/D-Wandler! Danke schon mal an dieser Stelle!

    Ich habe einen Raspberry 3 A+. Mein primäres Ziel war, über den Pi zu lernen, nicht die Bewässerungsanlage. Das ist einfach mein erstes Projekt/Ziel. Als nächste Stufe könnte ich mir eine Steuerung der Bewässerung per App vorstellen und dann hier mein Wissen erweitern oder im Herbst den Pi bei einem ganz anderen Projekt einsetzen. Ich bastel nur herum! Aber ein dennoch guter Hinweis für das Allgemeinverständnis!

    Für mich noch offene Fragen sind nun vor allem noch c) und b):


    c) Ist es ebenfalls in Ordnung, Relay und Sensoren parallel zu schalten und die gleiche Stromquelle nutzen zu lassen oder sollte ich hier noch ein eignen 5V-Kreis vom Raspberry beziehen?

    Kommentar: Wie kann ich denn herausfinden, ob etwas überlastet? Das ist natürlich eine blöde Frage, weil mir die kompletten Grundlagen fehlen. Relaysteuerung und Sensoren nutzen die gleiche Stromquelle. Ist das ein Problem?

    d) Tutorials hatten keine weiteren Bauteile (Widerstände, Dioden) vor Feuchtigkeitssensoren oder Relay geschalten. Aufgrund fehlender Elektrotechnikkentnisse habe ich dies nun auch nicht getan. Wäre hier jedoch etwas empfehlenswert / zu beachten?

    Kommentar: Passt denn soweit wirklich alles aus eurer Erfahrung?

    Update:

    (Sensoren werden nun ebenfalls durch das Relay bewusst eingeschaltet und sind sonst aus, weiterhin sind sie aber am gleichen Strom wie die Relaysteurung)


  • c) Die Sensoren und AD-Wandler werden wohl kaum Strom ziehen - und die Relais sind auch keine Stromfresser. Da Du eine Relaisplatine verwendest, wird vermutlich auch eine Freilaufdiode vorhanden sein - ohne diese könnten beim Schalten Spannungsspitzen entstehen. Ob Du zu wenig Strom hast, siehst Du, wenn der Raspberry Probleme macht. Welches Netzteil verwendest Du eigentlich - es wird generell das Originale Raspberry Netzteil empfohlen, da dies 5,1V hat (und der Raspberry echt zimperlich ist).

    d) Ich wüsste jetzt auch nicht, wo Du noch Bauteile brauchst - auf Deinen Modulen sind eh schon viele ;)


    Die Sensorversorgung mit dem Relais zu schalten ist eine gute Idee - habe ich leider vergessen zu erwähnen.


    Ach ja, was wichtiges ist mir noch eingefallen: Betreibe den MCP23017 mit 3,3V! Der Raspberry mag 5V an seinen GPIOs gar nicht - auch nicht am SPI bzw. brauchst Du 4V (0,8xVCC) um einen High-Pegel zu bekommen. Der Raspberry hat an den GPIOs nur 3,3V. Alternativ könntest Du den SPI mit einen Pegelwandler versehen...

    Relaisplatinen am Rasperry sind in der Regel problematisch, da viele mehr als die empfohlenen 4mA ziehen. Da Du den MCP23017 dazwischen hast ist dies nicht so problematisch. Es gibt aber auch Relaisplatinen, die können mit den 3,3V nicht umgehen...

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Super, vielen Dank auch für diese Antwort. Nun kann ich bald loslegen!


    Aufgrund der genannten Gedanken habe ich mich entschlossen, die Stromversorgung noch einmal anzupassen. Auch in diesem Tutorial werden die Relais mit einer externen 5V-Stromquelle versorgt.


    Verschwiegen habe ich euch, dass ich mich verguckt hatte und die Pumpen sowie mein externes Netzteil doch nur 5V benötigen bzw. bieten. Somit könnte ich das Relais auch durch diese externe Stromquelle versorgen. Jedoch würde es das Prinzip der zwei getrennten Stromkreise aushebeln, was wieder dagegen spricht. Darüber muss ich mir noch meine Gedanken machen. Vielleicht habt ihr ja Lust, diese Fragestellung noch mit mir zu diskutieren.



    VG und Frohe Ostern!


    UPDATE: Hier wird auch über die Direktschaltung Relais - Pi disktutiert.

  • Die Relais damit zu versorgen ist denke ich unkritisch. Den Spulen ist ein bisschen wellige Spannung ziemlich egal. Anders saehe es aus, wenn PI & der Rest alles am gleichen Stromkreis haengen. Da muesste dann ggf. gefiltert werden, und das will man sich ersparen.

  • Ich habe jetzt auch noch einmal alles überdacht. Ich möchte tatsächlich zwei sauber getrennte Stromkreise beibehalten. Allein für den Lerneffekt. Also das letzte Schaltbild bitte ignorieren.


    Meine letzte Unsicherheit ist nun, ob ich das Relais bzw. den Pi schützen muss, da genau dieses Problen oft diskutiert wird, ich es aber nicht vollständig bisher verstanden habe.


    Dies ist also nochmal mein aktueller Stand:

  • Aus dieser Spezifikation zum Relais entnehme ich Folgendes:



    Meine Signale gehen mit 3,3V ein. Der Jumper von VCC zu JD-VCC steckt. Das Relais wird mit 5V versorgt.


    Verstehe ich den ersten Satz richtig, so müsste ich in diesem Fall den Jumper-Aufsatz entfernen und die 5V an JD-VCC anstatt an VCC anlegen.

    Alternativ kann ich das Relais mit 3,3V versorgen und lege die Spannung aber wieder an VCC an.
    Diese Bestimmungen sind aber auf den Arduino zugeschnitten.

    Der Hinweis an Raspberry-Nutzer: Den Widerstand R1 (innerhalb des Relais) anpassen, aber wie, etwa direkt am Relais den Widerstand raus- und reinlöten? ODER 5V an VCC anstecken. Ob nun der Jumper stecken muss oder nicht, steht hier leider nicht.


    Puhhh... ich werde daraus noch nicht ganz schlau. 5V sind am VCC beim Raspberry scheinbar okay. Aber mit oder ohne Jumper?

  • In diesem Tutorial ist der Aufbau wie folgt:


    Kein Jumper
    3,3V-Pin vom Raspberry an VCC,

    5V-Pin vom Raspberryam JD-VCC

    Zwischen den Steuer-GPIOs und dem INs des Relais sind 470Ohm-Widerstände. Das könnte durch meinen zwischengeschalteten Port-Expander überflüssig sein. Das muss ich prüfen.

    Oh man... ich bin auf jeden Fall ohne Grundkenntnisse völlig überfordert mit all den Angaben und Varianten, die man so im Netz findet. Aber ich habe keine Lust unwissend meine Pi oder andere Bauteile zu zerstören. Also gern her mit weiteren Meinungen!

  • Also ich beurteile die Relaisplatine aufgrund des Schaltplanes. Dort ist bereits ein R1, der so dimensioniert ist, dass der Optokoppler bei 5V (und scheinbar auch bei 3,3V) schaltet. Die 470 Ohm sind kontraproduktiv, da dies dazu führen kann, dass die Optokoppler nicht mehr ordentlich schalten. Im Tutorial wird das nur gemacht, damit der Raspberry GPIO nicht überlastet wird. Da Dein MC23017 max. 25mA "senken" - also gegen GND schalten kann, ist der Widerstand nicht notwendig (im Tutorial steht ohne 470Ohm wird 17-20mA gezogen). Der MC23017 ist also in diesem Fall ein Vorteil.

    Die restlichen Anschlüsse die Du angeführt hast sind OK.

    Die Idee, dass Du jeweils nur 1 Relais schaltest ist (noch immer) gut, da die worst Case 160mA auf den 3,3V nicht gerade wenig wären.

    PS: Deine Relais werden geschaltet, wenn Du LOW auf den Ausgang schaltest...

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Okay cool, das klingt schon mal super und aufschlussreich! Vielen Dank für Deine Antwort!


    Den Jumper müsste ich demzufolge entfernen?

  • Ja, wenn ich das richtig verstanden habe, geht das gar nicht anders, da Du ja dort wo der Jumper ist die 5V verbinden musst (JD-VCC) und an VCC die 3,3V...

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Cool cool cool, ich bin dem Ziel ganz nah!

    Mein Vorhaben sieht nun wie folgt aus:


    (UPDATE: Das Schema wurde nach unten genannten Hinweisen korrigiert.)


    Wenn mich jetzt keiner in den nächsten Stunden weiter aufhält und mich eines besseren belehrt, wird es so umgesetzt und die Topic auf erledigt gesetzt.

    Ich danke eich vielmals für eure Unterstützung!
    Danke!!

  • Na, da haben sich aber noch ein paar Fehler eingeschlichen, oder?

    * Rechts holt sich schwarz von Rot und Rot von schwarz die Spannung (vermutlich vertauscht)

    * Die 3V3 gehen auf IN1 statt zu VCC

    * Du musst alle Ausgänge des MCP23017 um eines nach unten verschieben, außer IN8, sodass IN7, den Du nicht verwendest frei bleibt. Anmerkung: Ich würde Ihn gleich an den GPB Port des MCP23017 hängen.

    * Anmerkung: Wäre es nicht logischer alle GPB des MCP23017 (Datenblatt) als Ausgang zu verwenden und GPB0 zu IN1, GPB1 zu IN2... zu verbinden? Ebenso wäre GPA0 für Sensor 1, GPA1 für Sensor 2... naheliegend.

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Vielen Dank für die Korrektur, das meiste war tatsächlich aus Versehen. Ohje...


    Welche Pins ich am Port Expander dann genau nutze, schau ich mal. A für INs und B für OUTs zu nutzen ist natürlich sehr logisch. Ich habe beide "Seiten" aktuell einfach nach Anwendung getrennt: Relais und Sensoren. Das ist wohl einfach Geschmackssache.


    Quote

    Anmerkung: Ich würde Ihn gleich an den GPB Port des MCP23017 hängen.


    Damit meinst du, einfach die Verbindung der Vollständigkeit halber ziehen, obwohl diese momentan nicht genutzt wird?

    Tausend Dank ansonsten für den Check!

  • Ja, genau. Du hast den freien Port und einen leeren Relais Slot. Für mich ist es daher naheliegend den mit zu verwenden , auch wenn dieser (noch) nicht genutzt wird.

    Ja, sind nur Vorschläge, daher habe ich es gleich als Anmerkung geschrieben.

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup: