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
з пакетуcounterfit_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. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу.