- Kuinka se toimii:
- Vaaditut komponentit:
- Piirin selitys:
- GPS-asteminuutti desimaalilukuun koordinaattien muunnos:
- Ohjelmoinnin selitys:
Ajoneuvojen seurantajärjestelmästä tulee nykyään erittäin tärkeä, etenkin varastettujen ajoneuvojen tapauksessa. Jos ajoneuvoon on asennettu GPS-järjestelmä, voit seurata auton sijaintia, ja se auttaa poliisia seuraamaan varastettuja ajoneuvoja. Aiemmin olemme rakentaneet samanlaisen projektin, jossa ajoneuvon sijaintikoordinaatit lähetetään matkapuhelimeen, tarkista tästä 'Arduino-pohjainen ajoneuvojen seuranta GPS: ää ja GSM: ää käyttäen.
Täällä rakennamme kehittyneemmän version ajoneuvojen seurantajärjestelmästä, jossa voit seurata ajoneuvoasi Google Mapsissa. Tässä projektissa lähetämme sijaintikoordinaatit paikalliselle palvelimelle, ja sinun tarvitsee vain avata "verkkosivu" tietokoneellasi tai matkapuhelimellasi, josta löydät linkin Google Mapsiin ajoneuvosi sijaintikoordinaattien kanssa. Kun napsautat linkkiä, se vie sinut Google Mapsiin ja näyttää ajoneuvosi sijainnin. Tässä Ajoneuvojen seuranta Google Maps, GPS käytetään saada sijainnin koordinaatit, Wi-Fi-moduuli pitää lähettää dataa tietokoneeseen tai mobiili Wi-Fi ja Arduino käytetään tehdä GPS ja Wi-Fi puhua toisilleen.
Kuinka se toimii:
Ajoneuvon seuraamiseksi meidän on löydettävä ajoneuvon koordinaatit GPS-moduulin avulla. GPS-moduuli kommunikoi jatkuvasti satelliitin kanssa saadakseen koordinaatit. Sitten meidän on lähetettävä nämä koordinaatit GPS: ltä Arduinollemme UART: n avulla. Ja sitten Arduino poimi tarvittavat tiedot vastaanotetuista tiedoista GPS: n avulla.
Ennen tätä Arduino lähettää komennon Wi-Fi-moduulille ESP8266 reitittimen määrittämiseksi ja yhdistämiseksi ja IP-osoitteen saamiseksi. Sen jälkeen Arduino alustaa GPS: n koordinaattien saamiseksi ja nestekidenäytössä näkyy 'Sivun päivitysviesti'. Tämä tarkoittaa, että käyttäjän on päivitettävä verkkosivu. Kun käyttäjä päivittää verkkosivun, Arduino hakee GPS-koordinaatit ja lähettää saman verkkosivulle (paikalliselle palvelimelle) Wi-Fi-yhteyden kautta, jossa on joitain lisätietoja ja Google Maps -linkki. Napsauttamalla tätä linkkiä, käyttäjä ohjaa Google Mapsin koordinaatilla ja saa sitten ajoneuvon nykyisen sijainnin punaisella paikalla Google Mapsissa. Koko prosessi näkyy oikein videossa lopussa.
Vaaditut komponentit:
- Arduino UNO
- Wi-Fi-moduuli ESP8266
- GPS-moduuli
- USB kaapeli
- Johtojen liittäminen
- Kannettava tietokone
- Virtalähde
- 16x2 LCD
- Leipälauta
- Wi-Fi-reititin
Piirin selitys:
Piiri tälle ' Ajoneuvoseurannalle Google Maps -projektilla' on hyvin yksinkertainen, ja tarvitsemme pääasiassa Arduino UNO: n, GPS-moduulin ja ESP8266: n Wi-Fi-moduulin. On 16x2 LCD mahdollisesti kytketty näyttää tilan. Tämä LCD-näyttö on kytketty Arduinon 14-19 (A0-A5) nastalla.
Tässä GPS-moduulin Tx-nasta on kytketty suoraan Arduinon digitaaliseen nastanumeroon 10. Käyttämällä tässä ohjelmistosarjakirjastoa, olemme sallineet sarjaliikenteen nastoissa 10 ja 11, tehneet niistä vastaavasti Rx ja Tx ja jättäneet GPS-moduulin Rx-nastan auki. Oletusarvoisesti Arduinon nastoja 0 ja 1 käytetään sarjaliikenteeseen, mutta käyttämällä SoftwareSerial-kirjastoa voimme sallia sarjaliikenteen muilla Arduinon digitaalisilla nastoilla. 12 voltin sovitinta käytetään GPS-moduulin virtalähteeseen. Käy läpi täällä oppia "Kuinka käyttää GPS: tä Arduino" ja saada koordinaatit.
Wi-Fi-moduulin ESP8266 Vcc- ja GND-nastat on kytketty suoraan 3.3V: hen, Arduinon GND ja CH_PD on myös liitetty 3.3V: hen. ESP8266: n Tx- ja Rx-nastat on kytketty suoraan Arduinon nastoihin 2 ja 3. Ohjelmistosarjakirjastoa käytetään myös tässä sallimaan sarjaliikenteen Arduinon nastoilla 2 ja 3. Olemme jo käsitelleet ESP8266: n Wi-Fi-moduulin liittämistä Arduinoon yksityiskohtaisesti. Käy läpi myös "Kuinka lähettää tietoja Arduinosta verkkosivulle WiFi: n avulla" ennen tämän projektin tekemistä. Alla on ESP8266-kuva:
ESP8266: ssa on kaksi LEDiä, yksi on punainen, virran osoittamiseksi ja toinen on sininen, joka on tiedonsiirron LED. Sininen LED vilkkuu, kun ESP lähettää tietoja Tx-nastansa kautta. Älä myöskään liitä ESP: tä +5 voltin syöttöön, muuten laite voi vahingoittua. Tässä projektissa olemme valinneet 9600 baudinopeuden kaikelle UART-viestinnälle.
Käyttäjä voi myös nähdä tiedonsiirron Wi-Fi-moduulin ESP8266 ja Arduinon välillä sarjamittarissa 9600 baudinopeudella:
Katso myös projektin lopussa olevasta videosta yksityiskohtainen työprosessi.
GPS-asteminuutti desimaalilukuun koordinaattien muunnos:
GPS-moduuli vastaanottaa satelliitilta koordinaatit Degree Minute -muodossa (ppmm.mmmm), ja tässä tarvitaan desimaalimuuttujamuotoa hakeaksesi sijaintia Google Mapsista. Joten ensin meidän on muunnettava koordinaatit tutkintomuutosmuodosta desimaalimuotoon käyttämällä annettua kaavaa.
Oletetaan, että 2856,3465 (ppmm.mmmm) on GPS-moduulista saamamme leveysaste. Nyt kaksi ensimmäistä numeroa ovat astetta ja loput ovat minuutteja.
Joten 28 on astetta ja 56,3465 on minuutti.
Nyt täällä, sinun ei tarvitse muuntaa tutkinto-osaa (28), vaan tarvitsee vain muuntaa minuuttiosa desimaaliksi jakamalla 60:
Desimaalin asteen koordinaatti = tutkinto + minuutti / 60
Desimaalikoordinaatti = 28 + 56,3465/60
Desimaalikoordinaatti = 28 + 0,94
Desimaaliasteen koordinaatti = 28,94
Sama prosessi tehdään pituustiedoille. Olemme muuntaneet koordinaatit asteminuutista desimaaliksi käyttämällä yllä olevia kaavoja Arduino-luonnoksessa:
float minut = lat_minut.toFloat (); minuutti = minuutti / 60; kelluva aste = lat_asteen.Kohteeseen (); leveysaste = aste + minuutit; minut = long_minut.toFloat (); minuutti = minuutti / 60; aste = pitkä_astetta.Kellumaan (); logitudi = aste + minuutit;
Ohjelmoinnin selitys:
Tässä koodissa olemme käyttäneet SerialSoftware-kirjastoa liittämään ESP8266: n ja GPS-moduulin Arduinoon. Sitten olemme määrittäneet molemmille eri nastat ja alustaneet UART: n 9600 baudinopeudella. Mukana myös LiquidCrystal-kirjasto LCD-käyttöliittymälle Arduinon kanssa.
#sisältää
Sen jälkeen meidän on määriteltävä tai julistettava muuttuja ja merkkijono eri tarkoitusta varten.
Merkkijono verkkosivu = ""; int i = 0, k = 0; int gps_status = 0; Merkkijonon nimi = "
1. Nimi: Nimesi
"; // 22 merkkijono dob ="2. Syntymäaika: 12. helmikuuta 1993
"; // 21 merkkijono ="4. Ajoneuvon numero: RJ05 XY 4201
"; // 29 merkkijono koordinaatti ="Koordinaatit:
"; // 17 Merkkijonon leveysaste =" "; Merkkijonon leveysaste =" "; Merkkijono gpsString =" "; char * test =" $ GPGGA ";Sitten olemme tehneet joitain toimintoja eri tarkoituksiin, kuten:
Toiminto GPS-tietojen saamiseksi koordinaateilla:
void gpsEvent () {gpsString = ""; while (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; if (i <7) {if (gpsString! = testi) {i = 0;……………….
Toiminto tietojen poimimiseksi GPS-merkkijonosta ja muuntaa tiedot desimaalimuotoon desimaaliminuuttimuodosta, kuten selitettiin.
void coordinate2dec () {String lat_degree = ""; for (i = 18; i <20; i ++) lat_aste + = gpsString; Merkkijono lat_minut = ""; for (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Toiminto komentojen lähettämiseen ESP8266: lle sen määrittämiseksi ja yhdistämiseksi WIFI: n kanssa.
void connect_wifi (Merkkijono cmd, int t) {int temp = 0, i = 0; kun taas (1) {Sarja.tulosln (cmd); Sarja1.println (cmd); while (Sarja1.käytettävissä ()> 0)……………….
void show_coordinate () -toiminto koordinaatin näyttämiseen nestekidenäytössä ja sarjamonitorissa ja void get_ip () -toiminto IP-osoitteen saamiseksi.
Void Send () -toiminto, jolla luodaan tietosarja, joka on lähetettävä verkkosivulle ESP8266: n avulla, ja void sendwebdata () -toiminto tietojen merkkijonon lähettämiseksi verkkosivulle UART: n avulla.
Vuonna void loop -toiminto Työläs jatkuvasti odottaa lähete verkkosivun (Virkistävää verkkosivu).
tyhjä silmukka () {k = 0; Serial.println ("Päivitä Ur-sivu"); lcd.setCursor (0,0); lcd.print ("Päivitä"); lcd.setCursor (0,1); lcd.print ("Web-sivusi.."); kun (k <1000)……………….
Tarkista koko koodi alla.