Forum: Mikrocontroller und Digitale Elektronik Terrariensteuerung Projekt


von Marius (Gast)


Lesenswert?

Hallo,
ich habe mehrere (14) Terrarien. Jedes dieser Terrarien muss gesteuert
werden (Licht, Heizung, Kühlung, Luftfeuchtigkeit, ...). Bisher
verwende  ich Zeitschaltuhren für das Licht und Regel ebenfalls mit
Zeitschaltuhren aus Erfahrungswerten die Temperatur & Luftfeuchtigkeit
(Heizmatten, Lüfter, Beregnungsanalge) so das ein einigermaßen
konstantes Klima herscht. Die Terrarien müssen für Tag und nacht
unterschiedlich gesteuert werden (z.B. Tagsüber auf 30°C halten, Nachts
auf 20°C). Das das ganze ziemlich aufwendig ist mit den vielen
Zeitschaltuhren und dann noch Sommer wo es zu heiß wird und Winter
wieder zu kalt dürfte jedem klar sein.
Jetzt habe ich nach einer Lösung gesucht, das ganze Zentral (pro
Terrarium) zu steuern und bin nach viel Suche im Internet bei
AVR-Mikrocontrollern gelandet. Leider kenne ich mich mit Elektronik
nicht sonderlich gut aus... :( Aber ich habe einen Freund der sich
recht gut auskennt mit Elektronik allgemein und mir seine Hilfe
angeboten hat.
Momentan sind wir auf dem Stand das wir die Temperatur &
Luftfeuchtigkeit theoretisch (AVR Studio4 Simulation) regeln können.
Das Problem wo wir nicht weiterkommen ist die Zeitschaltuhr (welche ja
das wichtigste der ganzen Schaltung ist)

Kann uns hier irgendjemand helfen wie man eine Zeitschaltuhr mit
AVR-Mikrocontrollern realisieren kann ?

Ich habe mal eine kurze Projektbeschreibung geschrieben damit ihr euch
besser vorstellen könnt was die Schaltung können soll und wie die
Zeitschaltuhr arbeiten muss. Die Projektbeschreibung könnt ihr euch
hier anschauen ->
http://www.terraristik.net/terrarium/Terrariensteuerung.pdf

Ich hoffe es kann uns hier jemand helfen ! :(

Vielen Dank schonmal im vorraus !!!! :)

Gruss,
Marius

PS: Wir machen das ganze in Assembler-Code

von OldBug (Gast)


Lesenswert?

Die Beschreibung ist ja schonmal nicht schlecht!
Ist euch denn auch wirklich klar, welchen Umfang diese Projekt hat?
Falls das zutrifft und ihr euch nicht davon abschrecken lasst, dann hab
ich da ein paar Ideen zu:

 - Baut das System Modular (zb im 19"-Rahmen) auf
   - für jeweils 1/2 Terrarien ein Einschub (Mess/Treiberstufe)
   - Steuereinschub mit Display
   - Netzteileinschub
   - Je nach größe der Einschübe mehrere 19"-Rahmen verwenden
   - Am Steuereinschub Daten per Drehimpulsgeber einstellen
   - An den Treiberstufen Zustände per LED anzeigen
   - Automatische Adressierung der Treiberstufen (erweiterbarkeit)
   - Im "Betriebsmodus" durchgehend die Werte der einzelnen
     Messstufen anzeigen (zb wechsel alle 5 sec)
   - Einzelne Messstufe per Drehimpulsgeber auswählbar machen

 - Die Regelung der Temperatur erfordert (genau wie die
   Regelung der Luftfeuchtigkeit) eine Hysterese von einigen
   Grad Celsius, weshalb (unter anderem) auch die Regelung
   auf 1 Grad Celsius kaum erreichbar sein wird

 - Programmiert das ganze in C, das macht bei dem Umfang
   des Projektes die Pflege des Codes wesentlich einfacher

...just my 2 cents...

von Jens123 (Gast)


Lesenswert?

Hallo

Ganz am Anfang setzt euch mit den AVRs auseinander, evtl holt euch
einen Mega8, mit dem kann man schon recht viel machen..

Lasst lampen blinken und steuert ein LCD Display an..

mit der Uhr wuerde ich evtl eine dcf Uhr nehmen, hat den vorteil, dass
sie sehr genau laeuft und du nicht immer nachstellen musst..

zum lernen sollte man mit ASM anfanngen, um den µC besser
kennenzulernen, wie er arbeitet und sich verhaellt.
bin selbst erst seit 3 wochen daran und mache weiterhin Vortschritte
kann ich nur Empfehlen.

Wenn ich noch die AD Wandler am laufen habe setze ich mich mit C
auseinander.

Viel Ervolg

Gruss Jens

von Christian Schifferle (Gast)


Lesenswert?

Hallo MArius

Da ihr ja bereits mit AVR-Studio4 Erfolge erzielen konntet gehe ich
davon aus, dass bei euch nicht die Programmierung das Problem ist.
Obwohl ich bei der Grösse des Projektes auch sicherlich eine
Hochsprache wie C, Basic oder Pascal verwenden würde (Mach ich aber
sowieso immer, ich kann mit ASM überhaupt nichts anfangen).

Ich selber bin daran, eine Aquariensteuerung mit automatischem
Wasserwechsel zu planen, bin jedoch noch nicht sehr weit gekommen aus
Zeitmangel.
Die Uhr jedoch lässt sich recht einfach aufbauen. Du brauchst lediglich
einen genauen Sekundentakt, welchen du entweder über einen AVR-Timer
realisieren kannst (gibt etliche Threads hier mit Tips) oder indem du
der Schaltung einen zusätzlichen Uhrenquarz spendierst.
Über den Sekundentakt zählst du jetzt eine Variable hoch. Eine zweite
Variable für die Minuten und eine dritte für die Stunden.
Der Rest ist dann eigentlich nur noch eine Fleissarbeit. Vor allem das
Display und die Bedienung dürfte ganz schön aufwändig werden. Aber das
kriegt ihr sicher in den Griff.

Eventuell könnte es sinnvoll sein, mehrere AVR's mit Teilaufgaben zu
betreuen und dieselben dann bei Bedarf miteinander kommunizieren zu
lassen. So könntet ihr die Steuerung auch schrittweise aufbauen und
testen.

Wäre schön, wenn ihr eure Erfolge hier im Forum präsentiert.

Gruss
Christian

P.S.: In eurer Beschreibung habt ihr bei der Hardware die Taster für
die Bedienung vergessen ;-)

von Darko Sabljo (Gast)


Lesenswert?

Hallo,

habe so ein projekt auch mal für mein Terrarium angefangen, nur leider
nicht fertiggestellt.
Für Temp/Feuchte Messung habe ich einen kombinierten Sensor von ELV
genommen, für die Uhr eine RTC von Maxim (DS1306).
Die RTC habe ich mit dem Interrupt Eingang des Atmels Verbunden, und
nach einem "Alarm" der RTC eben die jeweiligen Ausgänge geschaltet
(Licht, Beregnung), und dann das Alarm Register mit der nächsten Zeit
geladen usw.

Leider ist das alles wegen Zeitmangen nicht fertig geworden :(
Vielleicht fnag ich den Winter wieder an...mal schauen :)

von Olaf (Gast)


Lesenswert?

Jemand der nicht in der Lage ist mal eben so eine Zeitschaltuhr mit
einem AVR zu programmieren der hat nicht genug Ahnung fuer so ein
Projekt. Da du 14 Terrarien hast, hast du dann hoffentlich auch genug
Platz fuer einen grossen Friedhof im Garten.

Wie die anderen schon mehr oder weniger deutlich haben durchblicken
lassen, ihr unterschaetzt das gewaltig.

Olaf

von Marcus M. (Gast)


Lesenswert?

Hallo Marius,

bitte unterschätze das 'Projekt nicht, denn ich arbeite jetzt schon
fast 1,5 Jahre an einer Aquariensteuerung und hab bisher noch nicht
viel geschafft. Zugegeben es sind auch noch einige Projekte dazwischen
gekommen, aber von den anfänglichen och das geht ja ohne Probleme bin
ich auch schon weit weit weg.
Du hast später einige Probleme mit der Unlinearität der Fühler und dem
Phänomen, das sich einige Kalibireripunkte einfach verschieben.
Aufbau und in Betriebnahme ist das kleinste Problem. Die Stabilität ist
das größere - stell Dir - so wie ich - ein kleines Becken hin, das mit
irgendeiner sehr robusten und billigen Art bestückt ist - bei mir sinds
Schnecken - denn es wird sicher irgendwnn mal Grilltime kommen!

Gruß Marcus

von Peter D. (peda)


Lesenswert?

Für Zeitsteuerungen aller Art ist ein Scheduler ideal, z.B.

http://www.mikrocontroller.net/forum/read-4-49709.html#new

Man kann damit verschiedene Sachen quasi parallel ausführen.
D.h. die Lichtsteuerung, die Tempraturregelung, die Feuchteregelung und
die Bedienung laufen dann völlig unabhängig voneinander.
Als Zeittakt dürfte 1s oder 10s völlig ausreichen.

Je nach Kabellänge kann man auch überlegen, ob nicht ein MC gleich
mehrere Terrarien steuert (die Rechenzeit des AVR reicht jedenfalls
dicke für alle 14).


Von der Vernetzung mehrerer AVRs für nur ein Terrarium rate ich
dringend ab. Da ist allein schon das fehlersichere Protokoll ein Faß
ohne Boden und nichts für einen Anfänger.


Ein großes Problem für Anfänger ist die Störsicherheit.
Man sollte für sämtliche Ein- und Ausgänge Optokoppler nehmen und auch
große Abstände zu allen 230V-Kreisen lassen.


@Marcus,

"Du hast später einige Probleme mit der Unlinearität der Fühler und
dem Phänomen, das sich einige Kalibireripunkte einfach verschieben."

Deshalb sollte man, wenn man mit der Analogtechnik etwas auf Kriegsfuß
steht, lieber digitale Sensoren (z.B. DS18B20) verwenden. Wo nichts
analog, da kann auch nichts driften.
Die Sensoren müssen natürlich auch entsprechend gekapselt werden.

Wer in der Analogtechnik einigermaßen erfolgreich sein will, sollte
schon Datenblätter von OPVs lesen können und wissen, was z.B.
Common-Mode-Voltage oder Slew-Rate in der Praxis bedeuten.
Kurz gesagt, man muß in der Lage sein, Schaltungen so zu
dimensionieren, daß sie unempfindlich gegenüber den realen
Eigenschaften von Bauteilen (Toleranz, Temperaturkoeffizient,
Thermospannung usw.) sind.


Peter

von Achim Walther (Gast)


Lesenswert?

Hallo Marius,

nach dem Lesen Deiner Projektbeschreibung habe ich den Eindruck, Du
hältst Dich noch zu sehr an dem Konzept der Zeitschaltuhr fest, weil Du
es bisher damit gelöst hast. Die Projektbeschreibung vermischt zu sehr
Anforderung und Lösungsvorschläge. Vielleicht solltest Du nochmal einen
Schritt zurück gehen, und nur die reinen Anforderungen definieren und
dann erst Wege suchen, wie diese umzusetzen sind. Wenn das ganze z.b.
wie oben vorgeschlagen als zentralisierte Lösung entwickelt werden
soll, käme vielleicht auch ein alter PC zur Steuerung in Betracht? Oder
soll es pro Terrarium ein abgeschlossenes Modul geben (das man später
vielleicht verkaufen könnte)?

Natürlich brauchst Du eine zeitliche Steuerung, aber vielleicht kann
die mehr als nur an und aus. Wie wäre es mit einer Art Regelwerk (Regel
= Ereignis -> Bedinungung -> Aktion). Oder man lässt softwaretechnisch
ein Script in einer Steuerungs-Engine ablaufen.

Na gut, am Ende dieser Reihe unkonkreter Tipps hätte ich noch den, sich
möglichst auf die wichtigen / interessanten Aufgaben zu konzentrieren
und den Rest durch eingekaufte Komponenten (Sensor-Module mit I2C-Bus,
DCF- und Schaltmodule) abzudecken. Teile und herrsche...

Achim.

von Marius (Gast)


Lesenswert?

Hallo,
erstmal danke für eure zahlreichen Tips ! :)

Die ganzen Fachbegriffe die ihr mir hier an den Kopf werft sind für
mich jedoch noch Fremdworte und ich muss mich ertmal langsam da
durcharbeiten...vielleicht hab ich das Projekt wirklich unterschätzt.
Wie gesagt, Regeln können wir bereits, auch Tag und Nacht, blos
schalten  wir Tag & Nacht noch händig ein.....fehlt also
Zeitschaltuhr.
Das ganze soll schon pro Terrarium aufgebaut werden (also immer nur 1
Terrarium steuern) da die Terrarien ja nicht alle immer
zusammenstehen.
Das die Sensoren kalibriert werden müssen ist klar. Deshalb haben wir
uns möglichst linear verlaufende Sensoren gesucht (in unserem
Temperaturbereich zwischen 10°-60° Grad). Ich denke wenn das ganze mal
steht, sind die Kalibrierarbeiten Peanuts.

@Achim: ich will nix verkaufen...aber vielleicht ändert sich die Anzahl
Terrarien ja bei mir ? Mit dem PC hab ich schonmal was gemacht was auch
funktioniert. Hab das ganze über die Serielle Schnittstelle gesteuert.
Problem war nur das pro Terrarium ca. 250€ Kosten sind weil ich einen
Kombi Temp/Luft Fühler verwendet habe der schon ASCII Werte liefert und
ich max. 8 Terrarien pro PC steuern kann. In meinem Fall müssten dann 2
PCs laufen.

So wie ich jetzt hier die Antworten deute, ist es nicht so ein großes
Problem eine Zeitschaltuhr zu realisieren !? Kann den jemand mal ein
konkretes Beispiel posten oder Link nennen ? Am besten wäre natürlich
den schon vorhandenen AVR Timer zu nutzen, diese Idee hatten wir auch
schon, es scheitert aber am geringen Wissen unsererseites. :(

Noch was ganz anderes.....wir wollten den ATmega16 verwenden. Jetzt hab
ich gesehen das der ATmega169 einen LCD Treiber integriert hat. Sollten
wir daher lieber den mega169 verwenden ? Mit dem mega16 kann ich doch
auch "Problemlos" ein LCD ansprechen..... !?

Gruss,
Marius

von Volker Kattoll (Gast)


Lesenswert?

@Marius:

Zu Timer schaue da:

http://www.mikrocontroller.net/forum/read-4-57760.html
Ein Beitrag den ich für genial halte.

An sonsten kann ich Peter Dannegger nur zustimmen:
Nutze überall wo es wirtschaftlich vertretbar ist digitale Sensoren.
Das spart dir viel Arbeit und Fehlersuche weil der Abgleich entfällt.

Gruss
Volker

von Sascha Koths (Gast)


Lesenswert?

Hätte da auch nen Vorschlag für ne einfache und stabile Zeitsteuerung.
Mit der internen Geschichte must du dich auch darum kümmern, das z.B.
beim Stromausfall etc. die Zeit weggeschrieben sein muss(z.B. interner
EEprom)Ansonsten must du jedesmal die Uhr neu stellen.
Alternativ dazu DCF 77 benutzen oder noch besser, da du warscheinlich
um den I²C Bus nicht rumkommen wirst (externer EEprom, ADDA Wandler
etc.)einfach nen Uhrenbaustein nehmen, der Batterie gepuffert ist
(DS1307 auch I²C). Bei der Abfrage der Schaltzeit dann einfache I²C
lese Routinen: Uhrzeit auslesen-->wenn ausgelesn mit beliebiger
Schaltzeit vergleichen. Wenn gleich, dann den Ausgang des COntrollers
etc. setzen.
Die kleinste Schaltbedingung ist dann eine Sekunde, du entlastest den
Controller aber für andere Aufgaben. Ausserdem ist ein Terrarium eh
nicht so Zeitkritisch.
P.S. Die Schaltzeiten können auch im EEprom stehen, damit du sie
jederzeit über ein Menü etc. ändern kannst.
Brauchst in dem Fall nicht immer den Source neu compilieren, wenn die
Schaltzeiten sich ändern sollen...

von Marcus M. (Gast)


Lesenswert?

@Dieter:
sehe es doch mal sportlich, man lernt nie aus und Fehler bei der
Auslegung stellt man meist leider erst zum Schluß fest. Im Grunde lernt
man dadurch nur. Sollte aber ein nett gemeinter Hinweis an Marius sein,
damit bei Fehlern der Schaden nicht zu groß wird.

@Marius:
Ich wünsch Dir viel erfolg bei Deiner Schaltung!

GRuß Marcus

von Jens123 (Gast)


Lesenswert?

Hi, das Display kannst du auch an einem MEGA8 ansteuern, das gibt keine
probleme, solannge du 6 freie Ausgännge hast (bei einem 4x40 Zeichen
Display)
http://home.dinspel.com/avr/pocsag.jpg

die Zeitschaltuhr hmmh ich hab mal eine Uhr gebastelt, villeicht hilfts
weiter..
http://home.dinspel.com/avr/Uhr.asm
http://home.dinspel.com/avr/lcd-routines.asm
Ein Uhrenquarz ist an Tosc1 / Tosc2 angeschlossen,
Fuses CKopt nicht vergessen und den RC Oszilator einstellen (4MHz)
zumindest bei dem mega8, da dieser Eingang doppelt belegt ist mit XTAL1
/ XTAL2


Gruss Jens

von Josef (Gast)


Lesenswert?

Man sollte sich mal ein Siemens Logo überlegen. Da sind mehrere
Schaltuhren drin. Temperaturmodul (PT100)gibt es dazu. Oder ein
Esay Soft von Möller. Die kann auch mit Analogspannungen (0-10 V)
umgehen. Sensoren mit 0-10 V Ausgang gibt es. Vernetzbar ist das Ding
auch. Sonst sind Mitsubishi Flex-Controller eine gute Lösung.
Ich würde, im Interesse der Tiere, keine Selbstbaulösung vorschlagen.

Mein Ansatz: Pro Therarium ein Easy-Soft, 1 Tempsensor, 1
Luftfeuchtigkeitsensor, 1 Aufbau-Kleinverteiler mit transparenten
Schutzdeckel, damit die Uhr sichtbar ist. Alles klein und kompakt und
vorallem sehr zuverlässig ! Kosten pro Einheit ca. 250 €. Die Tiere
werdenes dir danken.

Schöne Grüße Josef

von Marius (Gast)


Lesenswert?

@Josef:

Hallo Josef,
das Projekt welches ich hier machen will, schaltet hier ja nur extrem
Werte. Das heißt es geht hier nur um sehr Heiße Sommertage oder sehr
kalte Wintertage. An solchen Tagen soll halt eine zusätzlich Heizung
oder Kühlung angehen. Das Terrarium ist schon durch die Beleuchtung auf
eine richtige Temperatur eingestellt und normalerweise sollte die
Schaltung nie zum Einsatz konmen. Wir reden hier von einem
Temperaturbereich einer normalen Mietswohnung ! Jeder der z.B. unter
dem Dach wohnt weiß das es dort sehr warm werden kann an heißen
Sommertagen. In solch einem Fall hab ich dann immer meiner Beleuchtung
ausgeschaltet im Terrarium um etwas die Temperatur zu senken. So hab
ich halt was automatisiertes aber die Tiere überleben es auch wenn ich
gar nichts mache....es wird keine 100°C im Terrarium. In der Wüste gibt
es Nachts Minus Grade und Tagsüber bis zu 50°C und es macht den Tieren
nichts.
Also danke für deine Vorschläge aber bitte gib mir keine Ratschläge
bezüglich meiner Tiere, ich glaube da kenn ich mich besser aus. :)

Gruss,
Marius

von Josef (Gast)


Lesenswert?

Was für Tiere sind es denn ?

Josef

von Marius (Gast)


Lesenswert?

Hallo Josef,

hier kannst du dir meine Tiere anschauen -> http://www.gismoo.de

Gruss,
Marius

von Marius (Gast)


Lesenswert?

Hallo,

wo bekomm ich den Digitale Feuchte bzw. Temperatursensoren her ?

Am besten wäre natürlich gleich ein Kombi-Sensor der beide Werte Messen
kann. Bisher habe ich bei google nur den SHT11 bzw. SHT15
gefunden...jedoch auch keine Bezugsquelle für diesen !? Gibt es andere
Alternativen mit Bezugsquellen ?

Danke,
Marius :)

von Andreas Hesse (Gast)


Lesenswert?

Hi,
ich glaube Farnell hat diese.
Oder mal bei www.driesen-kern.de versuchen.

Zusätzlich gibt es noch hilfreiche Infos im Forum, z.B.
http://www.mikrocontroller.net/forum/read-4-93267.html

Gruss
Andreas

von Alex (Gast)


Lesenswert?

Habe meine bei micromaus.de bestellt und war zufrieden mit der
Lieferung. Implementierung ist relativ einfach und der Sensor muss
nicht mehr weiter kalibriert werden. Eine Taupunktberechnung ist auch
einfach möglich. Habe allerdings den SHT75 verwendet, da ichs nicht so
mit SMD haben :-)

von Josef (Gast)


Lesenswert?

@marius :
Danke ! Super Hompage. Nette Tierchen. Bust scheinbar ein Profi. Darum
sollte auch deine Steuerung so sein. Kann dich beraten betreffend guter
Steuerung, weil ich viel auf Lager habe.

Schöne Grüße Josef

von Marius (Gast)


Lesenswert?

Hallo Josef,

was hast du denn auf Lager ? :)

Gruss,
Marius

von Josef (Gast)


Lesenswert?

Habe lCD Module 4-Zeilig mit 4 Tasten mit  4 Ein - und 4 Ausgängen. Es
kann  Temperaturen erfassen und hat auch eine Uhr eingebaut.
Ein Summer für zB Alarme ist auch da.

SG Josef

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.