Indholdsfortegnelse:

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

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

Video: Hjemmelavet GPS-tracker i realtid (SIM800L, Ublox NEO-6M, Arduino): 8 trin
Video: Как заглушить TV/FM/GSM (часть 1) 2024, Juli
Anonim
Hjemmelavet GPS-tracker i realtid (SIM800L, Ublox NEO-6M, Arduino)
Hjemmelavet GPS-tracker i realtid (SIM800L, Ublox NEO-6M, Arduino)

Så du har et GSM -modul liggende som mig? Også en GPS-tracker?

Vi synes det samme!

I denne instruks vil jeg prøve at guide dig til, hvordan du opnår dit mål fra en nybegynders perspektiv.

Da jeg ikke havde nogen tidligere elektroteknisk viden (for at være ærlig, så behøver projektet ikke så meget, men nej) og havde ingen anelse om, hvordan jeg skulle lave en enhed, der pumper data i realtid til en webserver, stødte jeg på mange problemer. Alligevel lykkedes det mig til sidst at få tingene til at fungere.

Så i denne vejledning vil jeg understrege de fejl, en starter kan lave, og opbygge projektet i overensstemmelse hermed.

Husk: Vær altid forsigtig, mens du arbejder med elektricitet!

BEMÆRK: Jeg er ikke professionel. Koden er muligvis ikke sofistikeret nok til alle dine behov. Projektet er beregnet til at være et "hobbyprojekt", men! det fungerede for mig. Og hvis det fungerede for mig, ville det også fungere for dig!

Trin 1: Forudsætninger

Forudsætninger
Forudsætninger
Forudsætninger
Forudsætninger
Forudsætninger
Forudsætninger

GSM -MODUL - SIM800L

  • Ret lille, let at bruge
  • Kan bruge mobilt internet (GPRS)
  • Billig

GPS -MODUL - Ublox NEO6M

  • Også lille
  • Håndterer sit job meget godt

En mikrokontroller - kan være hvad som helst - du kan bruge den berømte Arduino Uno eller Nano til at frigøre noget plads

Batteri - jeg brugte en 18650 -celle som hoved- og eneste strømkilde (nominel 3,7V)

Batteriholder - hvorfor? - fordi lodning af et 18650 batteri er temmelig farligt på grund af varmen.

DC -DC Boost Converter Step Up Modul 5V - Skal have, da den Arduino jeg brugte har brug for 5V

Værktøjer, grundlæggende ting, der kan komme godt med:

Tråde, loddejern, brødbræt til test

Trin 2: Hovedkoncept

Hovedkoncept
Hovedkoncept

Systemets hovedbegreb er følgende:

Det består af 3 dele:

  1. En enhed - som har de rigtige GPS -koordinater og kan oprette forbindelse til en server eksternt og sende data til den
  2. En webserver - som kan modtage indgående data - gemme den - og betjene andre klienter
  3. Platformen - hvor vi kan se koordinaterne - Ideelt set burde det nu være en mobilapplikation eller et websted

Trin 3: SIM800L -modulet

SIM800L -modulet
SIM800L -modulet
SIM800L -modulet
SIM800L -modulet

Jeg havde det svært med modulet.

Jeg vil gerne starte med nogle karakteristika og referencer.

Ifølge databladet:

  • Den fungerer mellem 3,4V - 4,4V
  • Det kan sende SMS, foretage taleopkald til andre telefoner og endda oprette forbindelse til internettet!
  • Vi kan kommunikere med det via AT-kommandoer!
  • Det kan bruge op til 2A i spidsbelastningstider! Bemærk: du vil sandsynligvis ikke kunne måle det med et multimeter - på grund af dets lave samplingshastigheder

Min erfaring er, at SIM800L under 3,8V ikke rigtig virker.

For yderligere information besøg: datablad

Så dit job er at levere mindst 3,8V til modulet (ideelt set 4V), en strømforsyning, der leverer mindst 2A.

Inden du bruger modulet i den sidste enhed, foreslår jeg, at du etablerer kommunikation med din SIM800L og din computer for at sikre, at din enhed fungerer korrekt.

Første ting først, tilslut SIM -kortet som på billedet ovenfor.

For at forbinde den med din pc kan du bruge en USB til TTL -konverter eller en Arduino.

Nu går jeg med Arduino.

Tilslut SIM800L VCC og GND til dine strømkildeterminaler.

Tilslut TX til Arduino 10. digitale pin, RX til arduino 11. digitale pin.

Download koden, jeg linkede i dette trin.

Med koden kan du sende kommandoer og få dem tilbage på din serielle skærm.

Nogle enkle kommandoer:

AT Returnerer OK, hvis forbindelsen er OK.

ATD+123456789; Ring til et givet telefonnummer. Bemærk: Glem ikke at afslutte det med et semikolon.

AT+CPIN? Returnerer SIM -kortstatus (låst eller ej)

Hvis du vil sende en SMS, skal du afslutte dit input med et specialtegn, det kan gøres med '$' symbolet.

For yderligere interessante kommandoer foreslår jeg, at du læser dette.

Der er forskellige kommandoer, bliv fortrolig med dem, de er virkelig nyttige.

Der er en rød status -LED, der fortæller dig, hvilken funktion SIM800L er i.

64 MS ON - 800MS OFF - SIM800L er ikke registreret på netværket.

64 MS ON - 3000MS OFF - SIM800L er registreret på netværket.

64 MS ON - 300MS OFF - SIM800l er i GPRS -tilstand

Hvis SIM800L fortsætter med at genstarte efter ca. 8-10 blink, kan det skyldes mangel på effektiv strømforsyning.

Hvis du ikke får det godt efter AT, skal du kontrollere ledninger! Hvis du har et multimeter, skal du kontrollere ledningernes kontinuitet.

Kontroller forbindelserne mellem ledninger og loddeforbindelser! Modulet fungerer kun, når det blinker.

Trin 4: Ublox Neo 6m

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

Nogle kendetegn

  • Maksimal spænding: 3,6V - jeg drev den med Arduinos 3,3V pin
  • Maksimal strømforbrug er 67mA - så du kan drive den fra arduino
  • Temperaturområde:: -40-85 Celsius (jeg tror det passer til dig)

Enheden jeg bestilte kom med en antenne set på billedet, jeg sætter den bare i den tilsvarende slot.

Enheden, når den har signaler, blinker med blå LED.

Kontroller først, hvordan en GPS fungerer her, hvis du ikke ved det.

Når enheden er tændt og finder 3 satellitter, sender den en masse kommaseparerede værdier til Arduino som ovenfor.

For at hjælpe vores job kan vi bruge nogle eksterne biblioteker til at analysere disse data for at være mere læselige for mennesker.

Du kan bruge TinyGps -bibliotek eller NeoGPS -bibliotek. Jeg brugte den anden, fordi den er mere let.

Til test skal du slutte strømstifterne til arduino 3.3V og GND.

Download denne kode, og brug den med din GPS. RX Digital pin 10, TX Digital pin 11

Bemærk: Glem ikke at bruge modulet udendørs, helst når der ikke er nogen sky.

Efter et halvt minut skal enheden blinke og udsende dine GPS -koordinater!:)

Når du ved, at dit SIM800L og GPS -modul fungerer korrekt, kan du gå videre til næste trin.

Trin 5: Kredsløb

Kredsløb
Kredsløb

Kredsløbet er som på billedet.

Så batteriet på 3,4V - 4,2V 18650 er hovedstrømkilden. Sim800L får energien direkte fra den. Der er en kondensator imellem dem i parallel for at forbedre kredsløbets stabilitet.

Når du vælger en kondensator, skal du vælge en lav ESR -kapacitet.

En 5V step-up converter øger batteriets spænding til 5V (ir er nødvendig, fordi Arduino arbejder med 5V).

5V power rail er forbundet til Nano her. Sim800L og Neo6m er forbundet med Nano som på billedet. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 er forbundet til RST, så vi er i stand til programatisk at genstarte systemet (undtagen SIM800L). BEMÆRK: Denne genstartmetode er muligvis ikke den bedste praksis)

Og endelig er der tilsluttet to lysdioder til NANO, så vi kan fortælle brugeren, om der sker en fejl.

Trin 6: Kode

Koden er knyttet til Instructables eller tag et kig på github.

Du kan ændre den til at fungere korrekt til dine behov, eller du kan bruge andres kode, hvis du vil.

waitUntilResponse (); hjælperfunktion blev taget fra hans kode. Tjek hans arbejde, og kode også!

I opsætningsfunktionen skal vi kort aktivere GPRS -forbindelsen til vores SIM800L -modul. Vi ved, om det lykkes, hvis LED'en blinker hurtigt. (setupGPRSConnection ())

I loop -funktionen - hvert 15. sekund kaldes sendData () -funktionen - som har HTTP -anmodningen

Jeg brugte forespørgselsstrenge til at skubbe data til webserveren i dette format:

ip adresse/file.php? key = value & key = value f.eks.

Hvis der opstår en fejl, lyser den tilsvarende LED. (SIM, GPS)

Trin 7: Webserver

Webserver
Webserver

Til vores brug er en enkel let webserver nok.

Der er nogle muligheder, du kan vælge imellem:

  1. Du kan bruge en fjernserver til et firma, som du sandsynligvis skal betale for regelmæssigt.
  2. Du kan bruge din egen computer. Jeg foreslår det kun til test, det er ikke rigtig effektivt at køre det 24/7, på grund af energispild, sikkerhedsproblemer.
  3. Du kan bruge en lille computer, som Raspberry PI. Let, billig, bruger ikke meget strøm.

Jeg prøvede den 2. og 3. mulighed, de fungerede godt. Nå, hovedformålet er ikke servere af disse instruktører, men jeg antyder dig nogle råd.

Hvis du bruger en pc, bruger du sandsynligvis Windows. Hvis jeg var dig, ville jeg installere en Apache- eller XAMPP -server på den.

XAMPP har allerede PHP i det, udover at det også kommer med HTML, Perl og et Database Managing System. Med PHP kan du lave en dynamisk server. Hvis du vil bruge den lokale server, du lige har lavet fra hvor som helst i verden, skal du tildele statisk IP til din pc og foretage nogle portforwarding. En nyttig vejledning til statisk IP:

Og det hele med overførsel:

Hvis du har en hindbær, er det en god praksis at bruge den. Du kan blive fortrolig med Linux -kommandoerne og køre din egen server 24/7.

Operativsystemet var Raspbian Jessie med en hovedløs opsætning (intet tastatur, skærm) - jeg kontrollerede det med min computer med SSH -forbindelse.

Jeg brugte Putty til at logge ind på min Hindbær. Glem ikke at ændre din kontos adgangskode, så andre ikke kan logge ind på dig Pi. Standard er: pi, passw: hindbær.

Jeg installerede en lighttpd webserver med sqlite3. God vejledning findes her:

Jeg brugte hovedsageligt PHP i serverkoden. Med PHP kan du modtage data, læse/skrive databaser - kode en forespørgsel i et json -format osv. … Denne vejledning hjælper dig meget, hvordan du administrerer din database med PHP.

Du kan også se min kode på github i mappen server_files.

Og selvfølgelig skal du aktivere portoverførsel til din Pi på din router, hvis du vil have adgang til det eksternt.

Trin 8: Afslutning/oplevelse

Et kabinet mangler endnu.

Min erfaring er, at systemet fungerer ikke så dårligt. Men der venter stabilitetsforbedringer.

Hvis trackeren ikke fungerede med den kode, jeg vedhæftede, skal du ikke bekymre dig. Prøv at sikre, at SIM800L og NEO 6M fungerer, som de skal. Du kan frit ændre min kode eller lede efter en bedre kode. Jeg håber bare, at jeg kunne vise dig et eksempel, hvordan du kan gennemføre dette projekt.

Jeg accepterer alle råd, rettelser fra kommentarer. Spørg endelig.

Anbefalede: