Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Stan początkowy
- Krok 2: BerryGPS-GSM i Raspberry Pi Zero
- Krok 3: Pulpit nawigacyjny lokalizacji i prędkości
Wideo: Śledzenie GPS w czasie rzeczywistym: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Autor: elizabethnaFollow Więcej autora:
W tym samouczku pokażemy, jak śledzić lokalizację w czasie rzeczywistym za pomocą BerryGPS-GSM, Raspberry Pi Zero i stanu początkowego. Wyślemy długość, szerokość geograficzną i prędkość przez 3G z BerryGPS-GSM do stanu początkowego.
Kieszonkowe dzieci
- Raspberry Pi Zero
- BerryGPS-GSM
- Stan początkowy
Krok 1: Stan początkowy
Chcemy przesyłać strumieniowo wszystkie nasze dane dotyczące długości, szerokości geograficznej i prędkości do usługi w chmurze, aby ta usługa przekształciła nasze dane w ładny pulpit nawigacyjny, do którego możemy uzyskać dostęp z naszego laptopa lub urządzenia mobilnego. Użyjemy stanu początkowego.
Krok 1: Zarejestruj się, aby uzyskać początkowe konto państwowe
Przejdź do https://iot.app.initialstate.com i utwórz nowe konto. Otrzymujesz 14-dniowy bezpłatny okres próbny i każdy, kto ma adres e-mail edu, może zarejestrować się w bezpłatnym planie studenckim.
Krok 2: Zainstaluj ISStreamer
Zainstaluj moduł Pythona stanu początkowego na swoim Raspberry Pi. W wierszu polecenia uruchom następujące polecenie:
$ cd /home/pi/
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash
Krok 3: Zrób Automagię
Po kroku 2 zobaczysz na ekranie coś podobnego do następującego:
pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: Początek ISStreamer Python Łatwa instalacja! Instalacja może potrwać kilka minut, napij się kawy:) Ale nie zapomnij wrócić, będę miał pytania później! Znaleziono easy_install: setuptools 1.1.6 Znaleziono pip: pip 1.5.6 z /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg (python 2.7) pip wersja główna: 1 pip wersja podrzędna: 5 Znaleziono ISStreamer, aktualizuję… Wymaganie już aktualne: ISStreamer w bibliotece/Python/2.7/site-packages Porządkowanie… Czy chcesz automagicznie uzyskać przykładowy skrypt? [t/N] Gdzie chcesz zapisać przykład? [domyślnie:./is_example.py] Wybierz, której aplikacji stanu początkowego używasz: 1. app.initialstate.com 2. [NOWOŚĆ!] iot.app.initialstate.com Wybierz 1 lub 2: Wpisz iot.app Nazwa użytkownika.initialstate.com: Wprowadź hasło iot.app.initialstate.com:
Na pytanie, czy chcesz automagicznie uzyskać przykładowy skrypt, wpisz „y” jako tak i naciśnij enter, aby zapisać skrypt w domyślnej lokalizacji. W przypadku pytania o to, której aplikacji używasz, wybierz 2 (chyba że zarejestrowałeś się przed listopadem 2018 r.) i wprowadź swoją nazwę użytkownika i hasło.
Krok 4: Uruchom przykładowy skrypt
Uruchom skrypt testowy, aby upewnić się, że możemy utworzyć strumień danych na Twoje konto stanu początkowego. Napisz następujące polecenie:
$ python is_example.py
Krok 5: Przykładowe dane
Wróć do swojego konta stanu początkowego w przeglądarce internetowej. Po lewej stronie na półce dziennika powinien pojawić się nowy zasobnik danych o nazwie „Przykład strumienia Pythona” (może być konieczne odświeżenie strony). Kliknij ten zasobnik, aby wyświetlić swoje dane.
Krok 2: BerryGPS-GSM i Raspberry Pi Zero
Jeśli używasz BerryGPS-GSM, możesz postępować zgodnie z tym przewodnikiem, aby uruchomić GPS i połączyć Pi przez 3G za pomocą PPP.
Połączony przewodnik pokazuje również, jak automatycznie połączyć Pi z siecią operatora po uruchomieniu. Będzie to potrzebne, jeśli planujesz przeprowadzić zdalne śledzenie.
Zainstaluj biblioteki
Będziesz musiał zainstalować następujące biblioteki:
$ sudo apt-get install python-pip
$ sudo pip install pynmea2 $ sudo pip install ISStreamer
Główny skrypt Pythona
Tutaj stworzymy główny skrypt, który będzie przesyłał strumieniowo dane GPS do stanu początkowego. Poniższy kod tworzy osobny wątek, który służy do monitorowania portu szeregowego. Jest to potrzebne, ponieważ w głównej pętli mamy przerwę. Przerwa ma na celu ograniczenie ilości przesyłanych danych przez 3G.
Jeśli zrobiliśmy wszystko w tym samym wątku podczas pauzy, bufor szeregowy zapełniłby się (jest to FIFO) i gdy otrzymamy kolejną wartość z bufora, będzie on stary o kilka sekund. Dzieje się tak w każdej pętli i ostatecznie dane będą opóźnione o minuty lub godziny.
Aby utworzyć skrypt Pythona i otworzyć edytor tekstu, wprowadź następujące polecenie:
$ nano GPStracker.py
Skopiuj i wklej następujący kod do edytora tekstu. Będziesz musiał wprowadzić swój klucz dostępu do stanu początkowego w wierszu 11, gdzie jest napisane „WPROWADŹ SWÓJ KLUCZ DOSTĘPU”:
#! /usr/bin/pythonfrom gps import * from time import * import threading import datetime from ISStreamer. Streamer import Streamer gpsd = Brak #Ustaw zmienną globalną #Ustaw strumień stanu początkowego, wprowadź klucz dostępu poniżej streamer = Streamer(bucket_name="GPS_Tracker ", bucket_key="GPS_TRACKER", access_key="WPROWADŹ KLUCZ DOSTĘPU") class GPSDcollector(threading. Thread): def _init_(self, threadID): threading. Thread._init_(self) self.threadID = threadID globalny gpsd #bring it in scope gpsd = gps(mode=OBEJRZYJ_WŁĄCZONE) #Uruchom GPSD self.running = True #Uruchom ten wątek def run(self): global gpsd while gpsdThread.running: gpsd.next() if _name_ == '_main_': gpsdThread = GPSDcollector(1) # utwórz wątek do zbierania danych spróbuj: gpsdThread.start() # uruchom go, gdy True: print 'GPS ', gpsd.utc, 'CPU time->', datetime.datetime.now().time(), if (gpsd.fix.longitude0) i (gpsd.fix.longitude'nan'): streamer.log("Lokalizacja", "{lat}, {lon}".format(lat=gpsd.fix.szerokość, lon=gpsd.fix.longitu de)) streamer.log("speed", gpsd.fix.speed) print ' lat ', gpsd.fix.latitude, print ' lon ', gpsd.fix.longitude, print ' speed ', gpsd.fix.speed sleep (5) z wyjątkiem (KeyboardInterrupt, SystemExit): #po naciśnięciu ctrl+c print "\nZabijanie wątku…" gpsdThread.running = False gpsdThread.join() # poczekaj, aż wątek zakończy to, co robi print "Gotowe.\nWychodzenie”.
Zapisz i wyjdź z edytora tekstu, naciskając CTRL + X, Y, enter.
Uruchom skrypt automatycznie przy starcie
Jeśli robisz zdalne monitorowanie, chciałbyś, aby skrypt uruchamiał się przy starcie. W tym celu stworzymy mały skrypt, który uruchomi główny program Pythona. Wpisz następujące polecenie:
$ nano GPStrackerStart.sh
Skopiuj wiersze do edytora tekstu:
#!/kosz/bash
spać 15 python /home/pi/GPStracker.py &
Powyższa pauza ma na celu dać Pi czas na uruchomienie i połączenie przez PPP.
Uczyń skrypt wykonywalnym:
$ chmod +x ~/GPStrackerStart.sh
Użyjemy crona do uruchomienia skryptu przy każdym uruchomieniu Pi:
$ crontab -e
Dodaj poniższą linię na dole:
@reboot /home/pi/GPStrackerStart.sh &
Krok 3: Pulpit nawigacyjny lokalizacji i prędkości
Teraz, gdy masz już swój projekt i działa, dane powinny być wysyłane do stanu początkowego. Będziesz mieć dane GPS i dane o prędkości. Możesz użyć danych GPS w kafelku mapy do śledzenia lokalizacji. W przypadku kafelka mapy zaznacz pole wyboru Narysuj ścieżkę, aby śledzenie lokalizacji było odwzorowane tak, jak na powyższym pulpicie nawigacyjnym. Możesz umieścić swoje dane dotyczące prędkości na wykresie liniowym, aby zobaczyć prędkość w czasie.
Zalecana:
Rozwiązujący w czasie rzeczywistym kostkę Rubika z zasłoniętymi oczami za pomocą Raspberry Pi i OpenCV: 4 kroki
Kostka Rubika z zawiązanymi oczami w czasie rzeczywistym za pomocą Raspberry Pi i OpenCV: Jest to druga wersja narzędzia Rubika do rozwiązywania problemów z zawiązanymi oczami. Pierwsza wersja została opracowana przez javascript, możesz zobaczyć projekt RubiksCubeBlindfolded1W przeciwieństwie do poprzedniej, ta wersja używa biblioteki OpenCV do wykrywania kolorów i e
Wykreślanie wykresu w czasie rzeczywistym na Androidzie z Arduino przez HC-05: 3 kroki
Wykreślanie wykresu w czasie rzeczywistym na Androidzie z Arduino do HC-05: Hej, oto samouczek, jak wykreślić wykres wartości w czasie rzeczywistym z mikrokontrolera, takiego jak Arduino, do aplikacji. Wykorzystuje moduł Bluetooth, taki jak HC-05, do działania jako urządzenie do przesyłania wiadomości do przesyłania i odbierania danych między Ar
COVID-19 Śledzenie w czasie rzeczywistym dla ESP32: 3 kroki
COVID-19 Realtime Tracker dla ESP32: Ten mały tracker pomoże Ci być na bieżąco z epidemią koronawirusa i sytuacją w Twoim kraju. Wyświetlacz pokazuje naprzemiennie aktualne dane z różnych wybranych przez Ciebie krajów.Dane są zbierane przez stronę internetową www.wo
Live Tracker Covid19 za pomocą ESP8266 i OLED - Pulpit nawigacyjny Covid19 w czasie rzeczywistym: 4 kroki
Live Tracker Covid19 za pomocą ESP8266 i OLED | Pulpit nawigacyjny Covid19 w czasie rzeczywistym: odwiedź witrynę Techtronic Harsh: http://techtronicharsh.comWszędzie istnieje ogromna epidemia nowego wirusa koronowego (COVID19). Konieczne stało się obserwowanie aktualnego scenariusza COVID-19 na świecie. Więc będąc w domu, to był punkt
Domowy lokalizator GPS w czasie rzeczywistym (SIM800L, Ublox NEO-6M, Arduino): 8 kroków
Domowy lokalizator GPS w czasie rzeczywistym (SIM800L, Ublox NEO-6M, Arduino): Więc masz moduł GSM leżący tak jak ja? Również GPS-tracker? Myślimy tak samo! W tej instrukcji postaram się poprowadzić Cię, jak osiągnąć swój cel z perspektywy nowicjusza.Ponieważ nie miałem wcześniej wiedzy z zakresu elektrotechniki (do