Innehållsförteckning:

Hemlagad GPS-tracker i realtid (SIM800L, Ublox NEO-6M, Arduino): 8 steg
Hemlagad GPS-tracker i realtid (SIM800L, Ublox NEO-6M, Arduino): 8 steg

Video: Hemlagad GPS-tracker i realtid (SIM800L, Ublox NEO-6M, Arduino): 8 steg

Video: Hemlagad GPS-tracker i realtid (SIM800L, Ublox NEO-6M, Arduino): 8 steg
Video: Product Link in Comments ▶️ Mini Portable Magnetic GPS Tracker 2024, Juli
Anonim
Hemlagad GPS-tracker i realtid (SIM800L, Ublox NEO-6M, Arduino)
Hemlagad GPS-tracker i realtid (SIM800L, Ublox NEO-6M, Arduino)

Så du har en GSM -modul som ligger som jag? Även en GPS-tracker?

Vi tycker detsamma!

I dessa instruktioner kommer jag att försöka vägleda dig hur du uppnår ditt mål från en nybörjars perspektiv.

Eftersom jag inte hade någon tidigare elteknisk kunskap (för att vara ärlig behöver projektet inte så mycket, men nej) och hade ingen aning om hur jag skulle göra en enhet som pumpar data i realtid till en webbserver, stötte jag på många problem. Ändå lyckades jag så småningom få saker att fungera.

Så i den här självstudien vill jag betona de misstag en starter kan göra och bygga upp projektet därefter.

Kom ihåg: Var alltid försiktig när du arbetar med el!

OBS: Jag är inte professionell. Koden är kanske inte tillräckligt sofistikerad för alla dina behov. Projektet är tänkt att vara ett "hobbyprojekt", men! det fungerade för mig. Och om det fungerade för mig, skulle det fungera för dig också!

Steg 1: Förkunskaper

Förkunskaper
Förkunskaper
Förkunskaper
Förkunskaper
Förkunskaper
Förkunskaper

GSM -MODUL - SIM800L

  • Ganska liten, lättanvänd
  • Kan använda mobilt internet (GPRS)
  • Billig

GPS -MODUL - Ublox NEO6M

  • Också liten
  • Hanterar sitt jobb mycket bra

En mikrokontroller - kan vara vad som helst - du kan använda den berömda Arduino Uno eller Nano för att frigöra lite utrymme

Batteri - jag använde en 18650 -cell som huvud- och enda strömkälla (nominell 3,7V)

Batterihållare - varför? - eftersom lödning av ett 18650 -batteri är ganska farligt på grund av värmen.

DC -DC Boost Converter Step Up Module 5V - Måste ha, eftersom Arduino jag använde behöver 5V

Verktyg, grundläggande saker som kan komma till nytta:

Trådar, lödkolv, brödbräda för testning

Steg 2: Huvudkoncept

Huvudkoncept
Huvudkoncept

Systemets huvudkoncept är följande:

Den består av 3 delar:

  1. En enhet - som har rätt GPS -koordinater och kan ansluta till en server på distans och skicka data till den
  2. En webbserver - som kan ta emot inkommande data - lagra den - och betjäna andra klienter
  3. Plattformen - där vi kan se koordinaterna - Helst ska det nu vara en mobilapplikation eller en webbplats

Steg 3: SIM800L -modulen

SIM800L -modulen
SIM800L -modulen
SIM800L -modulen
SIM800L -modulen

Jag hade det svårt med modulen.

Jag skulle vilja börja med några egenskaper och referenser.

Enligt databladet:

  • Den fungerar mellan 3,4V - 4,4V
  • Den kan skicka SMS, ringa röstsamtal till andra telefoner och till och med ansluta till Internet!
  • Vi kan kommunicera med det via AT-kommandon!
  • Den kan använda upp till 2A vid högtider! Obs: du kommer förmodligen inte att kunna mäta den med en multimeter - på grund av dess låga samplingshastigheter

Min erfarenhet är att SIM800L under 3,8V inte riktigt fungerar.

För mer information besök: datablad

Så ditt jobb är att ge minst 3,8V till modulen (helst 4V), en strömförsörjning som matar ut minst 2A.

Innan du använder modulen i den slutliga enheten föreslår jag att du upprättar kommunikation med din SIM800L och din dator för att se till att din enhet fungerar korrekt.

Först och främst, anslut SIM -kortet som på bilden ovan.

För att ansluta den till din dator kan du använda en USB till TTL -omvandlare eller en Arduino.

Nu går jag med Arduino.

Anslut SIM800L VCC och GND till dina strömkällans terminaler.

Anslut TX till Arduino 10th digital pin, RX to arduino 11th digital pin.

Ladda ner koden, jag länkade i det här steget.

Med koden kan du skicka kommandon och få tillbaka dem på din seriella bildskärm.

Några enkla kommandon:

AT Returnerar OK om anslutningen är OK.

ATD+123456789; Ring ett givet telefonnummer. Obs: Glöm inte att avsluta det med ett semikolon.

AT+CPIN? Returnerar SIM -kortets status (låst eller inte)

Om du vill skicka ett SMS måste du avsluta inmatningen med ett specialtecken, det kan göras med "$" -symbolen.

För ytterligare intressanta kommandon föreslår jag att du läser detta.

Det finns olika kommandon, bekanta dig med dem, de är verkligen användbara.

Det finns en röd status -LED som visar vilken funktion SIM800L är i.

64 MS ON - 800MS OFF - SIM800L är inte registrerat i nätverket.

64 MS ON - 3000MS OFF - SIM800L är registrerat i nätverket.

64 MS ON - 300MS OFF - SIM800l är i GPRS -läge

Om SIM800L fortsätter att starta om efter cirka 8-10 blinkningar kan det bero på brist på effektiv strömförsörjning.

Om du inte blir OK efter AT, kontrollera kabeldragning! Om du har en multimeter, kontrollera trådernas kontinuitet.

Kontrollera anslutningarna mellan ledningar och lödfogar! Modulen fungerar bara när den blinkar.

Steg 4: Ublox Neo 6m

Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m

Några egenskaper

  • Maximal spänning: 3,6V - Jag drev den med Arduinos 3,3V -stift
  • Max strömförbrukning är 67mA - så att du kan driva den från arduino
  • Temperaturområde: -40-85 Celsius (jag antar att det passar dig)

Enheten jag beställde kom med en antenn på bilden, jag kopplar bara in den i motsvarande kortplats.

Enheten blinkar med blå lysdiod när den har signaler.

Kontrollera först hur en GPS fungerar här, om du inte vet.

När enheten är på och hittar 3 satelliter skickar den många kommaseparerade värden till Arduino som ovan.

För att hjälpa vårt jobb kan vi använda några externa libararies för att analysera dessa data för att vara mer mänskligt läsbara.

Du kan använda TinyGps -biblioteket eller NeoGPS -biblioteket. Jag använde den andra eftersom den är mer lätt.

För testning måste du ansluta strömstiften till arduino 3.3V och GND.

Ladda ner den här koden och använd den med din GPS. RX Digital pin 10, TX Digital pin 11

Obs: Glöm inte att använda modulen utomhus, helst när det inte finns något moln.

Efter en halv minut ska enheten blinka och mata ut dina GPS -koordinater!:)

När du väl vet att din SIM800L och GPS -modul fungerar korrekt kan du gå vidare till nästa steg.

Steg 5: Kretsar

Kretsar
Kretsar

Kretsen är som på bilden.

Så 3,4V - 4,2V 18650 -batteriet är huvudströmkällan. Sim800L får energin direkt från den. Det finns en kondensator mellan dem i paralell för att förbättra kretsens stabilitet.

När du väljer en kondensator bör du välja en låg ESR -kapacitet.

En 5V stegomvandlare ökar batteriets spänning till 5V (ir behövs eftersom Arduino fungerar med 5V).

5V -kraftskenan är ansluten till Nano här. Sim800L och Neo6m är anslutna till Nano som på bilden. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 är ansluten till RST, så vi kan programmatiskt starta om systemet (utom SIM800L). OBS: Denna omstartsmetod kanske inte är den bästa praxisen)

Och slutligen är två lysdioder anslutna till NANO, så att vi kan berätta för användaren om något fel uppstår.

Steg 6: Kod

Koden är bifogad till Instructables eller ta en titt på github.

Du kan ändra den för att fungera korrekt för dina behov, eller så kan du använda andras kod om du vill.

waitUntilResponse (); hjälpfunktionen togs från hans kod. Kontrollera hans arbete och koda också!

Kort sagt, i installationsfunktionen måste vi aktivera GPRS -anslutningen för vår SIM800L -modul. Vi vet om det är framgångsrikt om lysdioden blinkar snabbt. (setupGPRSConnection ())

I loop -funktionen - var 15: e sekund kallas funktionen sendData () - som har HTTP -begäran

Jag använde frågesträngar för att överföra data till webbservern i det här formatet:

ip adress/file.php? key = value & key = value t.ex.

Om något fel inträffar tänds motsvarande lysdiod. (SIM, GPS)

Steg 7: Webbserver

Webbserver
Webbserver

För vår användning räcker det med en enkel lätt webbserver.

Det finns några alternativ du kan välja mellan:

  1. Du kan använda en fjärrserver för ett företag, som du förmodligen måste betala för regelbundet.
  2. Du kan använda din egen dator. Jag föreslår det bara för testning, det är inte riktigt effektivt att köra det 24/7, på grund av energislöseri, säkerhetsfrågor.
  3. Du kan använda en liten dator, som Raspberry PI. Lätt, billig, förbrukar inte mycket kraft.

Jag försökte det andra och tredje alternativet, de fungerade bra. Tja, det huvudsakliga syftet är inte servrar för dessa instruktörer, men jag tipsar dig om några råd.

Om du använder en dator använder du förmodligen Windows. Om jag var du skulle jag installera en Apache- eller XAMPP -server på den.

XAMPP har redan PHP i det, förutom att det också kommer med HTML, Perl och ett databashanteringssystem. Med PHP kan du skapa en dynamisk server. Om du vill använda den lokala servern du just har skapat var som helst i världen måste du tilldela din dator statisk IP och göra några överföringar. En användbar handledning för statisk IP:

Och hela det förmedlande:

Om du har ett hallon är det en bra metod att använda det. Du kan bekanta dig med Linux -kommandon och köra din egen server 24/7.

Operativsystemet var Raspbian Jessie med en huvudlös inställning (inget tangentbord, bildskärm) - jag styrde det med min dator med SSH -anslutning.

Jag använde Putty för att logga in på mitt hallon. Glöm inte att ändra ditt kontos lösenord, så att andra inte kan logga in på dig Pi. Standard är: pi, passw: hallon.

Jag installerade en lighttpd webbserver med sqlite3. Bra handledning finns här:

Jag använde främst PHP i serverkoden. Med PHP kan du ta emot data, läsa/skriva databaser - koda en fråga i ett json -format, etc. … Denna handledning hjälper dig mycket, hur du hanterar din databas med PHP.

Du kan också se min kod på github i mappen server_files.

Och naturligtvis måste du aktivera portforwarding till din Pi på din router, om du vill komma åt det på distans.

Steg 8: Avslutning/erfarenhet

En inhägnad är ännu inte gjord.

Min erfarenhet är att systemet fungerar inte så illa. Men det finns stabilitetsförbättringar som väntar.

Om spåraren inte fungerade med koden jag bifogade, oroa dig inte. Försök att se till att SIM800L och NEO 6M fungerar som de ska. Du kan fritt ändra min kod eller leta efter en bättre kod. Jag hoppas bara att jag kan visa ett exempel på hur du kan slutföra detta projekt.

Jag accepterar alla råd, korrigering från kommentarer. Var inte rädd för att fråga.

Rekommenderad: