Я делаю проект IoT. Мое устройство IoT (оборудование с Arduino) каждые несколько минут измеряет некоторую информацию о температуре. И отправляем эти данные на сервер. Оборудование имеет дисплей. Это показывает значение температуры и время. Я хочу синхронизировать это время с серверным временем. Я не могу использовать NTP, так как не работаю с UDP. Могу ли я использовать HTTP для синхронизации времени? любые предложения, пожалуйста
Используйте NTP. Он работал на компьютерах 1985 года, он может работать на сегодняшних небольших устройствах.
Весьма вероятно, что демон или библиотека NTP уже существует. Если нет, то написание базового кода SNTP возможно с любым стеком IP. Хорошая причина понять UDP в вашей сети.
Заголовок HTTP Date, если веб-сервер имеет точное время, обеспечивает точность в одну секунду. openntpd использует это, но только как ограничение проверки работоспособности. Предупреждение, что формат даты не очень удобочитаем. Достаточно просто с Python, но если бы у вас был Python, вы могли бы просто использовать ntplib...
Если ваше устройство Arduino просто работает с HTTP-запросами, например отправляет простой HTTP-запрос GET на сервер с собранными данными датчика, вы можете:
GET
http://yourserver/sensordatacollector/record?temperature=22&humidity=45
GET
http://yourserver/sensordatacolletor/datetime
Также см https://arduinojson.org/v6/example/http-client/ для справки.
Изменить: если возможно, вы также можете воспользоваться преимуществами уже открытых API-интерфейсов, которые предоставляют информацию о дате и времени, например: http://worldtimeapi.org/