Оглавление:

Отслеживание GPS в реальном времени: 3 шага
Отслеживание GPS в реальном времени: 3 шага

Видео: Отслеживание GPS в реальном времени: 3 шага

Видео: Отслеживание GPS в реальном времени: 3 шага
Видео: Как включить GPS на часах Garmin | Как работает GPS | Настройка GPS 2024, Ноябрь
Anonim

Подписаться Другие автора:

Трекер "Кошелек или жизнь" с тыквенным пи
Трекер "Кошелек или жизнь" с тыквенным пи
Трекер "Кошелек или жизнь" с тыквенным пи
Трекер "Кошелек или жизнь" с тыквенным пи
Как построить монитор температуры Raspberry Pi
Как построить монитор температуры Raspberry Pi
Как построить монитор температуры Raspberry Pi
Как построить монитор температуры Raspberry Pi
Потоковая передача данных из Google Таблиц на панель инструментов
Потоковая передача данных из Google Таблиц на панель инструментов
Потоковая передача данных из Google Таблиц на панель инструментов
Потоковая передача данных из Google Таблиц на панель инструментов

В этом руководстве мы покажем вам, как отслеживать местоположение в реальном времени с помощью BerryGPS-GSM, Raspberry Pi Zero и Initial State. Мы отправим долготу, широту и скорость через 3G с помощью BerryGPS-GSM в исходное состояние.

Запасы

  • Raspberry Pi Zero
  • BerryGPS-GSM
  • Начальное состояние

Шаг 1: исходное состояние

Начальное состояние
Начальное состояние

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

Шаг 1. Зарегистрируйтесь для получения учетной записи с исходным состоянием

Перейдите на https://iot.app.initialstate.com и создайте новую учетную запись. Вы получаете 14-дневную бесплатную пробную версию, и любой, у кого есть адрес электронной почты edu, может зарегистрироваться для бесплатного студенческого плана.

Шаг 2: Установите ISStreamer

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

$ cd / home / pi /

$ / curl -sSL https://get.initialstate.com/python -o - | sudo bash

Шаг 3: сделайте немного автомагии

После шага 2 вы увидите что-то похожее на следующий вывод на экран:

pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: Начало простой установки ISStreamer Python! Установка может занять пару минут, выпейте кофе:) Но не забудьте вернуться, у меня будут вопросы позже! Найдено easy_install: setuptools 1.1.6 Найдено pip: pip 1.5.6 из /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) основная версия pip: 1 второстепенная версия pip: 5 ISStreamer обнаружен, обновляется… Требование уже актуально: ISStreamer в Library / Python / 2.7 / site-packages Очистка… Хотите автоматически получить пример скрипта? [да / нет] Где вы хотите сохранить пример? [по умолчанию:./is_example.py] Выберите, какое приложение начального состояния вы используете: 1. app.initialstate.com 2. [НОВИНКА!] iot.app.initialstate.com Введите вариант 1 или 2: введите iot.app Имя пользователя.initialstate.com: Введите пароль iot.app.initialstate.com:

Когда вас спросят, хотите ли вы автоматически получить пример сценария, поставьте «y» вместо «да» и нажмите клавишу ввода, чтобы сохранить сценарий в папке по умолчанию. Чтобы задать вопрос о том, какое приложение вы используете, выберите 2 (если вы не зарегистрировались до ноября 2018 г.) и введите свое имя пользователя и пароль.

Шаг 4: Запустите пример сценария

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

$ python is_example.py

Шаг 5: пример данных

Вернитесь к своей учетной записи в исходном состоянии в веб-браузере. Слева на полке журнала должна появиться новая корзина данных под названием «Пример потока Python» (возможно, вам придется обновить страницу). Нажмите на эту корзину, чтобы просмотреть свои данные.

Шаг 2: BerryGPS-GSM и Raspberry Pi Zero

BerryGPS-GSM и Raspberry Pi Zero
BerryGPS-GSM и Raspberry Pi Zero

Если вы используете BerryGPS-GSM, вы можете следовать этому руководству, чтобы заставить работать GPS и подключить Pi через 3G с помощью PPP.

Связанное руководство также показывает, как сделать так, чтобы ваш Pi автоматически подключался к сети оператора при загрузке. Это понадобится вам, если вы планируете выполнять удаленное отслеживание.

Установить библиотеки

Вам потребуется установить следующие библиотеки:

$ sudo apt-get install python-pip

$ sudo pip install pynmea2 $ sudo pip install ISStreamer

Основной скрипт Python

Здесь мы создадим основной скрипт, который будет передавать данные GPS в исходное состояние. Код ниже создает отдельный поток, который используется для мониторинга последовательного порта. Это необходимо, потому что у нас есть пауза в основном цикле. Пауза предназначена для ограничения объема данных, которые мы загружаем через 3G.

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

Чтобы создать скрипт python и открыть текстовый редактор, введите следующую команду:

$ nano GPStracker.py

Скопируйте и вставьте следующий код в текстовый редактор. Вам нужно будет ввести свой ключ доступа к исходному состоянию в строке 11, где написано «ВВЕДИТЕ КЛЮЧ ДОСТУПА»:

#! / usr / bin / pythonfrom gps import * from time import * import threading import datetime from ISStreamer. Streamer import Streamer gpsd = None # Настроить глобальную переменную # Настроить поток исходного состояния, ввести свой ключ доступа ниже streamer = Streamer (bucket_name = "GPS_Tracker ", bucket_key =" GPS_TRACKER ", access_key =" ВВЕДИТЕ КЛЮЧ ДОСТУПА ") class GPSDcollector (threading. Thread): def _init _ (self, threadID): threading. Thread._ init _ (self) self.threadID = threadID global gpsd #bring it in scope gpsd = gps (mode = WATCH_ENABLE) #Start GPSD self.running = True # Запустить этот поток def run (self): global gpsd while gpsdThread.running: gpsd.next () if _name_ == '_main_': gpsdThread = GPSDcollector (1) # создать поток для сбора данных try: gpsdThread.start () # запустить его, пока True: print 'GPS', gpsd.utc, 'CPU time->', datetime.datetime.now ().time (), если (gpsd.fix.longitude0) и (gpsd.fix.longitude'nan '): streamer.log ("Местоположение", "{lat}, {lon}". format (lat = gpsd.fix.latitude, lon = gpsd.fix.longitu de)) streamer.log ("скорость", gpsd.fix.speed) print 'lat', gpsd.fix.latitude, print 'lon', gpsd.fix.longitude, print 'speed', gpsd.fix.speed sleep (5) except (KeyboardInterrupt, SystemExit): # когда вы нажимаете ctrl + c print "\ nKilling Thread…" gpsdThread.running = False gpsdThread.join () # ждите, пока поток закончит то, что он делает print "Done. / NExiting"."

Сохраните и выйдите из текстового редактора, нажав CTRL + X, Y, Enter.

Запускать скрипт автоматически при загрузке

Если вы выполняете удаленный мониторинг, вам нужно, чтобы сценарий запускался при загрузке. Для этого мы создадим небольшой скрипт, который запустит основную программу Python. Введите следующую команду:

$ nano GPStrackerStart.sh

Скопируйте строки в текстовый редактор:

#! / bin / bash

сон 15 питон /home/pi/GPStracker.py &

Вышеупомянутая пауза предназначена для того, чтобы дать Pi время для загрузки и подключения через PPP.

Сделайте скрипт исполняемым:

$ chmod + x ~ / GPStrackerStart.sh

Мы будем использовать cron для запуска скрипта каждый раз при загрузке Pi:

$ crontab -e

Добавьте строку ниже внизу:

@reboot /home/pi/GPStrackerStart.sh &

Шаг 3. Панель управления местоположением и скоростью

Панель управления местоположением и скоростью
Панель управления местоположением и скоростью

Теперь, когда у вас есть проект, данные должны быть отправлены в исходное состояние. У вас будут данные GPS и данные о скорости. Вы можете использовать данные GPS на плитке карт для отслеживания местоположения. Для фрагмента карты обязательно установите флажок Draw Path, чтобы отслеживание вашего местоположения отображалось, как на приборной панели выше. Вы можете нанести данные о скорости на линейный график, чтобы увидеть скорость с течением времени.

Рекомендуемые: