11 KiB
Чтение данных GPS - Виртуальное IoT-устройство
В этой части урока вы добавите GPS-датчик к вашему виртуальному IoT-устройству и будете считывать с него данные.
Виртуальное оборудование
Виртуальное IoT-устройство будет использовать симулированный GPS-датчик, доступный через UART через последовательный порт.
Физический GPS-датчик имеет антенну для приема радиоволн от GPS-спутников и преобразует GPS-сигналы в GPS-данные. Виртуальная версия имитирует это, позволяя вам либо задать широту и долготу, отправить необработанные NMEA-строки, либо загрузить GPX-файл с несколькими местоположениями, которые могут возвращаться последовательно.
🎓 NMEA-строки будут рассмотрены позже в этом уроке
Добавление датчика в CounterFit
Чтобы использовать виртуальный GPS-датчик, его нужно добавить в приложение CounterFit.
Задание - добавление датчика в CounterFit
Добавьте GPS-датчик в приложение CounterFit.
-
Создайте новое Python-приложение на вашем компьютере в папке
gps-sensor
с единственным файломapp.py
и виртуальной средой Python, а также добавьте пакеты CounterFit через pip.⚠️ Вы можете обратиться к инструкциям по созданию и настройке Python-проекта CounterFit в уроке 1, если это необходимо.
-
Установите дополнительный пакет pip для установки CounterFit shim, который может взаимодействовать с датчиками на основе UART через последовательное соединение. Убедитесь, что вы устанавливаете его из терминала с активированной виртуальной средой.
pip install counterfit-shims-serial
-
Убедитесь, что веб-приложение CounterFit запущено.
-
Создайте GPS-датчик:
-
В поле Create sensor на панели Sensors выберите тип датчика в выпадающем списке Sensor type и выберите UART GPS.
-
Оставьте Port установленным на /dev/ttyAMA0.
-
Нажмите кнопку Add, чтобы создать GPS-датчик на порту
/dev/ttyAMA0
.
GPS-датчик будет создан и появится в списке датчиков.
-
Программирование GPS-датчика
Теперь виртуальное IoT-устройство можно запрограммировать для работы с виртуальным GPS-датчиком.
Задание - программирование GPS-датчика
Программируйте приложение для GPS-датчика.
-
Убедитесь, что приложение
gps-sensor
открыто в VS Code. -
Откройте файл
app.py
. -
Добавьте следующий код в начало файла
app.py
, чтобы подключить приложение к CounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Добавьте следующий код ниже, чтобы импортировать необходимые библиотеки, включая библиотеку для последовательного порта CounterFit:
import time import counterfit_shims_serial serial = counterfit_shims_serial.Serial('/dev/ttyAMA0')
Этот код импортирует модуль
serial
из пакета pipcounterfit_shims_serial
. Затем он подключается к последовательному порту/dev/ttyAMA0
— это адрес последовательного порта, который использует виртуальный GPS-датчик для своего UART-порта. -
Добавьте следующий код ниже, чтобы считывать данные с последовательного порта и выводить их в консоль:
def print_gps_data(line): print(line.rstrip()) while True: line = serial.readline().decode('utf-8') while len(line) > 0: print_gps_data(line) line = serial.readline().decode('utf-8') time.sleep(1)
Определяется функция
print_gps_data
, которая выводит переданную ей строку в консоль.Затем код выполняет бесконечный цикл, считывая как можно больше строк текста с последовательного порта в каждом цикле. Для каждой строки вызывается функция
print_gps_data
.После того как все данные считаны, цикл засыпает на 1 секунду, а затем повторяется.
-
Запустите этот код, убедившись, что вы используете другой терминал, чем тот, в котором запущено приложение CounterFit, чтобы приложение CounterFit продолжало работать.
-
В приложении CounterFit измените значение GPS-датчика. Вы можете сделать это одним из следующих способов:
-
Установите Source в
Lat/Lon
и задайте явные значения широты, долготы и количества спутников, используемых для получения GPS-фиксации. Это значение будет отправлено только один раз, поэтому установите флажок Repeat, чтобы данные повторялись каждую секунду. -
Установите Source в
NMEA
и добавьте несколько NMEA-строк в текстовое поле. Все эти значения будут отправлены с задержкой в 1 секунду перед каждой новой строкой GGA (фиксация позиции).Вы можете использовать инструмент, такой как nmeagen.org, чтобы сгенерировать эти строки, рисуя на карте. Эти значения будут отправлены только один раз, поэтому установите флажок Repeat, чтобы данные повторялись через секунду после их отправки.
-
Установите Source в GPX-файл и загрузите GPX-файл с маршрутами. Вы можете скачать GPX-файлы с популярных сайтов для карт и пеших маршрутов, таких как AllTrails. Эти файлы содержат несколько GPS-координат в виде маршрута, и GPS-датчик будет возвращать каждую новую координату с интервалом в 1 секунду.
Эти значения будут отправлены только один раз, поэтому установите флажок Repeat, чтобы данные повторялись через секунду после их отправки.
После настройки параметров GPS нажмите кнопку Set, чтобы применить эти значения к датчику.
-
-
Вы увидите необработанный вывод от GPS-датчика, что-то вроде следующего:
$GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67
💁 Этот код можно найти в папке code-gps/virtual-device.
😀 Ваше приложение для GPS-датчика успешно работает!
Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.