Grundsätzlich möchte ich die Zeit anzeigen können, zu der das Arduino die Daten mit dem Datenwert erfasst hat, nicht mit dem Mal druckte das Arduino die Daten aus. Es gibt eine Zeitstempelfunktion auf der Konsole, aber ich möchte den Zeitpunkt ermitteln, zu dem die Daten gesammelt wurden.
Ich bin ein bisschen neu in diesem Bereich, daher wird jede Hilfe sehr geschätzt!
Kommentare
- Haben Sie den Zeitpunkt der Datenerfassung aufgezeichnet?
- Welches Arduino verwenden Sie (nur für den Fall, dass Sie die Frage falsch markiert haben)?
- Der einzige Zeitstempel eines arduino-uno ' ist die Anzahl der Millisekunden seit dem Zurücksetzen.
Serial.println(millis());
Antwort
Abrufen eines " Zeitstempels " wann Daten gesammelt werden, liegt ganz bei Ihnen.
Die meisten Arduinos haben kein Konzept für die aktuelle Zeit, nur die Zeit seit dem Start des Programms. Um zu wissen, wie spät " jetzt " ist, müssen Sie einen Mechanismus haben, um dem Arduino die Uhrzeit mitzuteilen, zusammen mit einer Methode
Es gibt Geräte, die als Echtzeituhrmodule (RTC) bezeichnet werden und die Zeit für Sie verfolgen. Sie kennen die Uhrzeit nicht auf magische Weise – Sie müssen sie immer noch mindestens einmal angeben.
Sie können die Uhrzeit über die serielle Schnittstelle zum Einstellen der Uhr angeben – von da an (vorausgesetzt, die RTC hat Strom ) Die RTC weiß, wie spät es ist.
Eine weitere Option, um die Zeit in die RTC zu übertragen, besteht darin, eine Internetverbindung (ESP8266, WiFi-Abschirmung, Ethernet-Abschirmung usw.) zu verwenden, um ein Netzwerkzeitprotokoll durchzuführen ( NTP) Abfrage an einen Zeitserver im Internet (z. B. pool.ntp.org
), um die aktuelle Uhrzeit abzurufen und die RTC zu aktualisieren. Dies sollte regelmäßig erfolgen, um Abweichungen in der RTC zu korrigieren.
Sobald Sie eine RTC und eine Methode zum Festlegen der Zeit haben, können Sie die Zeit abfragen, wann immer Sie Daten abtasten und diese Zeit zusammen mit den Daten auf die für Ihre Situation am besten geeignete Weise speichern.
Antwort
Dies hängt davon ab, wie Sie den Zeitstempel definieren. Ein Unix-Zeitstempel gibt die Anzahl der Sekunden an, die seit der Unix-Epoche vergangen sind, dh am 1. Januar 1970 00:00 UTC, dies ist ein sehr häufiger Zeitstempel. Sie können mit NTP über das Internet einrichten oder eine RTC auf Ihrem Board verwenden. Wie Sie es tun, hängt davon ab, wie genau Sie es wollen und was Sie zur Verfügung haben. Versuchen Sie diesen Link, es kann helfen: https://currentmillis.com/