Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
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
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
Het belangrijkste concept van het systeem is het volgende:
Het bestaat uit 3 delen:
- Een apparaat - dat de juiste GPS-coördinaten heeft en op afstand verbinding kan maken met een server en er gegevens naar kan verzenden
- Een webserver - die inkomende gegevens kan ontvangen - deze kan opslaan - en andere clients kan bedienen
- 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
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
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
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
Voor ons gebruik is een eenvoudige lichtgewicht webserver voldoende.
Er zijn enkele opties waaruit u kunt kiezen:
- U kunt een externe server van een bedrijf gebruiken, waarvoor u waarschijnlijk regelmatig moet betalen.
- 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.
- 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:
Zelfgemaakte RGB-lamp: 4 stappen
Zelfgemaakte RGB-lamp: omdat we thuis allemaal sociale afstand nemen, hebben we meer vrije tijd. Dit is een eenvoudig project dat je kunt maken om je kamer te versieren en ook te verlichten
Zelfgemaakte gevechtsrobot versie 2: 6 stappen
Zelfgemaakte gevechtsrobot versie 2: Dus… Dit is mijn tweede versie van mijn anti-gewicht gevechtsrobot! Ik wil je graag voorstellen aan "Sidewinder." Voor dit project gebruikte ik 3D-geprinte onderdelen (door mij ontworpen) en enkele elektronische stukjes en beetjes die ik kocht voor minder dan $ 100. Ik gebruikte een CAD dus
Realtime GPS-tracking: 3 stappen
Realtime GPS-tracking: in deze tutorial laten we u zien hoe u realtime locatietracking uitvoert met behulp van een BerryGPS-GSM, een Raspberry Pi Zero en Initial State. We sturen lengtegraad, breedtegraad en snelheid via 3G met de BerryGPS-GSM naar Initial State
Hoe de GPS-module (NEO-6m) met Arduino te interfacen: 7 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Hoe een GPS-module (NEO-6m) te interfacen met Arduino: In dit project heb ik laten zien hoe een GPS-module met Arduino UNO kan worden gekoppeld. De gegevens voor lengte- en breedtegraad worden weergegeven op het LCD-scherm en de locatie kan worden bekeken op de app.Lijst van materiaal Arduino Uno ==> $8 Ublox NEO-6m GPS-module ==> $15 16x
Techduino --Hoe maak je je eigen zelfgemaakte Arduino Uno R3--: 9 stappen (met afbeeldingen)
Techduino ||Hoe maak je je eigen zelfgemaakte Arduino Uno R3||: Als je net als ik bent, nadat ik mijn Arduino had en een laatste programmering op mijn eerste chip had uitgevoerd, wilde ik het van mijn Arduino Uno R3 halen en plaatsen op mijn eigen circuit. Dit zou ook mijn Arduino vrijmaken voor toekomstige projecten. Na het doorlezen van vele