Метеорологический дата-комплекс | Сысков Дмитрий Олегович

Метеорологический дата-комплекс

Бортовой метеорологический комплекс для самолётов и дронов на ESP32: датчики давления, GPS, акселерометр, передача по GSM с буферизацией. Веб-приложение с картой маршрута полёта.

Метеорологический дата-комплекс

О проекте

Фриланс-заказ: разработать бортовой метеорологический комплекс для самолётов и дронов. Устройство должно в реальном времени собирать данные с датчиков, передавать их на сервер по GSM, а при отсутствии связи — буферизировать и отправлять при первой возможности. Веб-приложение — визуализация маршрута полёта и просмотр показаний.

Железо

Основа устройства — микроконтроллер ESP32 (NodeMCU), к которому подключены:

Датчик Что измеряет
GY-9250 (MPU-9250) Акселерометр, гироскоп, магнитометр — 9-осевое отслеживание движения
GY-GPS6MV2 GPS: координаты, высота, скорость, курс
MS5611 Барометрическое давление и высота
Датчик динамического давления Скорость воздушного потока
GPRS Shield Передача данных на сервер по GSM

Устройство прошло путь от макетной платы до собранного корпуса:

Устройство на макетной плате

Собранное устройство, вид снизу

Собранное устройство, вид сверху

Передача данных

Устройство отправляет пакеты данных на сервер через API по GSM. Если связь пропадает (что в воздухе случается) — данные пишутся в буфер на борту и автоматически догружаются при восстановлении соединения. Потери данных нет.

Пример отладочного вывода GPS в процессе разработки:

![Отладочные данные GPS](https://syskovdm.ru/uploads/image (2).png)

![Отладочные данные акселерометра](https://syskovdm.ru/uploads/image (3).png)

Сервер и база данных

На сервере — REST API, принимающее пакеты с устройства и записывающее их в базу данных. Структура БД проектировалась под хранение временных рядов телеметрии с привязкой к полётной сессии:

Схема базы данных

Таблица показаний датчиков

Веб-приложение

Фронтенд — карта маршрута полёта по геометкам, собранным устройством. В процессе разработки маркеры были крупными точками, в финальной версии уменьшили, соединили линиями — стало похоже на Flightradar.

![Карта маршрута: ранняя версия с крупными метками](https://syskovdm.ru/uploads/image (1).png)

На карте можно выбрать любую точку маршрута и посмотреть показания всех датчиков в этот момент: давление, температуру, скорость потока, высоту, ускорение.

Моя роль

Аналитика, архитектура всего решения, бэкенд, фронтенд, API для обмена с устройством. Электрическую схему и пайку делали вместе с напарником — он помог с выбором компонентов и построением цепи, код для устройства тоже писали вместе.