Логика взаимодействия
Каждое аппаратное устройство должно следовать определенному циклу взаимодействия с сервером для корректной работы.
Шаг 1: Первоначальный запуск и получение конфигурации
При включении или перезагрузке устройство подключается к сети Wi-Fi.
Сразу после успешного подключения к сети устройство должно отправить
GET-запрос на эндпоинт конфигурации сервера:GET /api/sensor/config/
Сервер вернет JSON-ответ, содержащий ключ
period— рекомендуемый интервал в секундах для отправки данных.{ "period": 30 }Устройство должно сохранить это значение и использовать его в качестве задержки между отправками данных.
Шаг 2: Периодическая отправка данных
Устройство измеряет температуру с помощью своих сенсоров.
С периодичностью, полученной на Шаге 1, устройство формирует
POST-запрос на эндпоинт данных сервера:POST /api/sensor/data/
Тело запроса должно быть в формате JSON и содержать как минимум одно из полей
contact_tempилиnon_contact_temp.{ "contact_temp": 36.6, "non_contact_temp": 35.9 }После отправки запроса устройство ожидает
periodсекунд и повторяет Шаг 2.
Важные моменты
Идентификация: Сервер автоматически идентифицирует каждое устройство по его IP-адресу. Убедитесь, что ваши устройства получают стабильные IP-адреса (например, через DHCP-резервирование на роутере).
Ограничение частоты: Если устройство будет отправлять данные чаще, чем разрешено настройкой
server_timeoutна сервере, его запросы будут временно отклоняться с HTTP-статусом429 Too Many Requests. Прошивка должна быть готова к такой ситуации и не должна входить в бесконечный цикл повторных отправок.Отказоустойчивость: Прошивка должна предусматривать обработку ошибок сети (недоступность сервера, таймауты) и пытаться повторно получить конфигурацию или отправить данные после некоторой паузы.
Last updated