Innholdsfortegnelse:
- Trinn 1: Forutsetninger
- Trinn 2: Hovedkonsept
- Trinn 3: SIM800L -modulen
- Trinn 4: Ublox Neo 6m
- Trinn 5: Kretsløp
- Trinn 6: Kode
- Trinn 7: Webserver
- Trinn 8: Avslutning/erfaring
Video: Hjemmelaget sanntids GPS-tracker (SIM800L, Ublox NEO-6M, Arduino): 8 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
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
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
Hovedkonseptet med systemet er følgende:
Den består av 3 deler:
- En enhet - som har riktige GPS -koordinater og kan koble til en server eksternt og sende data til den
- En webserver - som kan motta innkommende data - lagre den - og betjene andre klienter
- Plattformen - hvor vi kan se koordinatene - Ideelt sett burde den nå være en mobilapplikasjon eller et nettsted
Trinn 3: 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
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
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
For vår bruk er en enkel lett webserver nok.
Det er noen alternativer du kan velge mellom:
- Du kan bruke en ekstern server til et selskap, som du sannsynligvis må betale for regelmessig.
- 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.
- 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:
Hvordan lage fuktighet og temperatur sanntids datarekorder med Arduino UNO og SD-kort - DHT11 Datalogger Simulering i Proteus: 5 trinn
Hvordan lage fuktighet og temperatur sanntids datarekorder med Arduino UNO og SD-kort | DHT11 Datalogger Simulering i Proteus: Introduksjon: hei, dette er Liono Maker, her er YouTube-lenken. Vi lager kreative prosjekter med Arduino og jobber med innebygde systemer. Data-Logger: En datalogger (også datalogger eller dataregistrator) er en elektronisk enhet som registrerer data over tid
Bruke DS1307 og DS3231 sanntids klokkemoduler med Arduino: 3 trinn
Bruke DS1307 og DS3231 sanntidsklokke-moduler med Arduino: Vi får stadig forespørsler om hvordan du bruker DS1307 og DS3231 sanntidsklokke-moduler med Arduino fra forskjellige kilder-så dette er den første av en todelt opplæring om hvordan du bruker dem. For denne Arduino-opplæringen har vi to sanntidsklokke-moduler til oss
Sanntids MPU-6050/A0 datalogging med Arduino og Android: 7 trinn (med bilder)
Sanntids MPU-6050/A0 datalogging med Arduino og Android: Jeg har vært interessert i å bruke Arduino for maskinlæring. Som et første trinn vil jeg bygge en sanntids (eller ganske nær den) datavisning og logger med en Android -enhet. Jeg vil fange akselerometerdata fra MPU-6050, så jeg designer
Sanntids hendelsesvarsler ved hjelp av NodeMCU (Arduino), Google Firebase og Laravel: 4 trinn (med bilder)
Sanntids hendelsesvarsler ved hjelp av NodeMCU (Arduino), Google Firebase og Laravel: Har du noen gang ønsket å bli varslet når det utføres en handling på nettstedet ditt, men e -post er ikke riktig passform? Vil du høre en lyd eller en bjelle hver gang du gjør et salg? Eller det er behov for din umiddelbare oppmerksomhet på grunn av en nødsituasjon
Manuell tilgang til GPS Ublox Neo 6M med Raspberry Pi B+: 3 trinn
Manuell tilgang til GPS Ublox Neo 6M Med Raspberry Pi B+: Raspberry Pi er en veldig kompatibel mini -PC for forskjellige moduler som er ganske enkle å bruke. I utgangspunktet er det nesten det samme som PC, men kan styres med GPIO fra Raspberry Pi. Raspberry Pi er også støtte med flere kommunikasjonslinjer, en