Как получить временную метку того, когда были собраны данные

По сути, я хочу иметь возможность отображать время, когда arduino собирал данные со значением данных, а не время, когда arduino распечатывал данные. На консоли есть функция временной метки, однако я хочу найти время, когда были собраны данные.

Я немного новичок в этом, так что любая помощь будет очень признательна!

, 👍3

Обсуждение

записали ли вы время, когда были собраны данные?, @jsotola

Какой Arduino вы используете (на всякий случай, если вы неправильно отметили вопрос)?, @ocrdu

Сама по себе единственная временная метка arduino-uno - это количество миллисекунд с момента сброса. Serial.println(миллис());, @DataFiddler


2 ответа


1

Это зависит от того, как вы определяете временную метку. Временная метка Unix - это количество секунд, прошедших с момента времени эпохи Unix, то есть 1 января 1970 года 00:00 UTC, это очень распространенная временная метка. Вы можете настроить с помощью NTP через Интернет, или вы можете использовать RTC на своей плате. То, как вы это сделаете, зависит от того, насколько точной вы хотите ее получить и что у вас есть в наличии. Попробуйте перейти по этой ссылке, это может помочь: https://currentmillis.com /

,

2

Получение "временной метки" о том, когда собираются данные, полностью зависит от вас.

Большинство Arduino не имеют никакого представления о текущем времени, только время, прошедшее с момента запуска программы. Чтобы знать, сколько времени "сейчас", у вас должен быть какой-то механизм, чтобы сообщить Arduino, сколько времени, а также метод отслеживания этого времени.

Существуют устройства, называемые модулями часов реального времени (RTC), которые отслеживают время для вас. Они волшебным образом не знают время - вам все равно придется сказать им об этом хотя бы один раз.

Вы можете указать ему время через последовательный порт, чтобы установить часы - с этого момента (при условии, что RTC имеет питание) RTC будет знать, сколько времени.

Другой вариант ввода времени в RTC - использовать подключение к Интернету (ESP8266, WiFi shield, Ethernet shield и т. Д.) Для выполнения запроса протокола сетевого времени (NTP) к серверу времени в Интернете (например, pool.ntp.org), чтобы получить текущее время и обновить RTC. Это следует делать регулярно, чтобы исправить любой дрейф в RTC.

Если у вас есть RTC и способ установки времени, вы можете запрашивать время всякий раз, когда вы производите выборку некоторых данных, и сохранять это время вместе с данными любым способом, наиболее подходящим для вашей ситуации.

,