- Kaip tai veikia:
- Būtini komponentai:
- Grandinės paaiškinimas:
- GPS laipsnių minutė iki dešimtainio laipsnio koordinačių palyginimas:
- Programavimo paaiškinimas:
Transporto priemonių sekimo sistema tampa labai svarbi dabar, ypač jei tai yra vogta transporto priemonė. Jei jūsų automobilyje įdiegta GPS sistema, galite sekti transporto priemonės buvimo vietą ir tai padeda policijai sekti pavogtas transporto priemones. Anksčiau mes sukūrėme panašų projektą, kuriame transporto priemonės buvimo vietos koordinatės siunčiamos į mobilųjį telefoną, patikrinkite čia „Arduino“ pagrįstą transporto priemonės stebėjimo priemonę, naudodama GPS ir GSM.
Čia mes kuriame pažangesnę transporto priemonių stebėjimo sistemos versiją, kurioje galėsite stebėti savo transporto priemonę „Google“ žemėlapiuose. Šiame projekte mes atsiųsime vietos koordinates Vietiniam serveriui ir jums tiesiog reikia atidaryti „tinklalapį“ savo kompiuteryje ar mobiliajame telefone, kur rasite nuorodą į „Google“ žemėlapius su savo transporto priemonių vietos koordinatėmis. Kai spustelėsite šią nuorodą, ji pateks į „Google“ žemėlapius ir parodys jūsų transporto priemonės buvimo vietą. Šioje transporto priemonių stebėjimo sistemoje, naudojant „Google Maps“, GPS modulis naudojamas vietovės koordinatėms gauti, „ Wi-Fi“ modulis, kad duomenys būtų siunčiami į kompiuterį ar mobilųjį telefoną per „Wi-Fi“, o „ Arduino “ naudojamas norint, kad GPS ir „Wi-Fi“ kalbėtųsi tarpusavyje.
Kaip tai veikia:
Norėdami sekti transporto priemonę, turime rasti transporto priemonės koordinates naudodami GPS modulį. GPS modulis nuolat bendrauja su palydovu, kad gautų koordinates. Tada mes turime siųsti šias koordinates iš GPS į „Arduino“ naudodami UART. Tada „Arduino“ iš gautų duomenų išgauna reikiamus duomenis GPS pagalba.
Prieš tai „Arduino“ siunčia komandą „ Wi-Fi“ moduliui ESP8266, kad sukonfigūruotų ir prisijungtų prie maršrutizatoriaus ir gautų IP adresą. Po to „Arduino“ inicijuoja GPS, kad gautų koordinates, o LCD ekrane rodomas „Puslapio atnaujinimo pranešimas“. Tai reiškia, kad vartotojas turi atnaujinti tinklalapį. Kai vartotojas atnaujina tinklalapį, „Arduino“ gauna GPS koordinates ir siunčia tas pačias į tinklalapį (vietinį serverį) per „Wi-Fi“, su tam tikra papildoma informacija ir joje esančia „Google maps“ nuoroda. Dabar, spustelėjęs šią nuorodą, vartotojas nukreipia į „Google Maps“ su koordinatėmis, tada jis / ji gaus „Google“ žemėlapio raudonoje vietoje esančią transporto priemonės dabartinę vietą. Visas procesas tinkamai parodytas vaizdo įrašo pabaigoje.
Būtini komponentai:
- „Arduino UNO“
- „Wi-Fi“ modulis ESP8266
- GPS modulis
- USB kabelis
- Jungiamieji laidai
- Nešiojamas kompiuteris
- Maitinimo šaltinis
- 16x2 LCD ekranas
- Bandomoji Lenta
- „Wi-Fi“ maršrutizatorius
Grandinės paaiškinimas:
Šio „ Transporto priemonių stebėjimo naudojant„ Google Maps “projektą“ grandinė yra labai paprasta, ir mums labiausiai reikia „ Arduino UNO“, GPS modulio ir ESP8266 „Wi-Fi“ modulio. Yra 16x2 skystųjų kristalų pasirinktinai prijungtas rodymo statusą. Šis skystųjų kristalų ekranas prijungtas prie „Arduino“ kaiščių 14-19 (A0-A5).
Čia GPS modulio Tx kaištis yra tiesiogiai prijungtas prie „Arduino“ skaitmeninio kaiščio numerio 10. Čia naudodami programinės įrangos nuosekliąją biblioteką leidome nuoseklų ryšį 10 ir 11 kaiščiuose, padarėme juos atitinkamai Rx ir Tx, o GPS modulio Rx kaištį palikome atvirą. Pagal numatytuosius nustatymus nuosekliam ryšiui naudojami „Arduino“ 0 ir 1 kaiščiai, tačiau naudodami „SoftwareSerial“ biblioteką galime leisti nuoseklųjį ryšį per kitus skaitmeninius „Arduino“ kaiščius. GPS modulio maitinimui naudojamas 12 voltų adapteris. Peržiūrėkite čia ir sužinokite „Kaip naudotis GPS su„ Arduino ““ ir gaukite koordinates.
„Wi-Fi“ modulio ESP8266 „Vcc“ ir „GND“ kaiščiai yra tiesiogiai prijungti prie 3,3 V, „Arduino“ GND ir „CH_PD“ taip pat prijungti prie 3,3 V. ESP8266 Tx ir Rx kaiščiai yra tiesiogiai prijungti prie „Arduino“ 2 ir 3 kaiščių. Programinės įrangos nuoseklioji biblioteka taip pat naudojama čia, kad būtų galima nuosekliai bendrauti „Arduino“ 2 ir 3 kaiščiuose. Mes jau išsamiai aptarėme ESP8266 „Wi-Fi“ modulio sąsają su „Arduino“, taip pat prieš atlikdami šį projektą, perskaitykite „Kaip siųsti duomenis iš„ Arduino “į tinklalapį naudojant„ WiFi “. Žemiau yra ESP8266 paveikslėlis:
ESP8266 turi du šviesos diodus, vienas yra raudonas, skirtas energijai rodyti, o antrasis - mėlynas, tai yra duomenų perdavimo šviesos diodas. Mėlynas šviesos diodas mirksi, kai ESP siunčia tam tikrus duomenis per savo Tx kaištį. Taip pat nejunkite ESP prie +5 voltų maitinimo šaltinio, nes kitaip jūsų prietaisas gali sugadinti. Šiame projekte mes pasirinkome 9600 duomenų perdavimo spartą visoms UART komunikacijoms.
Vartotojas taip pat gali matyti ryšį tarp „Wi-Fi“ modulio ESP8266 ir „Arduino“ nuosekliame monitoriuje 9600 duomenų perdavimo greičiu:
Taip pat patikrinkite vaizdo įrašą šio projekto pabaigoje, kad gautumėte išsamų darbo procesą.
GPS laipsnių minutė iki dešimtainio laipsnio koordinačių palyginimas:
GPS modulis gauna koordinates iš palydovo laipsnių minutės formatu (ddmm.mmmm) ir čia mums reikia dešimtainio laipsnio formato ieškant vietos „ Google Maps“. Taigi pirmiausia turime konvertuoti koordinates iš laipsnio minutės formato į dešimtainio laipsnio formatą, naudodami pateiktą formulę.
Tarkime, kad 2856,3465 (ddmm.mmmm) yra platuma, kurią gauname iš GPS modulio. Dabar pirmieji du skaičiai yra laipsniai, o likę - minutės.
Taigi 28 yra laipsnis, o 56,3465 - minutė.
Dabar čia nereikia konvertuoti laipsnio dalies (28), o tik konvertuoti minutės dalį į dešimtainį laipsnį dalijant 60:
Dešimtainio laipsnio koordinatė = laipsnis + minutė / 60
Dešimtainio laipsnio koordinatė = 28 + 56,3465 / 60
Dešimtainio laipsnio koordinatė = 28 + 0,94
Dešimtainio laipsnio koordinatė = 28,94
Tas pats procesas bus atliekamas ir ilgumos duomenims. Mes pavertėme koordinates nuo laipsnio minutės iki dešimtainio laipsnio, naudodami aukščiau pateiktas „Arduino“ eskizo formules:
plukdyti minut = lat_minut.toFloat (); minut = minut / 60; plūduriuojantis laipsnis = lat_degree.toFloat (); platuma = laipsnis + minutės; minut = long_minut.toFloat (); minut = minut / 60; laipsnis = ilgas_decree.toFloat (); logaritmas = laipsnis + minutės;
Programavimo paaiškinimas:
Šiame kode mes naudojome „SerialSoftware“ biblioteką sąsajai ESP8266 ir GPS moduliui su „Arduino“. Tada mes nustatėme skirtingus kaiščius abiem ir inicijuojame UART naudodami 9600 perdavimo spartą. Taip pat įtraukta „LiquidCrystal“ biblioteka, skirta sąsajos LCD su „Arduino“.
# įtraukti
Po jo turime apibrėžti arba paskelbti kintamąjį ir eilutę skirtingiems tikslams.
Styginių tinklalapis = ""; int i = 0, k = 0; int gps_status = 0; Eilutės pavadinimas = "
1. Vardas: Jūsų vardas
"; // 22 eilutė dob ="2. Gimimo data: 1993 m. Vasario 12 d
"; // 21 eilutės numeris ="4. Transporto priemonės Nr.: RJ05 XY 4201
"; // 29 eilutės koordinatė ="Koordinatės:
"; // 17 String platitude =" "; String logitude =" "; String gpsString =" "; char * test =" $ GPGGA ";Tada mes sukūrėme keletą funkcijų skirtingiems tikslams, pavyzdžiui:
Funkcija gauti GPS duomenis su koordinatėmis:
void gpsEvent () {gpsString = ""; while (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; if (i <7) {if (gpsString! = testas) {i = 0;……………….
Funkcija išgauti duomenis iš GPS eilutės ir konvertuoti tuos duomenis į dešimtainio laipsnio formatą iš dešimtainės minutės formato, kaip paaiškinta earliar.
void coordinate2dec () {String lat_degree = ""; už (i = 18; i <20; i ++) lat_degree + = gpsString; Eilutė lat_minut = ""; už (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Funkcija komandoms siųsti į ESP8266 konfigūruoti ir prijungti prie WIFI.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; o (1) {Serial.println (cmd); Serial1.println (cmd); o (Serial1.available ()> 0)……………….
funkcija void show_coordinate () , rodanti koordinates LCD ir nuosekliuose monitoriuose, ir void get_ip () funkcija, skirta gauti IP adresą.
Funkcija „ Void Send“) , sukurianti informacijos eilutę, kuri turi būti siunčiama į tinklalapį naudojant ESP8266, ir „ void sendwebdata ()“ funkcija, skirta informacijos eilutei siųsti į tinklalapį naudojant UART.
Be void loop funkcijos Arduino nuolat laukti prašymo formą tinklalapyje (Gaivus interneto puslapio).
tuštuma kilpa () {k = 0; Serial.println („Prašau atnaujinti Ur puslapį“); lcd.setCursor (0,0); lcd.print ("Prašau atnaujinti"); lcd.setCursor (0,1); lcd.print („Jūsų tinklalapis..“); kol (k <1000)……………….
Patikrinkite visą kodą žemiau.