Назад в библиотеку

УДК 004.55, 004.4'23


МОДУЛЬ ВИЗУАЛИЗАЦИИ ПОЛОЖЕНИЯ ЭЛЕКТРОСАМОКАТОВ НА ВЕБ-КАРТЕ В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ


Шевцов М.В., Андриевская Н.К.

Донецкий национальный технический университет

Кафедра автоматизированных систем управления

E-mail: shievtsovm@mail.ru

Аннотация:

Шевцов М.В., Андриевская Н.К. Модуль визуализации положения электросамокатов на веб-карте в режиме реального времени. В данной статье рассматривается один из модулей системы учета аренды электросамокатов в городской агломерации. Для повышения удобства и безопасности использования системы важно отображать информацию о местоположении и перемещении электросамокатов в режиме реального времени. Затрагиваются такие проблемы, как сбор данных о положении и состоянии электросамокатов, обработка их и визуализация на веб-карте.

Annotation:

Shevtsov M.V., Andrievskaya N.K. Module for visualizing the position of electric scooters on a web map in real time. This paper considers one of the modules of the system for accounting electric scooter rentals in a metropolitan area. To improve the usability and safety of the system, it is important to display information about the location and movement of electric scooters in real time. Problems such as collecting data on the position and status of electric scooters, processing them and visualizing the position on a web map are touched upon.


Общая постановка проблемы

Электросамокаты с каждым годом становятся все более популярным видом транспорта в городских районах. Данный тип услуги позволяет клиентам арендовать электросамокаты на короткий срок по дешевой цене, что делает их удобным и доступным видом транспорта для передвижения на короткие и средние расстояния. Хотя эти транспортные средства имеют существенный ряд преимуществ перед альтернативными средствами передвижения, они также создают и проблемы для жителей и городских властей. Необходимо быть уверенным, что электросамокаты установлены в отведенных для них парковках, находятся в работоспособном состоянии, использование происходит в разрешенных ПДД местах [1].

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

Описание базовых технологий разрабатываемой системы

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

На рисунке 1 представлена схема взаимодействия между клиентами, электросамокатами и основными объектами системы.


Рис. 1. Схема взаимодействия объектов системы


Стек технологий подобран исходя из различных факторов, таких как: популярность технологии и наличие большого профессионального сообщества разработчиков, простота и скорость разработки, возможности по масштабируемости проекта.

При разработке веб-сервера выбор остановился на языке Python и фреймворке Django, который имеет множество готовых компонентов для написания ресурсов, а также собственную ORM-систему для работы с базой данных.

Для клиентского взаимодействия был выбран язык JavaScript и его самый популярный фреймворк React. Данный фреймворк имеет развитое сообщество разработчиков, множество готовых наработок с открытым исходным кодом, что позволяет использовать целые модули в собственных коммерческих целях. Например, для системы учета аренды электросамокатов были интегрированы модули YandexMaps и Notification. Данная интеграция ускорила процесс разработки и сэкономила время для разработки базовых модулей, которые существуют в клиенто-ориентированных популярных приложениях.

Сбор и обработка данных о электросамокатах

За сбор и обработку данных о электросамокатах отвечает серверная сторона. Помимо алгоритмов обработки сервер занимается и хранением данных о электросамокатах в электронной базе данных. На выбор системы управления базами данных повлиял ряд технических моментов, таких как скорость обработки массивных наборов данных, сложность запросов на операции чтения-записи. Исходя из возможной высоконагруженности на проект, была выбрана многофункциональная СУБД PostgreSQL.

Данная СУБД без каких-либо сложностей интегрируется в использованный в разработке фреймворк Django. Плюсом от этого фреймворка служит готовый компонент с функциями административной панели. После описания используемых таблиц можно сразу заняться заполнением данных о электросамокатах (см. рис. 2).


Рис. 2. Django-админстраница для добавления данных


После добавления в базу данных самокат получает уникальный идентификатор и картинку в виде QR-кода. Проведя исследования, можно сказать, что QR-код повышает свою значимость в жизни людей, и, как следствие, может использоваться во всех учетных задачах и в различных областях [2]. В данной системе QR-код будет играть значимую роль. Для начала аренды необходимо будет отсканировать сгенерированный QR-код, который будет уникальным и будет находиться на каждом электросамокате.

Перед визуализацией электросамокатов на карте сначала необходимо разобраться с самим процессом общения сервера и клиентской части, на которую будут приходить данные с сервера и уже потом отображать полученную информацию на веб-карте. Для описания данного процесса подойдет UML-диаграмма. Данный тип диаграмм представляет собой средство для визуализации процессов обработки данных [3]. На рисунке 3 представлена схема общения клиентской части приложения с серверной.


Рис. 3. Диаграммная демонстрация протоколов при использовании сервиса


Для обновления информации в режиме реального времени использован протокол WebSocket, который позволяет создавать интерактивное соединение между сервером и клиентом и обмениваться сообщениями в режиме реального времени. Благодаря данному протоколу при входе в приложение клиент сначала получает актуальный список доступных электросамокатов с помощью HTTP-протокола, а затем в автоматическом режиме регистрируется в канале на обновления с помощью протокола WebSocket [4]. При любом изменении данных в базе данных, связанных с самокатами, устройство клиента получает сообщение с новыми актуальными данными. При добавлении нового самоката все участники канала также получают сообщение с новыми данными.

При HTTP-запросах ответ поступает только запросившему пользователю, а сообщения от сервера при протоколе WebSocket получают все клиенты, находящиеся в канале.

Визуализация положения электросамокатов на карте

Система использует картографический инструмент на основе веб-технологий для отображения актуальной информации о электросамокатах в режиме реального времени. Для этой задачи используется модуль YandexMaps, который позволяет визуализировать объекты по координатам на карте.

В результате внедрения API Яндекс.Карт возникает возможность определять локацию [5]. Список электросамокатов с координатами клиент получает при входе в систему. А также регистрируется на обновления в канале WebSocket и при изменении данных на сервере получает актуальную информацию и на основе алгоритма отображения принимает решение показывать ли поступивший электросамокат на карте или наоборот, скрыть его. На рисунке 4 отображен код реализации модуля визуализации списка электросамокатов, написанный на фреймворке React и с использованием библиотеки YandexMaps.


Рис. 4. Фрагмент кода модуля визуализации карты с отображением электросамокатов


На вход данный модуль получает список объектов электросамокатов. С помощью библиотеки YandexMaps и его компонента Placemark визуализируется каждый электросамокат на карте. На рисунке 5 изображен результат работы данного модуля. При поступлении новых данных о электросамокатах данный модуль перерисовывается и отображает актуальные данные в режиме реального времени. За поступление актуальных данных отвечает серверная сторона.


Рис. 5. Визуализация электросамокатов на карте


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

Технические средства организации взаимодействия электросамоката с сервером

Для реализации системы необходима разработка технического устройства, которое при перемещении будет отсылать актуальные координаты на сервер в заданный интервал времени. Схема собранного технического устройства отображена на рисунке 6.

У электросамоката установлен свой GPS-приёмник GY-NEO6MV2 с активной антенной uBlox Neo 6M и беспроводной Wi-Fi модуль на базе ESP8266 ESP-12E [6]. Данный модуль имеет NodeMcu прошивку и собственный LUA-скрипт, который отправляет на сервер каждую минуту данные о координатах электросамоката [7].

Каждый электросамокат имеет собственный идентификатор. Скрипт получает координаты электросамоката и отправляет их на сервер в формате JSON. На сервере данные обновляются и отправляются в канал для отображения.


Рис. 6. Технический модуль для отправки координат на сервер


Заключение

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

Таким образом, модуль визуализации положения электросамокатов на веб-карте в режиме реального времени обеспечивает недорогое, масштабируемое и точное решение для мониторинга движения электросамокатов в режиме реального времени.

Литература

  1. История электросамокатов [Электронный ресурс] – Режим доступа: https://vc.ru/transport/170132-istoriya-elektросамокатov-дьявольский-транспорт-богачей-и-суфражисток
  2. Уздемир, А. Л. Использование QR-кода при разработке системы учета заказов и скидок клиентов кафе / А. Л. Уздемир, Н. К. Андриевская // Информатика, управляющие системы, математическое и компьютерное моделирование (ИУСМКМ-2020): Сборник материалов XI Международной научно-технической конференции в рамках VI Международного Научного форума Донецкой Народной Республики, Донецк, 27–28 мая 2020 года / Редколлегия: Ю.К. Орлов [и др.]. – Донецк: Донецкий национальный технический университет, 2020. – С. 256-262.
  3. Андриевская, Н. К. Разработка архитектурной модели системы управления информационными ресурсами организаций / Н. К. Андриевская, А. И. Секирин, О. В. Ченгарь // Программная инженерия: методы и технологии разработки информационно-вычислительных систем (ПИИВС-2020): сборник научных трудов III Международной научно-практической конференции, Донецк, 25–26 ноября 2020 года. Том 1. – Донецк: Донецкий национальный технический университет, 2020. – С. 46-54.
  4. Web-протокол HTTP и WebSocket [Электронный ресурс] – Режим доступа: https://webformyself.com/websockets-vs-http/
  5. Введенский, И. В. Выбор картографического сервиса для использования в Web-ориентированной системе диспетчера службы такси / И. В. Введенский, Н. К. Андриевская // Информатика, управляющие системы, математическое и компьютерное моделирование (ИУСМКМ-2020): Сборник материалов XI Международной научно-технической конференции в рамках VI Международного Научного форума Донецкой Народной Республики, Донецк, 27–28 мая 2020 года / Редколлегия: Ю.К. Орлов [и др.]. – Донецк: Донецкий национальный технический университет, 2020. – С. 219-223.
  6. GPS-трекер на базе ESL8266 [Электронный ресурс] – Режим доступа: https://blog.avislab.com/gps-tracker-esp8266/
  7. Скрипты Lua [Электронный ресурс] – Режим доступа: https://doublecmd.github.io/doc/ru/lua.html