Forum: Projekte & Code Aquarium Controller


von Eddy C. (chrisi)


Angehängte Dateien:

Lesenswert?

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.

von Eddy C. (chrisi)


Angehängte Dateien:

Lesenswert?

Erster Funktionstest der dimmbaren Neonröhren und der LED-Leiste am 
fertigen (wer's glaubt) Gerät.

von Eddy C. (chrisi)


Angehängte Dateien:

Lesenswert?

Noch ein Bild.

von Gast (Gast)


Lesenswert?

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?

von Eddy C. (chrisi)


Lesenswert?

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).

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

@Eddy

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

Gruß Sascha

von Eddy C. (chrisi)


Lesenswert?

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.

von Kurt B. (kurt)


Lesenswert?

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

von Eddy C. (chrisi)


Lesenswert?

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.

von Kurt B. (kurt)


Lesenswert?

Günstig ist anders. Trotzdem Danke!


PS: Der höhere Preis liegt wohl an den vielen Zuschnitten.

von Eddy C. (chrisi)


Angehängte Dateien:

Lesenswert?

Im Anhang ist der aktuelle Datensatz inkl. Firmware V0.16,wie der 
Controller nun seit knappen drei Wochen in Betrieb ist.

von Andreas P. (madmax2006)


Lesenswert?

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

von Eddy C. (chrisi)


Lesenswert?

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?

von Andreas P. (madmax2006)


Lesenswert?

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

von Route_66 (Gast)


Lesenswert?

??? Lustdrucksensor ???

Klasse Tippfehler! Ein Schelm, wer böses dabei denkt. Lustig geht die 
Welt zu Grunde...

von Andreas P. (madmax2006)


Lesenswert?

Ups ...
peinlich...

ich meine natürlich LUFTDRUCKSENSOR z.B. MPX4115A.

von Michael U. (amiga)


Lesenswert?

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:
1
#define LCD_PORT  PORTA
2
#define LCD_E     PA2 
3
#define LCD_RS    PA3 
4
5
#define LCD_E_HI  { LCD_PORT |=  (1<<LCD_E); }
6
#define LCD_E_LO  { LCD_PORT &= ~(1<<LCD_E); }
7
#define LCD_RS_1  { LCD_PORT |=  (1<<LCD_RS); }
8
#define LCD_RS_0  { LCD_PORT &= ~(1<<LCD_RS); }
9
#define LCD_WRITE(x)              \
10
  {                      \
11
    LCD_PORT = (LCD_PORT & 0x0F) | ((x) & 0xF0);  \
12
    LCD_E_HI;                \
13
    _delay_loop_1(10);            \
14
    LCD_E_LO;                \
15
    _delay_loop_1(10);            \
16
  }
17
#define LCD_CMD(x)                \
18
  {                      \
19
    LCD_RS_0;                \
20
    LCD_WRITE(x);              \
21
    LCD_WRITE((x) << 4);          \
22
  }
23
#define LCD_DATA(x)                \
24
  {                      \
25
    LCD_RS_1;                \
26
    LCD_WRITE(x);              \
27
    LCD_WRITE((x) << 4);          \
28
  }
29
30
#define LCD_SET_CONTRAST(x)            \
31
  {                      \
32
    portENTER_CRITICAL();          \
33
    {                    \
34
      OCR1B = 300+((x)<<6);        \
35
    }                    \
36
    portEXIT_CRITICAL();          \
37
  }

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

von Markus (Gast)


Lesenswert?

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

von Eddy C. (chrisi)


Lesenswert?

Mittlerweile gibt's auch eine Projekt-Seite:

Aquarium Controller

von Andreas P. (madmax2006)


Lesenswert?

Das ist richtig und auch gut so...

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

Gruß...

von Wächter (Gast)


Lesenswert?

Mann, leg dich ins Bett und schlafe, statt hier nachts rumzuposten.

von Andreas P. (madmax2006)


Lesenswert?

Toller Spruch, und so warnsinnig konstruktiv.

Aber Du weißt ja...

Man sollte nicht mit Steine schmeißen, wenn man im Glaßhaus sitzt!!!

von Lexy (Gast)


Lesenswert?

Hallo!
Wollt mal fragen ob mal jemand die PH-Messung ausprobiert hat. Auf der 
Projektseite steht ja sie wurde nicht getestet.
MfG Marius

von AVR Freak (Gast)


Lesenswert?

@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?

von Tobias (Gast)


Lesenswert?

Hallo,

die hast du den Temperatursensor abgedichtet? Es sollten ja nach 
Möglichkeit keine Schadstoffe ins Wasser abgegeben werden.

von Eddy C. (chrisi)


Lesenswert?

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...

von Tobias (Gast)


Lesenswert?

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

Gruß Tobias

von Eddy C. (chrisi)


Lesenswert?

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.

von Tobias (Gast)


Lesenswert?

Glasrohr ist ne gute Idee, quasi Reagenzgläser. Edelstahl so übrigens 
ebenfalls nicht gut sein.

von Eddy C. (chrisi)


Lesenswert?

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.

von Tobias (Gast)


Lesenswert?

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

von Eddy C. (chrisi)


Lesenswert?

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 ...:-)

von Tobias (Gast)


Lesenswert?

Ok, danke für die Erklärung und den Google-Tip. Unter dem Suchbegriff 
findet man ja wirklich einiges.

von Bernhard M. (boregard)


Lesenswert?

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...

von Thilo M. (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.