DIY Glonass GPS tracker – kaitse autodele. Registreerime, konfigureerime ja paigaldame oma kätega GPS GSM majaka

See on üks edukamaid peajälgimise projekte, millega olen kunagi kokku puutunud. Kasutatakse kõige arenenumaid tehnoloogiaid - kiirendusmõõturit, güroskoopi ja kompassi, sama mis virtuaalreaalsuse peakomplektides reality varustus VR, Playstation VR, Oculus Rift ja teised. Ja selle loomiseks on vaja vaid minimaalseid jootmisoskusi ja rohkem kui tagasihoidlikku rahasummat. Ja nüüd järjekorras.

Valikud

Kogukulu: 750 rubla.

Kokkupanek

Seal on väga lihtsad ja üksikasjalikud ametlikud juhised. Meil on sellest vaja ainult ühendustabelit.

Arvan, et kommentaarid on tarbetud. Me lihtsalt võtame kaks tahvlit, proovime neid üksteise peal ja liimime kokku kahepoolne teip. Pärast seda ühendame plaatide kontaktid juhtmetega vastavalt plaadile.

Siinkohal annaksin kaks soovitust. Esiteks: sensorplaat juba Arduino lauad, ja enamik ühendusi on ühel pool (2,3,7,GNDx2), nii et jätame selle lahti (viime anduriplaadi teisele poole) ja parem on ülejäänud kaks juhet (VCC ja GND) jootma ), enne kui plaadid kokku liimime, sest pärast seda on see keerulisem. Teiseks: enne jootma pikad juhtmed(GND ja INT) ja seejärel lühikesed (SCL, SDA, AD0). Nagu fotol näha, tegin INT-ga vea. Ja mis kõige tähtsam: ärge koonerdage kummiga! Ja kui see on neutraalne (näiteks kampol), siis pole seda vaja pesta.

Nupp on lihtsalt joodetud ühest otsast Arduino külge (10) ja teine ​​ots läbi juhtme lähima maanduseni (GND). Põhimõtteliselt on nupp juba fikseeritud, kuid lisaks liimisin selle tsüanoakrülaadiga.

Ja see on kõik, saate seda kasutada!

Täiustused

Kas mäletate, kuidas ma alguses kahe kontaktiga pistikut mainisin? Seda on vaja rõhutamiseks. See on liimitud superliimiga otse nupu alla. Piisab kahest väikesest tilgast.

Põhimõtteliselt mulle meeldib välimus seadet ja seda on üsna raske rikkuda. Kuid ohutuse huvides peitsin selle siiski termokahanevasse.

Meid ei huvita indikaatorid - see on ikkagi seade peas. Ja nuppu on põhimõtteliselt lihtne vajutada ka läbi termokahanemise, aga siiski lõikasin väikese augu ja liimisin nupu enda külge väikese plastikutüki, et oleks lihtsam tunnetada.

Püsivara, kalibreerimine ja konfigureerimine

Siin on kõik rohkem kui lihtne. Laadi alla ametlik taotlus EDTracker GUI, pakkige lahti ja käivitage.

Valige versioon (EDTraket2_9250) ja vastav port. Kui soovitud port ei, loendit saate värskendada nupuga "Skanni porte". Kui olete valinud sobiva pordi, käivitage püsivara, kasutades nuppu Flash. Püsivara valmimisel algab güroskoobi standardne 20-sekundiline kalibreerimine, mille jooksul on vaja jälgijat liikumatult hoida. Iga kord, kui seade sisse lülitatakse, tehakse sama kalibreerimine.

  1. Paremal avame Magnetomeetri müüritise
  2. Määrake tundlikkus umbes 75% (skaala 3/4)
  3. Klõpsake nuppu Taaskäivita ja alustage meie seadme pööramist kõigil võimalikel tasapindadel
  4. Seda tuleb teha seni, kuni maatriksi koefitsiendid ei muutu, kuid koguneda peab vähemalt 500 punkti, rohkem on parem

Pildil kuvatakse täpid. Punased on anduri toored mõõtmised, rohelised on ümberarvutatud. Kõik see 3D pilt pöörleb ümber nulli, st. roheliste täppide sfääri keskosa.

Kui te kompassi ei kalibreeri, ei tööta pea pöörlemise jälgimine õigesti.

Siin pole palju seadeid:

  • Teljerežiimi valik (eksponentsiaalne/lineaarne)
  • Tundlikkus igal teljel
  • Silumine

Mulle ei meeldi monitori silmad risti teha, seetõttu kasutan eksponentsiaalset režiimi, tundlikkus üle 100, antialiasing 75–90%. Ma tunnen end nii mugavalt.

Kõik, mida pead tegema, on kinnitada see oma lemmikpeakomplekti ja võidki lahinguga liituda! Ainus nupp on tsentreerimiseks.

Muljed

Muljed on äärmiselt positiivsed. Mul oli juba jälgija kaamera ja sildi küljes (GTX vTrack MkI) ja mul on millega võrrelda.

  • madalad kulud
  • kompaktsus
  • kaamera puudub (paranoia jaoks)
  • ja mis kõige tähtsam, arvuti ees pole vaja oma asendit fikseerida, mulle meeldib mängu ajal aina madalamale ja kõrgemale minna, aga kaameraga pidin end alati kaadri keskel hoidma
  • põrisemine äärmuslikes asendites – kõrge tundlikkuse ja eksponentsiaalse režiimi eest makstav hind
  • Güroskoobi kalibreerimine hõljub ära, kui peakomplekt on mõnda aega laual, peate selle enne kasutamist 20 sekundit peas uuesti kalibreerima;
  • kõrgeid tundlikkuse väärtusi ei salvestata pärast väljalülitamist enne iga kasutamist, peate tundlikkuse uuesti seadistama - see on tõenäoliselt püsivara viga
  • EDTrackeri kasutajaliides jookseb pärast mõnda aega töötamist veaga kokku
  • sisse kiirklahv Nuppude kombinatsiooni on võimatu määrata ja asjaolu, et programm jookseb perioodiliselt kokku, muudab kiirklahvi kasutamise võimatuks. Hea, kui piisab seadme enda nupust

Minu jaoks on miinused üsna tühised. Ja kuna avatud lähtekoodiga tarkvara lähtekoodi- Alati saab midagi parandada. Mulle meeldib seade ja hakkan seda kasutama. Võib-olla professionaalsed seadmed Nagu TrackIR võib osutuda paremaks, ei ole ma valmis loobuma selle seadme eelistest.

Mitu aastat tagasi tekkis mul idee töötada välja seade objekti asukoha jälgimiseks GPS-i ja GSM süsteemid, hakkasin omandama vajalikud moodulid, kuid projekt ei saanud kunagi teoks. Ja siis paar kuud tagasi meenus mulle see idee uuesti ja asusin asja kallale. Mõttes tekkisid järgmised ideed: seade peaks olema autonoomne ja võimalikult ökonoomne; juhtimine ja andmeedastus toimub mobiilsidevõrkude kaudu GSM side; koordinaatide määramine süsteemi abil globaalne positsioneerimine GPS.

Võrgustiku loomiseks mobiilside Kasutusel on GSM-moodulid, mis tarbivad mooduli pideva sisselülitamise korral üsna palju energiat, siis patareide või akude laadimisest ei piisa pikk töö seadmeid. Seetõttu otsustasin kasutada ajastatud töörežiimi, seadmel on reaalajas kell, määratud ajal seade ärkab ja lülitub sisse GSM moodul kõne ootamiseks või SMS-sõnumid. Pärast kõigi ülesannete täitmist jääb seade magama. See toob kaasa märkimisväärse energiasäästu.

Järgmisel pildil on PIC16F690 mikrokontrolleri GPS-GSM jälgija diagramm:

Seade kasutab. DD1 kiip (PCF8583) on häirefunktsiooniga kiip. Äratab mikrokontrolleri DD2 puhkerežiimist määratud aeg toimub katkestuse kaudu, mis genereeritakse DD1 kiibi INT real. Muutes kondensaatori C2* mahtuvust, saate reguleerida taktsagedust.

Kasutatakse koordinaatide määramiseks. Mooduli plaati on muudetud nii, et oleks võimalik moodulit sisse ja välja lülitada mikrokontrolleri signaali alusel. Algselt lülitus moodul kohe peale toite peale panemist sisse, mis mulle ei sobinud. Moodulplaadile on paigaldatud SOT-23 paketis 3,3V pingestabilisaator, millel on stabilisaatorit juhiv klemm, kuid see on ühendatud otse elektriliiniga. Lõikasin jäljed ja vabastasin mikrokontrolleri juhttihvti. Ühel eksemplaril ei õnnestunud mul pingestabilisaatorit salvestada (klemm läks katki), mistõttu paigaldasin samale juhtumile teise stabilisaatori, pingele 3 V (DA1’ - LP2981-30DBVR). Hiinas saate osta kahte tüüpi mooduleid: sinise tahvli ja suure antenniga ning punase tahvli ja väikese antenniga.

Mikrokontroller “suhtleb” mõlema mooduliga UART protokolli kaudu ning GSM mooduli jaoks kasutatakse mikrokontrollerisse sisseehitatud riistvaralist UART, GPS mooduli jaoks on realiseeritud tarkvara UART, andmeedastuskiirus on 9600 bps, moodulid peavad esmalt konfigureerida selle kiiruse jaoks.

LED-id HL1, HL2 on indikaatortuled, kui mikrokontroller on töörežiimis, LED HL1 süttib, kui mikrokontroller läheb puhkerežiimi, LED kustub; HL2 LED süttib, kui seadme töö ajal ilmnevad tõrked. HL3 LED näitab GSM-mooduli olekut.

On kaks peamist töörežiimi: ooterežiim ja majakarežiim. Unerežiimis ärkab seade määratud ajakava järgi ja ootab sissetulev kõne, kui kõne tuvastatakse, lähtestab seade kõne teise piiksuga ja jätkab lähtestamist veel 20 sekundit, seejärel määrab koordinaadid ja saadab need SMS-sõnumina abonendile, kellelt kõne tuli. Sissetuleva kõne ooteaega saab konfigureerida. Majakarežiimis ärkab seade perioodiliselt pärast seda määratud intervall aja, määrab koordinaadid ja saadab need tellijale.

Pärast esimest sisselülitamist on ooterežiim vaikimisi aktiivne, et majakarežiim sisse lülitada, tuleb seadmele saata SMS-sõnum tekstiga GPS-STARThhmm, kus tt-tunnid, mm-minutid määravad perioodi; koordinaatide saatmiseks. Näiteks kui teil on vaja koordinaate saada iga pooleteise tunni tagant, näeb teade välja selline: GPS-START0130. Selles režiimis saadetakse koordinaadid abonendile, kellelt sõnum vastu võeti. Jälgija väljalülitamiseks ja ooterežiimile lülitumiseks tuleb saata sõnum tekstiga GPS-STOP, seade jätkab tööd vastavalt graafikule.

Seade loeb iga äratusseansi ajal SIM-kaardil olevaid SMS-sõnumeid lugemine toimub pärast koordinaatide määramist ja saatmist abonendile või pärast seda, kui sissetulev kõne ooterežiimis on aegunud (kui kõne pole vastu võetud).

Sõnumite saatmisel tuleb arvestada mõningate nüanssidega, fakt on see, et kui saadad sõnumi ajal, mil seade “magab” (GSM-moodul on välja lülitatud), siis järgmisel korral sisselülitamisel võib sõnum ei jõua kohe moodulisse, olenevalt funktsioonidest võib viivitus ulatuda mitmest minutist mitme tunnini mobiilioperaator. Selleks on seadmel SMS-sõnumite ootamise paus, pausi loendus algab pärast koordinaatide määramist ja saatmist abonendile (pausi kestust saab reguleerida). Seega on soovitav saata seadmesse sõnumeid SMS-i ootepausi ajal või ooteajal sissetulev kõne.

Majakarežiimi lubamiseks on kaks võimalust: seadme järgmise äratuse ajal helistada, peale koordinaatidega sõnumi saamist (SMS-i ootepausi ajal) saata SMS-sõnum GPS-STARThhmm. Järgmisena lülitub seade majakarežiimile ja järgmisel korral ärkab see sõnumis määratud aja möödudes. Teine võimalus, ilma helistamata, saada SMS-sõnum GPS-STARThhmm (sissetulevat kõnet oodates), pärast sõnumi lugemist määrab seade koordinaadid ja saadab need abonendile, misjärel lülitub majakaks režiimis ja magama jäädes SMS-sõnumite ootamise pausi sel juhul ei tehta .

Koordinaatide määramise käigus uuendatakse reaalaja kella väärtust, et kompenseerida ebatäpsusest tulenevat kella triivi. Täpne väärtus aeg saadakse GPS-moodulilt saadud andmetest. Lisaks mõõdetakse seadme toitepinget, mille väärtus edastatakse SMS-sõnumina koos koordinaatidega. Sõnumi tekst koos koordinaatidega näeb välja selline: "5511.21316,N,06117.54100,E 4.07V." Kui koordinaate ei ole teatud aja jooksul laekunud, saadetakse tellijale teade "NO KOORD 4.10V". GPS-mooduli koordinaatide ooteaega saab konfigureerida.

Seadme äratusaega (graafikut) ja muid parameetreid saab seadistada kahel viisil: mikrokontrolleri mälu eelkirjutamine EEPROM-i programmeerimise ajal või kasutades SMS-i saatmine sõnumeid seadmesse.

Vaatleme esimest parameetrite seadistamise meetodit allolevas tabelis on GPS-GSM-jälgija põhiseaded ja vastavad aadressid EEPROM-i mälus:

EEPROM-i mäluaadress Parameeter Kirjeldus Vaikeväärtus
0x00 Vaata Ajaväärtus, mis kirjutatakse seadme esmakordsel sisselülitamisel reaalajas kella (tek_time) kell 00
0x01 minutit 00 min.
0x02 Tgsm sissetuleva kõne ooteaeg,

2 min ≤ Tgsm ≤ 30 min

10 minutit
0x03 Tgps GPS-mooduli koordinaatide ooteaeg, 2 min ≤ Tgps ≤ 20 min 7 minutit
0x04 Tsms SMS-sõnumi ooteaeg,

2 min ≤ Tsms ≤ 20 min

5 minutit
0x05 UTC Ajavöönd

00h ≤ UTC ≤ 23h

00h
0x06 Vaata Seadme äratusaeg (alarm 1) kell 00
0x07 minutit
0x7E Vaata Seadme äratusaeg (alarm 61)
0x7F minutit
0x80 Kood Veateave, (viga 1)
0x81 Kuu
0x82 päev
0x83 Vaata
0x84 minutit
0xF3-0xF7 Veateave, (viga 24)
0xF8-0xFC Veateave, (viga 25)

Häirete aeg tuleb seada järjest kasvavas järjekorras alates 00:00 h (võrdluspunkt), esimese häire väärtus ei pea võrduma 00:00 h, viimase äratuskella aeg EEPROMis mälu ei tohi ületada 23:59 h Ülejäänud kasutamata EEPROM-i rakkude mälu väärtus peab olema suurem kui 23, (mikrokontrolleri programmeerimisel on lahtri väärtuseks tavaliselt seatud 0xFF (255).

SMS-sõnumis määratud ajavahemik majakarežiimi jaoks ei tohi ületada 23:59 (1439 minutit) ega olla lühem kui 00:05 (5 minutit). Vastasel juhul on vaikeperiood 1 tund.

GPS moodul saab aega Greenwichi aja järgi, seega peate määrama ajavööndi vastavalt oma piirkonnale.
Kokku saab EEPROM-i mällu seadistada 61 äratuskella ajaväärtust vahemikus 00:00-23:59 tundi. Kui parameetrid on valesti määratud või pole üldse määratud või kui tabelis määratud piirväärtusi ületatakse, kasutatakse vaikeväärtusi.

Vaatleme parameetrite määramise teist meetodit SMS-i teel sõnumeid. Seadme esmakordsel sisselülitamisel loeb see selle aja jooksul 5 minutit SIM-kaardil olevaid SMS-sõnumeid, enne sisselülitamist peate saatma alloleva sõnumi või eelsalvestama selle SIM-kaardile:

NAST– – – – –[Alarm 1] –[ Alarm 2]–…–[ Alarm 11]

Näide: NAST0850-10-07-05-05-0900-1200-1500-1800-2100-2300

Selle valiku korral saate määrata maksimaalselt 11 häiret, mille järjestus peaks algama alguspunktist (00:00 h), nagu eespool mainitud. Pärast teate lugemist kirjutatakse kõik parameetrid ümber mikrokontrolleri EEPROM-mällu, kui toiming õnnestus, vilguvad LED-id HL1, HL2 kolm korda, misjärel seade läheb magama. IN täiendavad seaded Jälgijat saab kiiresti muuta saates SMS-i uute parameetritega, kui seade ärkab (SMS-i ootepausi ajal või sissetuleva kõne ootel), parameetrit ei võeta arvesse (kasutatakse ainult siis, kui jälgija on esimest korda sisse lülitatud), kuid seda ei saa vahele jätta.

Jälgija esmase käivitamise teostan järgmiselt: võtame näiteks ajakava (12.00–15.00–18.00–21.00), määran parameetriks 11.50, seega pärast parameetrite edukat vastuvõtmist ärkab jälgija 10. minutit. Peale seda helistan ja saan koordinaadid, GPS andmete järgi uuendatakse jälgija aega, siis ärkab jälgija graafiku järgi.

Kõik SIM-kaardil olevad SMS-sõnumid kustutatakse pärast iga lugemistoimingut, et vabastada ruumi järgmiste sõnumite jaoks.

Kui mikrokontroller ei saa esmakordsel sisselülitamisel GSM-moodulit lähtestada või reaalajas kell ei reageeri käskudele, siis programmi täitmine peatub ( kriitiline viga) ja HL2 "Error" LED vilgub pidevalt.

Edaspidi käivitatakse tõrgete ilmnemisel programm edasi, jättes probleemse ala vahele ja süttib HL2 “Error” LED, mis jääb põlema ka pärast seadme magamaminekut ja kustub järgneval ärkamisel. Lisaks saadab mikrokontroller UART liini kaudu reaalajas veakoodi. Vigade (nagu ka GSM-moodulile saadetud käskude) jälgimiseks arvuti abil saate seadmega ühendada USB-UART-muunduri diagrammi TX-punktis. Vigadest teavitatakse terminali teatena ERRxx, kus xx on veakood. Punktis RX' saate jälgida moodulilt mikrokontrollerile tulevaid sõnumeid.

Lisaks indikatsioonile salvestatakse mikrokontrolleri EEPROM-mällu veateave. Iga tõrge võtab mälus 5 baiti (vt ülaltoodud tabelit): esimene bait sisaldab veakoodi (numbrit), teine ​​ja kolmas bait - vea ilmnemise kuupäev (kuu, päev), neljas ja viies bait - vea tekkimise aeg. viga (tunnid ja minutid). EEPROM-i mälus on vigade jaoks eraldatud 128 baiti alates aadressist 0x80 (128), nii et mikrokontroller suudab salvestada 25 viimast viga.

Energiatarbimise vähendamiseks LED indikaator vead saab selleks keelata, tuleb takisti R4 vasakpoolne klemm ühendada ühise juhtmega. Siin on toodud kõigi vigade loend tekstifail, mille saab alla laadida artikli lõpus.

Seade on kokku pandud kahest küljest trükkplaat Mõõdud 49 x 62 mm, plaadile on paigaldatud peamiselt SMD elemendid. Toitumiseks kasutan kolme AA patareid. Kõik seadme osad on paigutatud veekindlasse korpusesse, mille mõõtmed on 85x58x33 mm (mis osteti Hiinast). Puhkerežiimis tarbib seade 90-104 µA, koputusrežiimis 5,5 mA, koordinaatide määramisel aga 60 mA. Üks trackeri eksemplar on mul töötanud umbes 2 kuud, samas kui ärkab graafiku alusel 5 korda päevas, sissetuleva kõne ooteaeg on 10 minutit. Toitepinge langes selle aja jooksul ligikaudu 0,3 V võrra.

Artikli lõpus toodud püsivaral on piirang: koordinaate saab küsida vaid 10 korda, pärast 10. SMS-i koos koordinaatidega saatmist jääb jälgija magama ega ärka üles. Püsivara koos piirangud tühistati tasutud, võtke ühendust lehel märgitud kontaktidel, lisaks saan tellimiseks kokku panna jälgija.



See on juba jälgija teine ​​versioon. Esimene lubas objekti jälgida ainult SMS-i teel. Mis, teate, pole päris mugav. Seetõttu otsustati luua teine ​​versioon, kuid seekord töötada GPS-seireteenustega. Kõik plaanitud pole veel ellu viidud, kuid põhifunktsioonid juba töötavad.

Jälgija saadab andmeid iga minut aadressile tasuta server GPS-i jälgimine Wialon IPS v1.1 protokolli kaudu: asukohaandmed, kiirus, suuna suund. Samuti on võimalik konfigureerida ja küsida koordinaate SMS-i teel mis tahes numbrilt.

Võimalikud on järgmised käsud:

1. Jälgija seadistamine:

0000 $#SETUP#111111111111111;2222#

0000 - Vana parool või vaikeparool (esimese seadistamise ajal).
1111111111111111 – seadme ID, mis on serveris määratud (suvaliselt 15 numbrit).
2222 - Uus parool. Tulevikus peaksid kõik käsud algama sellega. Parool peab ühtima GPS-seireserveris määratud parooliga.

Vastuseks kuvatakse teade: „ID-1111111111111111; PASS-2222" uue ID ja uue parooliga.

0000 on teie parool.

Vastuseks tuleb teade kujul: "A;111111;222222;N3333.33333;E4444.44444;5;1"

“A” – andmed on usaldusväärsed või “V” – andmed on aegunud.
"111111" on UTC aeg.
"222222" - kuupäev.
"N3333.33333" – laiuskraad.
"E4444.44444" – pikkuskraad.
"5" - kiirus km/h.
"1" - toide põhiallikast või "0" - toide sisseehitatud akust.

Kui mõned andmed pole saadaval, edastatakse selle asemel „NA”.

3. Alarm:

Sel juhul edastatakse asukohaandmed serverisse 30-sekundiliste intervallidega. Vastuseks saadetakse sellised teated nagu "ALARM ON". Käsu uuesti saatmine lülitab alarmi välja. Vastuseks tulevad sellised teated nagu "ALARM OFF".

Vastuseks sõnumid nagu: "Teie saldo 50.01r."

Kui mõni käsk saadetakse vale parool, siis saate vastuseks sellise teate nagu: "Parooli VIGA".

Nüüd tehniline osa.

Alus: Arduino PROMINI 3.3V 8MHz, GSM modem NEOWAY M590, GPS moodul UBLOX NEO-6M, väline aktiivne GPS antenn.
Toide: MP2307DN baasil DC-DC konverter, aku laadimiskontroller STC4054, aku 3,7v 900mAh.

Aku eluiga on 9 tundi, eeldusel, et aku pole uus.

Mis puudutab GPS-seireserverit, siis selliseid teenuseid on palju. Soovi korral saate selleks töötada mõne teise serveriga, muutke koodis lihtsalt serveri IP-aadressi ja pordi numbrit. Peaasi, et server toetab Wialoni IPS v1.1 protokolliga töötamist. Korpus on valmistatud PVC-st. Selgus, et see ei näinud kuigi hea välja, aga ma ei pingutanud väga, igatahes ei jää see nähtavaks. Tulevikus tahan lisada kontrolli väline seade või mingi relee ja selleks on plaadil kaks sisendit ja üks väljund auto oleku kohta. Seda pole veel tarkvaras rakendatud.

Kulutati umbes 1500–2000 rubla.












Ma ei kirjelda nüüd kõiki nüansse tehnilisest ja tarkvaralisest küljest. Kui kellelgi huvi, siis kirjutage, püüan kõigile vastata. seal on kõik, mida vajate: diagramm, allikad SI-s, jälgija püsivara hex-fail (eepROM-i jaoks on vaja faili flash-faili, .eep-laiendiga fail), GPS-i püsivara ja programm, Sprinti tarkvarafailid -Paigutus, teave Wialoni IPS-protokolli kohta ja mõned fotod.

Liivakast

Nataša 27. aprill 2016 kell 12:12

DIY GPS-jälgija autole

  • DIY või tee ise,
  • Auto vidinad*,
  • Vidinad*

See on juba jälgija teine ​​versioon. Esimene lubas objekti jälgida ainult SMS-i teel. Mis, teate, pole päris mugav. Seetõttu otsustati luua teine ​​versioon, kuid seekord töötada GPS-seireteenustega. Kõik plaanitud pole veel ellu viidud, kuid põhifunktsioonid juba töötavad.

Jälgija saadab Wialon IPS v1.1 protokolli kasutades iga minut andmeid tasuta GPS-seireserverisse: asukohaandmed, kiirus, suuna suund. Samuti on võimalik konfigureerida ja küsida koordinaate SMS-i teel mis tahes numbrilt.

Võimalikud on järgmised käsud:

1. Jälgija seadistamine:

0000 $#SETUP#111111111111111;2222#

0000 - vana parool või vaikeparool (esimese seadistamise ajal).
1111111111111111 – seadme ID, mis on serveris määratud (suvaliselt 15 numbrit).
2222 – uus parool. Tulevikus peaksid kõik käsud algama sellega. Parool peab ühtima GPS-seireserveris määratud parooliga.

Vastuseks kuvatakse teade: „ID-1111111111111111; PASS-2222" uue ID ja uue parooliga.

0000 on teie parool.

Vastuseks tuleb teade kujul: "A;111111;222222;N3333.33333;E4444.44444;5;1"

“A” – andmed on usaldusväärsed või “V” – andmed on aegunud.
"111111" on UTC aeg.
"222222" - kuupäev.
"N3333.33333" – laiuskraad.
"E4444.44444" – pikkuskraad.
"5" - kiirus km/h.
"1" - toide põhiallikast või "0" - toide sisseehitatud akust.

Kui mõned andmed pole saadaval, edastatakse selle asemel „NA”.

3. Alarm:

Sel juhul edastatakse asukohaandmed serverisse 30-sekundiliste intervallidega. Vastuseks saadetakse sellised teated nagu "ALARM ON". Käsu uuesti saatmine lülitab alarmi välja. Vastuseks tulevad sellised teated nagu "ALARM OFF".

Vastuseks sõnumid nagu: "Teie saldo 50.01r."

Kui mis tahes käsus saadetakse vale parool, saadetakse vastuseks teade „Parooli VIGA”.

Nüüd tehniline osa.

Alus: Arduino PROMINI 3.3V 8MHz, GSM modem NEOWAY M590, GPS moodul UBLOX NEO-6M, väline aktiivne GPS antenn.
Toide: MP2307DN baasil DC-DC konverter, aku laadimiskontroller STC4054, aku 3,7v 900mAh.

Aku eluiga on 9 tundi, eeldusel, et aku pole uus.

Mis puudutab GPS-seireserverit, siis selliseid teenuseid on palju. Soovi korral saate selleks töötada mõne teise serveriga, muutke koodis lihtsalt serveri IP-aadressi ja pordi numbrit. Peaasi, et server toetab Wialoni IPS v1.1 protokolliga töötamist. Korpus on valmistatud PVC-st. Selgus, et see ei näinud kuigi hea välja, aga ma ei pingutanud väga, igatahes ei jää see nähtavaks. Tulevikus tahan lisada välise seadme või mingi relee juhtimise ja saada selle jaoks mõned parameetrid auto oleku kohta, plaadil on kaks sisendit ja üks väljund. Seda pole veel tarkvaras rakendatud.

Kulutati umbes 1500–2000 rubla.

Ma ei kirjelda nüüd kõiki nüansse tehnilisest ja tarkvaralisest küljest. Kui kellelgi huvi, siis kirjutage, püüan kõigile vastata.

Pärast mitmeid katsetusi Arduinoga otsustasin teha lihtsa ja mitte väga kalli GPS-jälgija, mille koordinaadid saadetakse GPRS-i kaudu serverisse.
Kasutatud Arduino Mega 2560 ( Arduino Uno), SIM900 - GSM/GPRS-moodul (teabe saatmiseks serverisse), GPS vastuvõtja SKM53 GPS.

Kõik sai ostetud ebay.com-ist, kokku umbes 1500 rubla eest (u 500 rubla arduino, natuke vähem GSM moodul, natuke rohkem GPS).

GPS vastuvõtja

Kõigepealt peate mõistma, kuidas GPS-iga töötada. Valitud moodul on üks odavamaid ja lihtsamaid. Satelliidiandmete säästmiseks lubab tootja aga akut. Andmelehe järgi külmkäivitus peaks võtma 36 sekundit, aga minu tingimustes (10. korrus aknalauast, hooneid lähedal ei ole) kulus selleks lausa 20 minutit. Järgmine start on aga juba 2 minutit.

Arduinoga ühendatud seadmete oluline parameeter on energiatarve. Kui koormate Arduino muundurit üle, võib see läbi põleda. Kasutatava vastuvõtja puhul on maksimaalne voolutarve 45mA @ 3,3v. Miks spetsifikatsioon peaks näitama voolutugevust muul pingel kui nõutav (5V), on minu jaoks mõistatus. Arduino muundur peab aga vastu 45 mA.

Ühendus
GPS-i ei juhita, kuigi sellel on RX-viik. Mis eesmärgil, pole teada. Peamine asi, mida saate selle vastuvõtjaga teha, on andmete lugemine NMEA protokoll TX-viigust. Tasemed - 5V, ainult Arduino jaoks, kiirus - 9600 baudi. Ühendan VIN-i arduino VCC-ga, GND-i GND-ga, TX-i vastava jada RX-iga. Lugesin andmed esmalt käsitsi, seejärel kasutasin TinyGPS-i teeki. Üllataval kombel on kõik loetav. Pärast Unole üleminekut pidin kasutama SoftwareSeriali ja siis algasid probleemid – osa sõnumite märke läks kaduma. See pole eriti kriitiline, kuna TinyGPS lõikab kehtetud sõnumid ära, kuid see on üsna ebameeldiv: võite unustada 1 Hz sageduse.

Kiire märkus SoftwareSeriali kohta: Unol pole riistvaraporte (peale selle, mis on ühendatud USB Serialiga), seega peate kasutama tarkvara. Seega saab see andmeid vastu võtta ainult kontakti kohta, millel plaat toetab katkestusi. Uno puhul on need 2 ja 3. Pealegi saab andmeid korraga vastu võtta vaid üks selline port.

Selline näeb välja “teststend”.

GSM vastuvõtja/saatja


Nüüd tuleb huvitavam osa. GSM-moodul - SIM900. See toetab GSM-i ja GPRS-i. Ei toetata ei EDGE-d ega eriti 3G-d. Koordinaadiandmete edastamiseks on see ilmselt hea - režiimide vahetamisel ei teki viivitusi ega probleeme, lisaks on GPRS nüüd peaaegu kõikjal saadaval. Mõne jaoks siiski rohkem keerukad rakendused sellest ei pruugi enam piisata.

Ühendus
Moodulit juhib ka jadaport, sama tasemega - 5V. Ja siin vajame nii RX-i kui ka TX-i. Moodul on varjestatud, see tähendab, et see on installitud Arduinosse. Lisaks ühildub see nii mega kui ka uno-ga. Vaikimisi on kiirus 115 200.

Panime selle kokku Megal ja siin ootab meid esimene ebameeldiv üllatus: mooduli TX-tihvt langeb Mega 7. kontaktile. Katkestused pole mega 7. kontakti jaoks saadaval, mis tähendab, et peate ühendama 7. viigu näiteks 6. viiguga, millel on katkestused võimalikud. Seega raiskame ühe Arduino tihvti. Noh, mega jaoks pole see väga hirmutav - lõppude lõpuks on tihvte piisavalt. Aga Uno jaoks on see juba keerulisem (tuletan meelde, et katkestusi toetavaid kontakte on ainult 2 - 2 ja 3). Selle probleemi lahendamiseks saame soovitada moodulit mitte paigaldada Arduinole, vaid ühendada see juhtmetega. Seejärel saate kasutada Serial1.

Pärast ühendamist proovime mooduliga "vestelda" (ärge unustage seda sisse lülitada). Valime pordi kiiruseks - 115200 ja on hea, kui kõik sisseehitatud jadapordid (4 mega, 1 uno) ja kõik tarkvara pordid töötavad sama kiirusega. Nii saate saavutada stabiilsema andmeedastuse. Ma ei tea miks, kuigi võin arvata.

Seega kirjutame andmete vahel edastamiseks primitiivse koodi jadapordid, saata Atz, vastuseks vaikus. Mis juhtus? Ah, tõstutundlik. ATZ, kõik on korras. Hurraa, moodul kuuleb meid. Kas peaksite uudishimust meile helistama? ATD +7499... Lauatelefon heliseb, arduinost tuleb suitsu, sülearvuti lülitub välja. Arduino muundur põles läbi. Halb mõte oli 19 volti toita, kuigi kirjas on, et saab töötada 6-20V, soovitatakse 7-12V. GSM-mooduli andmelehel pole kuskil kirjas koormuse all tarbitava energia kohta. Noh, Mega läheb varuosade lattu. Lülitan hinge kinni hoides sisse sülearvuti, mis sai USB-st +5V liini kaudu +19V. See töötab ja isegi USB ei põlenud läbi. Täname Lenovot meid kaitsmast.

Pärast konverteri läbipõlemist otsisin voolutarbimist. Niisiis, tipp - 2A, tüüpiline - 0,5A. See ületab selgelt Arduino muunduri võimalused. Nõuab eraldi toitu.

Programmeerimine
Moodul pakub rohkelt võimalusi andmeedastus. Alates häälkõned ja SMS-iga ning lõppedes tegelikult GPRS-iga. Pealegi on viimaste jaoks võimalik sooritada HTTP taotlus kasutades AT käske. Peate saatma mitu, kuid see on seda väärt: te ei soovi tegelikult taotlust käsitsi luua. GPRS-i kaudu andmeedastuskanali avamisel on paar nüanssi – mäletate klassikalist AT+CGDCONT=1, “IP”, “apn”? Nii et siin on vaja sama asja, aga veidi kavalamat.

Kindla URL-iga lehe saamiseks peate saatma järgmised käsud:
AT+SAPBR=1,1 //Avatud operaator (operaator) AT+SAPBR=3,1"CONTYPE","GPRS" //ühenduse tüüp - GPRS AT+SAPBR=3,1"APN","internet" //APN, Megafoni jaoks - internet AT+HTTPINIT //Initsialiseeri HTTP AT+HTTPPARA="CID",1 //Kasutatav operaatori ID. AT+HTTPPARA="URL","http://www.example.com/GpsTracking/record.php?Lat=%ld&Lng=%ld" //Tegelik URL pärast sprintf-i koordinaatidega AT+HTTPACTION=0 // Taotlege andmeid GET-meetodiga //oodake vastust AT+HTTPTERM //peata HTTP

Selle tulemusena saame ühenduse olemasolul serverilt vastuse. See tähendab, et tegelikult me ​​juba teame, kuidas koordinaatandmeid saata, kui server saab need GET-i kaudu.

Toitumine
Kuna GSM mooduli toide Arduino konverterist, nagu ma teada sain, on halb mõte, siis otsustati sealtsamast ebayst osta 12v->5v, 3A muundur. Moodulile aga ei meeldi 5V toide. Lähme häkkima: ühendage 5V tihvtiga, millest 5V tuleb arduinost. Siis teeb mooduli sisseehitatud muundur (palju võimsam kui Arduino muundur, MIC 29302WU) 5V-st selle, mida moodul vajab.

Server

Server kirjutas primitiivse - koordinaatide salvestamine ja joonistamine Yandex.mapsis. Tulevikus on võimalik lisada erinevaid funktsioone, sealhulgas paljude kasutajate tugi, "relvastatud/relvamata" olek, sõiduki süsteemide olek (süüde, esituled jne) ja võimalusel isegi sõidukisüsteemide juhtimine. Muidugi koos vastava toega jälgijale, mis muutub sujuvalt täieõiguslikuks häiresüsteemiks.

Välikatsed

Selline näeb kokkupandud seade ilma korpuseta välja:

Pärast toitemuunduri paigaldamist ja surnud DSL-modemi korpusesse asetamist näeb süsteem välja järgmine:

Jootsin juhtmed ja eemaldasin Arduino plokkidelt mitu kontakti. Need näevad välja sellised:

Ühendasin autosse 12V, sõitsin Moskvas ringi ja sain raja kätte:


Rajapunktid on üksteisest üsna kaugel. Põhjus on selles, et andmete saatmine GPRS-i kaudu võtab suhteliselt kaua aega ja selle aja jooksul koordinaate ei loeta. See on selgelt programmeerimisviga. Seda töödeldakse esiteks kohe koordinaatide paketi saatmisega aja jooksul ja teiseks GPRS-mooduliga asünkroonselt töötades.

Auto kõrvalistmel satelliitide otsimise aeg on paar minutit.

Järeldused

Arduino GPS-jälgija loomine oma kätega on võimalik, kuigi mitte tühine ülesanne. Põhiküsimus nüüd – kuidas seadet autosse peita nii, et see mõjutustele ei puutuks kahjulikud tegurid(vesi, temperatuur), ei olnud metalliga kaetud (GPS ja GPRS saavad varjestatud) ega olnud eriti märgatav. Praegu asub see lihtsalt salongis ja ühendub sigaretisüütaja pesaga.

Noh, sujuvama raja jaoks peame ka koodi parandama, kuigi jälgija täidab juba põhiülesande.

Kasutatud seadmed

  • Arduino Mega 2560
  • Arduino Uno
  • GPS SkyLab SKM53
  • SIM900 põhinev GSM/GPRS kilp
  • DC-DC 12v->5v 3A muundur