Inhoudsopgave:

Zelfgemaakte realtime GPS-tracker (SIM800L, Ublox NEO-6M, Arduino) - Ajarnpa
Zelfgemaakte realtime GPS-tracker (SIM800L, Ublox NEO-6M, Arduino) - Ajarnpa

Video: Zelfgemaakte realtime GPS-tracker (SIM800L, Ublox NEO-6M, Arduino) - Ajarnpa

Video: Zelfgemaakte realtime GPS-tracker (SIM800L, Ublox NEO-6M, Arduino) - Ajarnpa
Video: 5 GPS Trackers 2024, Juli-
Anonim
Zelfgemaakte realtime GPS-tracker (SIM800L, Ublox NEO-6M, Arduino)
Zelfgemaakte realtime GPS-tracker (SIM800L, Ublox NEO-6M, Arduino)

Dus jij hebt net als ik een GSM-module liggen? Ook een GPS-tracker?

We denken hetzelfde!

In deze instructables zal ik proberen je te begeleiden hoe je je doel kunt bereiken vanuit het perspectief van een newbie.

Omdat ik geen eerdere elektrotechnische kennis had (om eerlijk te zijn, het project heeft niet zoveel nodig, maar nee), en geen idee had hoe ik een apparaat moest maken dat gegevens realtime naar een webserver pompt, kwam ik tal van problemen tegen. Toch slaagde ik er uiteindelijk in om dingen aan het werk te krijgen.

Dus in deze tutorial wil ik de fouten benadrukken die een starter kan maken en het project dienovereenkomstig opbouwen.

Denk eraan: Wees altijd voorzichtig als u met elektriciteit werkt!

OPMERKING: ik ben niet professioneel. De code is mogelijk niet geavanceerd genoeg voor al uw behoeften. Het project is bedoeld als een "hobbyproject", maar! het werkte voor mij. En als het voor mij werkte, zou het ook voor jou werken!

Stap 1: Vereisten

Vereisten
Vereisten
Vereisten
Vereisten
Vereisten
Vereisten

GSM-MODULE - SIM800L

  • Vrij klein, gemakkelijk te gebruiken
  • Geschikt voor mobiel internet (GPRS)
  • Goedkoop

GPS-MODULE - Ublox NEO6M

  • Ook klein
  • Doet zijn werk heel goed

Een microcontroller - kan van alles zijn - je zou de beroemde Arduino Uno of de Nano kunnen gebruiken om wat ruimte vrij te maken

Batterij - Ik gebruikte een 18650-cel als de belangrijkste en enige stroombron (nominaal 3,7 V)

Batterijhouder - waarom? - omdat het solderen van een 18650-batterij behoorlijk gevaarlijk is vanwege de hitte.

DC-DC Boost Converter Step Up Module 5V - Moet hebben, aangezien de Arduino die ik gebruikte 5V nodig heeft

Tools, basisdingen die van pas kunnen komen:

Draden, soldeerbout, breadboard om te testen

Stap 2: Hoofdconcept

Hoofdconcept
Hoofdconcept

Het belangrijkste concept van het systeem is het volgende:

Het bestaat uit 3 delen:

  1. Een apparaat - dat de juiste GPS-coördinaten heeft en op afstand verbinding kan maken met een server en er gegevens naar kan verzenden
  2. Een webserver - die inkomende gegevens kan ontvangen - deze kan opslaan - en andere clients kan bedienen
  3. Het platform - waar we de coördinaten kunnen bekijken - Idealiter zou het nu een mobiele applicatie of een website moeten zijn

Stap 3: De SIM800L-module

De SIM800L-module
De SIM800L-module
De SIM800L-module
De SIM800L-module

Ik had het moeilijk met de module.

Ik zou willen beginnen met enkele kenmerken en referenties.

Volgens het gegevensblad:

  • Het werkt tussen 3.4V - 4.4V
  • Het kan sms'en, bellen naar andere telefoons en zelfs verbinding maken met internet!
  • We kunnen ermee communiceren via AT-commando's!
  • Hij kan tot wel 2A verbruiken tijdens de piekuren! Opmerking: je zult het waarschijnlijk niet kunnen meten met een multimeter - vanwege de lage bemonsteringsfrequenties

Mijn ervaring is dat de SIM800L onder de 3.8V niet echt werkt.

Ga voor meer informatie naar: datasheet

Het is dus jouw taak om de module minimaal 3,8V te leveren (idealiter 4V), een voeding die minimaal 2A levert.

Voordat u de module in het uiteindelijke apparaat gebruikt, raad ik u aan communicatie tot stand te brengen met uw SIM800L en uw computer om er zeker van te zijn dat uw apparaat goed werkt.

Sluit eerst de simkaart aan zoals in de bovenstaande afbeelding.

Om hem met je pc te verbinden, kun je een USB naar TTL-converter of een Arduino gebruiken.

Nu ga ik met de Arduino.

Sluit de SIM800L VCC en GND aan op uw stroombronterminals.

Sluit TX aan op Arduino 10e digitale pin, RX op Arduino 11e digitale pin.

Download de code, ik heb in deze stap gelinkt.

Met de code kunt u opdrachten verzenden en terugkrijgen op uw seriële monitor.

Enkele eenvoudige commando's:

AT Retourneert OK, als de verbinding in orde is.

ATD+123456789; Bel een bepaald telefoonnummer. Opmerking: vergeet niet om het af te sluiten met een puntkomma.

AT+CPIN? Geeft de status van de simkaart terug (vergrendeld of niet)

Als u een SMS wilt sturen, moet u uw invoer beëindigen met een speciaal teken, dit kan met het '$'-symbool.

Voor nog meer interessante commando's raad ik je aan dit te lezen.

Er zijn verschillende commando's, leer ze kennen, ze zijn erg handig.

Er is een rode status-LED die aangeeft in welke operatie de SIM800L zich bevindt.

64 MS ON - 800MS OFF - SIM800L is niet geregistreerd bij het netwerk.

64 MS AAN - 3000MS UIT - SIM800L is geregistreerd bij het netwerk.

64 MS AAN - 300MS UIT - SIM800l staat in GPRS-modus

Als de SIM800L blijft herstarten na ongeveer 8-10 knipperingen, kan dit te wijten zijn aan een gebrek aan efficiënte stroomvoorziening.

Als je na AT niet OK bent, controleer dan de bedrading! Als je een multimeter hebt, controleer dan de continuïteit van de draden.

Controleer de aansluitingen van de draden en soldeerverbindingen! De module werkt alleen als hij knippert.

Stap 4: Ublox Neo 6m

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

Enkele kenmerken:

  • Maximale spanning: 3,6V - ik heb hem gevoed met Arduino's 3,3V-pin
  • Max stroomverbruik is 67mA - dus je kunt het van stroom voorzien via Arduino
  • Temperatuurbereik:: -40-85 Celsius (ik denk dat het bij je past)

Het apparaat dat ik bestelde, werd geleverd met een antenne die op de foto te zien is, ik steek die gewoon in de bijbehorende sleuf.

Het apparaat wanneer signalen heeft, knippert met blauwe LED.

Kijk eerst hier hoe een GPS werkt, als je het niet weet.

Wanneer het apparaat aan staat en 3 satellieten vindt, stuurt het veel door komma's gescheiden waarden naar de Arduino zoals hierboven.

Om ons werk te helpen, kunnen we een aantal externe bibliotheken gebruiken om deze gegevens te ontleden om ze beter leesbaar te maken voor mensen.

U kunt de TinyGps-bibliotheek of NeoGPS-bibliotheek gebruiken. Ik heb de 2e gebruikt omdat die lichter is.

Voor het testen moet je de voedingspinnen aansluiten op arduino 3.3V en GND.

Download deze code en gebruik deze met uw GPS. RX digitale pin 10, TX digitale pin 11

Let op: Vergeet niet om de module buiten te gebruiken, bij voorkeur als er geen bewolking is.

Na een halve minuut zou het apparaat moeten knipperen en uw GPS-coördinaten moeten weergeven!:)

Als u eenmaal weet dat uw SIM800L en GPS-module naar behoren werken, kunt u doorgaan naar de volgende stap.

Stap 5: Circuits

Circuits
Circuits

De schakeling is zoals op de foto.

Dus de 3.4V - 4.2V 18650-batterij is de belangrijkste stroombron. De Sim800L haalt de energie er direct uit. Er is een condensator tussen hen in parallel om de stabiliteit van het circuit te verbeteren.

Wanneer u een condensator kiest, moet u een lage ESR-condensator kiezen.

Een 5V step-up converter verhoogt de spanning van de batterij tot 5V (ir is nodig omdat Arduino met 5V werkt).

Hier wordt de 5V powerrail op de Nano aangesloten. De Sim800L en Neo6m zijn aangesloten met Nano zoals op de foto. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 is verbonden met RST, dus we kunnen het systeem programmatisch opnieuw opstarten (behalve de SIM800L). OPMERKING: deze herstartmethode is misschien niet de beste methode)

En tot slot zijn er twee LEDS aangesloten op de NANO, zodat we de gebruiker kunnen vertellen of er een fout optreedt.

Stap 6: Coderen

De code is gekoppeld aan de Instructables of neem een kijkje op github.

U kunt het aanpassen zodat het goed werkt voor uw behoeften, of u kunt de code van anderen gebruiken als u dat wilt.

waitUntilResponse(); helperfunctie is overgenomen uit zijn code. Controleer zijn werk en codeer ook!

Kort gezegd, in de setup-functie moeten we de GPRS-verbinding van onze SIM800L-module inschakelen. We weten of het gelukt is als de LED snel knippert. (setupGPRSConnection())

In de lusfunctie - elke 15 seconden wordt de functie sendData() aangeroepen - die het HTTP-verzoek heeft

Ik heb queryreeksen gebruikt om gegevens in dit formaat naar de webserver te pushen:

ip adres/file.php?key=value&key=value b.v.

Als er een fout optreedt, gaat de bijbehorende LED branden. (simkaart, gps)

Stap 7: Webserver

Web Server
Web Server

Voor ons gebruik is een eenvoudige lichtgewicht webserver voldoende.

Er zijn enkele opties waaruit u kunt kiezen:

  1. U kunt een externe server van een bedrijf gebruiken, waarvoor u waarschijnlijk regelmatig moet betalen.
  2. Je zou je eigen computer kunnen gebruiken. Ik stel het alleen voor om te testen, het is niet echt efficiënt om het 24/7 te laten draaien, vanwege energieverspilling en veiligheidsproblemen.
  3. Je zou een kleine computer kunnen gebruiken, zoals Raspberry PI. Lichtgewicht, goedkoop, verbruikt niet veel stroom.

Ik heb de 2e en 3e optie geprobeerd, ze werkten goed. Welnu, het belangrijkste doel is niet de servers van deze instructables, maar ik geef je enkele adviezen.

Als u een pc gebruikt, gebruikt u waarschijnlijk Windows. Als ik jou was, zou ik er een Apache- of XAMPP-server op installeren.

XAMPP bevat al PHP, daarnaast wordt het ook geleverd met HTML, Perl en een databasebeheersysteem. Met PHP kun je een dynamische server maken. Als je de lokale server die je zojuist hebt gemaakt van waar ook ter wereld wilt gebruiken, moet je een statisch IP-adres aan je pc toewijzen en wat portforwarding uitvoeren. Een handige tutorial voor statische IP:

En het hele portforwarding-gedoe:

Als je een framboos hebt, is het een goede gewoonte om die te gebruiken. Je kunt vertrouwd raken met de Linux-commando's en 24/7 je eigen server draaien.

Het besturingssysteem was Raspbian Jessie met een headless setup (geen toetsenbord, monitor) - ik bestuurde het met mijn computer met SSH-verbinding.

Ik heb Putty gebruikt om in te loggen op mijn Raspberry. Vergeet niet het wachtwoord van uw account te wijzigen, zodat anderen niet kunnen inloggen op u Pi. Standaard is: pi, passw: framboos.

Ik heb een lighttpd-webserver geïnstalleerd met sqlite3. Goede tutorial gevonden hier:

Ik gebruikte voornamelijk PHP in de servercode. Met PHP kunt u gegevens ontvangen, databases lezen/schrijven - een query coderen in een json-indeling, enz. … Deze tutorial zal u veel helpen, hoe u uw database met PHP kunt beheren.

Je kunt mijn code ook op github bekijken, in de map server_files.

En natuurlijk moet je portforwarding naar je Pi op je router inschakelen als je daar op afstand toegang toe wilt hebben.

Stap 8: Beëindiging/ervaring

Een omheining moet nog gemaakt worden.

Mijn ervaring is dat het systeem niet al te slecht werkt. Maar er wachten stabiliteitsverbeteringen.

Maak je geen zorgen als de tracker niet werkte met de code die ik heb bijgevoegd. Probeer ervoor te zorgen dat de SIM800L en NEO 6M naar behoren werken. U kunt mijn code vrijelijk wijzigen of een betere zoeken. Ik hoop alleen dat ik je een voorbeeld kan laten zien, hoe je dit project kunt voltooien.

Ik accepteer elk advies, correctie van opmerkingen. Vragen staat vrij.

Aanbevolen: