Stap 6: Programmeren van de Arduino:
Dit zijn de stappen voor het installeren van de bibliotheek:-
- Download de uiterst kleine GPS-bibliotheek voor de Arduino. (deverwijzing)
- Pak het zip-bestand naar de map: " Libraries/documenten/Arduino/libraries"
- Nu ziet u de bibliotheek onder "Schets--> bibliotheek importeren" in de Arduino IDE.
- U kunt doorgaan met installeren met de Arduino Uno programmeren.
Hier ziet u de broncode voor de Arduino. Kopieer de onderstaande code en het laden op de Arduino:-
Programma geschreven voor wereldwijde auto Tracking System door Jayvis Gonsalves
#include < SoftwareSerial.h >
#include < string.h >
#include < TinyGPS.h >
SoftwareSerial Sim900Serial(2, 3);
byte buffer [64]; buffer-array voor gegevens ontvangen via de seriële poort
int count = 0; teller voor buffer matrix
SoftwareSerial GPS(4, 5);
TinyGPS gps;
unsigned long fix_age;
lange lat, lon;
float LAT, LON;
VOID gpsdump (TinyGPS & gps);
BOOL feedgps();
nietig getGPS();
VOID Setup
{
Sim900Serial.begin(19200); de baud-rate van SIM900
GPS.begin(9600); GPS module baud-rate
Serial.begin(9600); de baudrate van de seriële poort van de Arduino.
delay(500);
Sim900_Inti();
}
void loop
{
Sim900Serial.listen();
Als (Sim900Serial.available()) / / als datum van GSM schild vandaan)
{
while(Sim900Serial.available()) / / lezen van gegevens in de array char
{
buffer [graaf] = Sim900Serial.read(); het schrijven van gegevens in de array
if(Count == 64) breken;
}
Serial.write(buffer,Count); Als geen enkele gegevensoverdracht eindigt, schrijven buffer naar hardware seriële poort
Cmd_Read_Act(); Lees de 'opdracht' verzonden naar SIM900 via SMS
clearBufferArray(); clearBufferArray functie aanroepen om te wissen van de storaged gegevens uit de matrix
Graaf = 0; teller van while-lus op nul instellen
}
Als (Serial.available()) / / als de gegevens zijn beschikbaar op hardwareserial poort == > gegevens is afkomstig van een PC of notebook
Sim900Serial.println(Serial.Read()); schrijven aan de GPRS-shield
}
VOID clearBufferArray() / / functie Schakel buffer matrix
{
voor (int i = 0; ik < telling; i)
{buffer [i] = NULL;} Schakel alle index van matrix met opdracht NULL
}
VOID Sim900_Inti(void)
{
Sim900Serial.println ('op CMGF = 1'); GSM schild ingesteld op sms-modus
Serial.println ('op CMGF = 1');
delay(500);
Sim900Serial.println ("bij CNMI = 2, 2");
Serial.println ('op CMGF = 1');
delay(500);
}
ongeldig Cmd_Read_Act(void) //Function leest de SMS verzonden aan SIM900 shield.
{
char buffer2 [64];
voor (int i = 0; ik < telling; i)
{buffer2[i]=char(buffer[i]);}
Als (strstr(buffer2,"INSTRUCTABLES")) //Comparing wachtwoord ingevoerd met wachtwoord opgeslagen in programma
{
Serial.println ("wachtwoord geverifieerd.");
Serial.println ("verzenden beantwoorden SMS.");
SendTextMessage();
}
}
VOID SendTextMessage()
{
Sim900Serial.Print ('op CMGF = 1\r'); Versturen van de SMS in tekstmodus
delay(100);
Sim900Serial.println ("op CMGS = \"***\"");//The vooraf gedefinieerde telefoonnummer
delay(100);
Sim900Serial.println ("Gelieve te wachten terwijl Module berekent positie"); //the inhoud van het bericht
delay(100);
Sim900Serial.println ((char) 26); //the ASCII-code van de ctrl-z is 26
delay(100);
Sim900Serial.println();
int counter = 0;
GPS.listen();
voor (;)
{
lange lat, lon;
unsigned long fix_age, tijd, datum, snelheid, cursus;
niet-ondertekende lange tekens;
niet-ondertekende korte zinnen, failed_checksum;
lange Latitude, Longitude;
opgehaald /-/ lengtegraad in 100000ths van een graad
GPS.get_position (lat, lon, & fix_age);
getGPS();
Serial.Print ("Latitude:");
Serial.Print(lat/1000000,7);
Serial.Print (":: lengtegraad:");
Serial.println(Lon/1000000,7);
Als (LAT == 0 & & LON == 0)
{
blijven;
}
teller;
Als (counter < 30)
{
blijven;
}
Sim900Serial.Print ('op CMGF = 1\r'); Versturen van de SMS in tekstmodus
delay(100);
Sim900Serial.println ("op CMGS = \"***\"");//The vooraf gedefinieerde telefoonnummer
delay(100);
Sim900Serial.Print ("Latitude:");
Sim900Serial.Print(lat/1000000,7);
Sim900Serial.Print (":: lengtegraad:");
Sim900Serial.println (LON/1000000,7); //the inhoud van het bericht
delay(100);
Sim900Serial.println ((char) 26); //the ASCII-code van de ctrl-z is 26
delay(100);
Sim900Serial.println();
Counter = 0;
breken;
}
}
VOID getGPS()
{
BOOL newdata = false;
unsigned long start = millis();
terwijl (millis() - start < 1000)
{
Als (feedgps ())
{
NewData = true;
}
}
Als (newdata)
{
gpsdump(GPS);
}
}
BOOL feedgps()
{
terwijl (GPS.available())
{
Als (gps.encode(GPS.read()))
return true;
} keren 0;
}
VOID gpsdump (TinyGPS & gps)
{
GPS.get_position (lat, & lon);
LAT lat; =
LON lon; =
{
feedgps();
}
}