Sketch nach Spannungsunterbrechung / Fenstersteuerung

Moin zusammen ! Bin neu hier ! Mein Uno (Clone) ist auf dem Weg von China zu mir, und ich kann
es eigentlich kaum erwarten...
Gefunden habe ich den Arduino auf der Suche nach einer gescheiten Steuerung für mein
Dachflächenfenster. Fertiges gibt es kaum, meist unbezahlbar - da hat mich das Bastelfieber mal wieder erwischt.
(So richtig toll, mit Umschalter man./automatik, Sommer/Winter, Tag/Nacht, Regen/Sonne, Temp. Innen/Aussen, Kurzzeitlüftung......)

Jetzt habe ich dann doch die erste große Preisfrage:
Mal angenommen die Kiste ist fertig und leistet ihren Dienst, dann kurzer Stromausfall.
Einen Stützakku hatte ich eigentlich nicht vor einzubauen. Muss ich danach mich mit meinem Rechner zum
Ort des Geschehens begeben und den Sketch wieder hochladen? Oder behält der UNO die Software und macht danach
munter weiter? Oder müsste ich evtl. dafür irgendetwas mit EEPROMs stricken ?

Dieser Punkt ist mir noch ziemlich unklar, und ich kann ja bis jetzt immer noch nichts ausprobieren....

Vielen Dank schonmal

PS: Hat jemand sowas schonmal gebaut ? Über weitere Ideen / Lösungsansätze würde ich mich freuen !!!

Natürlich startet der UNO wieder , wenn der Strom wieder da ist.
gruß

ticki:
Einen Stützakku hatte ich eigentlich nicht vor einzubauen. Muss ich danach mich mit meinem Rechner zum
Ort des Geschehens begeben und den Sketch wieder hochladen? Oder behält der UNO die Software und macht danach
munter weiter? Oder müsste ich evtl. dafür irgendetwas mit EEPROMs stricken ?

Dieser Punkt ist mir noch ziemlich unklar, und ich kann ja bis jetzt immer noch nichts ausprobieren....

Nein, die "Software" ist eine "Firmware" und startet nach einem Reset einfach neu, z.B. nach einem Stromausfall.

Lediglich wenn Du nach dem Programmstart noch Einstellungen oder Konfigurationsdaten manuell änderst, Du z.B. Buttons/Taster anschließt, über die Du nach dem Programmstart noch auszuführende Schaltvorgänge, Schaltzeiten oder Solltemperaturen änderst, die nicht fest im Programm stehen, sind diese nach dem Programmstart manuell geänderten Daten wieder auf die Standardwerte beim Programmstart zurückgesetzt. Da wärst Du als Programmierer gefordert, bestimmte Einstelldaten ggf. selbst zu speichern (z.B. eine nach Programmstart geänderte Solltemperatur im EEPROM-Speicher) und jeweils nach dem Programmstart neu zu laden.

Oder Du kompilierst z.B. Solltemperaturen fest in das Programm, dann sind sie beim Programmstart auch automatisch wieder da.

Wenn Du eine Zeitsteuerung einbaust, dann wird ein zusätzliches Uhrenmodul benötigt und das Uhrenmodul muss eine Stützbatterie oder einen Stützakku haben. Sonst hat Dein Gerät beim Einschalten nie eine richtige Uhrzeit. Uhrenmodule mit DS1307 und einer großen Lithium-Knopfzelle können bis zu 10 Jahre Stromausfall überbrücken. Entsprechende Module mit DS1307 (Gangabweichung ca. 1 Minute pro Woche) gibt es bei Chinaversendern für unter 3 EUR, Module mit DS3231 (Gangabweichung ca. 1 Minute pro Jahr) für ca. 5 EUR. D.h. beim Stromausfall wird zwar nicht Dein Arduino, aber immer noch seine angeschlossene Quarzuhr mit Strom versorgt und läuft dadurch weiter.

Ja, cool. Danke für die schnelle Antwort! Das mit den "Werten" habe ich auch verstanden. Vielleicht spendier ich ja
dem Fenster noch einen Endschalter, so das beim Neustart ein kurzer Check läuft und alles wieder
auf definierten Anfang geht. Mit dem Uhrenmodul habe ich mich, zumindest theoretisch, auch schon beschäftig.
Der Beitrag über "Arduino als Schaltcomputer nutzen" ist sehr interessant, die Überlegungen Uhrmodul/DCF/GSM/WAN haben natürlich
alle ein pro und contra.....

Denke, Uhrzeit kommt relativ spät zum Tragen, der Plan ist:

  1. (wichtig) Regensensor - regnet mir sonst immer das Treppenhaus voll
  2. Taster/Automat für "Einmal Kurzlüften" (schließt automatisch nach einer Stunde oder so... weil wir vergessen das gerne)
  3. Temperaturvergleich innen/aussen - Winterbetrieb spart Heizkosten, Sommerbetrieb führ Hitze AUS der Bude...
  4. Tag/Nacht (der Zusammenhang fehlt mir noch ein bisschen, aber LDRs sind ja so billig geworden :slight_smile:
  5. Später, wenn Das schonmal funzt, kommt die Uhr ins Spiel (wofür weiß ich eigentlich auch noch nicht so ganz genau.....)

Noch jemand Wünsche, Anregungen, Ideen ??? :-))

Schönen Sonntag !

PS: Da meine ersten Programmiererfahrungen noch vom guten alten 64er Basic stammen vermisse ich in
den ganzen Tutorials immer den "if then goto" o.ä.
Ich weiß, eigentlich sind solche Sprünge verpöhnt, arbeitet ihr trotzdem damit ???

ticki:
PS: Da meine ersten Programmiererfahrungen noch vom guten alten 64er Basic stammen vermisse ich in
den ganzen Tutorials immer den "if then goto" o.ä.
Ich weiß, eigentlich sind solche Sprünge verpöhnt, arbeitet ihr trotzdem damit ???

Nein, denn die ganzen gotos gab es bei den ganz uralten Basic-Interpretern ja nur aus einem einzigen Grund: Weil man nach einer if-Abfrage immer nur einen einzigen Befehl ausführen konnte.

if Bedingung then Befehl

Und als "Befehl" war nur ein einziger Befehl erlaubt.
Deshalb war der einzige erlaubte Befehl dann typischerweise ein goto, wenn man bei positiver if-Abfrage tatsächlich mehr Code ausführen wollte.

Heutezutage ist das (auch unter BASIC) vollkommen verpönt, da man beliebig große Codeblöcke bilden kann, die sowohl bei positiver als auch bei negativer if-Abfrage ausgeführt werden.

if (Bedingung)
{
// Codeblock-1
}
else
{
// Codeblock-2
}

Da gibt es seit Jahrzehnten mit modernen Hochsprachen überhaupt keine Notwendigkeit von Gotos mehr. Aber wenn Du unbedingt möchtest, kannst Du (innerhalb einer Funktion) auch bei C und C++ goto-Sprünge ausführen.

hi,

  1. Taster/Automat für "Einmal Kurzlüften" (schließt automatisch nach einer Stunde oder so... weil wir vergessen das gerne)
  2. Temperaturvergleich innen/aussen - Winterbetrieb spart Heizkosten, Sommerbetrieb führ Hitze AUS der Bude...
  3. Tag/Nacht (der Zusammenhang fehlt mir noch ein bisschen, aber LDRs sind ja so billig geworden :slight_smile:
  4. Später, wenn Das schonmal funzt, kommt die Uhr ins Spiel (wofür weiß ich eigentlich auch noch nicht so ganz genau.....)

:slight_smile: die punkte 2, 3 und 4 haben alle mit zeit (dauer, tageszeit, jahreszeit) zu tun, Du solltest Dich nicht fragen, was Du mit einer uhr machen kannst, sondern damit anfangen. ist auch ein sehr "leichtes" thema, also eine gute übung, um mal reinzukommen.

gruß stefan

Hi,

Welcome on Board 8)

Mit den Temepraturen kannst Du auch auf Differenz steuern, also, wenn es oben 15°C wärmer als unten ist, dann dass Fenster auffahren....Setz den Ardu am Besten so, dass Du mit Plug'nPlay dran arbeiten kannst, ohne erst mit nem Gerüst den Laptop zum Prozessor zu bringen.

Btw, hat mal jemand Erfahrung gemacht, ob er Datentransfer auch über die 1,8m USB geht?
So 5- 10m wären für so einen Fall ja schon interessant.

Bezüglich Stromausfall würde ich die Sache so andenken, dass erstmal das/ die Fenter zu gefahren werden, dies dann über eine Rückmeldung erfasst wird, um dann wieder in den Steuerzyklus (also Zeit, Regen, Wärme...) einzuspringen.

Gutes Projekt,

Greetz, Linpo

Ja, mit dem Enschalter und einer "Fahr-erstmal-zu-Schleife" am Anfang hatte ich mir auch so vorgestellt.
Danach kann man definiert zur Automatik übergehen.
Noch besser allerdings (bin ja noch geistig am tüfteln) wäre eine Hardwareverschaltung mit Akkuunterstützung.
Wenn der UNO mal steht oder abstürzt (gibts sowas?) müssten die Fenster (quasi fallback) definitiv grundsätzlich schliessen.
Der Uno also nur aktiv aufsteuert. Kaum etwas wäre schlimmer am ersten Tag von 3 Wochen Urlaub und es regnet mir als schön in die Hütte...

Naja, erstmal muss ich das Ding erhalten, dann diverse Experimente mit Tastern, LEDs, Sensoren, evtl. Uhr usw. usw.

Aber grundsätzlich freu ich mich auch daß ich hier sicherlich den ein oder anderen Rat erhalte wenns klemmt....

Viele Grüße

ticki