INHOUDSOPGAWE:

Volledige Arduino-gebaseerde voertuig-GPS+GPRS-diefstalsisteem: 5 stappe (met foto's)
Volledige Arduino-gebaseerde voertuig-GPS+GPRS-diefstalsisteem: 5 stappe (met foto's)

Video: Volledige Arduino-gebaseerde voertuig-GPS+GPRS-diefstalsisteem: 5 stappe (met foto's)

Video: Volledige Arduino-gebaseerde voertuig-GPS+GPRS-diefstalsisteem: 5 stappe (met foto's)
Video: МАСТЕР-КЛАСС по Arduino | Полный семинар по программированию за 90 минут! 2024, November
Anonim
Image
Image
Die hardeware
Die hardeware

Haai almal!

Ek wou 'n volledige oplossing vir 'n GPS-voertuig-diefstal-toestel bou, wat sou wees:

so goedkoop as moontlik

so volledig as moontlik

soos dit-net-werk-daar is-niks-anders-om te doen as moontlik

So het ek uiteindelik 'n oplossing op Arduino gebou wat my altesaam 25 $ gekos het.

Soos u uit die video kan sien, werk dit net! As u die motor aanskakel, kry u 'n kennisgewing op u selfoon dat die motor beweeg, dan maak u die mobiele app oop en kan u die motor intyds sien beweeg (met 'n opdateringsvertraging van 10 sekondes).

Hierdie handleiding lei u deur al die stappe, en hou in gedagte dat daar verskeie komponente in die oplossing is:

1) die hardeware (gebaseer op Arduino)

2) die sagteware (Arduino -program)

3) meer sagteware (ontvangs van die gps-liggings aan die bediener)

4) nog meer sagteware (die mobiele app)

Kom ons begin..

Stap 1: Die hardeware

Die hardeware
Die hardeware

Inkopielys:

1) Arduino Uno R3 of kloon. Ek het die 'DCcEle DCcduino uno' kloon gebruik, wat blykbaar nie meer beskikbaar is nie. Hier is 'n ekwivalent: op Aliexpress - 3,75 $

2) GPS-eenheid vir Arduino (GY-NEO6MV2 nuwe GPS-module met Flight Control Flight Control EEPROM MWC APM2.5 groot antenne NEO6MV2). Ek het dit gebruik: op Aliexpress - 6,66 $

3) GPRS / GSM-eenheid vir Arduino (SIM800L V2.0 5V Wireless GSM GPRS MODULE Quad-Band W / Antennekabeldop). Ek het dit gebruik: op Aliexpress - 6,71 $

4) Dupont -kabels soos volg: op Aliexpress - 0,89 $

5) IoT -data -simkaart (of enige ander simkaart met 'n dataverbinding). Ek het dit gebruik: van Hologram.io. Ek het 'n gratis ontwikkelaar, slegs betaalde aflewering - 7,50 $

Totaal: 25,51 $, maar ek het al die kabels gehad, so dit is minder as 25 $!

Die twee foto's toon die komponente voor die samestelling, en die finale produk. Die verbindings wat u moet maak, is:

Arduino - SIM800L

10 - RESET

GND - GND (2 daarvan)

5v - 5v

7 - SIM_TXD

8 - SIM_RXD

Arduino-GY-NEO6MV2

GND - GND

5v - VCC

3 - RX

4 - TX

Koppel al die kabels en antennas en maak seker dat u die Arduino aanskakel vanaf 'n bron wat u pieke van 2A kan gee. Die rekenaar usb is skaars goed (ek gebruik 'n MacBook Pro), 'n "ewekansige" telefoonlaaier is nie genoeg nie. Die meeste USB -afsetpunte vir motors is ook minder as 1A. As dit u geval is, benodig u ook 'n motorvoeding van 12v vir motors met ten minste 2A.

Plaas die simkaart. As u die Hologram.io -simkaart gebruik, moet u registreer op hul dashboard en die simkaart aktiveer (dit neem 'n paar minute / uur).

Stap 2: Die sagteware (Arduino -program)

Die sagteware (Arduino -program)
Die sagteware (Arduino -program)

Ek neem aan dat u vertroud is met Arduino -programmering. Andersins, begin asseblief met hierdie gids: op instruksies.

U benodig slegs een eksterne biblioteek; ek moes dit met die hand installeer. Gaan hierheen: TinyGPS, voer die biblioteek uit en installeer dit in u plaaslike Arduino -gids.

Van daar af gaan ons 'n paar kode uit hul basiese voorbeeld 'steel' en dit aan ons doeleindes aanpas.

Ons gaan dan uit hierdie gids "steel" en die kode weer aanpas by ons doeleindes.

Die resultaat is die aangehegte.ino -program.

Daar is 'n paar dinge wat u kan en moet aanpas:

die "SEKONDE" definieer, en die "SERVER" definieer.

Ek het SECONDS op 10 gestel en dit is die rede: die ontwikkelaarsprogram Hologram.io gee u 1 MB gratis data per maand. Dit beteken dat ons die gestuurde grepe wil verminder, maar ons moet ons posisie net so gereeld bywerk. Ons gaan standaard AT -modemopdragte gebruik om UDP -pakkies na ons bediener te stuur wat die boodskappe ontvang, met lat/lon, elk met 4 grepe en 'n snelheid van 1 byte. Die totale GPS -opdatering is dus 20 grepe (IP -kop) plus 8 grepe (UDP -kop) plus 9 grepe (loonvrag). Dit is 37 grepe. As ek aanvaar dat my motor nie meer as 2 uur per dag aktief is nie, kan ek elke 10 sekondes 'n opdatering bekostig en slegs 806 kb per maand verbruik (31 dae). Dit gee my 218 kb vir die rytyd oor my eie, dit wil sê die motordief. Dit gee my 16,76 uur GPS -monitering buite my rytyd, met een opdatering elke 10 sekondes.

Nou moet hierdie UDP -pakkies iewers heen gaan. Ek gebruik 'n Ubuntu -bediener wat op 'n CloudAtCost -wolk aangebied word, wat ek vir 8 $ gekoop het met 'n afslag van 80%, en wat my ander doeleindes dien, en dus nie by die kosteberekening kom nie. As u nie vir 'n bediener wil betaal nie, kan u 'n gratis Amazon AWS -instansie vir 12 maande kry en Ubuntu daarop installeer. Sodra u u bediener opgestel het (sien die volgende stap), kry u sy statiese IP -adres en plaas dit langs die SERVER -definisie.

Stap 3: Meer sagteware (ontvangs van die GPS-posisies aan die bediener)

Beide CloudAtCost en Amazon het 'n vooraf gekonfigureerde Ubuntu-beeld (CloudAtCost is by Ubuntu 14.04). Ek gaan dus nie deur die stappe om Ubuntu te installeer nie, aangesien u dit nie hoef te doen nie. As u CloudAtCost gebruik, wil u miskien opgradeer na Ubuntu 16.04, dit word gedoen met 'n

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

Dan moet u LAMP installeer (verwys na hierdie gids: hier), alhoewel ons nie PHP gaan gebruik nie.

Installeer Python met

sudo apt-get install python-minimal pip

Voeg dan 'n paar modules by:

pip install -gebruiker urllib3 versoeke

Ons moet /var /www deur u skryfbaar stel, so laat ons doen:

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

sudo chmod -R g+rwX /var /www

Nou het ons 'n 'bediener' nodig om i) die UDP -pakkies te ontvang, ii) die snit te bou, iii) 'n kennisgewing na ons selfoon te stuur en 'n 'bediener' om die geskepte GPS -spoor te bedien (dit sal apache wees).

Vir die eerste bediener, kopieer die aangehegte python -kode. U moet die volgende dinge instel:

iftttuser = "U IFTTT -GEBRUIKER"

iftttpass = "U IFTTT -WAGWOORD"

iftttappletid = "U IFTTT -KENNISGEWINGSAPPLEET"

iftttkey = "U IFTTT -SLEUTEL"

iftttevent = "JOU IFTTT GEBEURE"

Soos u dalk al raai, gebruik ons IFTTT om intydse kennisgewings na ons selfone te bedien. Volg hierdie gids: hier, maar in plaas van 'stuur 'n sms', kies 'stuur 'n app -kennisgewing'. Kry u applet -ID (blaai onderaan die konfigurasie van die applet om dit te sien) en gebruik dit hierbo. Gebruik ook die so gemaakte sleutel in die instellings hierbo. Die IFTTT -geleentheid is die naam wat u aan u applet gegee het, ek het dit 'carmoving' gegee.

Daar is geen gratis real-time kennisgewingsplatforms nie, AFAIK. As jy weet van een, laat weet my. IFTTT het 'n vertraging. Hierdie vertraging kan tot 'n paar sekondes verminder word as u die e -pos sneller gebruik. Ongelukkig is dit nie betroubaar nie. Die pas gemaakte webhook het 'n vertraging van 15 minute. Maar ons wil nie 15 minute wag om te weet dat ons motor gesteel word nie, reg? Dit is die wagwoord om u te vra om al die bogenoemde instellings op te stel. As u deur die luislangkode blaai, sien u dat daar 'n paar reëls is, naamlik 45-53, om die funksie "kyk nou" van IFTTT te outomatiseer, wat 'n skielike nagaan van die snellers dwing en die kennisgewing binne minder as 1 sekonde aktiveer! Jy is welkom:)

As u u python -kode êrens opgestel het, moet u dit net begin. As u 'n pro -gebruiker is, moet u dit begin met die begin van die bediener. Raadpleeg die tonne gratis gidse aanlyn oor hoe u dit kan doen, byvoorbeeld hierdie een.

Stap 4: Nog meer sagteware (die mobiele app)

Nog meer sagteware (die mobiele app)
Nog meer sagteware (die mobiele app)
Nog meer sagteware (die mobiele app)
Nog meer sagteware (die mobiele app)
Nog meer sagteware (die mobiele app)
Nog meer sagteware (die mobiele app)
Nog meer sagteware (die mobiele app)
Nog meer sagteware (die mobiele app)

Ons benodig 'n vinnige en eenvoudige manier om net die GPS -spoor wat die bediener op die vorige stap bygehou het, te visualiseer. Dit moet moontlik op allerhande slimfone werk.

Laat ons dan 'n platform-mobiele app-suite, soos Ionic/Cordova, gebruik. Ek gebruik Ionic v1, moenie dit verwar met Ionic Native of Ionic v2 nie, dit is 'n ander ding.

Volg hierdie baie eenvoudige stappe om u eerste projek in Ionic te begin: hier.

Dan moet u 'n nuwe projek begin op grond van die google maps sdk, soos volg:

ioniese begin myapp -kaarte

Gaan na die gids "bronne" en kopieer die groot motorafbeelding hier as "icon.png". Laai eerder die klein ikone êrens op u bediener op as 'car2.png' en 'start.png', soos https://yourserver/car2.png. U benodig dit as merkers in u app.

Gebruik die aangehegte index.html (hernoem index.html.txt na index.html), directives.js en controllers.js lêers en plaas dit in www (index.html), www/js (al die js).

voeg u platform so by:

ionic add plaftorm android

bou so:

ioniese bou -Android

dan sal ionic jou vertel waar dit jou.apk gebou het wat jy op jou selfoon kan installeer.

Om vir iOS te bou, benodig u 'n Mac en Xcode. ionic kan dan 'n Xcode -projek stoor wat u in Xcode kan oopmaak en vir u telefoon kan bou. As u nie 'n iOS -ontwikkelaarrekening het nie, moet u u telefoon aan Xcode koppel en u telefoon instel vir ontwikkeling om die program daar te kan installeer. Dit is buite die omvang van hierdie instruksies.

In die verskillende js -lêers moet u die lyne vind wat ooreenstem met "car2.png" en "start.png" en dit verander met die pad van u beelde. Dieselfde geld vir "plan.json".

Dis dit!!

Stap 5: Toekomstige werk

1) Ek het alles in 'n kartondoos gesit wat ek oral naby die usb -uitlaat kan wegsteek. Die beste ding om te doen is om 'n beter omhulsel onder die enjinkap van die motor te monteer, met 'n 12v-> 5v-omskakelaar.

2) Met 'n bluetooth -sensor kan u eintlik 'voel' as u in die motor is, sodat die GPS -stelsel nie aanskakel nie.

3) Betaal net vir 'n sim-data-plan en stel SECONDS op 1 om super-intydse opsporing te geniet:)

Hoop jy het hierdie eerste instruksies van my geniet!

Aanbeveel: