Kazalo:

Celoten sistem za zaščito vozil GPS+GPRS za vozila na osnovi Arduina: 5 korakov (s slikami)
Celoten sistem za zaščito vozil GPS+GPRS za vozila na osnovi Arduina: 5 korakov (s slikami)

Video: Celoten sistem za zaščito vozil GPS+GPRS za vozila na osnovi Arduina: 5 korakov (s slikami)

Video: Celoten sistem za zaščito vozil GPS+GPRS za vozila na osnovi Arduina: 5 korakov (s slikami)
Video: Kako uvek znati lokaciju svog deteta ili prijatelja? [Trusted Contacts] 2024, November
Anonim
Image
Image
Strojna oprema
Strojna oprema

Zdravo vsi!

Želel sem zgraditi popolno rešitev za napravo proti kraji vozila GPS, ki bi bila:

čim cenejše

čim bolj popolna

saj deluje-samo-deluje-ni-kaj-drugega-ni mogoče storiti

Tako sem na koncu zgradil rešitev na osnovi Arduina, ki me je stala skupaj 25 $, bolj ali manj.

Kot lahko vidite iz videoposnetka, deluje! Zaženite avto, na mobilni telefon prejmete obvestilo, da se avto premika, nato odprete mobilno aplikacijo in vidite avto, ki se premika v realnem času (z zamikom posodobitve 10 sekund).

Ta vadnica vas bo vodila skozi vse korake, pri čemer upoštevajte, da je v rešitvi več komponent:

1) strojna oprema (na osnovi Arduina)

2) programska oprema (program Arduino)

3) več programske opreme (strežnikovo sprejemanje lokacij GPS)

4) še več programske opreme (mobilna aplikacija)

Začnimo..

1. korak: Strojna oprema

Strojna oprema
Strojna oprema

Nakupovalni seznam:

1) Arduino Uno R3 ali klon. Uporabil sem klon "DCcEle DCcduino uno", ki se zdi, da ni več na voljo. Tukaj je enakovreden: na Aliexpressu - 3,75 $

2) GPS enota za Arduino (GY-NEO6MV2 nov GPS modul z kontrolo letenja EEPROM MWC APM2.5 velika antena NEO6MV2). Uporabil sem to: na Aliexpressu - 6,66 $

3) GPRS / GSM enota za Arduino (SIM800L V2.0 5V brezžični GSM GPRS MODUL, štiripasovni W / antenski kabel). Uporabil sem to: na Aliexpressu - 6,71 $

4) Rezervne dupont kable, kot so ti: na Aliexpress - 0,89 $

5) podatkovna sim kartica IoT (ali katera koli druga sim kartica s podatkovno povezavo). Uporabil sem to: iz Hologram.io. Imam brezplačnega razvijalca, samo plačana dostava - 7,50 $

Skupaj: 25,51 $, vendar sem že imel kable, zato je manj kot 25 $!

Dve sliki prikazujeta sestavne dele pred montažo in končni izdelek. Povezave, ki jih morate vzpostaviti, so:

Arduino - SIM800L

10 - RESET

GND - GND (2 od njih)

5v - 5v

7 - SIM_TXD

8 - SIM_RXD

Arduino-GY-NEO6MV2

GND - GND

5v - VCC

3 - RX

4 - TX

Priključite vse kable in antene ter poskrbite, da boste Arduino vklopili iz vira, ki vam bo omogočil največjo vrednost 2A. Računalniški USB je komaj v redu (uporabljam MacBook Pro), "naključni" polnilec za telefon ne bo dovolj. Večina USB vtičnic za avtomobile je tudi manj kot 1A. Če je to vaš primer, potrebujete tudi 12v avtomobilski 5v napajalnik z vsaj 2A.

Vstavite sim kartico. Če uporabljate sim kartico Hologram.io, se prepričajte, da ste se registrirali na njeni nadzorni plošči in aktivirali kartico sim (traja nekaj minut / ur).

2. korak: programska oprema (program Arduino)

Programska oprema (program Arduino)
Programska oprema (program Arduino)

Predvidevam, da poznate programiranje Arduino. V nasprotnem primeru začnite s tem priročnikom: na Instructables.

Potrebujete samo eno zunanjo knjižnico, namestiti sem jo moral ročno. Pojdite sem: TinyGPS, izvozite knjižnico in jo namestite v lokalno mapo Arduino.

Od tam bomo "ukradli" nekaj kode iz njihovega osnovnega primera in jo prilagodili svojim namenom.

Nato bomo "ukradli" ta priročnik in kodo znova prilagodili svojim namenom.

Rezultat je priložen program.ino.

Obstaja nekaj stvari, ki jih lahko in morate spremeniti:

opredelitev "SECONDS" in "SERVER".

SECONDS sem nastavil na 10 in evo zakaj: program za razvijalce Hologram.io vam daje 1 MB brezplačnih podatkov na mesec. To pomeni, da želimo zmanjšati število poslanih bajtov, vendar moramo prav tako pogosto posodabljati svoj položaj. Uporabljali bomo standardne modemske ukaze AT za pošiljanje paketov UDP na naš strežnik, ki sprejema sporočila, z lat/lon, pri čemer vsak uporablja 4 bajte, hitrost pa 1 bajt. Skupna posodobitev GPS je torej 20 bajtov (glava IP) plus 8 bajtov (glava UDP) plus 9 bajtov (koristna obremenitev). To je 37 bajtov. Ob predpostavki, da moj avto ni aktiven največ 2 uri na dan, si lahko privoščim posodobitev vsakih 10 sekund in porabim le 806 KB na mesec (31 dni). To mi daje 218 KB za čas vožnje nad mojim, to je tat avtomobila. Kar mi omogoča 16,76 ur spremljanja GPS zunaj časa vožnje, z eno posodobitvijo vsakih 10 sekund.

Zdaj morajo ti paketi UDP nekam iti. Uporabljam strežnik Ubuntu, ki gostuje v oblaku CloudAtCost, ki sem ga kupil za 8 USD z 80% popustom in mi služi za druge namene, zato ne gre v izračun stroškov. Če ne želite plačati za strežnik, lahko dobite brezplačen primerek Amazon AWS za 12 mesecev in nanj namestite Ubuntu. Ko nastavite strežnik (glejte naslednji korak), pridobite njegov statični naslov IP in ga postavite poleg definicije SERVER.

3. korak: Več programske opreme (strežnikovo sprejemanje lokacij GPS)

Tako CloudAtCost kot Amazon imata vnaprej nastavljeno sliko Ubuntu (CloudAtCost je na Ubuntu 14.04). Zato ne bom šel skozi korake za namestitev Ubuntuja, saj vam ne bo treba. Če uporabljate CloudAtCost, boste morda želeli nadgraditi na Ubuntu 16.04, kar je storjeno z

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

Nato morate namestiti LAMP (glejte ta priročnik: tukaj), čeprav ne bomo uporabljali PHP.

Namestite Python z

sudo apt-get install python-minimal pip

Nato dodajte nekaj modulov:

pip install --user urllib3 zahteve

Nastaviti moramo /var /www za vaše pisanje, zato naredimo:

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

sudo chmod -R g+rwX /var /www

Zdaj potrebujemo "strežnik" za i) sprejemanje paketov UDP, ii) izdelavo sledi, iii) pošiljanje obvestila na naš mobilni telefon in "strežnik", ki streže ustvarjeni gps sledi (to bo apache).

Za prvi strežnik kopirajte priloženo kodo python. Konfigurirati morate naslednje stvari:

iftttuser = "VAŠ IFTTT UPORABNIK"

iftttpass = "VAŠA GESO IFTTT"

iftttappletid = "VAŠA APLIKACIJA OBVESTILA IFTTT"

iftttkey = "VAŠ IFTTT KLJUČ"

iftttevent = "VAŠ IFTTT DOGODEK"

Kot ste morda uganili, uporabljamo IFTTT za pošiljanje obvestil v realnem času na naše mobilne telefone. Sledite tem navodilom: tukaj, namesto da izberete »pošlji mi sms«, izberite »pošlji obvestilo o aplikaciji«. Pridobite svoj ID programčka (pomaknite se na dnu konfiguracije programčka, da ga vidite) in ga uporabite zgoraj. Uporabite tudi tako ustvarjen ključ v zgornjih nastavitvah. Dogodek IFTTT je ime, ki ste ga dali svojemu programčku, jaz sem mu dal "carmoving".

Zdaj ni brezplačnih platform za obveščanje v realnem času, AFAIK. Če poznate enega, mi sporočite. IFTTT ima zamudo. To zakasnitev lahko zmanjšate na nekaj sekund, če uporabite sprožilec e -pošte. Na žalost to ni zanesljivo. Pravkar ustvarjen webhook ima 15 minutno zamudo. Nočemo pa čakati 15 minut, da vemo, da nam ukradejo avto, kajne? To je geslo, ki vas prosi, da nastavite vse zgornje nastavitve. Če se pomaknete po kodi python, vidite, da obstaja nekaj vrstic, in sicer 45-53, za avtomatizacijo funkcije "preveri zdaj" IFTTT, ki prisili nenadno preverjanje sprožilcev in sproži obvestilo v manj kot 1 sekundi! Ni za kaj:)

Ko nekje nastavite svojo kodo python, jo preprosto zaženite. Če ste profesionalni uporabnik, začnite pri zagonu strežnika. Oglejte si množico brezplačnih spletnih vodnikov o tem, kako to storiti, na primer ta.

4. korak: Še več programske opreme (mobilna aplikacija)

Še več programske opreme (mobilna aplikacija)
Še več programske opreme (mobilna aplikacija)
Še več programske opreme (mobilna aplikacija)
Še več programske opreme (mobilna aplikacija)
Še več programske opreme (mobilna aplikacija)
Še več programske opreme (mobilna aplikacija)
Še več programske opreme (mobilna aplikacija)
Še več programske opreme (mobilna aplikacija)

Potrebujemo hiter in preprost način za vizualizacijo sledi GPS, ki jo strežnik na prejšnjem koraku posodablja. Mogoče mora delovati na vseh vrstah pametnih telefonov.

Nato uporabimo paket mobilnih aplikacij za več platform, kot je Ionic/Cordova. Uporabljam Ionic v1, ne zamenjujte ga z Ionic Native ali Ionic v2, to je druga stvar.

Sledite tem zelo preprostim korakom, da začnete svoj prvi projekt v Ionicu: tukaj.

Nato morate začeti nov projekt na podlagi google maps sdk, na primer:

ionic start myapp maps

Pojdite v mapo "viri" in kopirajte veliko sliko avtomobila tukaj kot "icon.png". Namesto tega naložite majhne ikone kot "car2.png" in "start.png" nekje na strežniku, na primer https://yourserver/car2.png. Te boste v svoji aplikaciji potrebovali kot označevalce.

Uporabite priložene datoteke index.html (preimenujte index.html.txt v index.html), directives.js in controllers.js in jih vstavite v www (index.html), www/js (vse js).

svojo platformo dodajte tako:

ionski add plaftorm android

graditi tako:

ionska gradnja androida

nato vam bo ionic povedal, kje je zgradil vaš.apk, ki ga lahko namestite na svoj mobilni telefon.

Za izdelavo za iOS potrebujete Mac in Xcode. ionic lahko nato shrani projekt Xcode, ki ga lahko odprete v Xcode in sestavite za svoj telefon. Če nimate računa razvijalca za iOS, boste morali telefon priključiti na Xcode in nastaviti telefon za razvoj, da bo lahko tam namestil aplikacijo. To je zunaj področja uporabe tega navodila.

V različnih datotekah js boste morali poiskati vrstice, ki ustrezajo "car2.png" in "start.png", ter jih spremeniti s potjo vaših slik. Enako za "plan.json".

To je to !!

5. korak: Prihodnje delo

1) Vse sem dal v kartonsko škatlo, ki jo lahko skrijem kjer koli v bližini vtičnice USB. Najboljše bi bilo, če bi pod pokrov avtomobila namestili boljše ohišje s pretvornikom 12v-> 5v.

2) S senzorjem bluetooth lahko dejansko "slutite", če ste v avtu, zato se sistem GPS ne vklopi.

3) Samo plačajte za podatkovni načrt sim in nastavite SECONDS na 1, da uživate v spremljanju v realnem času:)

Upam, da ste uživali v tem mojem prvem navodilu!

Priporočena: