INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Anwesenheitssimulation
17.05.2015, 12:58
Beitrag #1
Anwesenheitssimulation
Hallo zusammen,

ich bin absoluter Programmier-Anfänger. War schon stolz auf mich, als ich die LED auf dem Arduino zum Blinken gebracht habe.

Allerdings soll ich nun ohne jegliche Programmier-Kenntnis für ein Uni-Projekt eine Anwesenheitssimulation bauen und programmieren. Und der Dozent unterstützt leider gar nicht, lediglich mit der Aussage "Bringen Sie sich das selbst bei".

Mein Arduino soll einen Lichtsensor auslesen, um zu ermitteln, zu welcher Uhrzeit die Lampe an und wieder ausgeschaltet wird. Dann soll er diese Zeiten per Zufall später wieder "abspielen" und die Lampe (bei Abwesenheit) zu ähnlichen Zeiten schalten.

Ist es überhaupt möglich, dass der Arduino das Signal und die Uhrzeit koppelt? Und dieses dann speichert, sodass es zu einem späteren Zeitpunkt wieder abgerufen werden kann?

Ich bin wirklich über jeden Hinweis oder Erfahrungen damit dankbar. Bin hier kurz vor dem Verzweifeln. Sad

DANKE!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.05.2015, 13:09
Beitrag #2
RE: Anwesenheitssimulation
Moin,
Zitat:Ist es überhaupt möglich, dass der Arduino das Signal und die Uhrzeit koppelt? Und dieses dann speichert, sodass es zu einem späteren Zeitpunkt wieder abgerufen werden kann?
Ich gehe mal davon aus, dass der Dozent wirklich so ein Mieswurz ist und du nicht nur deine Hausaufgaben machen lassen möchtest Smile
Zu deiner Frage : Ja
Du brauchst:
1. natürlich einen Lichtsensor
2. eine Zeitreferenz
3. eine Möglichkeit zum Aufzeichnen der Daten
==================================
1. erklärt sich von selbst
2. kann eine RTC, ein Zeitsignal aus dem Internet (NTP) oder auch ein DCF77 Empfänger sein. Wenn es nicht zu genau sein muss, kann man auch per Eingabe im Serialmonitor, per LCD-Keypad etc.) die Startzeit vorgeben und den Arduino weiterzählen lassen.
3. Kann zB. eine SD-Karte sein oder eine MySQL Daatenbank auf einem Server sein.
Die Daten würden dann dort gespeichert und könnten später wieder abgerufen werden.
Zu allen Teilen gibts hier im Forum etliche Ansätze / Lösungen.
Insgesamt bräuchte man jedoch noch genauere Infos.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.05.2015, 15:43
Beitrag #3
RE: Anwesenheitssimulation
Danke schonmal.

1. Lichtsensor (und alle weiteren Bauteile und Schaltung) habe ich bereits. Überlege jetzt allerdings das mit einem Hall-Sensor zu machen, da die Signale einfacher/ eindeutiger auszuwerten und weiter zu verarbeiten sind.

2. Bei der Zeit fehlt mir noch völlig ein Lösungsansatz. Werde es wohl mit einem RTC versuchen.

3. Der Uno hat ja einen EEPROM drin. Das müsste sich doch auch dort abspeichern lassen. Oder?

(17.05.2015 13:09)rkuehle schrieb:  Moin,
Zitat:Ist es überhaupt möglich, dass der Arduino das Signal und die Uhrzeit koppelt? Und dieses dann speichert, sodass es zu einem späteren Zeitpunkt wieder abgerufen werden kann?
Ich gehe mal davon aus, dass der Dozent wirklich so ein Mieswurz ist und du nicht nur deine Hausaufgaben machen lassen möchtest Smile
Zu deiner Frage : Ja
Du brauchst:
1. natürlich einen Lichtsensor
2. eine Zeitreferenz
3. eine Möglichkeit zum Aufzeichnen der Daten
==================================
1. erklärt sich von selbst
2. kann eine RTC, ein Zeitsignal aus dem Internet (NTP) oder auch ein DCF77 Empfänger sein. Wenn es nicht zu genau sein muss, kann man auch per Eingabe im Serialmonitor, per LCD-Keypad etc.) die Startzeit vorgeben und den Arduino weiterzählen lassen.
3. Kann zB. eine SD-Karte sein oder eine MySQL Daatenbank auf einem Server sein.
Die Daten würden dann dort gespeichert und könnten später wieder abgerufen werden.
Zu allen Teilen gibts hier im Forum etliche Ansätze / Lösungen.
Insgesamt bräuchte man jedoch noch genauere Infos.
Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.05.2015, 15:58
Beitrag #4
RE: Anwesenheitssimulation
Zu 1: An der Leitung müsste er ja die Magnetfeldänderung erkennen, sobald die Lampe mit Strom versorgt wird, also leuchtete.

Zu 3: Aber eine SD-Karte muss ich dann doch auch erst wieder in irgendeiner Form mit dem Arduino verbinden.

(17.05.2015 15:51)t.a.f.k.a.Z. schrieb:  zu 1.: wie soll der Hall-Sensor erfassen, dass das Licht an ist ?
zu 2.: RTC ist ein guter Ansatz - DS3231 (hat sogar Speicher Wink )
zu 3. EEProm-Speicherung ist möglich, aber SD-Karte einfacher (oder siehe Punkt 2)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.05.2015, 16:35
Beitrag #5
RE: Anwesenheitssimulation
Zitat:Der Uno hat ja einen EEPROM drin. Das müsste sich doch auch dort abspeichern lassen. Oder?
Der Uno hat 512 Byte EEPROM. Ergibt sich die Frage was man da groß speichern will.
Zitat:Überlege jetzt allerdings das mit einem Hall-Sensor zu machen
Und was ist mit den anderen Magnetfeldern so rund herum?
Da es ja eine Anwesenheitssimulation werden soll, ist vielleicht ein PIR Sensor doch besser geeignet?
Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.05.2015, 18:05 (Dieser Beitrag wurde zuletzt bearbeitet: 17.05.2015 18:12 von HaWe.)
Beitrag #6
RE: Anwesenheitssimulation
hi,
ein paar Ideen dazu:

- der Arduino hat ja nun keine eingebaute echte Uhr, sondern nur einen counter für Millisekunden, max. Wert ist 0 .. 4.294.967.295. Das reicht gut zur Speicherung von Werten für ein paar Wochen:
1000ms*60s*60min*24h*7d= 604.800.000 millis pro Woche

- wieviele Schaltvorgänge müssen insg. max. gespeichert werden können? 50? Über mehrere Tage oder Wochen?

- für Einschaltzeit Stunde + Minute je ein Byte, 1 Byte für Min Anschaltdauer = 3 Byte pro Schaltvorgang = 150 Byte.

- das würde sogar ins EEPROM passen.

- Da du ja einen Lichtsensor auslesen sollst (analogRead), stoppst du die Flanke 0-> 100% (welcher Analogwert auch hier immer für die Grenze 100% steht) für die Einschaltzeit, und bei Flanke 100% ->0 misst du die vergangenen miilis und rechnest sie in Minuten um.

- während der Laufzeit (Einschalt-Uhrzeit merken!) schreibst du im Record-Modus alle Werte jeweils in ein Byte-Array [50][3] (und passt auf, dass du nicht mehr als 50 schreibst).

- dann schreibst du die Werte in dein EEPROM, erst die Anzahl, dann die jeweiligen 3er-Päckchen.

- Im Simu-Modus (etwa zur gleichen Uhrzeit einschalten wie vorher) liest du erst alle Werte (Anzahl steht als erstes) in deinen array zurück. Jetzt hast du alle Daten parat.

- Dividierst du alle Einschaltzeiten durch 86400000(millis pro Tag) und nimmst den Rest (modulo), hast du die gesammelten täglichen Einschaltzeiten. Jetzt ist die Frage, wie man die randomisiert und wie oft pro Tag.

Die gute Nachricht ist aber, glaube ich: das Problem ist lösbar. 8-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste