Aquarium Computer
Der Begriff Computer ist vielleicht etwas hochgegriffen. Eine Aquariumsteuerung ist vielleicht eher die Beschreibung zu diesem Projekt, aber ich denke, wir wissen was gemeint ist. Dieser Beitrag wird in der folgenen Dokureihe auf Youtube gezeigt: -> LINK
In der Vergangenheit habe ich immer auf bereits fertige „Module“ wie z.B. Zeitrelais zurückgegriffen, um eine automatische Nachspeisung, oder die Temperaturregelung zu realisieren. Jetzt ist es an der Zeit, den Horizont zu erweitern. Das Ganze darf natürlich nicht ewig dauern und nach ein paar Gesprächen, habe ich mich dazu entschlossen einen Arduino Uno zu bestellen. Das das Ganze nur 10€ kostet, gibt dem ganzen einen entspannten Beigeschmack. Falls es scheitert…. nicht so schlimm.
Die Software zum programmieren findest Du hier:
Die Möglichkeiten sind fast unbegrenzt und erschlagen einen zuerst, aber es gibt so viele gute Tutorials auf Youtube, dass ich schon nach 5 Minuten den erste erfolgt hatte. Sketch aus den Vorlagen auf den Arduino kopiert, fertig.
Programmiert wird das in C und C++, aaaaber… wenn Du denkst, dass ich jetzt Bücher lese und die Sprache auswendig lerne, ne. Keine Zeit! Das muss schneller gehen. Ich ändere bestehende Programme und lerne so das ganze zu verstehen.
Folgendes möchte ich in der ersten Ausbaustufe realisieren:
- automatische Nachspeisung von VE-Wasser
- Temperaturanzeige auf einem kleinen OLED Display
- Lüftersteuerung für den Sommer zur Kühlung
- RGB Stripe Steuerung und Zustandsmeldung falls ein Alarm vorliegt
In der Zweiten, später folgenden Ausbaureihe, könnte ich mir eine PWM Steuerung für Pumpen, Heizungsregelung, Fütterungsbetrieb etz. vorstellen. Das benötige ich jedoch nicht bei dem 30l Becken.
In diesem Beitrag, wirst Du das Programm finden und auch alle Komponenten zum nachbauen. Ebenfalls einen Verdrahtungsplan.
Einkaufsliste (Amazon Links)
Arduino Uno: Kostet ca. 10€ https://amzn.eu/d/hFOhr13
OLED Display 0,96″ SSD1306: Kostet ca. 5€
Temperatursensor DS18B20 onewire: Kostet ca. 2€
Die Einkaufsliste wird natürlich noch aktualisiert!
Schritt 1:
Ich beginne vorerst mit der Anzeige der Temperatur. Hierfür habe ich mir einen DS18B20 one wire Temperatursensor bestellt. Dieser ist vielleicht noch nicht der, den ich einsetzen möchte, aber zur Übung, einfach mit dem Arduino einzubinden. Der Sensor benötigt nur die 5V Spannungsversorgung (5V+ und GND) vom Arduino und die Signalleitung (gelb) geht direkt auf einen Eingang am board. Zusätzlich muss man jedoch einen 4,7kOhm Widerstand von der Signalleitung auf die 5V+ legen, sonst funktioniert es nicht.
Der Sensor hat zwar einen Edelstahlmantel und wirkt vielleicht etwas träge, da die Meerwassertemperatur jedoch nicht so extrem schnell schwankt, wird das wohl so reichen. INS Wasser möchte ich jedoch den Sensor nicht verbauen, ich messe später am Becken, indirekt. – Ob´s reicht?
Das OLED Display hat eine Auflösung von 128×64 Bildpunkten und macht schon echt Laune. Mit den kleinen Displays kann man schon richtig schön rumspielen, doch was es dann wirklich anzeigt, liegt am Programmierer 😀
Ich habe ca. 2h versucht die Temperaturanzeige selber zu programmieren, dann habe ich einfach mal in die KI von ChatGPT als Suche eingegeben: Arduino, DS18B20, OLED Display anzeigen eingegeben und zack, kommt ein brauchbarer Code, mit dem gut weiterarbeiten kann.
Ich möchte zusätzlich noch folgendes auf dem Display anzeigen:
- Wasserlevelstatus des Aquariums vom Niveauschalter: OK / !
- VE-Nachspeisebehälter Wasserstand: OK / !
- Lüfter aktiv bei einer Temperatur >27°C: Bitmap Lüfter sichtbar
- Störungssymbol bei Fehler mit Schaltung der RGB auf rot: Bitmap ! sichtbar
Da ich keine Ahnung vom Programmieren habe, dauert das bis zur Vollendung noch etwas, ach, und da sind dann noch die anderen 100 Hobbys.
– – – Nach dem Code geht´s weiter – – –
– – – – – – Aktueller Stand: 21.04.23 – – – – – – –
Schritt 2:
Ich bin jetzt in einen Holzkoffer umgezogen, je mehr das Projekt an Umfang gewinnt, desto mehr können sich Fehler einschleichen, wenn ein Kontakt nicht richtig im Breadboard steckt. So kappe ich den KRam einfach zu und alles bleibt an seinem Ort.
Was hat sich getan, der Schwimmerschalter (oben links) soll später den Wasserstand im VE-Tank überwachen, damit die Pumpe nicht trocken laufen kann. Ist etwas überzogen, aber das kommt von meiner Vergangenheit in der Industrie. Der Zustand – Wassertank ist voll – wird im Moment noch mit 1=voll und 0=leer visualisiert.
Der kontaktlose Füllstandssensor (unten links) wird durch das Acrylglas den Wasserstand detektieren, da ich ja keine Technik im Becken sehen will. Also so wenig wie möglich. Dieser meldet im Moment noch den Füllstand mit 1=voll und 0=zu wenig.
Wenn nun der Schwimmerschalter einen vollen VE-Tank meldet und der Füllstandssensor merkt, dass Wasser fehlt, wird eins der blauen Relais (unten rechts) angesteuert, wo die Spannungsversorgung der Nachspeisepumpe geschaltet wird und das Aquarium seinen Füllstand so konstant halten kann. Das ist je extrem wichtig, da ich einen definierten Überlauf für den Oase Biomaster 350 Thermo benötige. Bleibt der Füllstand nicht gleich, zieht der Filter Luft (ich plane keinen variablen Skimmer!)
Da ich im Moment keinen Lüfter habe, der ein PWM Signal direkt verwerten kann, also die Drehzahl abhängig von der Temperatur geregelt wird, habe ich ein Mosfet zur Regelung des Lüfters dazu genommen. Was jetzt als nächstes an Programmieraufwand kommt, ist, dass der Lüfter zwischen zwei Sollwerten z.B. 26°C – 28°C seine Lüfterleistung von 0-100% anpasst.
– – – Nach dem Code geht´s weiter – – –
Wenn Du eine Idee hast, Kritik oder Hinweise. Schreib es mir gerne hier in die Kommentare.