GPS-трекер LoRa-GPS. Часть 4. Приемник. Приложение для Android.

Заключительная часть публикации сведений о LoRa-GPS трекере, который летает в любительских ракетах (моих и коллег) повествует об «оконечном устройстве» приемника LoRa — смартфоне с приложением для Android. Обычные решения используют GSM канал для передачи местоположения в СМС. Здесь опиcано решение имеющее большую автономность — свой радиоканал.

Описан LoRa-GPS трекер, выполненный на платформе Arduino и LoRa модулях E19 от E-byte. На приемной стороне в качестве оконечного устройства используется смартфон/планшет на Android. Конструкция совместима по протоколам радиоканала с конструкцией Дианко Чернева (pinko): настройка модуля LoRa, длина и формат передаваемого пакета.

Общая схема работы GPS-трекера типовая: модуль GPS принимает сигналы навигационных спутников и определяет свои текущие координаты. Полученные данные передаются радиопередатчиком (диапазон 433МГц). Приемник получает пакет данных, извлекает координаты и по последовательному каналу отправляет информацию на оконечное устройство.

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

В первой части был описан передатчик системы. Вторая часть — описание индикатора приемника системы, разработанного pinko. В третьей части была описана конструкция приемника на Arduino NANO.

Задача передатчика заключается в приеме сигналов со спутников и определении текущих координат (этим занимается специальный модуль GPS), упаковке полученных данных в удобный формат и передаче подготовленного пакета по радиоканалу (этим занимается радиопередатчик модуля LoRa E19-433M20S2). Приемник обязан принять пакет от передатчика по радиоканалу, «вынуть» из пакета данные и удобным способом (у нас это UART-USB, текстовые посылки) передать их на оконечное устройство (планшет, смартфон, компьютер и т.п). В качестве «оконечного устройства» может выступать любой гаджет, способный принять данные по последовательному каналу.


Данные с приемника выводятся через UART-USB, встроенный в плату Arduino NANO. Поэтому наиболее простым/понятным решением для чтения этих данных является «родное» для Arduino приложение для ПК — Arduino IDE. Открываем монитор, выбираем «типовую» скорость 9600 бит/сек и смотрим на экране на поступающую с передатчика LoRa-GPS-трекера информацию о координатах. Аналогичные терминальные программы есть и для других устройств, в т.ч. под Android.

Пример выводимой по UART строки одного принятого пакета:

# 21:12:40; 56; 40.4567; 44; 12.1234; 136; 3.96; 201; -98; 6.3;

где: # — начало строки, время (часы:минуты:секунды), широта (градусы, минуты с долями), долгота (градусы, минуты с долями), высота (метры), напряжение питания передатчика (вольты), номер переданного пакета, уровень сигнала и SNR.

Однако более удобно иметь специализированное приложение, которое примет данные, обработает их и покажет в удобном виде. Ниже описан пример такого приложения, разработанного в сервисе от MIT AppInventor.

Как-то я даже записал что-то типа видеоинструкции по пользованию такой программой.


Приложение можно взять здесь: GPScalcAndOpenWeb_12

Программа является развитием более ранних версий, где функциональность ограничивалась переводом вручную введенных координат в готовую ссылку для GoogleMaps.

В обновленной версии добавлена связь с внешними устройствами (пока это только приемник LoRa-GPS-трекера на Arduino NANO), прием данных с них. Для этого использовано расширение SerialOTG (в теории может работать с USB-UART, выполненных на FTDI, CP210х, PL2303, CH340 и др.). Принятые данные GPS отображаются на экране, накапливаются в списке. Список можно сохранить в csv файл (файл имеет фиксированное название gps2map.csv и расположен в корневом каталоге). Добавлена возможность указания произвольной «начальной/стартовой» точки, относительно которой ведется расчет расстояния и направления до текущих координат. Есть возможность ввода в систему координат, полученных самим смартфоном.


Описание приложенияВерхняя строка приложения (на скриншоте — розовый): цвет фона показывает наличие связи с приемником. Две кнопки: установить связь с приемником и разорвать связь. При подключении устройства первое нажатие кнопки «Установить связь» (ниже — в зеленом круге) приведет к появлению запроса на разрешение использования SerialOTG. Надо разрешить. После этого снова нажать кнопку установления связи — после этого пойдет прием данных с приемника: в списке в нижней части экрана будут появляться принятые пакеты данных. При установленной связи цвет фона — зеленый. Приостановить связь (прекратить прием данных) можно нажатием кнопки «Разорвать связь» (ниже в красном кружке). При разорванной связи цвет фона — розовый.

В следующей строке (на желтом фоне) расположены основные реквизиты программы: текущие координаты (градусы и минуты широты; градусы и минуты долготы) и высота. Сюда информация попадает:

  • из потока данных от последовательного интерфейса;
  • можно «руками» ввести нужные координаты»;
  • можно данные выбрать из списка ниже;
  • также координаты могут быть получены от GPS смартфона.

По этим данным формируется ссылка для запуска GoogleMaps (конечно, при наличии подключения к Интернет). Сама ссылка открыта для просмотра и располагается над основными кнопками управления (на скриншоте выше — синяя надпись на зеленом фоне).Ниже («Старт» на зеленом фоне) отображаются параметры стартовой точкиИменно эти данные используются для расчета расстояния и направления на «основные» координаты. Строка может быть заполнена соответствующей кнопкой из любой выбранной позиции из списка. В строке: широта, долгота и высота.

Строка ниже: можно ввести любые сведения (комментарий) для последующей идентификации координат из «основного» поля. Комментарий сохраняется в начале строки файла csv. Не стоит в этом поле использовать точку с запятой, т.к. это разделитель в файле csv. При приеме данных с приемника — здесь указывается время.

Синим шрифтом отображаются расчетные данные расстояния, направления и разности высот от стартовой точки до текущей (из «основного» поля). В примере выше — 1,7 км на юго-запад.


Кнопки управления программойПервые четыре кнопки предназначены для работы со строками списка:

  • первая (с плюсиком) — добавляет новую строку с данными из «основного» поля в список
  • вторая (с экранчиком) — наоборот: «достает» данные выбранной строки из списка и заполняет этими данными «основное» поле
  • третья (с крестиком) — удаляет выбранную строку из списка.
  • четвертая кнопка (красный кружок с каплей) — помещает данные из выбранной строки списка в поле «Старт» — начальная точка.

Далее — две кнопки предназначены для работы с файлом gps2map.csv

  • первая (пятая по счету) — читает файл из корня файловой системы телефона и помещает считанные данные в список. При этом прежний список теряется.
  • вторая (с дискеткой) — сохраняет данные из списка в файл.

В конце две кнопки:

    • GPS — это получение координат с смартфона (в каждом смартфоне есть GPS или ГЛОНАСС) и заполнение этими данными «основного» поля программы. Это может быть удобно при поиске. Потом эти данные можно сохранить в список с нужным комментарием.
    • Зеленый круг с желтой стрелкой — это переход в браузер с открытием карт GoogleMaps и отображением точки с координатами «основного» поля.


Практически все элементы приложения с точки зрения программирования рассмотрены в уроках работы с App Inventor.

Файлы

из csv файла несложно получить kml файл трека и такую картинку


Обновление приложения  (13, v2.9)

GPScalcAndOpenWeb_13 (v2.9)  17.07.2021

— изменена иконка (добавлена цифра 13)
— исправлен расчет минут (убрана отрицательность) при получении координат с телефона
— введен переключатель «режим поиска»:
— выключен: фон голубой, надпись начальной точки «старт» — работает как раньше
— включен: фон зеленый, надпись начальной точки «финиш» — работает так:
прием UART идет в список, в поле основных координат не поступает;
в поле основных координат идет GPS с телефона (по изменению данных);
отображается расстояние и направление как и было, т.е. теперь от текущей позиции телефона до точки, что прописана в «финиш»(«старт») — можно идти и видеть сколько осталось до упавшей ракеты.


Обновление приложения (14, v2.10)

GPScalcAndOpenWeb_14 (1) (v2.10)  23.09.2021

— изменена иконка (цифра 14)
— добавлена картинка со сторонами света, где красной стрелкой отмечается направление на исходную точку
— убрано гашение экрана при долгом отсутствии действий
— для Android 11 и выше сохранение файла данных gps2map.csv будет в служебный каталог приложения
— «перевернуто» отображение поступающих данных — новые данные отображаются сверху списка. Сохранение данных в файл оставлено в прежнем порядке — свежие в конце файла.


Обновление приложения (17, v3.2)

Об обновлении подробнее написано тут (Bloetooth, Режим поиска, Сообщение о событии и т.д.)

GPScalcAndOpenWeb_17 (1) (v3.2)  13.10.2022

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