mikrocontroller.net

Forum: Projekte & Code Aquarium Controller


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

Bewertung
0 lesenswert
nicht 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.

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

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
Noch ein Bild.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Eddy Current (chrisi)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Sascha Focus (sascha_focus) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Eddy

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

Gruß Sascha

Autor: Eddy Current (chrisi)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kurt Bohnen (kurt)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Eddy Current (chrisi)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kurt Bohnen (kurt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht 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

Autor: Eddy Current (chrisi)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Andreas P. (madmax2006)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Route_66 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
??? Lustdrucksensor ???

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

Autor: Andreas P. (madmax2006)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups ...
peinlich...

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

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht 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:
#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:

Bewertung
0 lesenswert
nicht 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

Autor: Eddy Current (chrisi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mittlerweile gibt's auch eine Projekt-Seite:

Aquarium Controller

Autor: Andreas P. (madmax2006)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
Mann, leg dich ins Bett und schlafe, statt hier nachts rumzuposten.

Autor: Andreas P. (madmax2006)
Datum:

Bewertung
0 lesenswert
nicht 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!!!

Autor: Lexy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht 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?

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Autor: Eddy Current (chrisi)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Tobias (Gast)
Datum:

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

Gruß Tobias

Autor: Eddy Current (chrisi)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tobias (Gast)
Datum:

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

Autor: Eddy Current (chrisi)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Eddy Current (chrisi)
Datum:

Bewertung
0 lesenswert
nicht 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 ...:-)

Autor: Tobias (Gast)
Datum:

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

Autor: Bernhard M. (boregard)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.