Innholdsfortegnelse:

Komplett Arduino-basert kjøretøy GPS+GPRS tyverisikringssystem: 5 trinn (med bilder)
Komplett Arduino-basert kjøretøy GPS+GPRS tyverisikringssystem: 5 trinn (med bilder)

Video: Komplett Arduino-basert kjøretøy GPS+GPRS tyverisikringssystem: 5 trinn (med bilder)

Video: Komplett Arduino-basert kjøretøy GPS+GPRS tyverisikringssystem: 5 trinn (med bilder)
Video: Lesson 77: Using VL53L0X 200cm Laser Distance Sensor | Arduino Step By Step Course 2024, November
Anonim
Image
Image
Maskinvaren
Maskinvaren

Hei alle sammen!

Jeg ønsket å bygge en komplett løsning for en tyverisikringsenhet for GPS-kjøretøyer, som ville være:

så billig som mulig

så komplett som mulig

som det-bare-fungerer-det er-ingenting-annet-å-gjøre som mulig

Så jeg endte opp med å bygge en Arduino-basert løsning som kostet meg totalt 25 $, mer eller mindre.

Som du kan se fra videoen, fungerer det bare! Du starter bilen, du får et varsel på mobiltelefonen om at bilen beveger seg, så åpner du mobilappen og du kan se bilen bevege seg i sanntid (med 10 sekunders oppdateringsforsinkelse).

Denne opplæringen vil guide deg gjennom alle trinnene, og husk at det er flere komponenter i løsningen:

1) maskinvaren (Arduino -basert)

2) programvaren (Arduino -programmet)

3) mer programvare (servermottak av GPS-stedene)

4) enda mer programvare (mobilappen)

La oss begynne..

Trinn 1: Maskinvaren

Maskinvaren
Maskinvaren

Handleliste:

1) Arduino Uno R3 eller klon. Jeg brukte klonen "DCcEle DCcduino uno", som ikke ser ut til å være tilgjengelig lenger. Her er en ekvivalent: på Aliexpress - 3,75 $

2) GPS-enhet for Arduino (GY-NEO6MV2 ny GPS-modul med Flight Control Flight Control EEPROM MWC APM2.5 stor antenne NEO6MV2). Jeg brukte dette: på Aliexpress - 6,66 $

3) GPRS / GSM-enhet for Arduino (SIM800L V2.0 5V Trådløs GSM GPRS-MODUL Quad-Band W / antenne kabeldeksel). Jeg brukte dette: på Aliexpress - 6,71 $

4) Reserve dupont -kabler som disse: på Aliexpress - 0,89 $

5) IoT data sim -kort (eller et annet simkort med datatilkobling). Jeg brukte dette: fra Hologram.io. Jeg har en gratis utvikler, bare betalt frakt - 7,50 $

Totalt: 25,51 $, men jeg hadde kablene allerede, så det er mindre enn 25 $!

De to bildene viser komponentene før montering, og sluttproduktet. Tilkoblingene du må gjøre er:

Arduino - SIM800L

10 - NULLSTILL

GND - GND (2 av dem)

5v - 5v

7 - SIM_TXD

8 - SIM_RXD

Arduino-GY-NEO6MV2

GND - GND

5v - VCC

3 - RX

4 - TX

Koble til alle kabler og antenner, og sørg for at du slår på Arduino fra en kilde som kan gi deg topper på 2A. Datamaskinen usb er knapt fin (jeg bruker en MacBook Pro), en "tilfeldig" telefonlader vil ikke være nok. De fleste usb -uttak for biler er også mindre enn 1A. Hvis det er ditt tilfelle, trenger du også en 12v bil 5v strømforsyning med minst 2A.

Sett inn sim -kortet. Hvis du bruker Hologram.io -simkortet, må du registrere deg på dashbordet og aktivere sim -kortet (det tar noen minutter / timer).

Trinn 2: Programvaren (Arduino -programmet)

Programvaren (Arduino -programmet)
Programvaren (Arduino -programmet)

Jeg kommer til å anta at du er kjent med Arduino -programmering. Ellers kan du begynne med denne veiledningen: om instrukser.

Du trenger bare ett eksternt bibliotek, jeg måtte installere det manuelt. Gå hit: TinyGPS, eksporter biblioteket og installer det i din lokale Arduino -mappe.

Derfra skal vi "stjele" noen kode fra deres grunneksempel, og endre den til våre formål.

Vi skal deretter "stjele" fra denne guiden og endre koden igjen til våre formål.

Resultatet er det vedlagte.ino -programmet.

Det er et par ting du kan og MÅ justere:

"SECONDS" definerer, og "SERVER" definerer.

Jeg har satt SECONDS til 10, og her er grunnen: Hologram.io utviklerprogram gir deg 1 MB gratis data per måned. Det betyr at vi ønsker å minimere bytes som er sendt, men vi må også oppdatere posisjonen vår så ofte. Vi skal bruke standard AT -modemkommandoer til å sende UDP -pakker til serveren vår som mottar meldingene, med lat/lon, hver bruker 4 byte, og hastigheten bruker 1 byte. Så den totale GPS -oppdateringen er 20 byte (IP -topptekst) pluss 8 byte (UDP -topptekst) pluss 9 byte (nyttelast). Det er 37 byte. Forutsatt at bilen min er aktiv ikke mer enn 2 timer per dag, har jeg råd til en oppdatering hvert 10. sekund og bruker bare 806 kb i måneden (31 dager). Det gir meg 218 kb for kjøretiden over min egen, det vil si biltyven. Noe som gir meg 16,76 timers GPS -overvåking utenfor kjøretiden min, med en oppdatering hvert 10. sekund.

Nå må disse UDP -pakkene gå et sted. Jeg bruker en Ubuntu -server som er vert på en CloudAtCost -sky, som jeg kjøpte for 8 $ med 80% rabatt, og som tjener meg andre formål, og går derfor ikke inn i kostnadsberegningene. Hvis du ikke vil betale for en server, kan du få en gratis Amazon AWS -forekomst i 12 måneder, og installere Ubuntu på den. Når du har konfigurert serveren din (se neste trinn), får du den statiske IP -adressen og legger den ved siden av SERVER -definisjonen.

Trinn 3: Mer programvare (servermottak av GPS-stedene)

Både CloudAtCost og Amazon kommer med et forhåndskonfigurert Ubuntu-bilde (CloudAtCost er på Ubuntu 14.04). Så jeg går ikke gjennom trinnene for å installere Ubuntu, da du ikke trenger det. Hvis du bruker CloudAtCost, kan det være lurt å oppgradere til Ubuntu 16.04, det er gjort med en

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

Deretter må du installere LAMP (se denne guiden: her), selv om vi ikke kommer til å bruke PHP.

Installer Python med

sudo apt-get install python-minimal pip

Legg deretter til et par moduler:

pip install --user urllib3 forespørsler

Vi må angi /var /www som kan skrives av deg, så la oss gjøre:

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

sudo chmod -R g+rwX /var /www

Nå trenger vi en "server" for å i) motta UDP -pakkene, ii) bygge sporet, iii) sende et varsel til mobiltelefonen vår, og en "server" for å betjene det opprettede GPS -sporet (dette blir apache).

For den første serveren, kopier den vedlagte pythonkoden. Du må konfigurere følgende ting:

iftttuser = "DIN IFTTT -BRUKER"

iftttpass = "DITT IFTTT PASSORD"

iftttappletid = "DIN IFTTT MELDINGSAPPLETT"

iftttkey = "DIN IFTTT -NØKKEL"

iftttevent = "DIN IFTTT EVENT"

Som du kanskje har gjettet, bruker vi IFTTT til å varsle sanntidsvarsler til mobiltelefonene våre. Følg denne veiledningen: her, men i stedet for å velge "send meg en sms", velg "send en appvarsel". Skaff deg applet -ID -en din (bla nederst i applets konfigurasjon for å se den) og bruk den ovenfor. Bruk også den så opprettede nøkkelen i innstillingene ovenfor. IFTTT -hendelsen er navnet du ga til appleten din, jeg ga den "carmoving".

Nå er det ingen varslingsplattformer i sanntid gratis, AFAIK. Hvis du vet om en, gi meg beskjed. IFTTT har en forsinkelse. Denne forsinkelsen kan minimeres til noen få sekunder hvis du bruker e -postutløseren. Dessverre er dette ikke pålitelig. Den nettopp opprettede webhooken har en forsinkelse på 15 minutter. Men vi vil ikke vente i 15 minutter for å vite at bilen vår blir stjålet, ikke sant? Det er passordet for å be deg om å konfigurere alle innstillingene ovenfor. Hvis du blar i python-koden, ser du at det er noen få linjer, nemlig 45-53, for å automatisere "sjekk nå" -funksjonaliteten til IFTTT, noe som tvinger til en plutselig kontroll av utløserne og utløser varselet på mindre enn 1 sekund! Værsågod:)

Når du har konfigurert python -koden et sted, bare kjør den. Hvis du er en pro -bruker, må du starte den ved oppstart av serveren. Se tonnevis med gratis guider på nettet om hvordan du gjør det, for eksempel denne.

Trinn 4: Enda mer programvare (mobilappen)

Enda mer programvare (mobilappen)
Enda mer programvare (mobilappen)
Enda mer programvare (mobilappen)
Enda mer programvare (mobilappen)
Enda mer programvare (mobilappen)
Enda mer programvare (mobilappen)
Enda mer programvare (mobilappen)
Enda mer programvare (mobilappen)

Vi trenger en rask og enkel måte å bare visualisere GPS -sporet som serveren på forrige trinn holder seg oppdatert. Mulig det må fungere på alle slags smarttelefoner.

La oss deretter bruke en mobilapp-pakke på tvers av plattformer, som Ionic/Cordova. Jeg bruker Ionic v1, ikke forveksle det med Ionic Native eller Ionic v2, det er en annen ting.

Følg disse veldig enkle trinnene for å starte ditt første prosjekt i Ionic: her.

Deretter må du starte et nytt prosjekt basert på google maps sdk, slik:

ionisk start myapp -kart

Gå inn i "ressurser" -mappen og kopier det store bilbildet her som "icon.png". Last opp de små ikonene i stedet som "car2.png" og "start.png" et sted på serveren din, for eksempel https://yourserver/car2.png. Du kommer til å trenge disse som markører i appen din.

Bruk vedlagte index.html (gi nytt navn til index.html.txt til index.html), directives.js og controllers.js -filer, og legg dem inn i www (index.html), www/js (alle js).

legg til plattformen din slik:

ionic add plaftorm android

bygge slik:

ionisk bygge android

da vil ionic fortelle deg hvor den.apk bygde den som du kan installere på mobiltelefonen.

For å bygge for iOS trenger du en Mac og Xcode. ionic kan deretter lagre et Xcode -prosjekt, som du kan åpne i Xcode og bygge for telefonen. Hvis du ikke har en iOS -utviklerkonto, må du deretter koble telefonen til Xcode og konfigurere telefonen for utvikling for å kunne installere appen der. Dette er utenfor omfanget av denne instruksen.

I de forskjellige js -filene må du finne linjene som tilsvarer "car2.png" og "start.png" og endre dem med banen til bildene dine. Samme for "plan.json".

Det er det!!

Trinn 5: Fremtidig arbeid

1) Jeg har lagt alt i en pappeske som jeg kan skjule hvor som helst i nærheten av usb -uttaket. Den beste tingen å gjøre ville være å montere et bedre etui under panseret på bilen, med en 12v-> 5v omformer.

2) Med en bluetooth -sensor kan du faktisk "føle" om du er i bilen, slik at gps -systemet ikke slås på.

3) Bare betal for en sim-dataplan og sett SECONDS til 1 for å nyte sporing i sanntid:)

Håper du likte denne første instruksen min!

Anbefalt: