www.mikrocontroller.net

Forum: Codesammlung Aquarium Controller


Autor: Eddy Current (chrisi)
Datum:
Angehängte Dateien:

Hallo Mikrocontroller,

Nachdem ich es hier Beitrag "Re: Aquarium Steuerung"
angekündigt hatte und auch nachgefragt wurde, stelle ich hiermit mein
Projekt "Aquarium Controller" im aktuellen Entwicklungszustand Online.

Enthalten ist:
- Schaltplan
- Firmware
- Ein Bild, wie das Gerät einmal aussehen wird

Tatsächlich liegt hier auf dem Schreibtisch der gelötete Prototyp noch
ohne Gehäuse, aber komplett bedienbar. Das gehäuse besteht aus
zugeschnittenen schwarzen PVC-Platten 4mm. Die Gerätebreite wurde durch
meinen Aquariumschrank vorgegeben. Gottlob passt da eine Europakarte
hinein.

Als Temperatursensor kommt ein NTC-Sensor, Typ Epcos B57861S0103, 10kΩ
zum Einsatz.

Latest News zur aktuellen Version 0.14 der Firmware:
- Auf der seriellen Schnittstelle laufen Prüfausgaben vom DCF77-Dekoder.
Nach einer halben Stunde kann man auch ablesen, wie genau der Quarz ist.

Todos:
- Alarmbeeper gibt noch keinen Alarm
- Grenzwerte für Maximal- und Minimaltemperaturen werden schlichtweg
ignoriert, sind aber einstellbar.
- Das kann niemals alles gewesen sein :-)

Die nächsten paar Wochen werde ich am dem Projekt nichts machen können,
da ich mit Umzug beschäftigt bin, aber der eine oder andere Hinweis ist
allemal drin.
Autor: Eddy Current (chrisi)
Datum:
Angehängte Dateien:

Erster Funktionstest der dimmbaren Neonröhren und der LED-Leiste am
fertigen (wer's glaubt) Gerät.
Autor: Eddy Current (chrisi)
Datum:
Angehängte Dateien:

Noch ein Bild.
Autor: Gast (Gast)
Datum:

Wenn ich das anmerken dürfte, es handelt sich um Leuchtstoffröhren mit
Quecksilberdampf, kein Neon.
Wo kann man denn Fassungen, EVG und die dünnen LSR bekommen? Lokal oder
im Versand?
Autor: Eddy Current (chrisi)
Datum:

Hi Gast,

Die Leuchtstoffeinheit hatte ich bei Zoo Zajac per Internet gekauft. Die
Fassung wird von SMD Systemtechnik bzw. SMD Electronic hergestellt. Ich
musste lediglich ein paar kleine Änderungen vornehmen (Kabel zu kurz,
unpassender Stecker).
Autor: Sascha Focus (sascha_focus) Benutzerseite
Datum:

@Eddy

was willst du den für eine pH-Elektrode nutzen?

Gruß Sascha
Autor: Eddy Current (chrisi)
Datum:

Hm, tja... momentan hab ich die Funktion tatsächlich nur vorgesehen,
weil mir das Gefrickel mit den Kalibrierflüssigkeiten zu gross ist. Ich
hab auch keine Ahnung, wie lange so eine Elektrode tatsächlich halten
wird. Wenn, dann dachte ich für den Einstieg an so ein Teil:

http://www.my-messgeraet.com/jtlshop/index.php?a=198

Viel schiefgehen kann so ja wohl nicht. Vielleicht liest ja auch jemand
mit, der schon mehr Erfahrung auf dem Gebiet hat.
Autor: Kurt Bohnen (kurt)
Datum:

Hallo Eddy,
hast du eine günstige Bezugsquelle für die PVC Platten?

Es ist doch nicht dieses geschäumte Zeug aus dem Baumarkt sondern
Vollmaterial?

Mfg,
Kurt
Autor: Eddy Current (chrisi)
Datum:

Don't panic :-)

Die Zuschnitte stammen von GM GmbH in München/Freiham. Die Platten
(Vollmaterial) werden einseitig mit Schutzfolie geliefert und sind
"recht präzise" gesägt. Für das Gehäuse habe ich die Platten lediglich
geklebt, oder sollte ich sagen mit Lösemittel verschweisst? Die vier
Schrauben halten nichts, sondern dienen nur als Schutz, um das Gehäuse
auf's Gesicht stellen zu können. Für alle Zuschnitte zusammen (knappe 20
Einzelteile) habe ich wohl um die 50 Euro bezahlt.
Autor: Kurt Bohnen (kurt)
Datum:

Günstig ist anders. Trotzdem Danke!


PS: Der höhere Preis liegt wohl an den vielen Zuschnitten.
Autor: Eddy Current (chrisi)
Datum:
Angehängte Dateien:

Im Anhang ist der aktuelle Datensatz inkl. Firmware V0.16,wie der
Controller nun seit knappen drei Wochen in Betrieb ist.
Autor: Andreas P. (madmax2006)
Datum:

Hallo Chrisi,

Dein Programm ist wirklich sehr gut geschrieben. Kannst Du einige
Funktionen in deinem Code noch Dokumentieren, das würde es mir und
sicherlich auch anderen leichter machen ihn zu verstehen.
Hast Du den Progammierstiel über ein Studium, oder mittels verschiedener
Literatur erlangt? Ich würde mir gerne noch einiges von Dir abgucken und
verstehen.

Gruß MadMax
Autor: Eddy Current (chrisi)
Datum:

Hi MadMax,

Danke für die Blumen. Der Programmierstil, ja der kommt aus der Praxis,
das Studium hilft da wenig, ich habe damals noch Pascal (Turbo Pascal
3.0, Compiler inkl. Editor 39kByte) gelernt. Für einen "Stil" reicht die
Zeit eh nicht. Man ist ja froh, wenn sich schon mal irgend etwas tut.

Bez. Kommentierung: Welche Funktionen sind denn besonders dringend?
Autor: Andreas P. (madmax2006)
Datum:

Hallo Chrisi,

>Bez. Kommentierung: Welche Funktionen sind denn besonders dringend?

Naja, es geht darum, das ich auch schon eine Weile an einen
Aqarium-Controller herum programmiere. Das Projekt wurde dann aber von
mir erst mal auf Eis gelegt, weil mir meine Programmierung im
Top-Down-Stiel einfach nicht mehr gefallen hat, zu unübersichtlich und
wenig modular aufgebaut. Die Programmierung wollte ich auch mittels
FreeRTOS realisieren, aber die liebe Zeit...

Ich wollte auch noch einige zusätzliche Optionen einbauen, wie z.B.
Wasserstandsüberprüfung mittels Lustdrucksensor, automatischer
Wasserwechsel, Grafik-LCD, Datenlogger mit SD-Card und Lichtdimmer mit
"DALI"-Spezifikation. Einige Sachen habe ich jetzt in einer abgespeckten
Variante realisiert. Ist mir aber alles etwas zu unbefriedigt.

Ich wollte Teile von Deinem Programm als Basis nutzen und dann für meine
Zwecke weiter aufbauen. Von daher kann ich nicht einzelnde Funktionen
benennen, die für mich interissant sind, es ist das Ganze...

Gruß MadMax
Autor: Route_66 (Gast)
Datum:

??? Lustdrucksensor ???

Klasse Tippfehler! Ein Schelm, wer böses dabei denkt. Lustig geht die
Welt zu Grunde...
Autor: Andreas P. (madmax2006)
Datum:

Ups ...
peinlich...

ich meine natürlich LUFTDRUCKSENSOR z.B. MPX4115A.
Autor: Michael U. (amiga)
Datum:

Hallo,

ich habe gerade kurz in den Code geschaut. Die Meinungen über die Art,
wie man lesbare Zuordnungen per #define schafft, werden sicher
auseinandergehen.

Allerdings möchte ich nicht Teile dieses Codes in einem anderen Projekt
nutzen wollen und dazu in ellenlangen #define-Liste sämtlich zugehörigen
Port und Pin-Zugriffe umschreiben wollen.

ich finde den Ansatz also nicht ganz so gut.

Wenn schon, dann bis zum Ende gehen:
#define LCD_PORT  PORTA
#define LCD_E     PA2 
#define LCD_RS    PA3 

#define LCD_E_HI  { LCD_PORT |=  (1<<LCD_E); }
#define LCD_E_LO  { LCD_PORT &= ~(1<<LCD_E); }
#define LCD_RS_1  { LCD_PORT |=  (1<<LCD_RS); }
#define LCD_RS_0  { LCD_PORT &= ~(1<<LCD_RS); }
#define LCD_WRITE(x)              \
  {                      \
    LCD_PORT = (LCD_PORT & 0x0F) | ((x) & 0xF0);  \
    LCD_E_HI;                \
    _delay_loop_1(10);            \
    LCD_E_LO;                \
    _delay_loop_1(10);            \
  }
#define LCD_CMD(x)                \
  {                      \
    LCD_RS_0;                \
    LCD_WRITE(x);              \
    LCD_WRITE((x) << 4);          \
  }
#define LCD_DATA(x)                \
  {                      \
    LCD_RS_1;                \
    LCD_WRITE(x);              \
    LCD_WRITE((x) << 4);          \
  }

#define LCD_SET_CONTRAST(x)            \
  {                      \
    portENTER_CRITICAL();          \
    {                    \
      OCR1B = 300+((x)<<6);        \
    }                    \
    portEXIT_CRITICAL();          \
  }

ist nur ein Beispiel und unvollständig.
Wenn aich aber hier mit dem Display von PortA nach PortD wechsel und PD1
für E usw. nehme, muß ich nur diese Zuordnungen ändern.

#define LCD_PORT PORTD
#define LCD_E    PD1

und bin fertig.

Gruß aus Berlin
Michael
Autor: Markus (Gast)
Datum:

Super Projekt!

Ich habe vor ca. 4 Jahren mal eine Terrariensteuerung angefangen, leider
bin ich Programmieranfänger und damals noch blutiger als heute ;-). Um
nicht lange rumzureden, mir ging es wie MadMax und jetzt liegt der
Krempel schon einige Zeit im Keller! Aber durch diesen Thread juckt es
mir wieder in den Fingern!

Danke Markus
Autor: Eddy Current (chrisi)
Datum:

Mittlerweile gibt's auch eine Projekt-Seite:

Aquarium Controller
Autor: Andreas P. (madmax2006)
Datum:

Das ist richtig und auch gut so...

Nur hat sich leider an der Dokumentation im Quelltext nicht's geändert.

Gruß...
Autor: Wächter (Gast)
Datum:

Mann, leg dich ins Bett und schlafe, statt hier nachts rumzuposten.
Autor: Andreas P. (madmax2006)
Datum:

Toller Spruch, und so warnsinnig konstruktiv.

Aber Du weißt ja...

Man sollte nicht mit Steine schmeißen, wenn man im Glaßhaus sitzt!!!
Autor: Lexy (Gast)
Datum:

Hallo!
Wollt mal fragen ob mal jemand die PH-Messung ausprobiert hat. Auf der
Projektseite steht ja sie wurde nicht getestet.
MfG Marius
Autor: AVR Freak (Gast)
Datum:

@Andreas P.: Nur hat sich leider an der Dokumentation im Quelltext
nicht's geändert.

Tja, ist schon blöd, wenn man selber nochmal nachdenken muß, was?
Autor: Tobias (Gast)
Datum:

Hallo,

die hast du den Temperatursensor abgedichtet? Es sollten ja nach
Möglichkeit keine Schadstoffe ins Wasser abgegeben werden.
Autor: Eddy Current (chrisi)
Datum:

Hi Tobias,

Ich habe ein Alurohr, gute 12cm, 6mm/4mm genommen und darin den Sensor
mit Aquariumsilikon ("das Schwarze") eingebettet. Allerdings habe ich
momentan Zweifel, dass die Konstruktion wirklich dicht ist: Die
Temperatur wird in letzter Zeit höher angezeigt, als sie wirklich ist.
Ich muss da selber nochmal ran. Aber vom Prinzip her...
Autor: Tobias (Gast)
Datum:

Aber ich habe in mehreren Aquarien-Foren gelesen, dass Alu schädlich für
die Fische ist.

Gruß Tobias
Autor: Eddy Current (chrisi)
Datum:

Hm, also gut scheint Aluminium jedenfalls nicht für die Fische zu sein.
Da fällt mir als Alternative noch Edelstahl- oder Glasrohr ein.
Letzteres hätte noch den Vorteil der optischen Kontrolle.
Autor: Tobias (Gast)
Datum:

Glasrohr ist ne gute Idee, quasi Reagenzgläser. Edelstahl so übrigens
ebenfalls nicht gut sein.
Autor: Eddy Current (chrisi)
Datum:

Ah gut zu wissen, werde mich dann ebenfalls mal nach einem Glasrohr
umsehen. Dünnes Reagenzglas, ja das isses, weil unten verschlossen.
Damit sollten meine "Effekte" auch der Vergangenheit angehören.
Autor: Tobias (Gast)
Datum:

Hast du eigentlich mittlerweile schon eine PH-Elektrode in Betrieb
genommen? Ich bin schon seit 2-3 Tagen auf der Suche nach Informationen
über das Ausgangssignal solch einer PH-Elektrode. Kannst du mir da
nähere Informationen geben bzw. ein paar Quellen nennen?

Gruß Tobias
Autor: Eddy Current (chrisi)
Datum:

Nö, weiterhin keine pH-Elektrode.

Wir haben mittlerweile Katzen im Haus, daher mußte ich die Anlage eher
zurück bauen, derzeit also weder Temperatursensor, DCF-77-Empfänger noch
pH-Sonde.

Das Ausgangssignal ist schnell beschrieben:

Bei pH 7.0 bekommst Du 0V Ausgangsspannung, darüber und darunter steigt
und fällt der Wert mit 58mV/pH. Das Signal muß höchstohmig (>1GOhm)
gemessen werden. Google mal nach pH 58mV ...:-)
Autor: Tobias (Gast)
Datum:

Ok, danke für die Erklärung und den Google-Tip. Unter dem Suchbegriff
findet man ja wirklich einiges.
Autor: Bernhard M. (boregard)
Datum:

Tobias schrieb:
> Hallo,
>
> die hast du den Temperatursensor abgedichtet? Es sollten ja nach
> Möglichkeit keine Schadstoffe ins Wasser abgegeben werden.

Ich habe das vor Jahren (na ja, so ca. 1982) mal so gemacht, daß ich den
Sensor (NTC) in einen Aquarien-Luftschlauch habe und dann ca. 5-10 mm
davor Schlauch abgeschnitten, über eine Flamme gehalten bis der Schlauch
fast kokelt und dann den "weichen" Schlauch mit einer Kombizange fest
zusammengepresst. Den Schlauch hats verschweisst, das hat Jahre
gehalten...
Autor: Thilo M. (Gast)
Datum:

Sind die Temperatursensoren nicht in mit Quarzsand gefüllten
Reagenzgläsern, die oben aus dem Wasser ragen, ins Aquarium eingebaut?
Ich meine sowas schon mal gesehen zu haben ...
So können definitiv keine Schadstoffe ins Wasser gelangen und die
Konstruktion hält ewig dicht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net