Съдържание:
- Консумативи
- Стъпка 1: Първоначално състояние
- Стъпка 2: BerryGPS-GSM и Raspberry Pi Zero
- Стъпка 3: Табло за управление на местоположението и скоростта
Видео: GPS проследяване в реално време: 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
От elizabethna Следвайте още от автора:
В този урок ще ви покажем как да правите проследяване на местоположението в реално време с помощта на 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: Направете малко Automagic
След стъпка 2 ще видите нещо подобно на следния изход на екрана:
pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashПарола: Започване на лесна инсталация на ISStreamer Python! Това може да отнеме няколко минути за инсталиране, вземете кафе:) Но не забравяйте да се върнете, ще имам въпроси по -късно! Намерено easy_install: setuptools 1.1.6 Намерено пип: пип 1.5.6 от /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) основна версия на пип: 1 пип второстепенна версия: 5 ISStreamer е намерен, актуализира се … Изискването вече е актуално: ISStreamer в Library/Python/2.7/site-packages Почистване … Искате ли автоматично да получите примерен скрипт? [y/N] Къде искате да запишете примера? [по подразбиране:./is_example.py] Моля, изберете приложението за първоначално състояние, което използвате: 1. app.initialstate.com 2. [НОВО!] iot.app.initialstate.com Въведете избор 1 или 2: Въведете iot.app.initialstate.com потребителско име: Въведете парола на iot.app.initialstate.com:
Когато бъдете попитани дали искате автоматично да получите примерен скрипт, поставете „y“за „да“и натиснете enter, за да запазите скрипта си в местоположението по подразбиране. За въпроса кое приложение използвате, изберете 2 (освен ако не сте се регистрирали преди ноември 2018 г.) и въведете вашето потребителско име и парола.
Стъпка 4: Стартирайте примерния скрипт
Стартирайте тестовия скрипт, за да се уверите, че можем да създадем поток от данни към вашия акаунт за първоначално състояние. Напишете следната команда:
$ python is_example.py
Стъпка 5: Примерни данни
Върнете се към първоначалния си акаунт в уеб браузъра си. Нова кофа с данни, наречена „Пример на Python Stream“, трябваше да се появи вляво в рафта ви за регистрация (може да се наложи да опресните страницата). Кликнете върху тази кофа, за да видите данните си.
Стъпка 2: BerryGPS-GSM и Raspberry Pi Zero
Ако използвате BerryGPS-GSM, можете да следвате това ръководство, за да накарате GPS да работи и да накара вашия Pi да се свърже чрез 3G чрез PPP.
Свързаното ръководство също показва как да накарате вашия Pi да се свързва автоматично с мрежата на оператора при стартиране. Това ще ви е необходимо, ако планирате да извършите дистанционно проследяване.
Инсталирайте библиотеки
Ще трябва да инсталирате следните библиотеки:
$ sudo apt-get install python-pip
$ sudo pip инсталирайте pynmea2 $ sudo pip инсталирайте ISStreamer
Основен скрипт на Python
Тук ще създадем основния скрипт, който ще предава GPS данните към началното състояние. Кодът по -долу създава отделна нишка, която се използва за наблюдение на серийния порт. Това е необходимо, защото имаме пауза в главния цикъл. Паузата е налице, за да ограничи колко данни качваме през 3G.
Ако направихме всичко в една и съща нишка по време на паузата, серийният буфер щеше да се запълни (това е FIFO) и когато получим следващата стойност от буфера, той ще бъде стар с няколко секунди. Това се случва във всеки цикъл и в крайна сметка данните ще изостанат минути или часове.
За да създадете скрипта на python и да отворите текстовия редактор, въведете следната команда:
$ nano GPStracker.py
Копирайте и поставете следния код в текстовия редактор. Ще трябва да въведете своя ключ за първоначален достъп до състоянието на ред 11, където се казва „ВЪВЕДЕТЕ КЛЮЧА ЗА ДОСТЪП“:
#! /usr/bin/python от gps внос * от време импортиране * импортиране на нишки импортиране дата и час от ISStreamer. Streamer импортиране Streamer gpsd = Няма #Настройка на глобалната променлива #Настройте потока на първоначалното състояние, въведете ключа си за достъп под streamer = Streamer (bucket_name = "GPS_Tracker ", bucket_key =" GPS_TRACKER ", access_key =" ENTER YOUR ACEESS KEY ") клас GPSDcollector (threading. Thread): def _init _ (self, threadID): threading. Thread._ init _ (self) self.threadID = threadID глобален gpsd #bring то в обхват 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) # създайте нишка за събиране на данни опитайте: gpsdThread.start () # стартирайте го, докато True: отпечатайте „GPS“, gpsd.utc, „CPU time->“, datetime.datetime.now ().time (), if (gpsd.fix.longitude0) и (gpsd.fix.longitude'nan '): streamer.log ("Местоположение", "{lat}, {lon}". format (lat = gpsd.fix. широчина, lon = gpsd.fix.longitu de)) streamer.log ("скорост", gpsd.fix.speed) печат "lat", gpsd.fix.latitude, печат "lon", gpsd.fix.longitude, печат "скорост", gpsd.fix.speed sleep (5) с изключение на (KeyboardInterrupt, SystemExit): # когато натиснете ctrl+c, отпечатайте "\ nKilling Thread …" gpsdThread.running = False gpsdThread.join () # изчакайте нишката да завърши това, което прави, отпечатване "Готово. / N Излизане."
Запазете и излезте от текстовия редактор, натискайки CTRL + X, Y, enter.
Стартирайте скрипта автоматично при стартиране
Ако правите отдалечен мониторинг, бихте искали скриптът да се изпълнява при зареждане. За да направим това, ще създадем малък скрипт, който ще стартира основната програма на python. Въведете следната команда:
$ nano GPStrackerStart.sh
Копирайте редовете в текстовия редактор:
#!/bin/bash
спя 15 python /home/pi/GPStracker.py &
Паузата по -горе е налице, за да даде време на Pi да се зареди и да се свърже чрез PPP.
Направете скрипта изпълним:
$ chmod +x ~/GPStrackerStart.sh
Ще използваме cron за стартиране на скрипта всеки път, когато Pi се стартира:
$ crontab -e
Добавете долния ред в долната част:
@reboot /home/pi/GPStrackerStart.sh &
Стъпка 3: Табло за управление на местоположението и скоростта
Сега, когато проектът ви е стартиран, данните трябва да се изпращат до първоначалното състояние. Ще имате GPS данни и данни за скоростта. Можете да използвате GPS данните в плочки на карти за проследяване на местоположението. За плочката на картата не забравяйте да поставите отметка в квадратчето Draw Path, така че проследяването на вашето местоположение да бъде нанесено като таблото за управление по -горе. Можете да поставите вашите данни за скоростта в линейна графика, за да видите скоростта с течение на времето.
Препоръчано:
Как да използвате модул с часовник в реално време (DS3231): 5 стъпки
Как да използвате модул с часовник в реално време (DS3231): DS3231 е евтин, изключително точен I2C часовник в реално време (RTC) с интегриран температурно компенсиран кристален осцилатор (TCXO) и кристал. Устройството включва вход за батерия и поддържа точно отчитане на времето, когато основното захранване
Ръководител на кубика на Рубик със затворени очи в реално време, използващ Raspberry Pi и OpenCV: 4 стъпки
Решавач на куб Рубик в реално време със завързани очи, използващ Raspberry Pi и OpenCV: Това е втората версия на инструмента за куб на Рубик, създаден за решаване на завързани очи. Първата версия е разработена от javascript, можете да видите проекта RubiksCubeBlindfolded1 За разлика от предишната, тази версия използва OpenCV библиотека за откриване на цветовете и
Разпознаване на устройства в реално време с помощта на ЕМ стъпки: 6 стъпки
Разпознаване на устройства в реално време с помощта на ЕМ стъпки: Това устройство е предназначено да класифицира различни електронни устройства според техните ЕМ сигнали. За различните устройства те имат различни ЕМ сигнали, излъчвани от него. Ние разработихме решение за IoT за идентифициране на електронните устройства, използващи частици
Проследяване на живо Covid19 с помощта на ESP8266 и OLED - Табло за управление в реално време Covid19: 4 стъпки
Проследяващ Covid19 на живо с помощта на ESP8266 и OLED | Табло за управление в реално време Covid19: Посетете уебсайта на Techtronic Harsh: http: //techtronicharsh.com Навсякъде има огромно огнище на новия коронавирус (COVID19). Наложи се да се следи настоящият сценарий на COVID-19 в света. Така че, като бях у дома, това беше п
Домашен GPS тракер в реално време (SIM800L, Ublox NEO-6M, Arduino): 8 стъпки
Домашен GPS тракер в реално време (SIM800L, Ublox NEO-6M, Arduino): Значи имате GSM модул, лежащ като мен? Също така GPS-тракер? Ние мислим същото! В тези инструкции ще се опитам да ви насоча как да постигнете целта си от гледна точка на начинаещ. Тъй като нямах предишни познания по електротехника (да