DIY Licht, Dosier, Dimm & Zeitsteuerung

  • Hallo zusammen,
    da ich ja seit ein paar Monaten an einer DIY Lösung für Aquarien Steuerungen sitze wollte ich hier kurz das neuste und vorallem erste Modul vorstellen. Es ist eine universelle Inelligente Zeitsteuerung mit einigen Funktionen die jeder DIY Freak vielleicht gut gebrauchen kann. Die folgenden Punkte zeigen den derzeitigen in Software implementierten Stand, da es kurz vor fertigstellung steht ( Platinen werden als nächster Schritt gemacht) wäre ich dankbar für jegliche Anmerkungen, Verbesserungen und Wünsche die ich übersehen habe. Fangen wir mal damit an was das Teil derzeit kann:

    Schaltuhr Funktion:
    * 8 Verbraucher a. 16A 220V schaltbar komplette Trennung beider Phasen wichtig bei T5
    * 10 Schaltzeiten pro Kanal definierbar
    * Sichers Schalten von kleinen Verbrauchern wie Dosierpumpen


    Dimm Funktion:
    * Max. 4 Dimmkanäle analog 1-10V oder wahlweise DALI Schnittstelle (optional)
    * Freidefinierbare Dimm Profile Zeit / Intensität


    Stromausfall Überwachung
    * Pro Kanal kann eine frei 2500 Sekunden definierte Einschaltverzögerung vergeben werden. (Nützlich für viele Abschäumer und HQI, Überlaufen verhiundern Sichers Zünden)
    * Kanal der geschaltet wird im Falle eines Stomausfalls um beispielsweise eine Batterie betriebene Luftpumpe zu schalten.


    Mondlicht Simulation
    * Exakte Mondlichtsimulation die über astronomische Formeln die exakte Mondphase berechnet keine konfiguration nötig da Berechnung über die integrierte Echtzeit Uhr läuft.
    * Dimmung erfolgt nicht über PWD da kein Stroboskop Effekt für die Tiere erwünscht ist.
    * Dimm Intensität in 10 Stufen konfigurierbar.


    Temperatur abhänige Lüftersteuerung (ongoing)
    * Lüftersteuerung für T5 Lampen über frei definierbare Schwelltemperaturen


    Sicherheit
    * Alle Schaltkanäle sowie die T5 Dimmung sind galvanisch getrennt!!!


    Erweterbarkeit & Konfiguration
    * Es können bis zu 128 PowerModule an einem marelab Bus betrieben werden (also 1024 Verbraucher schaltbar)
    * Konfigurierbar über grafisches LCD Display & PC Software.
    * Offenes Protokoll da powerModul nichts anderes als ein I2C Slave ist!

    Anbei mal zwei Screenshots des grafischen Display's:

    Dies ist die Hauptübersichtseite, dargestellt wird der Status der Schaltkanäle (als Birne), die Phase des Modes und die relative Leuchtkraft in Prozent.

    Dies ist die konfiguration der Zeitschaltuhren

    Wie gesagt bin für jede Anregung dankbar, sicher habe ich noch irgendwas allgemein sinvolles Übersehen was man noch integrieren könnte. So entstand Bspw. die Strom ausfall erkennung, weil ich mich jedes mal geärgert habe das nach einen Ausfall oder Abschalten der Anlage und wieder anschalten mein Abschäumer überlief.

    LG
    Marc

  • Hört sich gut an. Was für Hardware braucht man dafür? Was für eine Programmiersprache wird verwendet? Ich bin auch Programmierer und könnte vielleicht Freizeitabhängig unterstüzen.

    Gruß,
    Adrian

  • Oh das wäre klasse!!! Hilfe ist immer willkommen...
    Die Hardware ist / wird selbstentwickelt, da besonderer Wert auf echte Sicherheit gelegt wird, wie beispielsweise galvanische Trennung der Dimmung über I2C ( Für den Fall das das T5 mal wieder sich in den Hitzehimmel verabschiedet)... Die Basis bildet je nach Gerät ein ATMEL Mega32 bis Mega128. Bei dem eben vorgestellten Modul wirds ein Mega128 sein. Programmiert wird aussschlislich in C (naja ein paar Zeilen Assembler sind in der Grafik Lib auch dabei :smiling_face: ... unter marelab.de findest Du einiges an Infos mit welchen Tools man derzeit entwickelt wird. Geplant ist aber einen Bausatz hinzubekommen den jeder der mit einem Lötkolben umgehen kann das nachbauen kann. Der soll neben der Platine, Bauteilen auch den fertig programmierten Kontroller enthalten. Bis dahin dauert es aber noch 2 Monate und ist sicherlich auch Mengen/Intressenabhänig.

    Grus
    Marc

  • Schaltest Du die Ausgänge über Relais ? Wieviel Strom können Deine Dimmausgänge sinken ? Ich werkele auch seit längerem an so etwas rum, vielleicht sollten wir uns mal austauschen, habe da gerade eine neue Leiterkarte in der mache aber zu wenig Zeit zum programmieren... :winking_face: kannst ja mal ne PN schreiben, dann telefonieren wir mal.

    Tatsachen schafft man nicht aus der Welt, indem man sie ignoriert.

  • Hi Marc,

    Ich kann ja probieren zu sehen wie viel ich mich von C noch erinnern kann. :grinning_squinting_face: Ich programmiere seit ca 6 Jahren nur Java, aber hatte mal relativ lange davor in C programiert. Ich guck mir die Seite an und melde mich wieder.

    Gruß,
    Adrian

  • Hallo Adrian,
    na für Java hätte ich auch gute Verwendung, die Module die da in nächster Zeiut entstehen werden können alle von Java aus ausgelesen bzw. konfiguriert werden ein entsprechender Beta Teiber existiert bereits. Ein Beispiel Mann möchte ein Redox, Leitwert und Lichtsimulation nebst Zeitschaltuhr haben. Diese werden über einen Bus zusammengeschaltet und man kann diese über eine Java Oberfläche konfortable konfigurieren (wer will sich schon im Unterschrank den Rücken krum machen). Oder die Messwerte kontinuierlich auswerten und darstellen/archivieren. Also wenn Du die Java Seite nicht verlassen willst an der Baustelle gibt es noch genug zu schrauben :smiling_face:

    Grus
    Marc

  • Hallo!

    Hübsches Projekt. Hab die Sourcen gerade mal 'ausgechecked' und - sofern meine C-Kenntnisse es noch zulassen - den Code überflogen.
    Zusammen mit meinem Bruder wollten wir so etwas ähnliches mal auf die Beine stellen. Etwas kleinerer Funktionsumfang, dafür aber auf nem Beck IPC.
    Habt ihr besondere Anforderungen an das Layout der Platine? Mein Bruder ist fit mit Eagle - Würde sich das mal ansehen..

    Grüße!
    Oliver

  • So... Erstmal habe mich registriert. Sobald ich wieder zu Hause bin, werde ich mir den Repository angucken. Gibts bereits da etwas in die Java Richtung? Falls nein, gibt es irgendwo eine Beschreibung was in Java realisiert sein sollte?

    Gruß,
    Adrian

  • Adrian,
    unter subversion "/marelab_sun/trunk" befinden sich derzeit die ersten Java Sourcen. Eingesetzt wird dafür eine Lib die ein Ansprechen der seriellen Schnittstelle unter Java ermöglicht. Da sind ein paar Klassen die den I2C Treiber realisieren und ein kleines Testprogramm um mal Werte aus einem Gerät zu lesen / übertragen. Dies dient lediglich mal als Ansatz die gesammte Kommunikation I2C vom marelab bis zum PC unter Java zu testen. Das ganze ist aber derzeit eine Großbaustelle, da der Treiber nochmal umgeschrieben werden muss. Das hat folgenden Grund, so als Single Thread Programm funktioniert das unter Java einwandfrei sobald man eine GUI / Swing SWT nutzt klappt es nicht mehr da Java nicht gerade RealTime fähig ist und die GUI Threads das I2C Timing stören. Geplant ist die gesammte Oberfläche als RCP Eclipse Anwendung zu realisieren. Die einzelenen Module sind so auch als Plugin unter Eclipse direkt einzusetzen, zumindestens praktisch zum entwickeln und daraus eine Top Anwendung zu machen. Der Treiber wird von mir demnächst umgeschrieben so das er dann aus einem nativ C Teil besteht der auch die I2C adaption enthält und die Timing kritischen Teile in eine DLL auslagert über JNI (Java Nativ Interface) wird dann die Brücke zu Java geschlagen so das man dann alles von Java aus nutzen kann. Dies hat aber keinerlei Auswirkungen auf das Kommunikationsprinzip es gibt unter Anleitungen ein paar Dokus die gerade die I2C Kommunikation ein wenig behandeln und erklären.

    @Oliver
    Das wäre klasse bin für jede Unterstützung dankbar. In den nächsten Wochen werde ich ein größeres Update zu den Schaltplänen machen da die Dimm und Leistungsschaltung noch rein muß. Ebenso ist gerade der Code in weiten Teilen in der Überarbeitung. Geplant ist es das alle MareLabs immer auf der gleichen BasisPlatine beruhen, diese bekommt dann per HuckePack die jeweiligen Erweiterungen verpasst. Auf der Basis Platinen werden drauf sein, CPU Serielle/I2C Schnittstelle/ Display Stecker, RTC & Akku und IO Pfostenstecker für die Huckepacks.

    LG
    Marc

Jetzt mitmachen!

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