Бесплатный сервис GPS-трекинга на основе Интернета вещей для ESP32, NodeMCU и Arduino


В современном мире взаимосвязанных устройств активно развиваются технологии Интернета вещей (IoT). Отслеживание объектов, мониторинг перемещения и анализ маршрутов — одни из самых важных задач для мнигих компаний, но кроме того что у этих вещей "под капотом" (backend), огромную роль играет и удобный и интуитивно понятный пользовательский интерфейс.

Бесплатный сервис GPS-трекинга на основе Интернета вещей для ESP32, NodeMCU и Arduino

Сложность создания полноценного GPS-трекера на базе Интернета вещей (IoT) кроется за кулисами, в бэкенд-инфраструктуре пользовательского интерфейса и её поддержке. Разработка надёжной системы сбора, хранения и визуализации GPS-данных не всегда доступна каждому отдельному человеку или организации, работающей над IoT-решениями для GPS-трекеров. Идеальным решением был бы API, управляющий всеми задачами визуализации для IoT-трекеров. Достаточно лишь отправлять координаты, а API сам сохраняет данные в базе данных и отображает координаты.

Зачем проектам GPS-трекеров Интернета вещей нужен GeoLinker

Когда речь идет о проектах GPS-трекинга на базе Интернета вещей, API CircuitDigest Cloud GeoLinker практически идеален, поскольку он предлагает бесплатное и готовое к использованию решение для GPS-трекинга, которое упрощает обработку данных о местоположении для устройств отслеживания Интернета вещей.

GeoLinker сочетает в себе эффективность бэкэнда и интуитивно понятный интерфейс, обеспечивая GPS-отслеживание в режиме реального времени и визуальную аналитику через простой в использовании интерфейс. Вот краткий обзор его ключевых функций:

  • Отображение местоположения в реальном времени на интерактивных картах с автоматическим отслеживанием маршрута;
  • Аналитика в режиме реального времени, показывающая пройденное расстояние, среднюю скорость и время в пути;
  • Автоматически обновляемая панель управления для непрерывного мониторинга;
  • Поддержка нескольких устройств для одновременного отслеживания нескольких GPS-устройств;
  • Ведение истории данных с метками времени и точными координатами;
  • Параметры экспорта для отчетов или дальнейшего анализа;
  • Двойной вид пользовательского интерфейса: карта + табличные данные для гибкого исследования;
  • Профессиональная панель инструментов с сортируемыми столбцами, фильтрами и инструментами карт.

GeoLinker обеспечивает бесперебойный сбор географических координат, их эффективное хранение и представление с помощью многофункциональной, удобной для пользователя платформы. Это решение стирает разрыв между техническими возможностями и простотой использования, делая профессиональный GPS-отслеживание доступным для каждого.

Что такое CircuitDigest Cloud?

Что такое CircuitDigest Cloud

CircuitDigest Cloud — это инициатива, направленная на предоставление инженерам, производителям и любителям необходимых инструментов для быстрого прототипирования. Помимо API GeoLinker, данный сервис также предлагает другие полезные API, такие как сканирование QR-кодов , распознавание номерных знаков и SMS-API, для тех, кто заинтересован в расширении своих проектов. 

Чтобы использовать GeoLinker для вашей системы GPS-слежения на базе Интернета вещей, вам понадобится API-ключ для аутентификации, который можно получить при регистрации учётной записи на CircuitDigest.Cloud. Но для начала нужно создать учётную запись на этом сервисе.

Регистрация новой учетной записи в CircuitDigest Cloud

Создание аккаунта в GeoLinker

Шаг 1: Посетите домашнюю страницу Circuit Digest Cloud. Нажмите кнопку "Login" («Войти») в правом верхнем углу, чтобы перейти на страницу входа.

Шаг 2: Если у вас уже есть учётная запись, войдите в систему, используя свои текущие данные. Если нет, перейдите на страницу регистрации, чтобы создать учётную запись, заполнив необходимые данные. Для этого нажмите "Register Now" («Зарегистрироваться»).

Шаг 3: После регистрации используйте свой адрес электронной почты и пароль для входа на страницу входа.

Следующий шаг — генерация ключа API.

Генерация ключа API

Генерация ключа API на GeoLinker

Шаг 4: После входа в систему нажмите "My Account" («Моя учетная запись») в правом верхнем углу.

Шаг 5: Вы будете перенаправлены на страницу, где сможете сгенерировать ключ API. Введите текст капчи в соответствующее поле и нажмите кнопку "Generate API Key" («Сгенерировать ключ API)» .

Шаг 6: Если капча верна, вы увидите таблицу с вашим API-ключом, сроком его действия и количеством использований. Нажмите на значок копирования рядом с API-ключом, и ваш ключ мгновенно скопируется в буфер обмена.

В настоящее время существует ограничение на количество использований одного ключа для SMS и API ANPR, а также на 10 000 точек данных для GPS-отслеживания. По достижении этого лимита вы можете сгенерировать другой ключ, который обеспечит ещё 100 использований. Это ограничение использования введено для предотвращения перегрузки сервера.

Конфигурация конечной точки API

Параметр Значение
Базовый URL-адрес https://www.circuitdigest.cloud/geolinker
HTTP-метод POST
Тип контента application/json

Рассмотрим приведенные в таблице параметры более подробно

Заголовки

Авторизация

  • Тип: строка
  • Требуется: Да
  • Описание: API-ключ для безопасного доступа (например, «rB007iKt0soY»).

Тип контента

  • Тип: строка
  • Требуется: Да
  • Описание: Должно быть «application/json»

Структура тела запроса

Обязательные поля

- device_id: строковый идентификатор устройства, отправляющего данные

- timestamp: Массив строк временных меток в формате «ГГГГ-ММ-ДД ЧЧ:ММ:СС»

- lat: Массив координат широты (плавающие значения)

- long: Массив координат долготы (плавающие значения)

Необязательные поля

- battery: массив, содержащий процент уровня заряда батареи (0-100)

- payload: массив пользовательских пар «ключ-значение» для дополнительных данных датчиков

Типы данных и проверка

Поле Тип Формат Диапазон Описание
timestamp (метка времени) массив строк "YYYY-MM-DD HH:MM:SS" («ГГГГ-ММ-ДД ЧЧ:ММ:СС»)

(например, «2025-01-09 12:30:45»)

- временные метки UTC с настраиваемым смещением часового пояса
lat (Latitude - широта) массив типа float десятичные градусы (например, 12,971598) от -90,0 до +90,0 координаты широты, преобразованные из формата NMEA
long (Longitude - долгота) массив типа float десятичные градусы (например, 77,594566) от -180,0 до +180,0 координаты долготы, преобразованные из формата NMEA
battery (батарея, опционально) массив типа integer - 0-100 процент уровня заряда батареи
payload (полезная нагрузка, опционально) массив объектов - - данные пользовательских датчиков в виде пар «ключ-значение»

Пример запроса

Коды ответов:

Успешные ответы

Код Статус Описание
200 OK Данные успешно получены и обработаны
201 Created Создана новая запись устройства и вставлены данные

Ответы об ошибках

Код  Статус Описание
400 Bad Request Неверный формат полезной нагрузки или отсутствуют обязательные поля
401 Unauthorized Неверный или отсутствующий ключ API
500 Internal Server Error Ошибка обработки на стороне сервера

Правила проверки

  1. Обязательные поля: все основные поля (device_id, timestamp, lat, long) должны присутствовать.
  2. Согласованность длины массива: массивы меток времени, широты и долготы должны иметь одинаковую длину.
  3. Границы координат: широта должна быть в пределах от -90 до +90, долгота — от -180 до +180.
  4. Ключ API: необходимо предоставить действительный заголовок авторизации.
  5. Формат данных: Координаты не должны быть 0.0, 0.0 (это считается недействительным GPS-определением).

Настройка GeoLinker для устройств отслеживания Интернета вещей

Вот как настроить GeoLinker для вашего проекта IoT GPS-трекера.

Проверка работоспособности GeoLinker

⇒ Загрузка данных

Используя API, упомянутый выше, вы можете отправлять данные с вашего IoT-трекера в GeoLinker. Данные будут нанесены на карту, маршрутизированы и снабжены временными метками, а также дополнены множеством дополнительных функций.

Визуализация данных на карте в GeoLinker

⇒ Визуализация данных

Для визуализации просто войдите в свой идентификатор CircuitDigest Cloud и откройте пользовательский интерфейс GeoLinker с помощью кнопки Track («Отслеживать»), расположенной на карточке GeoLinker на главной странице.  

Сначала вы можете увидеть сообщение "No GPS Found" («GPS не найден») — это означает, что вам необходимо обновить страницу. Это необходимо для появления первой точки данных. После этого страница обновится автоматически.

После этого вы сможете увидеть нанесенные на карту координаты.

Эта страница в основном состоит из двух разделов: самой карты и таблицы , в которой отображаются данные, имеющиеся в базе данных.

Объяснение интерфейса GeoLinker

⇒ Пользовательский интерфейс

Страница карты GeoLinker проста в использовании. Необходимо понимать пять ключевых моментов:

Секция "Мои трекеры" в GeoLinker

1. Мои трекеры — здесь отображается список зарегистрированных устройств. Эти имена указаны в разделе device_id полезной нагрузки.

Нажатие на All Trackers («Все трекеры») отобразит все устройства на карте. Если вы ищете конкретное устройство, нажмите на его название.

Секция "Статистика отслеживания" в GeoLinker

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

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

Секция "Информация о системе" в GeoLinker

3. Информация о системе — показывает последние обновленные данные, общие путевые точки и предоставляет возможность настроить частоту обновления веб-страницы.

Секция "Меню" в GeoLinker

4. Меню — удобное и доступно в правом верхнем углу. Доступны следующие пункты: Zoom In («Увеличение масштаба»), Zoom Out («Уменьшение масштаба»), Toggle Full Screen («Переключить на весь экран»), Measure Distance («Измерение расстояния»), Time Line Filter («Фильтр по временной шкале»), Share GPS Data («Поделиться данными GPS»), Find My Location («Найти моё местоположение»), Toggle Data Table («Переключить таблицу данных»), Take Screenshot («Сделать скриншот») и Map Type («Тип карты»).

Секция "Текущее местоположение" в GeoLinker

5. Текущее местоположение – отображает две основные функции, помимо самих данных (значок «Изменить», «Удалить устройство»). Отображаемые данные включают количество данных, временную метку, координаты, процент заряда батареи, скорость и данные датчиков.

Секция "Точки данных" в GeoLinker

6. Точки данных. При нажатии на точку отображаются все данные, отправленные в тот момент, с возможностью удаления конкретной точки маршрута. 

Тестирование GeoLinker с использованием Python

Чтобы быстро протестировать API для вашей системы GPS-слежения на базе Интернета вещей, вам нужно всего лишь:

  • API-ключ
  • Несколько координат
  • Временные метки

ПРИМЕЧАНИЕ: Сохраняется не более 10 000 точек данных. Старые точки автоматически заменяются новыми по принципу FIFO (первым пришёл — первым ушёл) при достижении этого лимита.

Для проверки API воспользуйтесь следующим кодом:

Этот код Python можно выполнить локально с помощью любой IDE , например, родной для Python IDLE или PyCharm . Для таких быстрых тестов я использую Google Colab , можете попробовать и вы.

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

Тестирование работы GeoLinker с использованием Python

На представленном рисунке вы можете увидеть GIF-файл/видео, демонстрирующее построение карты загруженных точек данных с использованием тестового кода.

Последняя добавленная точка отмечена выбранным вами значком (или более крупным круглым значком), а предыдущие координаты отображаются в виде небольших соединенных точек. Большинство функций пользовательского интерфейса интуитивно понятны. Итак, вы успешно освоили GeoLinker.

Репозиторий GitHub

Все материалы для данного проекта вы можете скачать по следующей ссылке.

Примеры проектов

Этот API был протестирован на NEO-6M с NodeMCU, но может использоваться с любой платой разработки, способной обрабатывать данные GPS и подключаться к интернету. Хотя у нас уже есть несколько проектов IoT GPS-трекеров, использующих API GeoLinker, мы будем добавлять новые.

Существующие проекты:

(Проголосуй первым!)
Загрузка...
15 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *