Aquaduino (OpenSource Aquariencomputer auf Basis des Arduino Mega)

  • Morgen zusammen,


    ich habe vor kurzem damit angefangen mir meinen Aquariencomputer selber zu bauen und würde dieses Projekt gerne mit euch teilen und euch um Beteiligung bitten. Ziel war es dabei möglichst auf Standardkomponenten zurückzugreifen und den zur Steuerung und Regelung entwickelten Code als Open Source zentral bei Sourceforge abzulegen. Dabei ist mir das Arduinoprojekt aufgefallen. Arduino ist Open Source und basiert auf den ATMEL AVR Mikrocontrollern und ist damit äußerst kostengünstig (Arduino Mega 2560 Basis Board liegt bei ca. 38€). Mittlerweile hat sich eine große Community um Arduino gebildet was dazu geführt hat, dass man sehr viele Bibliotheken für die unterschiedlichste Hardware bekommt und dass auch verschiedene Hardwarehersteller (DFRobot, Adafruit, ITeadstudio, ...) Arduino Erweiterungsboards (Shields) oder externe Hardware (Breakouts) bekommt. Es ist jedoch auch ohne weiteres möglich, sich selber Komponenten zu bauen, um diese am Arduino zu nutzen.


    Meine ersten Ziele sind folgende:

    • simple Steuerung meiner Steckdosen im Unterschrank über normale Relais
    • Zeitsynchronisierung der internen Softwareuhr über NTP
    • Programmierbare Zeitschaltuhren für die Steckdosen
    • Nachfüllautomatik mittels Levelsensor und schaltbarer Steckdose
    • Dauermessung der Temperatur mittels Dallas DS18S20 von Reichelt
    • Logging der Messdaten auf SD Karte
    • Webinterface


    Zur Realisierung dieser Ziele habe ich auf folgende Hardware zurückgegriffen

    • 1x Arduino Mega 2560 (Deutlich mehr In/Outputs als der Arduino Uno und nich wesentlich teurer) (Preis: 38,00€)
    • 1x Arduino Ethernetshield mit microSD Slot (Preis: 33,00€)
    • 6x 4 Kanal Relais Modul von ITeadstudio (Preis: 9,50€ / Modul)
    • 1x Levelsensor mit Schwimmer von Reichelt (Preis ca. 7€)
    • 1x Dallas DS18S20 Temperatursensor von Reichelt (Preis ca. 3€)


    Die Entwicklung der Software habe ich basierend auf der Arduinosoftware 0023 in Eclipse als reines C++ Projekt gestartet. C++ hab ich gewählt, da es eine gut lesbare Programmierung erlaubt und man die Softwarearchitektur sehr einfach gestalten kann, um die Software wartbar und erweiterbar zu realisieren. Dabei habe ich bewusst die eventuellen Größennachteile und Performancenachteile in Kauf genommen, da diese meiner Erfahrung nach nicht so schwerwiegend sind. Der gesamte Quellcode ist unter dem Projektnamen Aquaduino zu finden. Dort sind Eclipse Helios Projekte abgelegt, die man einfach mittels SVN auschecken kann. Mittlerweile gibt es eine neuere Version der Arduinosoftware, die jedoch einige Änderungen in der derzeitigen Aquaduino Software erforden würde und ich deshalb noch nicht gemacht habe. Die Dokumentation, wie man die Arduino Entwicklungsumgebung in Eclipse einrichtet findet man hier.


    Folgende Ziele sind mittlerweile vollständig bzw. teilweise realisiert

    • simple Steuerung meiner Steckdosen im Unterschrank über normale Relais
    • Zeitsynchronisierung der internen Softwareuhr über NTP
    • Programmierbare Zeitschaltuhren für die Steckdosen (Nur Anfangs und Ende Zeitpunkt)
    • Nachfüllautomatik mittels Levelsensor und schaltbarer Steckdose
    • Dauermessung der Temperatur mittels Dallas DS18S20 von Reichelt
    • Webinterface (Teilweise)


    Wer Lust und Zeit hat kann sich gerne an der Entwicklung beteiligen. Vielleicht bekommt man am Ende ja einen schönen Aquariencomputer fertig, der für viele erschwinglich und leicht einsetzbar ist.


    So ich bin mal auf eure Meinungen gespannt. :grinning_squinting_face:

  • Hi Christian,


    kannte ich vorher nicht. Habe ich mir gerade mal angesehen.


    Die Preise sind allerdings durchaus gesalzen. Da mache ich mir das lieber selber und schneider es mir zurecht.


    Meins ist mittlerweile bei mir auch schon im Einsatz und funktioniert äußerst zuverlässig.


    Gruß
    Timo

  • Hallo,


    als Softwareentwickler werde ich das natürlich besonders gerne beobachten.


    Auch wenn ich deine Argumente zum Wahl der Programmiersprache nicht so ganz verstehe :winking_face:


    Gruß
    Andreas

  • Hi,


    Zitat

    Auch wenn ich deine Argumente zum Wahl der Programmiersprache nicht so ganz verstehe


    Im wesentlichen sind es die Vorteile der OO Programmierung bzgl. Softwarearchitektur und Austauschbarkeit (Polymorphie) die ich gut finde, da es für viele intuitiver ist als klassische C Programmierung. Und C++ ohne das ganze Exceptionhandling ist schon sehr effizient und kann es dahingehend auch mit C aufnehmen.


    Gruß
    Timo

  • Hallo!


    Wie sieht es mit diesem Projekt aus??
    Ich suche aktuell eine Aquasteuerung mit der ich meine LED KSQs 1-10V steuern kann.
    Sonnenaufgang und Untergang wäre schön und außerdem Wolkensimulation wäre super.
    Das Teil kann 4x 1-10V Ausgänge haben oder auch mehr, dann kann ich die Stufen kleiner machen, da ich bei meiner Lampe insgesamt 12 KSQs habe. Also 12 Ausgänge mit 1-10V wäre Luxus.


    Gibt es da schon ein DIY Projekt, was funktioniert? Das die Uhrzeit abgeglichen wird wäre klasse, einmal programmieren reicht mir, ich muss da nicht viel rumspielen.


    Freue mich auf Rückmeldungen. Vielen Dank!

  • Hi,


    sorry für die später Rückmeldung. Ich habe derzeit keine LED Ansteuerung realisiert. Ich habe aber die LEDs zum Testen nun schon seit ein paar Wochen hier rumliegen. Genauso wie eine Platine für den pH und den Leitwert. Ich komme aber aktuell nicht zu. Das Projekt selbst hat auch ein Überarbeitung der Codebasis erfahren, die allerdings noch nicht komplett fertig ist. Sobald das geschehen ist wird es hier ein Update geben.


    Gruß
    Timo

  • Du beschreibst das projekt als open Source. Aber wo finde ich den Source? auf der SF Seite ist ja nur das fertige paket.

  • Hi,


    die alte Codebasis liegt auf Sourceforge: http://sourceforge.net/p/aquad…AD/tree/trunk/Aquaduino/.


    Es gibt aber auch eine überarbeitete Codebasis auf Github. Die ist aber noch nicht 100%ig fertig. Ich muss da noch die Zeitschaltuhrfunktionalität einbauen damit die Basis vollständig ist.


    https://github.com/tkerstan/Aquaduino-Next


    Zusätzlich habe ich nen Templateparser gebaut der auch auf Github liegt.


    https://github.com/tkerstan/ArduinoTemplateParser


    Gruß
    Timo

  • Hallo zusammen,


    nach den Umbauarbeiten ist das Framework wieder komplett nutzbar. Es ist fast alles über das Webinterface konfigurierbar. Das einzige was ich noch nicht gemacht habe ist die Konfiguration der Sensoren, Aktuatoren und der Regler (Controller) in die Webschnittstelle zu packen. Man ist also aktuell darauf angewiesen diese zur Kompilierzeit einzustellen. Ich habe mir aber vorgenommen dafür erstmal ein paar gängige Konfigurationen zu überlegen und diese dann über ein Buildskript (Aktuell habe ich etwas mit CMake eingebaut) zur Ferfügung zu stellen. Alternativ gehen auch Binaries.


    PS: Meine LED Lampe ist auch zusammengebaut. Ich muss mir nur noch nen passenden MOSFET zulegen, damit ich das Ding auch dimmen kann. Dann gibt es zumindest für einen Kanal auch dafür ne Steuerung.


    Gruß
    Timo

  • Hallo zusammen!


    Ich wollte auch gerne einen Aquaduino bauen, um meine LED-Leuchte anzusteuern (Dimmung) und um evtl. Dosierpumpen zu steuern.
    Der Aquaduino hat ja PWM Ausgänge. Meine 12 LED Treiber sind aber von 0-10V steuerbar.
    Dann kann ich den Arduino vermutlich nicht nutzen, da er nur analoge Eingänge hat!? Oder gibt es einen PWM zu 0-10V Adapter???


    Gibt es alternativ einen Microcontroller, den man nutzen kann dafür??


    Viele Grüße, Paul

  • Hallo Timo,


    ich war nun einige Zeit "out of order" aber nun wollte ich mich doch nochmal damit beschäftigen. Wie ist der Stand der Codebasis auf GitHub ? Kann man die nun bedenkenlos nehmen?


    Gruß
    Julian

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!