Innehållsförteckning:

Komplett Arduino-baserat fordons GPS+GPRS stöldskyddssystem: 5 steg (med bilder)
Komplett Arduino-baserat fordons GPS+GPRS stöldskyddssystem: 5 steg (med bilder)

Video: Komplett Arduino-baserat fordons GPS+GPRS stöldskyddssystem: 5 steg (med bilder)

Video: Komplett Arduino-baserat fordons GPS+GPRS stöldskyddssystem: 5 steg (med bilder)
Video: Prellböcke, Details und Zukunft 2022 Youtube - H0 Märklin Modellbahn Anlage Neuigkeiten aus Fredhavn 2024, Juli
Anonim
Image
Image
Hårdvaran
Hårdvaran

Hej allihopa!

Jag ville bygga en komplett lösning för en GPS-stöldskydd, vilket skulle vara:

så billigt som möjligt

så komplett som möjligt

som det-bara-fungerar-det finns-inget-annat-att-göra som möjligt

Så jag slutade bygga en Arduino-baserad lösning som kostade mig totalt 25 $, mer eller mindre.

Som du kan se från videon fungerar det bara! Du startar bilen, du får ett meddelande på din mobiltelefon om att bilen rör sig, sedan öppnar du mobilappen och du kan se bilen röra sig i realtid (med 10 sekunders uppdateringsfördröjning).

Denna handledning guidar dig genom alla steg, med tanke på att det finns flera komponenter i lösningen:

1) hårdvaran (Arduino -baserad)

2) programvaran (Arduino -programmet)

3) mer programvara (mottagning av gps-platser på serversidan)

4) ännu mer programvara (mobilappen)

Låt oss börja..

Steg 1: Hårdvaran

Hårdvaran
Hårdvaran

Inköpslista:

1) Arduino Uno R3 eller klon. Jag använde "DCcEle DCcduino uno" -klonen, som inte verkar vara tillgänglig längre. Här är en motsvarighet: på Aliexpress - 3,75 $

2) GPS-enhet för Arduino (GY-NEO6MV2 ny GPS-modul med Flight Control Flight Control EEPROM MWC APM2.5 stor antenn NEO6MV2). Jag använde detta: på Aliexpress - 6,66 $

3) GPRS / GSM-enhet för Arduino (SIM800L V2.0 5V Wireless GSM GPRS MODULE Quad-Band W / Antenna Cable Cap). Jag använde detta: på Aliexpress - 6,71 $

4) Reservdupontkablar som dessa: på Aliexpress - 0,89 $

5) IoT -datakort (eller något annat simkort med en dataanslutning). Jag använde detta: från Hologram.io. Jag har en gratis utvecklare, bara betald frakt - 7,50 $

Totalt: 25,51 $, men jag hade kablarna redan så det är mindre än 25 $!

De två bilderna visar komponenterna före montering och slutprodukten. Anslutningarna du måste göra är:

Arduino - SIM800L

10 - ÅTERSTÄLL

GND - GND (2 av dem)

5v - 5v

7 - SIM_TXD

8 - SIM_RXD

Arduino-GY-NEO6MV2

GND - GND

5v - VCC

3 - RX

4 - TX

Anslut alla kablar och antenner och se till att du sätter på Arduino från en källa som kan ge dig 2A -toppar. Datorn usb är knappt bra (jag använder en MacBook Pro), en "slumpmässig" telefonladdare räcker inte. De flesta bilar usb -uttag är också mindre än 1A. Om så är fallet behöver du också en 12v bil 5v strömförsörjning med minst 2A.

Sätt i SIM -kortet. Om du använder Hologram.io -simkortet, se till att du registrerar dig på deras instrumentpanel och aktiverar sim -kortet (det tar några minuter / timmar).

Steg 2: Programvaran (Arduino -programmet)

Programvaran (Arduino -programmet)
Programvaran (Arduino -programmet)

Jag antar att du är bekant med Arduino -programmering. Annars kan du börja med den här guiden: Instructables.

Du behöver bara ett externt bibliotek, jag var tvungen att installera det manuellt. Gå hit: TinyGPS, exportera biblioteket och installera det i din lokala Arduino -mapp.

Därifrån kommer vi att "stjäla" någon kod från deras grundläggande exempel och ändra den till våra syften.

Vi kommer sedan att "stjäla" från den här guiden och ändra koden igen till våra syften.

Resultatet är det bifogade.ino -programmet.

Det finns ett par saker du kan och måste justera:

"SECONDS" definierar och "SERVER" definierar.

Jag har satt SECONDS till 10 och här är anledningen: Hologram.io utvecklarprogram ger dig 1 MB gratis data per månad. Vilket innebär att vi vill minimera de byte som skickas, men vi måste också uppdatera vår position så ofta. Vi kommer att använda standard AT -modemkommandon för att skicka UDP -paket till vår server som tar emot meddelandena, med lat/lon, var och en använder 4 byte och hastighet med 1 byte. Så den totala gps -uppdateringen är 20 byte (IP -huvud) plus 8 byte (UDP -huvud) plus 9 byte (nyttolast). Det är 37 byte. Förutsatt att min bil är aktiv högst 2 timmar per dag, har jag råd med en uppdatering var tionde sekund och förbrukar bara 806kb i månaden (31 dagar). Det ger mig 218kb för körtiden över min egen, det vill säga biltjuven. Vilket ger mig 16,76 timmars GPS -övervakning utanför min körtid, med en uppdatering var 10: e sekund.

Nu måste dessa UDP -paket gå någonstans. Jag använder en Ubuntu -server som är värd på ett CloudAtCost -moln, som jag köpte för 8 $ med 80% rabatt, och som tjänar mig andra syften, går därför inte in i kostnadsberäkningarna. Om du inte vill betala för en server kan du få en gratis Amazon AWS -instans för 12 månader och installera Ubuntu på den. När du har konfigurerat din server (se nästa steg) får du den statiska IP -adressen och lägger den bredvid SERVER -definieringen.

Steg 3: Mer programvara (mottagning av GPS-platser på serversidan)

Både CloudAtCost och Amazon har en förkonfigurerad Ubuntu-bild (CloudAtCost finns på Ubuntu 14.04). Så jag går inte igenom stegen för att installera Ubuntu, eftersom du inte behöver. Om du använder CloudAtCost kanske du vill uppgradera till Ubuntu 16.04, det är gjort med en

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

Då måste du installera LAMP (se den här guiden: här), även om vi inte kommer att använda PHP.

Installera Python med

sudo apt-get install python-minimal pip

Lägg sedan till ett par moduler:

pip install -användare urllib3 -förfrågningar

Vi måste ställa in /var /www skrivbara av dig, så låt oss göra:

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

sudo chmod -R g+rwX /var /www

Nu behöver vi en "server" för att i) ta emot UDP -paketen, ii) bygga spåret, iii) skicka ett meddelande till vår mobiltelefon och en "server" för att betjäna det skapade GPS -spåret (detta blir apache).

För den första servern, kopiera den bifogade pythonkoden. Du måste konfigurera följande saker:

iftttuser = "DIN IFTTT -ANVÄNDARE"

iftttpass = "DITT IFTTT LÖSENORD"

iftttappletid = "DIN IFTTT MEDDELANDE APPLET"

iftttkey = "DIN IFTTT -nyckel"

iftttevent = "DITT IFTTT EVENT"

Som du kanske har gissat använder vi IFTTT för att servera aviseringar i realtid till våra mobiltelefoner. Följ den här guiden: här men istället för att välja "skicka mig ett sms", välj "skicka en appavisering". Skaffa ditt applet -ID (bläddra längst ned i appletens konfiguration för att se det) och använd det ovan. Använd också den så skapade nyckeln i inställningarna ovan. IFTTT -händelsen är namnet du gav till din applet, jag gav den "carmoving".

Nu finns det inga realtidsanmälningsplattformar i realtid gratis, AFAIK. Om du känner till en så säg till. IFTTT har en fördröjning. Denna fördröjning kan minimeras till några sekunder om du använder e -postutlösaren. Tyvärr är detta inte tillförlitligt. Den just skapade webhooken har en 15 minuters fördröjning. Men vi vill inte vänta i 15 minuter för att veta att vår bil blir stulen, eller hur? Det är lösenordet för att be dig att konfigurera alla ovanstående inställningar. Om du bläddrar i pythonkoden ser du att det finns några rader, nämligen 45-53, för att automatisera "kontrollera nu" -funktionen för IFTTT, vilket tvingar till en plötslig kontroll av utlösarna och utlöser meddelandet på mindre än 1 sekund! Varsågod:)

När du har konfigurerat din pythonkod någonstans, kör den bara. Om du är en pro -användare, låt den starta vid serverstart. Se massor av gratis guider online om hur du gör det, till exempel den här.

Steg 4: Ännu mer programvara (mobilappen)

Ännu mer programvara (mobilappen)
Ännu mer programvara (mobilappen)
Ännu mer programvara (mobilappen)
Ännu mer programvara (mobilappen)
Ännu mer programvara (mobilappen)
Ännu mer programvara (mobilappen)
Ännu mer programvara (mobilappen)
Ännu mer programvara (mobilappen)

Vi behöver ett snabbt och enkelt sätt att bara visualisera GPS -spåret som servern i föregående steg håller uppdaterad. Möjligen måste det fungera på alla typer av smartphones.

Låt oss sedan använda en plattformsoberoende mobilappsvit, som Ionic/Cordova. Jag använder Ionic v1, blanda inte ihop det med Ionic Native eller Ionic v2, det är en annan sak.

Följ dessa mycket enkla steg för att starta ditt första projekt i joniska: här.

Sedan måste du starta ett nytt projekt baserat på google maps sdk, så här:

joniska start myapp -kartor

Gå till mappen "resurser" och kopiera den stora bilbilden här som "icon.png". Ladda upp istället de små ikonerna som "car2.png" och "start.png" någonstans på din server, som https://yourserver/car2.png. Du kommer att behöva dessa som markörer i din app.

Använd bifogade index.html (byt namn på index.html.txt till index.html), directives.js och controllers.js -filer och lägg dem i www (index.html), www/js (alla js).

lägg till din plattform så här:

jonisk add plaftorm android

bygga så här:

joniskt bygge android

då kommer ionic att berätta var den byggde din.apk som du kan installera på din mobiltelefon.

För att bygga för iOS behöver du en Mac och Xcode. ionic kan sedan spara ett Xcode -projekt som du kan öppna i Xcode och bygga för din telefon. Om du inte har ett iOS -utvecklarkonto måste du sedan koppla din telefon till Xcode och konfigurera telefonen för utveckling för att kunna installera appen där. Detta ligger utanför ramen för denna instruerbara.

I de olika js -filerna måste du hitta raderna som motsvarar "car2.png" och "start.png" och ändra dem med sökvägen till dina bilder. Samma för "plan.json".

Det är allt!!

Steg 5: Framtidsarbete

1) Jag har lagt allt i en kartong som jag kan dölja var som helst nära usb -uttaget. Det bästa du skulle göra är att montera ett bättre fodral under bilens huva, med en 12v-> 5v-omvandlare.

2) Med en bluetooth -sensor kan du faktiskt "känna" om du sitter i bilen, så att gps -systemet inte slås på.

3) Betala bara för en simdataplan och ställ in SECONDS till 1 för att njuta av spårning i realtid:)

Hoppas du gillade den här första instruerbara av mig!

Rekommenderad: