Sadržaj:

Kompletan GPS+GPRS sistem protiv krađe vozila baziran na Arduinu: 5 koraka (sa slikama)
Kompletan GPS+GPRS sistem protiv krađe vozila baziran na Arduinu: 5 koraka (sa slikama)

Video: Kompletan GPS+GPRS sistem protiv krađe vozila baziran na Arduinu: 5 koraka (sa slikama)

Video: Kompletan GPS+GPRS sistem protiv krađe vozila baziran na Arduinu: 5 koraka (sa slikama)
Video: GPS zaštita od krađe goriva 2024, Juli
Anonim
Image
Image
Hardver
Hardver

Zdravo svima!

Htio sam izgraditi potpuno rješenje za GPS uređaj protiv krađe vozila, a to bi bilo:

što je moguće jeftinije

što potpuniji

kako to-samo-funkcionira-nema što drugo učiniti

Tako sam na kraju izgradio rješenje zasnovano na Arduinu koje me je koštalo ukupno 25 dolara, manje-više.

Kao što vidite iz videa, radi! Pokrećete automobil, na mobilnom telefonu ćete dobiti obavijest da se automobil kreće, zatim otvorite mobilnu aplikaciju i možete vidjeti automobil u pokretu u stvarnom vremenu (sa kašnjenjem od 10 sekundi za ažuriranje).

Ovaj vodič će vas voditi kroz sve korake, imajući na umu da u rješenju postoji nekoliko komponenti:

1) hardver (zasnovan na Arduinu)

2) softver (Arduino program)

3) više softvera (prijem GPS lokacija na strani servera)

4) još više softvera (mobilna aplikacija)

Počnimo..

Korak 1: Hardver

Hardver
Hardver

Lista za kupovinu:

1) Arduino Uno R3 ili klon. Koristio sam klon "DCcEle DCcduino uno", koji izgleda više nije dostupan. Evo ekvivalenta: na Aliexpressu - 3,75 $

2) GPS jedinica za Arduino (GY-NEO6MV2 novi GPS modul sa kontrolom leta EEPROM MWC APM2.5 velika antena NEO6MV2). Koristio sam ovo: na Aliexpressu - 6,66 $

3) GPRS / GSM jedinica za Arduino (SIM800L V2.0 5V bežični GSM GPRS MODUL Četvoropojasni W / antenski kabel). Koristio sam ovo: na Aliexpressu - 6,71 $

4) Rezervne dupont kabele poput ovih: na Aliexpressu - 0,89 USD

5) IoT podatkovna sim kartica (ili bilo koja druga SIM kartica s podatkovnom vezom). Koristio sam ovo: sa Hologram.io. Imam besplatnog programera, samo plaćena dostava - 7,50 USD

Ukupno: 25,51 $, ali već sam imao kablove pa je manje od 25 $!

Dvije slike prikazuju komponente prije sastavljanja i konačni proizvod. Veze koje morate uspostaviti su:

Arduino - SIM800L

10 - RESETIRANJE

GND - GND (2 od njih)

5v - 5v

7 - SIM_TXD

8 - SIM_RXD

Arduino-GY-NEO6MV2

GND - GND

5v - VCC

3 - RX

4 - TX

Spojite sve kabele i antene i provjerite jeste li napajali Arduino iz izvora koji vam može dati vrhunce od 2A. Računar je jedva u redu (koristim MacBook Pro), "slučajni" punjač za telefon neće biti dovoljan. Većina USB utičnica za automobile takođe su manje od 1A. Ako je to vaš slučaj, trebate i 12v automobilsko 5v napajanje s najmanje 2A.

Umetnite sim karticu. Ako koristite Hologram.io sim karticu, obavezno se registrirajte na njihovoj nadzornoj ploči i aktivirajte sim karticu (potrebno je nekoliko minuta / sati).

Korak 2: Softver (Arduino program)

Softver (Arduino program)
Softver (Arduino program)

Pretpostavit ću da ste upoznati s Arduino programiranjem. U suprotnom, počnite s ovim vodičem: na Instructables.

Potrebna vam je samo jedna vanjska biblioteka, morao sam je instalirati ručno. Idite ovdje: TinyGPS, izvezite biblioteku i instalirajte je u svoju lokalnu Arduino mapu.

Odatle ćemo "ukrasti" neki kod iz njihovog osnovnog primjera i izmijeniti ga u naše svrhe.

Zatim ćemo "ukrasti" ovaj vodič i ponovo izmijeniti kôd u naše svrhe.

Rezultat je priložen.ino program.

Postoji nekoliko stvari koje možete i MORATE prilagoditi:

definicija "SECONDS" i definicija "SERVER".

Postavio sam SECONDS na 10 i evo zašto: Hologram.io programerski program daje vam 1 MB besplatnih podataka mjesečno. Što znači da želimo minimizirati slanje bajtova, ali isto tako moramo često ažurirati svoju poziciju. Koristićemo standardne AT modemske komande za slanje UDP paketa na naš server koji prima poruke, sa lat/lon, svaki koristeći 4 bajta, i brzinom koristeći 1 bajt. Dakle, ukupno ažuriranje GPS -a je 20 bajtova (IP zaglavlje) plus 8 bajtova (UDP zaglavlje) plus 9 bajtova (korisni teret). To je 37 bajtova. Pod pretpostavkom da mi auto nije aktivan više od 2 sata dnevno, mogu si priuštiti ažuriranje svakih 10 sekundi i trošiti samo 806 KB mjesečno (31 dan). To mi daje 218 KB za vrijeme vožnje nad vlastitim, odnosno lopovom automobila. Što mi daje 16,76 sati GPS nadzora van vremena vožnje, s jednim ažuriranjem svakih 10 sekundi.

Sada ovi UDP paketi moraju negdje otići. Koristim Ubuntu poslužitelj hostiran na CloudAtCost oblaku, koji sam kupio za 8 USD sa popustom od 80% i koji mi služi za druge svrhe, pa ne ulazi u kalkulaciju troškova. Ako ne želite platiti poslužitelj, možete nabaviti besplatnu instancu Amazon AWS na 12 mjeseci i instalirati Ubuntu na nju. Kada postavite poslužitelj (pogledajte sljedeći korak), nabavite njegovu statičku IP adresu i stavite je pored definicije SERVER.

Korak 3: Više softvera (primanje GPS lokacija na strani servera)

I CloudAtCost i Amazon dolaze s unaprijed konfiguriranom Ubuntu slikom (CloudAtCost je na Ubuntu 14.04). Zato neću prolaziti korake za instaliranje Ubuntu -a, jer nećete morati. Ako koristite CloudAtCost, možda ćete htjeti nadograditi na Ubuntu 16.04, to je učinjeno pomoću

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Zatim morate instalirati LAMP (pogledajte ovaj vodič: ovdje), iako nećemo koristiti PHP.

Instalirajte Python sa

sudo apt-get install python-minimal pip

Zatim dodajte nekoliko modula:

pip install --user urllib3 zahtjevi

Moramo postaviti /var /www za vaše pisanje, pa učinimo sljedeće:

sudo adduser YOUR_USER www-datasudo chown -R www-data: www-data /var /www

sudo chmod -R g+rwX /var /www

Sada nam je potreban "server" za i) primanje UDP paketa, ii) izgradnju trake, iii) slanje obavijesti na naš mobilni telefon i "server" za opsluživanje kreirane GPS numere (ovo će biti apache).

Za prvi poslužitelj kopirajte priloženi python kod. Morate konfigurirati sljedeće stvari:

iftttuser = "VAŠ IFTTT KORISNIK"

iftttpass = "VAŠA IFTTT LOZINKA"

iftttappletid = "VAŠA APLETA ZA OBAVIJEST IFTTT"

iftttkey = "VAŠ IFTTT KLJUČ"

iftttevent = "VAŠ IFTTT DOGAĐAJ"

Kao što ste možda pretpostavili, koristimo IFTTT za slanje obavijesti u stvarnom vremenu na naše mobilne telefone. Slijedite ovaj vodič: ovdje, umjesto da odaberete "pošalji mi sms", odaberite "pošalji obavijest o aplikaciji". Nabavite svoj ID apleta (pomaknite se pri dnu konfiguracije apleta da ga vidite) i upotrijebite ga gore. Koristite i tako kreirani ključ u gornjim postavkama. IFTTT događaj je naziv koji ste dali svom appletu, ja sam mu dao "carmoving".

Sada ne postoje besplatne platforme za obavještavanje u stvarnom vremenu, AFAIK. Ako znate jednu, javite mi. IFTTT ima kašnjenje. Ovo kašnjenje može se smanjiti na nekoliko sekundi ako koristite okidač za e -poštu. Nažalost, ovo nije pouzdano. Upravo stvoreni webhook ima kašnjenje od 15 minuta. Ali ne želimo čekati 15 minuta da znamo da nam je auto ukraden, zar ne? To je lozinka koja vas traži da postavite sve gore navedene postavke. Ako pomičete python kôd, vidjet ćete da postoji nekoliko redaka, naime 45-53, za automatizaciju funkcije "provjeri sada" IFTTT-a, koja prisiljava iznenadnu provjeru okidača i pokreće obavijest za manje od 1 sekunde! Nema na čemu:)

Nakon što ste negdje postavili svoj python kod, samo ga pokrenite. Ako ste profesionalni korisnik, neka to počne pri pokretanju servera. Pogledajte mnoštvo besplatnih vodiča na mreži o tome kako to učiniti, na primjer ovaj.

Korak 4: Još više softvera (mobilna aplikacija)

Još više softvera (mobilna aplikacija)
Još više softvera (mobilna aplikacija)
Još više softvera (mobilna aplikacija)
Još više softvera (mobilna aplikacija)
Još više softvera (mobilna aplikacija)
Još više softvera (mobilna aplikacija)
Još više softvera (mobilna aplikacija)
Još više softvera (mobilna aplikacija)

Potreban nam je brz i jednostavan način samo vizualizacije GPS zapisa koji poslužitelj u prethodnom koraku održava ažurnim. Moguće je da mora raditi na svim vrstama pametnih telefona.

Koristimo zatim paket mobilnih aplikacija za više platformi, poput Ionic/Cordova. Koristim Ionic v1, nemojte ga miješati sa Ionic Native ili Ionic v2, to je druga stvar.

Slijedite ove vrlo jednostavne korake za početak svog prvog projekta u Ionicu: ovdje.

Zatim morate započeti novi projekt zasnovan na sdk -u google maps, ovako:

ionic start myapp mape

Idite u mapu "resources" i kopirajte veliku sliku automobila ovdje kao "icon.png". Umjesto toga prenesite male ikone kao "car2.png" i "start.png" negdje na vaš server, poput https://yourserver/car2.png. Trebat će vam ovi kao markeri u vašoj aplikaciji.

Koristite priložene datoteke index.html (preimenujte index.html.txt u index.html), directives.js i controllers.js datoteke i stavite ih u www (index.html), www/js (svi js).

dodajte svoju platformu ovako:

ionic add plaftorm android

graditi ovako:

ionska verzija androida

tada će vam ionic reći gdje je izgradio vaš.apk koji možete instalirati na svoj mobilni telefon.

Za izradu za iOS potreban vam je Mac i Xcode. ionic tada može spremiti Xcode projekt koji možete otvoriti u Xcode -u i izgraditi za svoj telefon. Ako nemate račun programera za iOS, morat ćete priključiti telefon na Xcode i postaviti telefon za razvoj kako biste mogli tamo instalirati aplikaciju. Ovo je izvan opsega ovog uputstva.

U različitim js datotekama morate pronaći redove koji odgovaraju "car2.png" i "start.png" i izmijeniti ih prema putanji vaših slika. Isto za "plan.json".

To je to!!

Korak 5: Budući rad

1) Sve sam stavio u kartonsku kutiju koju mogu sakriti bilo gdje u blizini USB utičnice. Najbolje bi bilo ugraditi bolje kućište ispod haube automobila, s pretvaračem 12v-> 5v.

2) Pomoću bluetooth senzora mogli biste zapravo "osjetiti" ako ste u automobilu, pa se GPS sistem neće uključiti.

3) Samo platite SIM podatkovni plan i postavite SECONDS na 1 da biste uživali u praćenju super-stvarnog vremena:)

Nadam se da ste uživali u ovom mom prvom uputstvu!

Preporučuje se: