- Kā tas strādā:
- Nepieciešamās sastāvdaļas:
- Ķēdes skaidrojums:
- GPS grādu minūte līdz koordinātu decimālgrādai:
- Programmēšanas skaidrojums:
Transportlīdzekļu izsekošanas sistēma mūsdienās kļūst ļoti svarīga, īpaši zagtu transportlīdzekļu gadījumā. Ja jūsu transportlīdzeklī ir uzstādīta GPS sistēma, varat izsekot transportlīdzekļa atrašanās vietai, un tā palīdz policijai izsekot nozagtos transportlīdzekļus. Iepriekš mēs esam izveidojuši līdzīgu projektu, kurā transportlīdzekļa atrašanās vietas koordinātas tiek sūtītas uz mobilo tālruni, pārbaudiet šeit 'Arduino bāzētais transportlīdzekļu izsekotājs, izmantojot GPS un GSM.
Šeit mēs veidojam uzlabotu transportlīdzekļu izsekošanas sistēmas versiju, kurā varat izsekot savu transportlīdzekli pakalpojumā Google Maps. Šajā projektā mēs nosūtīsim atrašanās vietas koordinātes lokālajam serverim, un jums vienkārši datorā vai mobilajā ierīcē jāatver “tīmekļa lapa”, kur atradīsit saiti uz Google Maps ar savām transportlīdzekļu atrašanās vietas koordinātām. Noklikšķinot uz šīs saites, jūs nokļūstat pakalpojumā Google Maps, parādot transportlīdzekļa atrašanās vietu. Šajā transportlīdzekļu izsekošanas sistēmā, izmantojot Google Maps, GPS modulis tiek izmantots, lai iegūtu atrašanās vietas koordinātas, Wi-Fi moduli, lai saglabātu datu sūtīšanu uz datoru vai mobilo, izmantojot Wi-Fi, un Arduino tiek izmantots, lai GPS un Wi-Fi runātu savā starpā.
Kā tas strādā:
Lai izsekotu transportlīdzekli, mums jāatrod transportlīdzekļa koordinātas, izmantojot GPS moduli. GPS modulis nepārtraukti sazinās ar satelītu, lai iegūtu koordinātas. Tad mums jānosūta šīs koordinātas no GPS uz mūsu Arduino, izmantojot UART. Un pēc tam Arduino no saņemtajiem datiem iegūst GPS nepieciešamos datus.
Pirms tam Arduino nosūta komandu Wi-Fi modulim ESP8266, lai konfigurētu un izveidotu savienojumu ar maršrutētāju un iegūtu IP adresi. Pēc tam Arduino inicializē GPS, lai iegūtu koordinātas, un LCD displejā tiek parādīts “Lappuses atjaunināšanas ziņojums”. Tas nozīmē, ka lietotājam ir jāatsvaidzina vietne. Kad lietotājs atsvaidzina vietni, Arduino iegūst GPS koordinātes un, izmantojot Wi-Fi, nosūta tās pašas vietnei (vietējam serverim), pievienojot tajā papildu informāciju un saiti Google Maps. Noklikšķinot uz šīs saites, lietotājs novirza uz Google Maps, izmantojot koordinātu, un pēc tam viņš / viņa saņems transportlīdzekļa pašreizējo atrašanās vietu sarkanajā vietā Google Maps. Viss process ir pareizi parādīts videoklipa beigās.
Nepieciešamās sastāvdaļas:
- Arduino UNO
- Wi-Fi modulis ESP8266
- GPS modulis
- USB kabelis
- Savienojošie vadi
- Klēpjdators
- Enerģijas padeve
- 16x2 LCD
- Maizes dēlis
- Wi-Fi maršrutētājs
Ķēdes skaidrojums:
Shēma šim “ Transportlīdzekļu izsekošanai, izmantojot Google Maps projektu” ir ļoti vienkārša, un mums galvenokārt ir nepieciešams Arduino UNO, GPS modulis un ESP8266 Wi-Fi modulis. Statusa parādīšanai pēc izvēles ir pievienots 16x2 LCD. Šis LCD ir savienots ar Arduino tapām 14-19 (A0-A5).
Šeit GPS moduļa Tx tapa ir tieši savienota ar Arduino digitālo tapu numuru 10. Šeit izmantojot programmatūras sērijas bibliotēku, mēs esam atļāvuši sērijveida saziņu uz tapām 10 un 11, padarījām tās attiecīgi par Rx un Tx un atstājām GPS moduļa Rx tapu atvērtu. Pēc noklusējuma Arduino 0 un 1 tapas tiek izmantotas sērijveida saziņai, taču, izmantojot SoftwareSerial bibliotēku, mēs varam atļaut seriālu saziņu ar citām Arduino digitālajām tapām. GPS moduļa darbināšanai tiek izmantots 12 voltu adapteris. Pārejiet šeit, lai uzzinātu, kā lietot GPS ar Arduino, un uzziniet koordinātas.
Wi-Fi moduļa ESP8266 Vcc un GND tapas ir tieši savienotas ar 3.3V un Arduino GND, un CH_PD ir savienotas arī ar 3.3V. ESP8266 Tx un Rx tapas ir tieši savienotas ar Arduino 2. un 3. tapu. Šeit tiek izmantota arī programmatūras sērijas bibliotēka, lai atļautu sērijveida saziņu Arduino 2. un 3. tapā. Mēs jau esam detalizēti aplūkojuši ESP8266 Wi-Fi moduļa saskarni Arduino, pirms šī projekta veikšanas, lūdzu, izlasiet arī sadaļu “Kā nosūtīt datus no Arduino uz vietni, izmantojot WiFi”. Zemāk ir attēls ESP8266:
ESP8266 ir divas gaismas diodes, no kurām viena ir sarkana, lai norādītu strāvu, bet otrā - zilā krāsā, kas ir datu komunikācijas gaismas diode. Zils gaismas diode mirgo, kad ESP nosūta dažus datus, izmantojot savu Tx tapu. Tāpat nepievienojiet ESP +5 voltu barošanas avotam, jo pretējā gadījumā ierīce var sabojāt. Šajā projektā mēs esam izvēlējušies 9600 bitu pārraides ātrumu visiem UART sakariem.
Lietotājs var arī redzēt sakarus starp Wi-Fi moduli ESP8266 un Arduino, sērijveida monitorā ar 9600 pārraides ātrumu:
Lai iegūtu detalizētu darba procesu, pārbaudiet arī video šī projekta beigās.
GPS grādu minūte līdz koordinātu decimālgrādai:
GPS modulis no satelīta saņem koordinātas grādu minūtes formātā (ddmm.mmmm), un šeit mums ir nepieciešams decimāla grāda formāts, lai meklētu atrašanās vietu pakalpojumā Google Maps. Tāpēc vispirms mums jāpārvērš koordinātas no grādu minūtes formāta uz decimālo grādu formātu, izmantojot norādīto formulu.
Pieņemsim, ka 2856,3465 (ddmm.mmmm) ir platums, ko mēs saņemam no GPS moduļa. Tagad pirmie divi skaitļi ir grādi, bet pārējie - minūtes.
Tātad 28 ir grāds un 56,3465 ir minūte.
Tagad šeit nav jāpārvērš grāda daļa (28), bet tikai jāpārvērš minūšu daļa decimālā grādā, dalot 60:
Decimālgrādu koordinātas = grāds + minūte / 60
Decimālgrādu koordinātas = 28 + 56,3465 / 60
Decimālgrādu koordinātas = 28 + 0,94
Decimālgrādu koordinātas = 28,94
Tas pats process tiks veikts arī garuma datiem. Izmantojot Arduino Sketch iepriekš minētās formulas, mēs esam konvertējuši koordinātas no grādu minūtes uz decimālo grādu:
float minut = lat_minut.toFloat (); minut = minut / 60; pludiņa pakāpe = lat_degree.toFloat (); platums = grāds + minūte; minut = long_minut.toFloat (); minut = minut / 60; grāds = long_degree.toFloat (); platums = grāds + minūtes;
Programmēšanas skaidrojums:
Šajā kodā mēs esam izmantojuši SerialSoftware bibliotēku, lai saskarnē ESP8266 un GPS moduli savienotu ar Arduino. Tad mēs abiem esam definējuši dažādus tapas un inicializējam UART ar 9600 bitu pārraides ātrumu. Iekļauta arī LiquidCrystal bibliotēka saskarnes LCD ar Arduino.
# iekļaut
Pēc tā mums ir jādefinē vai jādeklarē mainīgais un virkne dažādiem mērķiem.
Virknes vietne = ""; int i = 0, k = 0; int gps_status = 0; Virknes nosaukums = "
1. Vārds: Tavs vārds
"; // 22 virkne dob ="2. Dzimšanas datums: 1993. gada 12. februāris
"; // 21 virknes numurs ="4. Transportlīdzekļa Nr.: RJ05 XY 4201
"; // 29 virknes koordināta ="Koordinātas:
"; // 17 virknes platums =" "; virknes logitude =" "; virkne gpsString =" "; char * test =" $ GPGGA ";Tad mēs esam izveidojuši dažas funkcijas dažādiem mērķiem, piemēram:
Funkcija GPS datu iegūšanai ar koordinātām:
void gpsEvent () {gpsString = ""; while (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; ja (i <7) {ja (gpsString! = tests) {i = 0;……………….
Funkcija datu iegūšanai no GPS virknes un šo datu konvertēšanai decimāldaļu formātā no decimālminūtes formāta, kā paskaidrots earliar.
void coordinate2dec () {String lat_degree = ""; par (i = 18; i <20; i ++) lat_grāds + = gpsString; Virkne lat_minut = ""; par (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Funkcija komandu nosūtīšanai uz ESP8266, lai to konfigurētu un savienotu ar WIFI.
void connect_wifi (virkne cmd, int t) {int temp = 0, i = 0; kamēr (1) {Serial.println (cmd); Serial1.println (cmd); while (Seriāls1.pieejams ()> 0)……………….
void show_coordinate () funkcija koordinātu parādīšanai LCD un sērijas monitorā un void get_ip () funkcija IP adreses iegūšanai.
Funkcija Void Send (), lai izveidotu informācijas virkni, kas jānosūta uz vietni, izmantojot ESP8266, un funkcija void sendwebdata () Funkcija informācijas virknes nosūtīšanai uz vietni, izmantojot UART.
Jo zaudējušu cilpas funkciju Arduino nepārtraukti gaidīt pieprasījumu veidlapu tīmekļa vietnē (Refreshing mājas lapā).
tukšuma cilpa () {k = 0; Serial.println ("Lūdzu, atsvaidziniet Ur lapu"); lcd.setCursor (0,0); lcd.print ("Lūdzu, atsvaidziniet"); lcd.setCursor (0,1); lcd.print ("Jūsu tīmekļa lapa.."); kamēr (k <1000)……………….
Pārbaudiet pilnu kodu zemāk.