Как получить временную метку того, когда были собраны данные
По сути, я хочу иметь возможность отображать время, когда arduino собирал данные со значением данных, а не время, когда arduino распечатывал данные. На консоли есть функция временной метки, однако я хочу найти время, когда были собраны данные.
Я немного новичок в этом, так что любая помощь будет очень признательна!
@Lina8, 👍3
Обсуждение2 ответа
Это зависит от того, как вы определяете временную метку. Временная метка Unix - это количество секунд, прошедших с момента времени эпохи Unix, то есть 1 января 1970 года 00:00 UTC, это очень распространенная временная метка. Вы можете настроить с помощью NTP через Интернет, или вы можете использовать RTC на своей плате. То, как вы это сделаете, зависит от того, насколько точной вы хотите ее получить и что у вас есть в наличии. Попробуйте перейти по этой ссылке, это может помочь: https://currentmillis.com /
Получение "временной метки" о том, когда собираются данные, полностью зависит от вас.
Большинство Arduino не имеют никакого представления о текущем времени, только время, прошедшее с момента запуска программы. Чтобы знать, сколько времени "сейчас", у вас должен быть какой-то механизм, чтобы сообщить Arduino, сколько времени, а также метод отслеживания этого времени.
Существуют устройства, называемые модулями часов реального времени (RTC), которые отслеживают время для вас. Они волшебным образом не знают время - вам все равно придется сказать им об этом хотя бы один раз.
Вы можете указать ему время через последовательный порт, чтобы установить часы - с этого момента (при условии, что RTC имеет питание) RTC будет знать, сколько времени.
Другой вариант ввода времени в RTC - использовать подключение к Интернету (ESP8266, WiFi shield, Ethernet shield и т. Д.) Для выполнения запроса протокола сетевого времени (NTP) к серверу времени в Интернете (например, pool.ntp.org
), чтобы получить текущее время и обновить RTC. Это следует делать регулярно, чтобы исправить любой дрейф в RTC.
Если у вас есть RTC и способ установки времени, вы можете запрашивать время всякий раз, когда вы производите выборку некоторых данных, и сохранять это время вместе с данными любым способом, наиболее подходящим для вашей ситуации.
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
записали ли вы время, когда были собраны данные?, @jsotola
Какой Arduino вы используете (на всякий случай, если вы неправильно отметили вопрос)?, @ocrdu
Сама по себе единственная временная метка arduino-uno - это количество миллисекунд с момента сброса.
Serial.println(миллис());
, @DataFiddler