- Jak to działa:
- Wymagane składniki:
- Objaśnienie obwodu:
- GPS Stopień-minuta do stopnia dziesiętnego Zbieżność współrzędnych:
- Objaśnienie programowania:
System śledzenia pojazdów staje się obecnie bardzo ważny, zwłaszcza w przypadku kradzionych pojazdów. Jeśli masz system GPS zainstalowany w swoim pojeździe, możesz śledzić lokalizację pojazdu, a to pomaga policji w śledzeniu skradzionych pojazdów. Wcześniej zbudowaliśmy podobny projekt, w którym współrzędne lokalizacji pojazdu są wysyłane na telefon komórkowy, sprawdź tutaj „Tracker pojazdu oparty na Arduino wykorzystujący GPS i GSM.
Tutaj tworzymy bardziej zaawansowaną wersję systemu śledzenia pojazdów, w której możesz śledzić swój pojazd w Google Maps. W tym projekcie wyślemy współrzędne lokalizacji do lokalnego serwera i wystarczy otworzyć „stronę internetową” na komputerze lub telefonie komórkowym, na której znajduje się łącze do Map Google ze współrzędnymi lokalizacji pojazdów. Kliknięcie tego linku powoduje przejście do Map Google, pokazując lokalizację pojazdów. W tym systemie śledzenia pojazdów za pomocą Google Maps, moduł GPS służy do uzyskiwania współrzędnych lokalizacji, moduł Wi-Fi do wysyłania danych do komputera lub telefonu komórkowego przez Wi-Fi, a Arduino służy do nawiązywania ze sobą komunikacji GPS i Wi-Fi.
Jak to działa:
Aby namierzyć pojazd, musimy znaleźć współrzędne pojazdu za pomocą modułu GPS. Moduł GPS stale komunikuje się z satelitą w celu uzyskania współrzędnych. Następnie musimy wysłać te współrzędne z GPS do naszego Arduino za pomocą UART. A następnie Arduino wyodrębnia wymagane dane z odebranych danych przez GPS.
Wcześniej Arduino wysyła polecenie do modułu Wi-Fi ESP8266 w celu skonfigurowania i połączenia z routerem oraz uzyskania adresu IP. Po tym Arduino inicjalizuje GPS w celu uzyskania współrzędnych, a na wyświetlaczu LCD pojawi się komunikat „Page Refresh message”. Oznacza to, że użytkownik musi odświeżyć stronę internetową. Kiedy użytkownik odświeża stronę internetową, Arduino pobiera współrzędne GPS i wysyła je na stronę internetową (serwer lokalny) przez Wi-Fi, z dodatkowymi informacjami i linkiem do map Google. Teraz, klikając ten link, użytkownik przekierowuje do Google Maps ze współrzędnymi, a następnie uzyskuje aktualną lokalizację pojazdu w czerwonym miejscu na Google Maps. Cały proces jest poprawnie pokazany w wideo na końcu.
Wymagane składniki:
- Arduino UNO
- Moduł Wi-Fi ESP8266
- Moduł GPS
- Kabel USB
- Przewody łączące
- Laptop
- Zasilacz
- Wyświetlacz LCD 16x2
- Deska do chleba
- Router Wifi
Objaśnienie obwodu:
Obwód dla tego projektu „ Śledzenie pojazdów przy użyciu Google Maps” jest bardzo prosty i potrzebujemy głównie Arduino UNO, modułu GPS i modułu Wi-Fi ESP8266. Opcjonalnie podłączony jest LCD 16x2 do wyświetlania statusu. Ten wyświetlacz LCD jest podłączony do pinów 14-19 (A0-A5) Arduino.
Tutaj pin Tx modułu GPS jest bezpośrednio połączony z cyfrowym pinem nr 10 Arduino. Używając tutaj Software Serial Library, zezwoliliśmy na komunikację szeregową na pinach 10 i 11 i zrobiliśmy je odpowiednio Rx i Tx i zostawiliśmy otwarty pin Rx modułu GPS. Domyślnie Pin 0 i 1 Arduino są używane do komunikacji szeregowej, ale korzystając z biblioteki SoftwareSerial, możemy zezwolić na komunikację szeregową na innych pinach cyfrowych Arduino. Zasilacz 12 V służy do zasilania modułu GPS. Przejdź tutaj, aby dowiedzieć się „Jak używać GPS z Arduino” i uzyskać współrzędne.
Piny Vcc i GND modułu Wi-Fi ESP8266 są bezpośrednio podłączone do 3,3 V, a GND Arduino i CH_PD jest również podłączone do 3,3 V. Piny Tx i Rx ESP8266 są bezpośrednio podłączone do pinów 2 i 3 Arduino. Biblioteka oprogramowania szeregowego jest tu również używana, aby umożliwić komunikację szeregową na pinach 2 i 3 Arduino. Omówiliśmy już szczegółowo interfejs modułu Wi-Fi ESP8266 do Arduino, a przed wykonaniem tego projektu zapoznaj się również z „Jak wysłać dane z Arduino do strony internetowej za pomocą WiFi”. Poniżej znajduje się zdjęcie ESP8266:
ESP8266 ma dwie diody LED, jedna czerwona, wskazująca zasilanie, a druga niebieska, czyli dioda transmisji danych. Niebieska dioda LED miga, gdy ESP wysyła dane przez swój pin Tx. Nie podłączaj również ESP do zasilania +5 V, ponieważ może to spowodować uszkodzenie urządzenia. Tutaj, w tym projekcie, wybraliśmy prędkość 9600 bodów dla całej komunikacji UART.
Użytkownik może również zobaczyć komunikację między modułem Wi-Fi ESP8266 i Arduino, na monitorze szeregowym, przy prędkości transmisji 9600:
Sprawdź również wideo na końcu tego projektu, aby poznać szczegółowy proces pracy.
GPS Stopień-minuta do stopnia dziesiętnego Zbieżność współrzędnych:
Moduł GPS odbiera współrzędne z satelity w formacie stopni-minut (ddmm.mmmm) i tutaj potrzebujemy formatu stopni dziesiętnych do wyszukiwania lokalizacji w Mapach Google. Najpierw musimy przekonwertować współrzędne z formatu stopni-minut na format stopni dziesiętnych przy użyciu podanej formuły.
Załóżmy, że 2856,3465 (ddmm.mmmm) to szerokość geograficzna, którą otrzymujemy z modułu GPS. Teraz pierwsze dwie cyfry to stopnie, a pozostałe to minuty.
Zatem 28 to stopień, a 56,3465 to minuta.
Tutaj nie ma potrzeby konwertowania części stopnia (28), ale wystarczy przekonwertować część minutową na stopnie dziesiętne, dzieląc 60:
Współrzędna stopnia dziesiętnego = stopień + minuta / 60
Współrzędna stopnia dziesiętnego = 28 + 56,3465 / 60
Współrzędna stopnia dziesiętnego = 28 + 0,94
Współrzędna stopnia dziesiętnego = 28,94
Ten sam proces zostanie wykonany dla danych długości geograficznej. Przekonwertowaliśmy współrzędne ze stopni-minut na stopnie dziesiętne, używając powyższych wzorów w szkicu Arduino:
float minut = lat_minut.toFloat (); minut = minuty / 60; stopień float = lat_degree.toFloat (); szerokość geograficzna = stopień + minuta; minut = long_minut.toFloat (); minut = minuty / 60; stopień = long_degree.toFloat (); logitude = stopień + minuta;
Objaśnienie programowania:
W tym kodzie wykorzystaliśmy bibliotekę SerialSoftware do połączenia ESP8266 i modułu GPS z Arduino. Następnie zdefiniowaliśmy różne piny dla obu i zainicjowaliśmy UART z szybkością 9600 bodów. Zawiera również bibliotekę LiquidCrystal do interfejsu LCD z Arduino.
#zawierać
Następnie musimy zdefiniować lub zadeklarować zmienną i ciąg znaków w innym celu.
String webpage = ""; int i = 0, k = 0; int gps_status = 0; Nazwa ciągu = "
1. Imię: Twoje imię
"; // 22 String dob ="2. Data urodzenia: 12 lutego 1993 r
"; // 21 Ciąg liczba ="4. Nr pojazdu: RJ05 XY 4201
"; // 29 String cordinat ="Współrzędne:
"; // 17 String latitude =" "; String logitude =" "; String gpsString =" "; char * test =" $ GPGGA ";Następnie stworzyliśmy kilka funkcji do różnych celów, takich jak:
Funkcja pobierania danych GPS ze współrzędnymi:
void gpsEvent () {gpsString = ""; while (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; if (i <7) {if (gpsString! = test) {i = 0;……………….
Funkcja do wyodrębniania danych z ciągu GPS i konwertowania tych danych na format stopni dziesiętnych z formatu minut dziesiętnych, jak wyjaśniono w Earliar.
void koordynate2dec () {String lat_degree = ""; for (i = 18; i <20; i ++) lat_degree + = gpsString; String lat_minut = ""; for (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Funkcja wysyłania poleceń do ESP8266 w celu skonfigurowania i połączenia go z WIFI.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd); Serial1.println (cmd); while (Serial1.available ()> 0)……………….
Funkcja void show_coordinate () do wyświetlania współrzędnych na wyświetlaczu LCD i monitorze szeregowym oraz funkcja void get_ip () do pobierania adresu IP.
Funkcja Void Send () do tworzenia ciągu informacji, która ma być wysłana na stronę internetową za pomocą ESP8266 i void sendwebdata () Funkcja do wysyłania ciągu informacyjnego do strony internetowej za pomocą UART.
W funkcji Void Loop Arduino w sposób ciągły czeka na zgłoszenie strony internetowej (Odświeżanie strony).
void loop () {k = 0; Serial.println ("Proszę odświeżyć stronę"); lcd.setCursor (0,0); lcd.print ("Odśwież"); lcd.setCursor (0,1); lcd.print ("Twoja strona internetowa.."); podczas gdy (k <1000)……………….
Sprawdź pełny kod poniżej.