Täielik Arduino-põhine sõiduki GPS+GPRS vargusvastane süsteem: 5 sammu (koos piltidega)
Täielik Arduino-põhine sõiduki GPS+GPRS vargusvastane süsteem: 5 sammu (koos piltidega)
Anonim
Image
Image
Riistvara
Riistvara

Tere kõigile!

Tahtsin ehitada GPS-sõiduki vargusvastase seadme jaoks terviklahenduse, mis oleks järgmine:

võimalikult odavalt

võimalikult täielik

kuna see lihtsalt töötab-pole midagi muud teha kui võimalik

Lõpuks ehitasin Arduino-põhise lahenduse, mis maksis mulle kokku 25 dollarit, enam-vähem.

Nagu videost näete, see lihtsalt töötab! Käivitate auto, saate mobiiltelefonile teate, et auto liigub, seejärel avate mobiilirakenduse ja näete autot liikumas reaalajas (10 -sekundilise värskendusviivitusega).

See õpetus juhatab teid läbi kõigi sammude, pidades meeles, et lahenduses on mitu komponenti:

1) riistvara (Arduino põhine)

2) tarkvara (Arduino programm)

3) rohkem tarkvara (GPS-i asukohtade vastuvõtmine serveripoolselt)

4) veelgi rohkem tarkvara (mobiilirakendus)

Alustame..

Samm: riistvara

Riistvara
Riistvara

Ostunimekiri:

1) Arduino Uno R3 või kloon. Kasutasin klooni "DCcEle DCcduino uno", mis ei tundu enam saadaval olevat. Siin on samaväärne: Aliexpressis - 3,75 $

2) GPS-seade Arduino jaoks (GY-NEO6MV2 uus GPS-moodul koos lennujuhtimise lennujuhtimisega EEPROM MWC APM2.5 suur antenn NEO6MV2). Ma kasutasin seda: Aliexpressis - 6,66 dollarit

3) GPRS / GSM-seade Arduino jaoks (SIM800L V2.0 5V traadita GSM-GPRS-moodul Quad-Band W / antennikaabli kork). Ma kasutasin seda: Aliexpressis - 6,71 dollarit

4) Varuge sellised dupontkaablid nagu need: Aliexpressis - 0,89 $

5) IoT andmesidekaart (või mõni muu andmeühendusega sim -kaart). Ma kasutasin seda: saidilt Hologram.io. Mul on tasuta arendaja, ainult tasuline saatmine - 7,50 dollarit

Kokku: 25,51 $, kuid mul olid kaablid juba olemas, nii et see on alla 25 $!

Kahel pildil on näha komponendid enne kokkupanekut ja lõpptoode. Ühendused, mida peate tegema, on järgmised:

Arduino - SIM800L

10 - NULLI

GND - GND (2 neist)

5v - 5v

7 - SIM_TXD

8 - SIM_RXD

Arduino-GY-NEO6MV2

GND - GND

5v - VCC

3 - RX

4 - TX

Ühendage kõik kaablid ja antennid ning veenduge, et toite Arduino toiteallikast, mis on võimeline andma 2A piike. Arvuti usb on vaevu korras (ma kasutan MacBook Pro -d), "juhuslikust" telefonilaadijast ei piisa. Enamiku autode USB -pistikupesad on ka alla 1A. Kui see on teie juhtum, vajate ka 12v auto 5v toiteallikat, mille võimsus on vähemalt 2A.

Sisestage sim -kaart. Kui kasutate SIM -kaarti Hologram.io, registreeruge kindlasti nende armatuurlauale ja aktiveerige sim -kaart (see võtab paar minutit / tundi).

Samm: tarkvara (Arduino programm)

Tarkvara (Arduino programm)
Tarkvara (Arduino programm)

Ma eeldan, et olete Arduino programmeerimisega tuttav. Vastasel juhul alustage sellest juhendist: Instructables.

Teil on vaja ainult ühte välist raamatukogu, ma pidin selle käsitsi installima. Minge siia: TinyGPS, eksportige kogu ja installige see oma kohalikku Arduino kausta.

Sealt "varastame" nende põhinäitest mõne koodi ja muudame selle oma eesmärkide järgi.

Seejärel "varastame" sellest juhendist ja muudame koodi uuesti oma eesmärkide järgi.

Tulemuseks on lisatud.ino programm.

On paar asja, mida saate teha ja mida peate parandama:

määratlevad "SECONDS" ja "SERVER".

Olen määranud SECONDS väärtuseks 10 ja siin on põhjus: arendajaprogramm Hologram.io annab teile 1 MB tasuta andmeid kuus. See tähendab, et me tahame saadetud baite minimeerida, kuid peame ka oma positsiooni nii sageli värskendama. Me kasutame standardseid AT -modemi käske, et saata sõnumeid vastu võtvale serverile UDP -pakette lat/lon, igaüks kasutab 4 baiti ja kiirus 1 baiti. Seega on kogu GPS -i värskendus 20 baiti (IP -päis) pluss 8 baiti (UDP -päis) pluss 9 baiti (kasulik koormus). See on 37 baiti. Eeldades, et mu auto on aktiivne mitte rohkem kui 2 tundi päevas, võin endale lubada värskendust iga 10 sekundi järel ja tarbin ainult 806 kb kuus (31 päeva). See annab mulle 218 kb sõiduajaks minu enda ehk autovarga üle. Mis annab mulle väljaspool sõiduaega 16,76 tundi GPS -i jälgimist, üks värskendus iga 10 sekundi tagant.

Nüüd peavad need UDP -paketid kuhugi minema. Ma kasutan Ubuntu serverit, mis on hostitud CloudAtCost pilves, mille ostsin 8 dollari eest 80% allahindlusega ja mis teenib mind muudel eesmärkidel, seega ei lähe kulude arvutamisse. Kui te ei soovi serveri eest maksta, saate 12 kuu jooksul tasuta Amazon AWS -i eksemplari ja installida sellele Ubuntu. Kui olete oma serveri seadistanud (vt järgmist sammu), hankige selle staatiline IP -aadress ja asetage see SERVERi määratluse kõrvale.

Samm: rohkem tarkvara (GPS-i asukohtade vastuvõtmine serveripoolselt)

Nii CloudAtCostil kui ka Amazonil on eelkonfigureeritud Ubuntu pilt (CloudAtCost on Ubuntu 14.04). Nii et ma ei tee Ubuntu installimise samme, nagu te ei pea. Kui kasutate CloudAtCost, võiksite uuendada Ubuntu 16.04 -le, see on tehtud a -ga

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

Seejärel peate installima LAMPi (vaadake seda juhendit: siin), kuigi me ei kasuta PHP -d.

Installige Python koos

sudo apt-get install python-minimal pip

Seejärel lisage paar moodulit:

pip install -kasutaja urllib3 taotlused

Peame määrama /var /www kirjutatavaks, nii et teeme järgmist.

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

sudo chmod -R g+rwX /var /www

Nüüd vajame "serverit", et i) vastu võtta UDP pakette, ii) ehitada rada, iii) saata teade meie mobiiltelefonile ja "server" loodud GPS -i raja teenindamiseks (see on apache).

Esimese serveri jaoks kopeerige lisatud pythoni kood. Peate konfigureerima järgmised asjad.

iftttuser = "SINU IFTTT KASUTAJA"

iftttpass = "SINU IFTTT PAROOL"

iftttappletid = "SINU IFTTT -TEATISE APPLET"

iftttkey = "SINU IFTTT -VÕTT"

iftttevent = "SINU IFTTT -SÜNDMUS"

Nagu arvate, kasutame IFTTT-d reaalajas märguannete edastamiseks oma mobiiltelefonidele. Järgige seda juhendit: siin, kuid selle asemel, et valida "saada mulle sms", valige "saada rakenduse märguanne". Hankige oma apleti ID (selle nägemiseks kerige apleti konfiguratsiooni allosas) ja kasutage seda ülal. Kasutage ülaltoodud seadetes ka nii loodud võtit. IFTTT sündmus on nimi, mille andsite oma apletile, mina andsin sellele "carmoving".

Nüüd ei ole tasuta reaalajas teavitusplatvorme, AFAIK. Kui teate ühte, andke mulle sellest teada. IFTTT -l on viivitus. Kui kasutate e -posti päästikut, saab selle viivituse minimeerida mõne sekundini. Kahjuks pole see usaldusväärne. Äsja loodud veebihaagi viivitus on 15 minutit. Aga me ei taha 15 minutit oodata, et teada saada, et meie auto varastatakse, eks? See on parool, mis palub teil seadistada kõik ülaltoodud seaded. Kui kerite püütoni koodi, näete, et IFTTT-i "kontrollige kohe" funktsionaalsuse automatiseerimiseks on paar rida, nimelt 45-53, mis sunnib päästikuid ootamatult kontrollima ja käivitab teate vähem kui 1 sekundiga! Olete teretulnud:)

Kui olete oma püütoni koodi kuskile seadistanud, lihtsalt käivitage see. Kui olete profikasutaja, laske sellel alustada serveri käivitamisel. Vaadake veebis palju tasuta juhendeid, kuidas seda teha, näiteks seda.

Samm: veelgi rohkem tarkvara (mobiilirakendus)

Veel rohkem tarkvara (mobiilirakendus)
Veel rohkem tarkvara (mobiilirakendus)
Veel rohkem tarkvara (mobiilirakendus)
Veel rohkem tarkvara (mobiilirakendus)

Vajame kiiret ja lihtsat viisi, kuidas lihtsalt visualiseerida GPS -i rada, mida eelmise sammu server ajakohastab. Võimalik, et see peab töötama igasuguste nutitelefonidega.

Kasutame siis platvormideülest mobiilirakenduste komplekti, näiteks Ionic/Cordova. Ma kasutan Ionic v1, ärge ajage seda segi Ionic Native või Ionic v2, see on teine asi.

Oma esimese projekti alustamiseks Ionicis järgige neid väga lihtsaid samme: siin.

Seejärel peate alustama uut projekti, mis põhineb google maps sdk -l, järgmiselt:

ioonse käivitamise myapp kaardid

Minge kausta "ressursid" ja kopeerige suur auto pilt siia "icon.png". Laadige selle asemel üles väikesed ikoonid "car2.png" ja "start.png" kuskile oma serverisse, näiteks https://yourserver/car2.png. Te vajate neid oma rakenduses markeritena.

Kasutage lisatud failid index.html (nimetage index.html.txt ümber indeksiks.html), direktiivid.js ja kontrollerid.js ning pange need failidesse www (index.html), www/js (kõik j -id).

lisage oma platvorm nii:

iooniline lisab plaftorm android

ehitada nii:

ioonilise ehitusega android

siis ütleb ionic teile, kuhu see teie.apki ehitas, mille saate oma mobiiltelefonile installida.

IOS -i jaoks ehitamiseks vajate Maci ja Xcode'i. ionic saab seejärel salvestada Xcode projekti, mille saate Xcode'is avada ja oma telefoni jaoks luua. Kui teil pole iOS -i arendajakontot, peate oma telefoni Xcode'i külge kinnitama ja seadistama telefoni arendamiseks, et saaksite rakenduse sinna installida. See jääb selle juhendi reguleerimisalast välja.

Erinevatest js -failidest peate leidma read, mis vastavad "car2.png" ja "start.png" ning muutma neid oma piltide teega. Sama ka "plan.json" puhul.

See on see !!

Samm: tulevane töö

1) Olen pannud kõik pappkarpi, mille saan peita USB -pistikupesa lähedusse. Parim asi, mida teha, oleks paigaldada parem kate auto kapoti alla, 12v-> 5v muunduriga.

2) Bluetooth -anduri abil saaksite tegelikult autos tunda, et GPS -süsteem ei lülitu sisse.

3) Lihtsalt makske sim-andmesidepaketi eest ja seadke SECONDS väärtuseks 1, et nautida reaalajas jälgimist:)

Loodan, et teile meeldis see minu esimene õpetatav!