Innholdsfortegnelse:

Hjemmelaget sanntids GPS-tracker (SIM800L, Ublox NEO-6M, Arduino): 8 trinn
Hjemmelaget sanntids GPS-tracker (SIM800L, Ublox NEO-6M, Arduino): 8 trinn

Video: Hjemmelaget sanntids GPS-tracker (SIM800L, Ublox NEO-6M, Arduino): 8 trinn

Video: Hjemmelaget sanntids GPS-tracker (SIM800L, Ublox NEO-6M, Arduino): 8 trinn
Video: 🚀 RUTUBE и ТОЧКА. Разработка РУТУБА за 5 часов *БЕЗ ВОДЫ* [Next / React / Nest / PostgreSQL / Redux] 2024, Juli
Anonim
Hjemmelaget GPS-tracker i sanntid (SIM800L, Ublox NEO-6M, Arduino)
Hjemmelaget GPS-tracker i sanntid (SIM800L, Ublox NEO-6M, Arduino)

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

Vi tenker det samme!

I denne instruksen vil jeg prøve å veilede deg hvordan du oppnår målet ditt fra en nybegynners perspektiv.

Ettersom jeg ikke hadde noen tidligere kunnskap om elektroteknikk (for å være ærlig, trenger prosjektet ikke så mye, men nei), og jeg hadde ingen anelse om hvordan jeg skulle lage en enhet som pumper data i sanntid til en webserver, støtte jeg på mange problemer. Likevel klarte jeg etter hvert å få ting til å fungere.

Så i denne opplæringen vil jeg understreke feilene en starter kan gjøre, og bygge opp prosjektet deretter.

Husk: Vær alltid forsiktig mens du arbeider med strøm!

MERK: Jeg er ikke profesjonell. Koden er kanskje ikke sofistikert nok til alle dine behov. Prosjektet er ment å være et "hobbyprosjekt", men! det fungerte for meg. Og hvis det fungerte for meg, ville det fungere for deg også!

Trinn 1: Forutsetninger

Forutsetninger
Forutsetninger
Forutsetninger
Forutsetninger
Forutsetninger
Forutsetninger

GSM -MODUL - SIM800L

  • Ganske liten, lett å bruke
  • Kan bruke mobilt internett (GPRS)
  • Billig

GPS -MODUL - Ublox NEO6M

  • Også liten
  • Håndterer jobben veldig bra

En mikrokontroller - kan være hva som helst - du kan bruke den berømte Arduino Uno eller Nano til å frigjøre litt plass

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

Batteriholder - hvorfor? - fordi lodding av et 18650 -batteri er ganske farlig på grunn av varmen.

DC -DC Boost Converter Step Up Module 5V - Må ha, siden Arduino jeg brukte trenger 5V

Verktøy, grunnleggende ting som kan komme godt med:

Ledninger, loddejern, brødbrett for testing

Trinn 2: Hovedkonsept

Hovedkonsept
Hovedkonsept

Hovedkonseptet med systemet er følgende:

Den består av 3 deler:

  1. En enhet - som har riktige GPS -koordinater og kan koble til en server eksternt og sende data til den
  2. En webserver - som kan motta innkommende data - lagre den - og betjene andre klienter
  3. Plattformen - hvor vi kan se koordinatene - Ideelt sett burde den nå være en mobilapplikasjon eller et nettsted

Trinn 3: SIM800L -modulen

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

Jeg hadde det vanskelig med modulen.

Jeg vil begynne med noen egenskaper og referanser.

I henhold til databladet:

  • Den fungerer mellom 3,4V - 4,4V
  • Den kan sende SMS, ringe til andre telefoner og til og med koble til Internett!
  • Vi kan kommunisere med det via AT-kommandoer!
  • Den kan bruke opptil 2A i rushtiden! Merk: du vil sannsynligvis ikke kunne måle det med et multimeter - på grunn av de lave samplingshastighetene

Min erfaring er at SIM800L under 3,8V ikke egentlig fungerer.

For ytterligere informasjon besøk: datablad

Så jobben din er å levere minst 3,8V til modulen (ideelt sett 4V), en strømforsyning som gir minst 2A.

Før du bruker modulen i den siste enheten, foreslår jeg at du oppretter kommunikasjon med SIM800L og datamaskinen din for å sikre at enheten fungerer som den skal.

Første ting først, plugg inn SIM -kortet som på bildet ovenfor.

For å koble den til PC -en kan du bruke en USB til TTL -omformer eller en Arduino.

Nå går jeg med Arduino.

Koble SIM800L VCC og GND til strømkildeterminalene.

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

Last ned koden, jeg lenket til i dette trinnet.

Med koden kan du sende kommandoer og få dem tilbake på din serielle skjerm.

Noen enkle kommandoer:

AT Returnerer OK, hvis tilkoblingen er OK.

ATD+123456789; Ring et gitt telefonnummer. Merk: Ikke glem å avslutte det med et semikolon.

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

Hvis du vil sende en SMS, må du avslutte innspillingen med et spesialtegn. Det kan gjøres med '$' -symbolet.

For ytterligere interessante kommandoer foreslår jeg at du leser dette.

Det er forskjellige kommandoer, bli kjent med dem, de er veldig nyttige.

Det er en rød status -LED som forteller deg hvilken operasjon SIM800L er i.

64 MS ON - 800MS OFF - SIM800L er ikke registrert i nettverket.

64 MS ON - 3000MS OFF - SIM800L er registrert i nettverket.

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

Hvis SIM800L fortsetter å starte på nytt etter omtrent 8-10 blink, kan det skyldes mangel på effektiv strømforsyning.

Hvis du ikke får det bra etter AT, sjekk ledningene! Hvis du har et multimeter, må du kontrollere ledningens kontinuitet.

Kontroller tilkoblingene til ledninger og loddeskjøter! Modulen fungerer bare når den blinker.

Trinn 4: Ublox Neo 6m

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

Noen kjennetegn

  • Maksimal spenning: 3,6V - Jeg drev den med Arduinos 3,3V -pin
  • Maksimal strømforbruk er 67mA - så du kan drive den fra arduino
  • Temperaturområde: -40-85 Celsius (jeg antar at den passer deg)

Enheten jeg bestilte kom med en antenne sett på bildet. Jeg plugger den bare inn i det tilhørende sporet.

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

Sjekk først hvordan en GPS fungerer her, hvis du ikke vet det.

Når enheten er på, og finner 3 satellitter, sender den mange komma -separate verdier til Arduino som ovenfor.

For å hjelpe jobben vår kan vi bruke noen eksterne biblioteker til å analysere disse dataene for å være mer leselige for mennesker.

Du kan bruke TinyGps -biblioteket eller NeoGPS -biblioteket. Jeg brukte den andre fordi den er lettere.

For testing må du koble strømpinnene til arduino 3.3V og GND.

Last ned denne koden, og bruk den med din GPS. RX Digital pin 10, TX Digital pin 11

Merk: Ikke glem å bruke modulen utendørs, helst når det ikke er sky.

Etter et halvt minutt skal enheten blinke og sende ut GPS -koordinatene dine!:)

Når du vet at SIM800L og GPS -modulen fungerer tilstrekkelig, kan du gå videre til neste trinn.

Trinn 5: Kretsløp

Kretsløp
Kretsløp

Kretsen er som på bildet.

Så, 3.4V - 4.2V 18650 batteriet er hovedstrømkilden. Sim800L får energien direkte fra den. Det er en kondensator mellom dem i paralell for å forbedre kretsens stabilitet.

Når du velger en kondensator, bør du velge en lav ESR -kapasitet.

En 5V oppgraderingskonverter øker batteriets spenning til 5V (ir er nødvendig fordi Arduino jobber med 5V).

5V kraftskinne er koblet til Nano her. Sim800L og Neo6m er koblet til Nano som på bildet. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 er koblet til RST, slik at vi kan programmere systemet på nytt (unntatt SIM800L). MERK: Denne omstartsmetoden er kanskje ikke den beste fremgangsmåten)

Og til slutt er to lysdioder koblet til NANO, slik at vi kan fortelle brukeren om det oppstår en feil.

Trinn 6: Kode

Koden er festet til Instructables eller ta en titt på github.

Du kan endre den for å fungere skikkelig for dine behov, eller du kan bruke andres kode hvis du vil.

waitUntilResponse (); hjelperfunksjonen ble hentet fra koden hans. Sjekk arbeidet hans, og kode også!

I oppsettfunksjonen må vi kort aktivere GPRS -tilkoblingen til SIM800L -modulen. Vi vet om det lykkes hvis lysdioden blinker raskt. (setupGPRSConnection ())

I sløyfefunksjonen - hvert 15. sekund kalles sendData () - funksjonen - som har HTTP -forespørsel

Jeg brukte spørrestrenger til å skyve data til webserveren i dette formatet:

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

Hvis det oppstår en feil, vil den tilhørende lysdioden lyse. (SIM, GPS)

Trinn 7: Webserver

Internett server
Internett server

For vår bruk er en enkel lett webserver nok.

Det er noen alternativer du kan velge mellom:

  1. Du kan bruke en ekstern server til et selskap, som du sannsynligvis må betale for regelmessig.
  2. Du kan bruke din egen datamaskin. Jeg foreslår det bare for testing, det er egentlig ikke effektivt å kjøre det 24/7, på grunn av energisvinn, sikkerhetsproblemer.
  3. Du kan bruke en liten datamaskin, som Raspberry PI. Lett, billig, bruker ikke mye strøm.

Jeg prøvde det andre og tredje alternativet, de fungerte bra. Vel, hovedmålet er ikke servere av denne instruksen, men jeg tipser deg om noen råd.

Hvis du bruker en PC, bruker du sannsynligvis Windows. Hvis jeg var deg, ville jeg installert en Apache- eller XAMPP -server på den.

XAMPP har allerede PHP i den, i tillegg til at den også kommer med HTML, Perl og et Database Managing System. Med PHP kan du lage en dynamisk server. Hvis du vil bruke den lokale serveren du nettopp har laget fra hvor som helst i verden, må du tilordne statisk IP til PCen din og gjøre noen portforwarding. En nyttig opplæring for statisk IP:

Og hele det overførende:

Hvis du har en bringebær, er det en god praksis å bruke den. Du kan bli kjent med Linux -kommandoene og kjøre din egen server 24/7.

Operativsystemet var Raspbian Jessie med et hodeløst oppsett (uten tastatur, skjerm) - jeg kontrollerte det med datamaskinen min med SSH -tilkobling.

Jeg brukte Putty til å logge inn på bringebæret mitt. Ikke glem å endre kontoens passord, slik at andre ikke kan logge deg på Pi. Standard er: pi, passw: bringebær.

Jeg installerte en lighttpd webserver med sqlite3. God opplæring finner du her:

Jeg brukte hovedsakelig PHP i serverkoden. Med PHP kan du motta data, lese/skrive databaser - kode en forespørsel til et json -format, etc. … Denne opplæringen vil hjelpe deg mye, hvordan du håndterer databasen din med PHP.

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

Og selvfølgelig må du aktivere portoverføring til Pi på ruteren din, hvis du vil ha tilgang til det eksternt.

Trinn 8: Avslutning/erfaring

Et kabinett er ennå ikke laget.

Min erfaring er at systemet fungerer ikke så ille. Men det er stabilitetsforbedringer som venter.

Hvis trackeren ikke fungerte med koden jeg la ved, ikke bekymre deg. Prøv å kontrollere at SIM800L og NEO 6M fungerer som de skal. Du kan fritt endre koden min, eller se etter en bedre. Jeg håper bare at jeg kan vise deg et eksempel på hvordan du kan fullføre dette prosjektet.

Jeg aksepterer alle råd, korrigering fra kommentarer. Det er bare å spørre.

Anbefalt: