Pages: [1] 2 3 4   Go Down
Author Topic: Uhrzeit von der systemuhr des PC holen.  (Read 3441 times)
0 Members and 1 Guest are viewing this topic.
Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 7
Posts: 757
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo ich habe mir ein Programm gebastelt womit ich mein Aquarium steuer. Der Arduino ist dabei an einem Netbook angeschlossen und zeigt mit auf dem Netbook ein Menü über den Externen Serial Monitor Putty. das Programm läuft Stabil ist Zeitgesteuert über die RTC 1307 und alle Funktionen wie Uhrzeit, Datum, einzene Lichtphasen, Pumpensteuerung, Erinnerung an Wasserwechsel sowie Nachfüllautomatik werden über den Monitor Putty angezeigt. Meine frage ist, das Netbook ist mit dem Arduino über USB verbunden. Der Anschluss liefert die Stromversorgung sowie die Uploads. ist es möglich das sich der Arduino automatisch ein oder zweimal am Tag auch die Uhrzeit vom PC holen kann, da der PC im Netzwerk hängt und immer die Aktuelle Zeit hat. Oder geht das nicht ohne Ethernet Shild für den Arduino.
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Germany
Online Online
Faraday Member
**
Karma: 59
Posts: 3056
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 Die wenigsten Betriebssysteme erlauben ein remote login über eine serielle Schnittstelle, heutzutage.

Geht aber sicher, mit einem kleinen eigenen Programm auf dem PC.
Ich denke es ist einfacher vom PC aus zu schicken, als vom Arduino zu fragen.

Der Arduino würde sowieso an der seriellen Schnittstelle hören,
da brauchst du nur ein Programm auf dem PC, was z.B. täglich einmal vom Scheduler beauftragt, die aktuelle Zeit sendet.

Muss man nur aufpassen, dass das Öffnen der seriellen Schnittstelle den Ardiuno möglichst nicht resettet.
Logged

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 7
Posts: 757
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Der Serielle Monitor ist ja immer auf, also ich verwende einen Externen Putty 062 der zeigt mir auf dem Menü am Netbook alle Funktionen des Arduino Programm an und die Zeitlichen Abläufe, ich weis oder vielmehr ich habe ein kleinen sketsch für den Seriellen Monitor des Arduino damit kann ich die Uhrzeit in der Eingabeleiste im Seriellen Monitor eingeben und die Uhr wird auf dem Arduino also die RTC neu gestellt ohne das der Arduino resettet. Ich denke mir das wenn ich das von Hand machen kann es doch auch irgendwie gehen müsste das vom PC ausführen zu lassen.
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Germany
Online Online
Faraday Member
**
Karma: 59
Posts: 3056
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Der Serielle Monitor ist ja immer auf, also ich verwende einen Externen Putty 062 der zeigt mir auf dem Menü am Netbook alle Funktionen des Arduino Programm an und die Zeitlichen Abläufe, ich weis oder vielmehr ich habe ein kleinen sketsch für den Seriellen Monitor des Arduino damit kann ich die Uhrzeit in der Eingabeleiste im Seriellen Monitor eingeben und die Uhr wird auf dem Arduino also die RTC neu gestellt ohne das der Arduino resettet. Ich denke mir das wenn ich das von Hand machen kann es doch auch irgendwie gehen müsste das vom PC ausführen zu lassen.

Oh, war mir nicht bewusst, dass du immer (Edit: wohl dieser thread ) ein Terminalprogramm ( deinen "Externen Putty 062" ? ) aktiv hast.
Der belegt natürlich die externe Schnittstelle und lässt keinen anderen ran.

Ob man den "Externen Putty 062" so konfigurieren kann, dass er von sich aus was sendet ( und dann noch die jeweils aktuelle Zeit ), weiss ich nicht.
Ein eigenes PC - Programm, das neben der Anzeige der Serial.print Ausgaben ab und zu die Uhrzeit sendet, und so den putty ersetzt, sollte aber leicht zu machen sein. Muss ja nicht alles können, was putty kann, sondern nur das was du brauchst.
... Und könnte sich auch anstelle des Arduino um die graphische Gestaltung der Anzeige kümmern ...
Nachtrag: ... Und könnte auch eine komfortable grafische Bedienoberfläche sein, wenn es mehr als nur "Vollautomatik" sein darf ...

Und zum RTC Stellen lädst du erst einen anderen kleinen Spezial-Sketch ?
Da hast du auch noch Optimierungspotential, wenn ich das richtig verstanden habe .
« Last Edit: July 05, 2013, 07:00:13 am by michael_x » Logged

Germany S-H
Offline Offline
Faraday Member
**
Karma: 146
Posts: 3039
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich denke mir das wenn ich das von Hand machen kann es doch auch irgendwie gehen müsste das vom PC ausführen zu lassen.

Ja, natürlich. So wie Michael schon schrieb.

Du kannst Dir beispielsweise ein Batchdatei machen, mit folgendem Inhalt:

echo %date% >\\.\COM11
echo %time% >\\.\COM11

Damit würde das Datum und Uhrzeit an COM11 gesendet werden.

Allerdings gibt es mehrere Knackpunkte:

Erstens muss Dein angeschlossenes Arduino-Board immer dieselbe COM-Schnittstelle haben.

Zweitens musst Du schaltungstechnisch beim Arduino den Auto-Reset abschalten, nachdem Du Deinen Sketch hochgeladen hast. Sonst würde nämlich beim Öffnen der Schnittstelle zum Senden der Arduino einen Reset ausführen und die Zeichen empfangen, während gerade der Bootloader läuft, also Dein Sketch davon gar nichts sehen. Dazu kannst Du einen Kondensator geeigneter Größe zwischen die GND und RESET Pins schalten.

Und last but not least darf weder der serielle Monitor noch ein Terminalprogramm gleichzeitig auf derselben Schnittstelle laufen. Denn es kann immer nur EIN Programm zur Zeit mit der seriellen Schnittstelle verbunden sein. Entweder das Upload-Programm Avrdude ODER der serielle Monitor von Arduino ODER ein anderes Terminalprogramm wie Putty ODER die Batchdatei, die Zeit und Datum sendet.

Ein geeigneter Zeitpunkt zum Senden wäre beispielsweise das Hochfahren des Rechners, so dass man die Batch-Datei beispielsweise aus der Autostart-Gruppe heraus ausführen lassen könnte. Aber wie gesagt: Solange das Arduino-Board sein Autoreset beim Öffnen der Schnittstelle ausführt, ist es auf diese Weise Essig. Entweder Autoreset abschalten, oder Du brauchst eine Software, die zeitverzögert erst die COM-Schnittstelle öffnet, ein paar Sekunden wartet bis das Arduino-Board gebootet hat, und dann erst Zeit und Datum sendet. Mit einem einfachen Batch-Skript auf dem PC funktioniert das meines Wissens nach aber nicht, da eine ECHO-Zeile mit Umleitung auf den COM-Port die Schnittstelle immer öffnet, die Daten sendet und sofort wieder schließt.
Logged

Offline Offline
Faraday Member
**
Karma: 120
Posts: 3981
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@michael_x
Ich glaube ein eigenes Programm kam hier nicht in Frage, da er eher Anfänger ist und das für ihn etwas zu schwierig wäre.

Obwohl du im Prinzip natürlich recht hast. Die .NET Serial Klasse z.B. ist sehr einfach
« Last Edit: July 05, 2013, 08:52:08 am by Serenifly » Logged

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 7
Posts: 757
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also ist es wahrscheinlich einfacher aus dem Seriellen Monitor per Eingabe die Uhr zu stellen, da ich ja für den Seriellen Monitor von dem Arduino so ein Sketsch irgend wo gespeichert habe, da gibt man über die Eingabe Zeile :  z.B.  12:15:00  5-7-13   ein und dann stellt sich die RTC richtig ohne zu resetten, da der Serielle Monitor ja auf ist und erst resettet wenn ich ihn verlasse. Das müsste man doch auch z.B. durch Tastendrock oder vielmehr durch Eingabe im Putty bewerkstelligen können oder ? Ich muss sagen es ist von mir immer nur so ein Gedanke und ich weis nicht ob es geht, aber ich habe mir so gedacht in dem Programm ein Eingabe Feld zu erstellen wo man die Zeit eingibt wenn es eben nicht so geht das die zeit vom PC kommt und die Zeit/Datum zum Arduino gesendet wird, da sollte der Arduino ja nicht resetten, da der Monitor ja nicht verlassen wird. Wenn meine Gedanken nicht realisierbar ist , sagt es mir , dann werde ich eventuell doch noch auf eine Inet verbindung umsteigen für den Arduino.
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Wien
Offline Offline
Edison Member
*
Karma: 28
Posts: 1894
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

ja, das geht so, wie Du denkst. Du mußt halt das programm zur zeiteingabe mit Deinem zur aquariumssteuerung kombinieren.

gruß stefan
Logged

Germany
Online Online
Faraday Member
**
Karma: 59
Posts: 3056
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Ich glaube ein eigenes Programm kam hier nicht in Frage, da eher Anfänger ist und dass für ihn etwas zu schwierig wäre.

Ein Ethernetshield ist dann aber auch keine Lösung, finde ich.

Da passt wohl eher der Tip von Eisebaer Stefan, die sketches zum Zeitstellen und die Aquarium-Automatik zusammenzulegen, und die Zeiteingabe in putty zu machen ( manuell ).

Zu bedenken ist da, dass putty vermutlich (? wer kennt putty ?) jeden Buchstaben einzeln sendet, und nicht wie SerialMonitor auf Enter wartet.
Man könnte auch den Zeit-Stellen Sketch so schreiben, dass jedes
 '+' die Zeit um 1 Minute vorstellt,
 '-' die Zeit um 1 Minute zurückstellt,
 'S' die Uhr um 1 Stunde vorstellt ( Sommer )
 'W' die Uhr um 1 Stunde zurückstellt ( Winter ) 

Logged

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 7
Posts: 757
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ja das wäre natürlich eine Lösung, denn die RTC1307 läuft ja ziemlich genau, sie geht jetzt im grunde innerhalb 14 TG  so um die 30 Sekunden nach, aber das könnte ich eventuell noch nachstellen im Programm. es ist ja nicht so als wenn was wichtiges von abhängt, im grunde ist es egal ob mein licht um 22 Uhr aus geht oder  ein/zwei Minuten früher oder später. Aber ich habe mir das Programm nunmal so auf den Putty eingerichtet und wenn ich noch eingaben machen kann ist es ja in Ordnung. Ich habe noch soviel Platz auf dem Monitor , da muss was hin und ich denke einmal besser kann man es nicht lernen als aus zu probieren.


* monitor.bmp (769.05 KB, 1024x768 - viewed 77 times.)
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 7
Posts: 757
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das ist ein Screenshot von meinem Großen PC so wie Putty mir alles zeigt, nur da kann man jetzt nicht die Uhrzeit und das Datum sehen da ich da nur einen Nackte Mega dran habe und nicht die RTC wo die Uhr/Datum ausgelesen und angezeigt wird.
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Wien
Offline Offline
Edison Member
*
Karma: 28
Posts: 1894
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

Quote
im grunde ist es egal ob mein licht um 22 Uhr aus geht oder  ein/zwei Minuten früher oder später

da mußt Du schon aufpassen. bei kühen zum beispiel müssen die zeiten extrem genau eingehalten werden, sonst geben sie gleich weniger licht.

ich weiß ja nicht, wozu Du Deine fische nützt...

gruß stefan
Logged

Germany
Online Online
Faraday Member
**
Karma: 59
Posts: 3056
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Es gibt Fische die geben mehr Licht als Kühe, wenn sie richtig eingestellt sind. smiley-wink smiley-wink

Die meiste Uhr-Einsteller können nur ganze Minuten stellen, aber dann werden jeweils die Sekunden auf 00 gestellt.
Damit kann man tatsächlich die Zeit auf eine halbe Sekunde genau stellen und die Qualität der DS1307 prüfen...
Logged

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 7
Posts: 757
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das ist ein Riffaquarium, die Korallen,Anemonen und Korallenfische können keine UHR lesen und denen kommt es immer nur aufs Futter an. nur es muss eine gewisse Zeit beleuchtet werden damit die Korallen und deren  Zooxantellen, sprich Algen  nicht absterben sowie die Pumpensteuerung damit im Becken ungefähr die Strömung Verhältnisse wie im Meer herchen. . An Sonsten ist es ein Aquarium zum rein schauen .
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Wien
Offline Offline
Edison Member
*
Karma: 28
Posts: 1894
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

ich hab' grad gesehen, daß Du die 1307er direkt mit wire liest und keine spezielle library benutzt.
genauso kannst Du auch die zeit stellen.

http://www.daniweb.com/software-development/cpp/threads/354770/ds1307-real-time-clock

gruß stefan
Logged

Pages: [1] 2 3 4   Go Up
Jump to: