Neues Projekt - Aquariensteuerung . Komponentenauswahl

Hallo zusammen,

ich bin Andre und beginne gerade mit Planung meines neuen Projektes - Aquariensteuerung.

Vielleicht vorweg zu meiner Person. Ich bin System Engineer für Netzwerktechnik und habe auch eine Vorgeschichte als Anwendungsentwickler. Die Programmierung von Mikroprozessoren war auch mal irgendwann Bestandteil des Studiums, ist aber schon etwas her und auch etwas eingerostet. Es ist aber eh mehr als überfällig meine C-Kenntnisse zu reaktivieren.

Das Projekt befindet sich gerade in der Findungsphase. Aktuell versuche ich anhand meiner Anforderungen die Hardware auszuwählen. Leider bin ich neu in der Arduino-Welt und muss mir eingestehen, dass ich maßlos überfordert bin, was Komponenten und Möglichkeiten anbelangt.

Ich stelle euch einfach mal meine Vorstellungen und Projektziele vor und hoffe dass ihr mich in die richtige Richtung lenken könnt.

Grundlegende Anforderungen zur Steuerung der Aquarientechnik:

  1. Pumpensteuerung
  • 2 Kanäle, jeweils ein/aus via Relais und 1x regelbar via 1-10v Signal
  1. Licht
  • 3 Kanäle, jeweils ein/aus via Relais und jeweils dimmbar via 1-10v Signal
  • Zeitschaltuhr (an-dimmen, aus-dimmen)
  1. Heizung
  • Heizstab, Temperaturgesteuert ein/aus via Relais
  • Wärmetauscher über die Zentralheizung, PWM geregeltes Thermostatventil (230V), Temperaturgesteuert
  • Ermittlung der Vorlauftemperatur der Zentralheizung, um auf Heizstabbetrieb umzustellen, wenn die Zentralheizung in die Sommerpause geht.
  • 1-wire, zur Anbindung der Temperatursensoren und evtl. weiterer Sensorik (z.B. Redox, Lichtsensor)

Bedienung
Touchdisplay, um Werte abzulesen und alle Elemente manuell zu bedienen, z.B. Pumpen und Heizung für den Wasserwechsel abschalten

Erweiterte Funktionen

  • Datalogging: z.B. Betriebsdauer Heizstab/Wärmetauscher; Temperaturverlauf; Beleuchtungszeit
  • Netzwerk Anbindung (nach Möglichkeit WiFi), um eine REST-API zu realisieren. Einbindung in meine KNX Umgebung, um z.B. das Aquarienlicht an die Raumbeleuchtung anzupassen (Szenen Steuerung).

Das ist soweit mein Wunschziel.
Bei folgenden Komponenten bin ich jetzt hängen geblieben:

Basis: Arduino Uno oder Arduino Yun
Display: Nextion Touchdisplay Enhanced 3.5"

Ist der Uno ausreichend groß (Anzahl GPIOs, Rechenleistung) für alle Funktionen? Würde mir der Yun Vorteile bzgl. REST API/WebServer (Linux) bringen?

Bevor ich jetzt Fragen zu den Shields oder weiteren Komponenten stelle sollte am Besten erst mal die Basis geklärt sein

VG
Andre

terceS:
Ist der Uno ausreichend groß (Anzahl GPIOs, Rechenleistung) für alle Funktionen?

scheint so. Mach eine Liste deiner Ein/Ausgänge und ihre Anforderung dann kannst du leicht selber zusammenzählen ob du ausreichend PINs hast.
Pins für das Display nicht vergessen.
Sollte ein Wifi/Lan Shield drankommen sollen, auch die Pins dazuschreiben

das nur so als Idee ohne Anspruch auf Richtigkeit:

RX     Serial Monitor
TX     Serial Monitor
Dig2   Heizstab Relais
Dig3	 Licht 1 PWM
Dig4   SS SD
Dig5   Licht 2 PWM
Dig6   Pumpe 3 PWM
Dig7   Pumpe 2 Relais
Dig8   Pumpe 1 Relais
Dig9   Licht 3 PWM
Dig10  SS LAN
Dig11  LAN
Dig12  LAN
Dig13  LAN
ADC0  belegt bei einigen billig-LAN Shields
ADC1  
ADC2
ADC3  One-Wire
ADC4  Soft-Serial für Display
ADC5  Soft-Serial für Display

Würde mir der Yun Vorteile bzgl. REST API/WebServer (Linux) bringen?

Du sparst dir das Zusammenstecken von LAN-Shield auf UNO, evtl. auch die zweite Serial.
Zähle mal deine benötigten Pins durch (siehe oben).
Abhängig davon wäre ein Wemos D1 / NodeMCU oder ein Modul mit einem ESP32 überlegenswert. Mehr Speicher, schnellerer Microcontroller, 3.3V.

In diesem Falle würde ich dennoch zunächst mit einem UNO ohne Netzwerk anfangen und sobald die Ansteuerung der Pins/Zeitsteuerung/Display funktioniert auf ein ESP Modul wechseln. Als Einstieg sind diese jedoch imho nicht geeignet.

Bevor ich jetzt Fragen zu den Shields oder weiteren Komponenten stelle sollte am Besten erst mal die Basis geklärt sein

... ein guter Weg.

Anstelle UNO wäre auch ein Mega2560 überlegenswert, der hat mehr Pins und mehr Speicher. Gerade wenn man anfängt, ist der Programmcode noch nicht optimal. Ich habe schon Programme auf einem Mega2560 entwickelt und dann für einen Nano komprimiert.

Schönes Vorhaben!

Dürfte ich mal etwas Dummes dazu fragen? Na klar doch! :wink:
Ich habe auch Pläne, Wasser zu heizen, so 15-20l auf 20-22 Grad C und würde das gern gesteuert mit Arduino tun. Als Heizung denke ich, ein Heizstab wäre am sinnvollsten. Nur sind die ja alle schon fix und fertig mit Thermostat. Die, die ich bisher ausfindig machen konnte jedenfalls.
Das was du meinst:

Ist das auch so ein fertiger, der eigentlich allein alles steuert? Oder gibt es welche, die man mit Arduino steuern kann, über das reine Ein- und Ausschalten hinaus?

Oder was wäre bei einem fertigen, der sich selber steuert, der Hintergedanke, ihn mit Arduino ein- und ausschalten zu wollen? In welchen Situationen wäre das doch sinnvoll?

Hallo,

schon mal vielen Dank für eure Antworten. Habe jetzt einen Uno und einen NodeMCU, sowie ein Relaisboard (10A, 250V, Optokopplern), RTC (DS3231) und ein paar 1-Wire Temperatursensoren (DS18B20) da.

Unsicher bin ich mir noch bei dem 1-10V analog Ausgängen, sowie der PWM-Umsetzung.

Ich habe nur Bauteile gefunden, die 0-10V ausgeben. Da dies aber ein einfaches analoges Signal ist, sollte ich doch softwaretechnisch die untere Grenze auf 1V anheben können ?!

Bzgl. PWM habe ich noch nichts gefunden. Aber auch noch nicht wirklich Zeit investiert.

@U_U:
Ich nutze einen Durchlauferhitzer für Aquarien, ist aber eigentlich nichts anderes als ein Heizstab in einem Rohr. Die Steuerung ist der selbe simple Mechanismus wie bei den Heizstäben.

Aktuell setze ich einen günstigen (gekauften) digitalen Temperaturcontroller ein und steuere den Heizstabes über einfaches Stom aus/an. Quasi das selbe Szenario wie bei meiner Arduino Planung. Dabei habe ich den Heizstab einen Tick höher eingestellt, als den digitalen Controller. Somit greift zuerst der Controller, bevor die Heizstabsteuerung eingreift. Hat den netten Effekt, dass einen zusätzlichen Schutz gegen Überhitzung durch Defekt/Fehlprogrammierung der Steuerung habe. Alternativ könnte man des Heizstab auch einfach auf MAX drehen.

Mir würde jetzt kein Vorteil einfallen, den Heizstab weitergehend zu steuern, als an/aus. Da die Temperatur ab einer gewissen Menge Wasser eh sehr träge reagiert.

Ohne weitergehende Steuerung könntest durch verringern der Hysterese die Taktung erhöhen und somit die Schwankungen kleiner halten.

Alternativ würde mir nur PWM einfallen. Da der Heizstab an sich nur ein Heizdraht ist, sollte das grundsätzlich funktionieren. Frage ist, ob die Regelungselektronik des Heizstabes da mitspielt.

Vll gibt es ungeregelte auf dem Markt.

Edit:

Oder was wäre bei einem fertigen, der sich selber steuert, der Hintergedanke, ihn mit Arduino ein- und ausschalten zu wollen? In welchen Situationen wäre das doch sinnvoll?

Die eingebaute Regelung der Heizstäbe ist relativ ungenau und die eingestellte Temperatur entspricht meistens auch nicht der Realität. Der ausschlaggebende Punkt war allerdings ein Defekt eines Heizstabes, der zu einem Dauerbetrieb und somit zu einer gefährlich hohen Temperatur für die Tiere geführt hat.

Ein weiterer Punkt ist der geplante Wärmetauscher für den Anschluss an die Zentralheizung. Hierfür brauche ich eine Regelung, die beides abdeckt. Der Heizstab soll ja nur genutzt werden, wenn von der Zentralheizung keine Wärme mehr kommt.

VG Andre

Vielen Dank für die ausschöpfende Antwort! Seht hilfreich, da ich noch keine Praxiserfahrung mit diesen Heizungen habe. Auf Max. stellen und dann mit Arduino ein/ aus finde ich eine gute Idee!

Zu den "10V": nicht ganz sicher, ob ich richtig das Problem verstehe, aber ich verwende beim Dimmen normalerweise einen PWM-Pin, wobei das Gerät (dimmbare LED) über einen Mosfet kontrolliert wird. Einfach, billig und funktioniert gut. Bei Pumpen, was für Motoren haben die denn?
Wenn du tatsächlich die Spannung einstellen möchtest, da müsste man entsprechende Spannungsregulatoren einsetzen, aber das ist wohl eher nicht hier das Problem?

Zu den "10V": nicht ganz sicher, ob ich richtig das Problem verstehe, aber ich verwende beim Dimmen normalerweise einen PWM-Pin, wobei das Gerät (dimmbare LED) über einen Mosfet kontrolliert wird. Einfach, billig und funktioniert gut. Bei Pumpen, was für Motoren haben die denn?

Sowohl die EVGs der LED Beleuchtung, als auch die Pumpe haben 1-10V Eingänge zur elektronischen Steuerung. Ich denke, dass ich da mit PWM nicht weit komme.

Bei der Pumpe bin ich noch offen, die ist noch nicht gekauft. Die LEDs sind allerdings schon im Einsatz und ich würde die nur ungern austauschen.

Habe auch gerade noch mal geschaut, was an regelbaren Pumpen auf dem Markt ist. Hier gibt es auch etliche Angebote mit einer 0-10V Regelung. Keine Ahnung, warum ich mich so auf 1-10V versteift habe.

Bei Beleuchtung scheint sich aber 1-10V durchgesetzt zu haben, was regelbare EVGs angeht.

Hallo zusammen,

bin jetzt ein ganzes Stück weiter.

Relaissteuerung, sowie sowie die Temperaturmessung via 1-wire Sensoren funktionieren schon mal. Auch eine Klasse zur Zeit-basierenden Steuerung habe ich geschrieben, der Test muss allerdings noch warten, da das RTC Modul noch unterwegs ist.

Jetzt suche ich ein Modul zur 1-10v Dimmsteuerung.

Das EVG stellt die Spannung für die 1-10v Schnittstelle selber bereit. Zur manuellen Steuerung würde demnach ein Poti ausreichen. Jetzt habe ich nach digitalen Potis geschaut, aber nur welche gefunden, die eine maximale Spannung von VCC, d.h. 3V oder 5V vertragen. Z.B.: X9C104 oder X9C103S

Kennt jemand ein Modul, das auch die 10v verträgt und u.U. auch galvanisch vom Arduino trennt?

Bzgl. der PWM Steuerung des Stellantriebes für die Zentralheizung bin ich bei einer Mosfet Lösung gelandet. z.B: IRF520 MOS Treibermodul.

Die Stellantriebe gibt es auch mit 24V Spannung und haben eine Leistung von 1W. Damit bleibe ich weit unter den maximalen 5 Ampere des Moduls.

Kann das so funktionieren?
Wie schaut es mit der galvanischen Trennung aus? Notwendig? Wenn ja, wie realisierbar?

VG
Andre

Hallo,

sorry ich hab Dein Problem nicht ganz verstanden. Du solltest Dir die Datenblätter der Stellantriebe ansehen. Die werden sicher mit 24V DC versorgt und haben als Sellgrösse Y 0-10V ( Idustriestandard bei Stellklappen der Lüftungstechnik)

Da kann man die 0V der Versorgung mit den 0V der Stellgrösse verbinden. Damit könntest Du das direkt an ein analog Modul mit 0-10V Ausgang anschliessen. Analogmodule mit 0-10V Ausgang gibts mit Ic2 Bus und PWM Eingang, da must du mal googeln.

Wenn Deine Lampen und Pumpen 1-10V haben ist das doch egal, damit musst Du Doch nur die Analogausgabe umskalieren. z.B Ua=Ue*0,9+1.

Heinz

terceS:
Kennt jemand ein Modul, das auch die 10v verträgt und u.U. auch galvanisch vom Arduino trennt?

Bitte schaue mal, ob AD5260/AD5262 passen würde. CLK, SDI, CS bei Bedarf über Optokoppler. Mit SDO lassen sich die ICs reihen.

terceS:
Wie schaut es mit der galvanischen Trennung aus? Notwendig? Wenn ja, wie realisierbar?

Notwendig eher nicht, aber mit wenig Aufwand realisierbar und daher erwägenswert. Wasser und Strom sind Freunde, da ist es gut, wenn sich die Folgen eines Begegnungsfestes begrenzen lassen.

Ich habe mir mal diesen Bausatz Mosfet-Treiber zusammengebaut. "Bitte beachten Sie unbedingt die genauen Laststromangaben!" Der Optokoppler vereint galvanische Trennung mit einer satten Ansteuerung des FETs. Das ist sonst selbst bei Logic-Level-FETs nicht unbedingt ideal. Bei PWM mußt Du auf die Geschwindigkeiten achten, es gibt recht lahme Optokoppler.

Hallo zusammen,

danke für eure Antworten.

Rentner:
Hallo,

sorry ich hab Dein Problem nicht ganz verstanden. Du solltest Dir die Datenblätter der Stellantriebe ansehen. Die werden sicher mit 24V DC versorgt und haben als Sellgrösse Y 0-10V ( Idustriestandard bei Stellklappen der Lüftungstechnik)

Da kann man die 0V der Versorgung mit den 0V der Stellgrösse verbinden. Damit könntest Du das direkt an ein analog Modul mit 0-10V Ausgang anschliessen. Analogmodule mit 0-10V Ausgang gibts mit Ic2 Bus und PWM Eingang, da must du mal googeln.

Wenn Deine Lampen und Pumpen 1-10V haben ist das doch egal, damit musst Du Doch nur die Analogausgabe umskalieren. z.B Ua=Ue*0,9+1.

Heinz

@Heinz

Dann habe ich mich scheinbar etwas unklar ausgedrückt. Die Stellantriebe haben keine analoge Schnittstelle. Dies ist lediglich ein thermischer "Schwellkörper" (keine beabsichtigte Zweideutigkeit), der sich unter Strom ausdehnt und stromlos schließt. Keine Logik, keine Steuerungstechnik, lediglich ein Heizdraht; daher einfach per PWM regelbar. Dafür benötige ich das Mosfet-Modul

Ich weiß nicht ob ich hier Links zu Shops einstellen darf, daher einfach der Name des Stellantriebes: Möhlenhoff Alpha 5 24V (AC/DC) - gibts auch in einer 230V Version

Bei den Lampen (1-10V) bin ich mir sehr unsicher, ob ich hier eine mit Fremdspannung arbeiten kann. Diese sind aktiv und bieten bereits die 10V Versorgungsspannung. Daher ging meine Frage in Richtung eines passiven Bauteils (Poti). Der 1-10V ist im Gegensatz zum 0-10V Standard aktiv, mit eigener Versorgungsspannung.
Daher weiß ich nicht, ob dein Vorschlag mit dem Umskalieren der Analogausgabe funktioniert, bzw. sogar schadet.

agmue:
Ich habe mir mal diesen Bausatz Mosfet-Treiber zusammengebaut. "Bitte beachten Sie unbedingt die genauen Laststromangaben!" Der Optokoppler vereint galvanische Trennung mit einer satten Ansteuerung des FETs. Das ist sonst selbst bei Logic-Level-FETs nicht unbedingt ideal. Bei PWM mußt Du auf die Geschwindigkeiten achten, es gibt recht lahme Optokoppler.

@agmue
Ich schaue mir mal die ICs an.
Die Geschwindigkeit der Optokoppler sehe ich nicht als Problem. Die Stellantriebe sind sehr träge.

Ca. 3 Minuten voll geschlossen<-> voll geöffnet

Daher wäre auch ein längerer PWM-Zyklus denkbar. Mein KNX Heizungsaktor taktet im Bereich von mehreren Sekunden bei diesen Stellantrieben

VG
Andre

Hi

Nebeninfo: In den Stellantrieben wird eine Wachsblase beheizt - wenn sich das Wachs ausdehnt, wird der Knopf/Stift des Ventil zu gedrückt.
Gibt's auch stromlos geschlossen, kA, wie Die funktionieren.

MfG

terceS:
Bei den Lampen (1-10V) bin ich mir sehr unsicher, ob ich hier eine mit Fremdspannung arbeiten kann. Diese sind aktiv und bieten bereits die 10V Versorgungsspannung. Daher ging meine Frage in Richtung eines passiven Bauteils (Poti). Der 1-10V ist im Gegensatz zum 0-10V Standard aktiv, mit eigener Versorgungsspannung.
Daher weiß ich nicht, ob dein Vorschlag mit dem Umskalieren der Analogausgabe funktioniert, bzw. sogar schadet.

Ein Link zum Datenblatt könnte jene, die nicht nur sowas lesen sondern auch verstehen können, motivieren, diesbezüglich nachzuschauen.