Paso 6: Programación de Arduino:
Estos son los pasos para instalar la biblioteca:-
- Descargar la biblioteca de pequeño GPS para Arduino. (enlace)
- Extraiga el archivo zip a la carpeta: " bibliotecas/documentos/Arduino/bibliotecas"
- Ahora verá la biblioteca bajo "Bosquejo--> Biblioteca de importación" en el IDE de Arduino.
- Usted puede proceder con la programación de Arduino Uno.
El siguiente es el código para el Arduino. Copie el código abajo y cargue sobre la Arduino:-
Programa escrito para el sistema mundial de seguimiento de coche por Jayvis Gonsalves
#include < SoftwareSerial.h >
#include < string.h >
#include < TinyGPS.h >
SoftwareSerial Sim900Serial(2, 3);
búfer de bytes [64]; matriz de búfer para datos recibir a través de puerto serie
int cuenta = 0; contador para matriz de búfer
SoftwareSerial GPS(4, 5);
TinyGPS gps;
fix_age largo sin firmar;
largo lat, lon;
flotador LAT, LON;
void gpsdump (TinyGPS & gps);
bool feedgps();
void getGPS();
void setup()
{
Sim900Serial.Begin(19200); la tasa de baudios SIM900
GPS.begin(9600); Tasa de baudios de módulo GPS
Serial.Begin(9600); la tasa de baudios del puerto serie de Arduino.
Delay(500);
Sim900_Inti();
}
void loop()
{
Sim900Serial.Listen();
Si (Sim900Serial.available()) / / si fecha proviene del escudo GSM)
{
while(Sim900Serial.Available()) / lectura de datos en matriz de char
{
buffer [count] = Sim900Serial.read(); escribir datos en matriz
if(Count == 64) romper;
}
Serial.Write(buffer,Count); Si no hay transmisión de datos termina, escribirá el buffer al puerto serial del hardware
Cmd_Read_Act(); Lea el 'comando' enviado al SIM900 a través de SMS
clearBufferArray(); llamar a la función clearBufferArray para borrar los datos almacenados de la matriz
cuenta = 0; poner contador de mientras bucle a cero
}
Si (Serial.available()) / / si los datos están disponibles en el puerto de hardwareserial == > datos proviene de PC o notebook
Sim900Serial.println(serial.Read()); escribir en la pantalla GPRS
}
void clearBufferArray() / / función para borrar la matriz de amortiguamiento
{
para (int i = 0; i < cuenta; i)
{buffer [i] = NULL;} claro todo el índice de matriz con el comando NULL
}
void Sim900_Inti(void)
{
Sim900Serial.println ("al CMGF = 1"); Set protector GSM modo de sms
Serial.println ("en el CMGF = 1");
Delay(500);
Sim900Serial.println ("en el CNMI = 2, 2");
Serial.println ("en el CMGF = 1");
Delay(500);
}
void Cmd_Read_Act(void) //Function lee el SMS enviado a protector SIM900.
{
char buffer2 [64];
para (int i = 0; i < cuenta; i)
{buffer2[i]=char(buffer[i]);}
Si (strstr(buffer2,"INSTRUCTABLES")) //Comparing introduce contraseña con la contraseña almacenada en el programa
{
Serial.println ("contraseña de autenticado.");
Serial.println ("envío la contestación SMS.");
SendTextMessage();
}
}
void SendTextMessage()
{
Sim900Serial.Print ("al CMGF = 1\r"); Envío de los SMS en modo texto
Delay(100);
Sim900Serial.println ("en el CMGS = número de teléfono de \"***\"");//The predefinidos
Delay(100);
Sim900Serial.println ("por favor espere mientras que el módulo calcula posición"); //the contenido del mensaje
Delay(100);
Sim900Serial.println ((char) 26); //the ASCII Código ctrl z es 26
Delay(100);
Sim900Serial.println();
int contador = 0;
GPS.listen();
para (;)
{
largo lat, lon;
fix_age largo sin firmar, tiempo, fecha, velocidad, curso;
caracteres largo sin firmar;
frases cortas sin firmar, failed_checksum;
largo latitud, longitud;
Recupera /-lat/long en 100000ths de grado
GPS.get_position (& lat, lon & fix_age);
getGPS();
Serial.Print ("latitud:");
Serial.Print(lat/1000000,7);
Serial.Print (":: longitud:");
Serial.println(Lon/1000000,7);
Si (LAT == 0 & & LON == 0)
{
continuar;
}
contador;
Si (contador < 30)
{
continuar;
}
Sim900Serial.Print ("al CMGF = 1\r"); Envío de los SMS en modo texto
Delay(100);
Sim900Serial.println ("en el CMGS = número de teléfono de \"***\"");//The predefinidos
Delay(100);
Sim900Serial.Print ("latitud:");
Sim900Serial.Print(lat/1000000,7);
Sim900Serial.Print (":: longitud:");
Sim900Serial.println (LON/1000000,7); //the contenido del mensaje
Delay(100);
Sim900Serial.println ((char) 26); //the ASCII Código ctrl z es 26
Delay(100);
Sim900Serial.println();
Contador = 0;
rotura;
}
}
void getGPS()
{
bool newdata = false;
sin firmar largo comienzo = millis();
mientras (millis() - Inicio < 1000)
{
Si (feedgps ())
{
NewData = true;
}
}
Si (newdata)
{
gpsdump(GPS);
}
}
bool feedgps()
{
mientras (GPS.available())
{
Si (gps.encode(GPS.read()))
verdaderas;
} return 0;
}
void gpsdump (TinyGPS y gps)
{
GPS.get_position (& lat y lon);
LAT = lat;
LON = lon;
{
feedgps();
}
}