Aquarium Controller

OP #1124875
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.
Angehängte Dateien:
OP #1296857
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.
OP #1296895
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.
#1330111
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
OP #1330887
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?
#1332072
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
#1332691
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
Gast #1443496
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
OP #1594092
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...
Gast #1596675
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
OP #1596929
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 ...:-)
#1602190
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...
Gast #1610504
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren