Zasadniczo chcę mieć możliwość wyświetlenia czasu, w którym arduino zebrał dane z wartością danych, a nie czas, w którym arduino wydrukował dane. Konsola posiada sygnaturę czasową, ale chcę znaleźć czas, w którym zebrano dane.
Nie mam w tym nic nowego, więc każda pomoc jest bardzo mile widziana!
Komentarze
Odpowiedź
Uzyskiwanie " sygnatury czasowej " to, kiedy dane są gromadzone, zależy wyłącznie od Ciebie.
Większość Arduinos nie ma pojęcia o aktualnym czasie, a jedynie o czasie od uruchomienia programu. Aby wiedzieć, która godzina " teraz ", musisz mieć jakiś mechanizm informujący Arduino, która jest godzina, wraz z metodą śledzenia tego czasu.
Istnieją urządzenia zwane modułami zegara czasu rzeczywistego (RTC), które śledzą czas za Ciebie. W magiczny sposób nie znają godziny – nadal musisz im powiedzieć przynajmniej raz.
Możesz określić czas przez port szeregowy, aby ustawić zegar – od tego momentu (zakładając, że RTC ma zasilanie ) RTC będzie wiedział, która jest godzina.
Inną opcją pobrania czasu do RTC jest użycie połączenia internetowego (ESP8266, osłona WiFi, osłona Ethernet itp.) w celu wykonania protokołu czasu sieciowego ( NTP) do serwera czasu w Internecie (takiego jak pool.ntp.org
), aby uzyskać aktualny czas i zaktualizować RTC. Należy to robić regularnie, aby korygować wszelkie odchylenia w RTC.
Gdy masz już zegar czasu rzeczywistego i metodę ustawiania czasu, możesz zapytać o czas za każdym razem, gdy próbujesz jakieś dane i przechowywać ten czas wraz z danymi w jakikolwiek sposób najbardziej odpowiedni dla Twojej sytuacji.
Odpowiedź
To zależy od tego, jak zdefiniujesz znacznik czasu. Uniksowy znacznik czasu to liczba sekund, które upłynęły od czasu uniksowej epoki, tj. 1 stycznia 1970 00:00 UTC jest bardzo powszechnym znacznikiem czasu. Możesz skonfigurować NTP przez Internet lub możesz użyć RTC na swojej płycie. Sposób, w jaki to zrobisz, zależy od tego, jak dokładny chcesz i co masz do dyspozycji. Wypróbuj ten link, który może pomóc: https://currentmillis.com/
Serial.println(millis());