- Vereiste componenten voor op Arduino gebaseerd voertuigvolgsysteem:
- Hoe kan een GSM-module worden gebruikt om de locatie te volgen:
- Circuitverklaring voor het koppelen van GSM en GPS met Arduino:
- Op GSM en GPS gebaseerd voertuigvolgsysteem met Arduino - Werkend
- GAM en GPS-interface met Arduino-code om de voertuiglocatie te volgen
Voertuigvolgsystemen worden zeer vaak gebruikt in toepassingen voor wagenparkbeheer en asset-tracking. Tegenwoordig kunnen deze systemen niet alleen de locatie van het voertuig volgen, maar ook de snelheid rapporteren en zelfs op afstand bedienen. In het algemeen is het volgen van voertuigen een proces waarbij we de voertuiglocatie volgen in de vorm van breedtegraad en lengtegraad (gps-coördinaten). GPS-coördinaten zijn de waarde van een locatie. Dit systeem is zeer efficiënt voor buitentoepassingen. Dit soort voertuigvolgsysteemproject houdt zich veel bezig met het volgen van taxi's / taxi's, gestolen voertuigen, school- / universiteitsbussen, enz. In dit project gaan we een stap vooruit met het bouwen van een op GSM en GPS gebaseerd voertuigvolgsysteem met Arduino. Dit voertuigvolgsysteem kan ook worden gebruikt volg een voertuig met behulp van gps en gsm en kan ook worden gebruikt als waarschuwingssysteem voor ongevalsdetectie, volgsysteem voor soldaten en nog veel meer, door slechts enkele wijzigingen in hardware en software aan te brengen.
We hebben eerder ook veel andere soorten voertuigvolgsystemen gebouwd, u kunt ze bekijken als u geïnteresseerd bent
- GPS-voertuigvolgsysteem en ongevalswaarschuwing met Arduino
- Voertuigvolgsysteem met Google Maps met Arduino en ESP8266
- GPS-voertuigvolgsysteem en ongevalwaarschuwing met MSP430
- Op LoRa gebaseerde GPS-voertuigvolgsysteem met Arduino
- Location Tracker zonder GPS met SIM800 en Arduino
Vereiste componenten voor op Arduino gebaseerd voertuigvolgsysteem:
Om een eenvoudig voertuigvolgsysteem te bouwen dat Arduino aanklaagt, hebben we de volgende componenten nodig.
- Arduino UNO
- GSM-module
- GPS-module
- 16x2 LCD
- Stroomvoorziening
- Verbindingsdraden
- 10 K POT
Hoe kan een GSM-module worden gebruikt om de locatie te volgen:
GPS staat voor Global Positioning System en wordt gebruikt om de lengte- en breedtegraad van elke locatie op aarde te detecteren, met de exacte UTC-tijd (Universal Time Coordinated). GPS-module is het belangrijkste onderdeel van ons voertuigvolgsysteemproject. Dit apparaat ontvangt voor elke seconde de coördinaten van de satelliet, met tijd en datum.
De GPS-module verzendt de gegevens met betrekking tot het volgen van de positie in realtime, en het verzendt zoveel gegevens in NMEA-formaat (zie de onderstaande schermafbeelding). Het NMEA-formaat bestaat uit meerdere zinnen, waarin we maar één zin nodig hebben. Deze zin begint vanaf $ GPGGA en bevat de coördinaten, tijd en andere nuttige informatie. Deze GPGGA wordt verwezen naar Global Positioning System Fix Data. Lees hier meer over het lezen van GPS-gegevens en de bijbehorende snaren.
We kunnen coördinaten uit de tekenreeks $ GPGGA halen door de komma's in de tekenreeks te tellen. Stel dat u de tekenreeks $ GPGGA vindt en deze in een array opslaat, dan vindt u Latitude na twee komma's en vindt u Longitude na vier komma's. Nu kunnen deze lengte- en breedtegraad in andere arrays worden geplaatst.
Hieronder staat de $ GPGGA-string, samen met de beschrijving:
$ GPGGA, 104534.000,7791,0381, N, 06727,4434, E, 1,08,0,9,510,4, M, 43,9, M`` * 47
$ GPGGA, HHMMSS.SSS, breedtegraad, N, lengtegraad, E, FQ, NOS, HDP, hoogte, M, hoogte, M`` checksum data
ID |
Omschrijving |
$ GPGGA |
Gegevens van het Global Positioning-systeem |
HHMMSS.SSS |
Tijd in uur minuten seconden en milliseconden formaat. |
Breedtegraad |
Breedtegraad (coördinaat) |
N |
Richting N = Noord, S = Zuid |
Lengtegraad |
Lengtegraad (coördinaat) |
E. |
Richting E = Oost, W = West |
FQ |
Kwaliteitsgegevens repareren |
NOS |
Aantal gebruikte satellieten |
HPD |
Horizontale verdunning van precisie |
Hoogte |
Hoogte vanaf zeeniveau |
M. |
Meter |
Hoogte |
Hoogte |
Checksum |
Checksum-gegevens |
Circuitverklaring voor het koppelen van GSM en GPS met Arduino:
Circuitverbindingen van dit voertuigvolgsysteemproject zijn eenvoudig en worden weergegeven in de afbeelding hieronder. Hier is de Tx-pin van de GPS-module rechtstreeks verbonden met digitale pin nummer 10 van Arduino. Door hier Software Serial Library te gebruiken, hebben we seriële communicatie op pin 10 en 11 toegestaan, en deze respectievelijk Rx en Tx gemaakt en de Rx-pin van de GPS-module opengelaten. Standaard worden pin 0 en 1 van Arduino gebruikt voor seriële communicatie, maar door de SoftwareSerial-bibliotheek te gebruiken, kunnen we seriële communicatie op andere digitale pinnen van de Arduino toestaan. Er wordt 12 volt voeding gebruikt om de GPS-module van stroom te voorzien.
De Tx- en Rx-pinnen van de GSM-module zijn rechtstreeks verbonden met de pin Rx en Tx van Arduino. GSM-module wordt ook gevoed door 12v-voeding. De datapinnen D4, D5, D6 en D7 van een optioneel LCD-scherm zijn verbonden met pin nummer 5, 4, 3 en 2 van Arduino. Commandopin RS en EN van LCD zijn verbonden met pin nummer 2 en 3 van Arduino en RW pin is direct verbonden met aarde. Een Potentiometer wordt ook gebruikt voor het instellen van contrast of helderheid van LCD.
Op GSM en GPS gebaseerd voertuigvolgsysteem met Arduino - Werkend
In dit project wordt Arduino gebruikt om het hele proces te besturen met een GPS-ontvanger en GSM-module. GPS-ontvanger wordt gebruikt voor het detecteren van coördinaten van het voertuig, GSM-module wordt gebruikt voor het verzenden van de coördinaten naar de gebruiker via sms. En een optioneel 16x2 LCD-scherm wordt ook gebruikt voor het weergeven van statusberichten of coördinaten. We hebben GPS-module SKG13BL en GSM-module SIM900A gebruikt.
Als we na het programmeren klaar zijn met onze hardware, kunnen we deze in ons voertuig installeren en opstarten. Dan hoeven we alleen maar een sms, "Track Vehicle", te sturen naar het systeem dat in onze auto is geplaatst. We kunnen ook een voorvoegsel (#) of achtervoegsel (*) gebruiken, zoals # Track Vehicle *, om het begin en einde van de string correct te identificeren, zoals we deden in deze projecten: GSM-gebaseerde domotica en draadloos mededelingenbord
Verzonden bericht wordt ontvangen door een GSM-module die is aangesloten op het systeem en berichtgegevens naar Arduino verzendt. Arduino leest het en haalt het hoofdbericht uit het hele bericht. En vergelijk het dan met een vooraf gedefinieerd bericht in Arduino. Als er een overeenkomst optreedt, leest Arduino de coördinaten door $ GPGGA String uit de GPS-modulegegevens te extraheren (GPS-werking hierboven uitgelegd) en naar de gebruiker te verzenden met behulp van de GSM-module. Dit bericht bevat de coördinaten van de voertuiglocatie.
GAM en GPS-interface met Arduino-code om de voertuiglocatie te volgen
In het programmeergedeelte nemen we eerst bibliotheken op en definiëren we pinnen voor LCD- en software seriële communicatie. Definieer ook een variabele met arrays voor het opslaan van gegevens. Software Serial Library wordt gebruikt om seriële communicatie op pin 10 en 11 mogelijk te maken.
# omvatten
Hier wordt array str gebruikt voor het opslaan van ontvangen berichten van de GSM-module en wordt gpsString gebruikt voor het opslaan van de GPS-string. char * test = ”$ GPGGA” wordt gebruikt om de juiste string te vergelijken die we nodig hebben voor coördinaten.
Daarna hebben we seriële communicatie, LCD-, GSM- en GPS-module geïnitialiseerd in de instellingsfunctie en een welkomstbericht op het LCD-scherm getoond.
leegte setup () {lcd.begin (16,2); Serial.begin (9600); gps.begin (9600); lcd.print ("Voertuigvolgsysteem"); lcd.setCursor (0,1);……………
In loop-functie ontvangen we bericht en GPS-string.
void loop () {serialEvent (); if (temp) {get_gps (); volgen (); }}
Functies void init_sms en void send_sms () worden gebruikt voor het initialiseren en verzenden van berichten. Gebruik het juiste 10-cijferige mobiele nummer in de functie init_sms .
Functie void get_gps () is gebruikt om de coördinaten uit de ontvangen string te halen.
Function void gpsEvent () wordt gebruikt voor het ontvangen van GPS-gegevens in de Arduino.
Functie void serialEvent () wordt gebruikt voor het ontvangen van berichten van GSM en het vergelijken van het ontvangen bericht met een vooraf gedefinieerd bericht (Track Vehicle).
void serialEvent () {while (Serial.available ()) {if (Serial.find ("Track Vehicle")) {temp = 1; breken; }…………..
Initialisatiefunctie 'gsm_init () ' wordt gebruikt voor het initialiseren en configureren van de GSM-module, waarbij eerst de GSM-module wordt gecontroleerd of deze is aangesloten of niet door het 'AT'-commando naar de GSM-module te sturen. Als antwoord OK wordt ontvangen, betekent dit dat het klaar is. Het systeem blijft de module controleren totdat deze klaar is of totdat 'OK' wordt ontvangen. Vervolgens wordt ECHO uitgeschakeld door het ATE0-commando te verzenden, anders zal de GSM-module alle commando's echoën. Ten slotte wordt de netwerkbeschikbaarheid gecontroleerd via de 'AT + CPIN?' commando, als de geplaatste kaart een SIM-kaart is en de PIN aanwezig is, geeft dit het antwoord + CPIN: KLAAR. Dit wordt ook herhaaldelijk gecontroleerd totdat het netwerk is gevonden. Dit kan duidelijk worden begrepen door de onderstaande video.
Controleer alle bovenstaande functies in de sectie Code hieronder.