Sadržaj:

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

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

Video: Kompletan GPS+GPRS sustav protiv krađe vozila baziran na Arduinu: 5 koraka (sa slikama)
Video: Сензор за гориво ETC-XXX "СТВОЛ" 2024, Studeni
Anonim
Image
Image
Hardver
Hardver

Pozdrav svima!

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

što jeftinije

što potpuniji

kako to-samo-radi-nema-što-drugo-učiniti što je više moguće

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

Kao što vidite iz videa, radi! Pokrenete automobil, na mobitelu dobijete obavijest da se automobil kreće, zatim otvorite mobilnu aplikaciju i možete vidjeti automobil u pokretu u stvarnom vremenu (s kašnjenjem od 10 sekundi ažuriranja).

Ovaj vodič će vas provesti 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 (primanje GPS lokacija na strani poslužitelja)

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

Počnimo..

Korak 1: Hardver

Hardver
Hardver

Popis 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 s 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 Četveropojasni 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: s Hologram.io. Imam besplatnog razvojnog programera, samo plaćena dostava - 7,50 USD

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

Dvije slike prikazuju komponente prije montaže 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 maksimalne vrijednosti od 2A. Računalni USB je jedva u redu (koristim MacBook Pro), "slučajni" punjač za telefon neće biti dovoljan. Većina USB utičnica za automobile također 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, svakako se registrirajte na njezinoj 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 protivnom, počnite s ovim vodičem: na Instructables.

Trebate samo jednu vanjsku biblioteku, morao sam je instalirati ručno. Idite ovdje: TinyGPS, izvezite biblioteku i instalirajte je u svoju lokalnu mapu Arduino.

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

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

Rezultat je priloženi.ino program.

Postoji nekoliko stvari koje možete i MORATE doraditi:

definiraju "SECONDS" i definiraju "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 svoj položaj. Koristit ćemo standardne AT modemske naredbe za slanje UDP paketa na naš poslužitelj koji prima poruke, sa lat/lon, svaki koristi 4 bajta, a brzinu koristi 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 je automobil aktivan najviše 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 izvan vremena vožnje, s jednim ažuriranjem svakih 10 sekundi.

Sada ti UDP paketi moraju negdje otići. Koristim Ubuntu poslužitelj hostiran u oblaku CloudAtCost, koji sam kupio za 8 USD uz popust od 80% i koji mi služi za druge svrhe, pa ne ulazi u izračun troškova. Ako ne želite platiti poslužitelj, možete nabaviti besplatnu instancu Amazon AWS na 12 mjeseci i na nju instalirati Ubuntu. Nakon što 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 poslužitelja)

I CloudAtCost i Amazon dolaze s unaprijed konfiguriranom Ubuntu slikom (CloudAtCost je na Ubuntu 14.04). Dakle, ne idem kroz korake za instaliranje Ubuntua, jer nećete morati. Ako koristite CloudAtCost, možda biste htjeli nadograditi na Ubuntu 16.04, to je učinjeno s

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:

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 "poslužitelj" za i) primanje UDP paketa, ii) izradu trake, iii) slanje obavijesti na naš mobilni telefon i "poslužitelj" za opsluživanje stvorene GPS pjesme (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 svoje 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 biste ga vidjeli) i upotrijebite ga gore. Upotrijebite 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 obavijesti 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, to nije pouzdano. Upravo stvoreni webhook ima kašnjenje od 15 minuta. Ali ne želimo čekati 15 minuta da znamo da nam kradu auto, 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 automatiziranje funkcije "provjeri sada" IFTTT-a, koja prisiljava iznenadnu provjeru okidača i pokreće obavijest za manje od 1 sekunde! Molim:)

Nakon što ste negdje postavili svoj python kôd, samo ga pokrenite. Ako ste profesionalni korisnik, neka to počne pri pokretanju poslužitelja. Pogledajte mnoštvo besplatnih vodiča na internetu 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 s 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 pokrenuti novi projekt na temelju SDK -a google maps, ovako:

ionic start myapp maps

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 poslužitelj, poput https://yourserver/car2.png. Trebat će vam oni kao oznake u 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 (sve js).

dodajte svoju platformu ovako:

ionski add plaftorm android

graditi ovako:

ionska gradnja 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 Xcodeu i izgraditi za svoj telefon. Ako nemate račun razvojnog programera za iOS, morat ćete priključiti telefon na Xcode i postaviti telefon za razvoj kako biste mogli tamo instalirati aplikaciju. To je izvan opsega ovog uputstva.

U različitim js datotekama morat ćete pronaći retke 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 zapravo biste mogli "osjetiti" ako ste u automobilu, pa se GPS sustav 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čeni: