114 lines
2.3 KiB
C++
114 lines
2.3 KiB
C++
|
|
#include <SPI.h>
|
|
#include <SD.h>
|
|
|
|
|
|
#include "stdio.h"
|
|
|
|
//librerias propias--------------------
|
|
#include "utiles.h"
|
|
|
|
#include "Sim808Manager.h"
|
|
|
|
|
|
unsigned long milliseconds=100;
|
|
|
|
//inicializacion sensores
|
|
|
|
Sim808Manager sim808;
|
|
|
|
|
|
|
|
unsigned long timer=millis();
|
|
unsigned long incremento=5000;//5 seg
|
|
char strFecha[24];
|
|
int veces=0;
|
|
void setup() {
|
|
// initialize both serial ports:
|
|
//Serial1.begin(19200);
|
|
//SIM808.begin(19200);
|
|
|
|
initCOM();
|
|
|
|
//inicia modulo sim808---------------
|
|
Serial2.begin(9600);
|
|
|
|
if(sim808.inicia(&Serial2, 48))
|
|
{
|
|
/*
|
|
printCOM("envia sms hola");
|
|
|
|
if(!sim808.EnviaSMS("+34690744597", "hola"))
|
|
printCOM("Error al enviar sms data");
|
|
*/
|
|
printCOM("Modulo sim iniciado...");
|
|
|
|
printCOM("GPS iniciado...");
|
|
DataGPSSimManager* coor=sim808.GetGPSValid();
|
|
|
|
printCOM("Datos gps validos...");
|
|
//envia mensaje inicial------------------------------
|
|
enviaData(false);
|
|
}
|
|
else
|
|
{
|
|
printCOM("Fallo al iniciar SIM808");
|
|
}
|
|
|
|
|
|
printCOM("...FIN INICIALIZACIONES");
|
|
}
|
|
|
|
void loop() {
|
|
if(!isTime(&timer,incremento))
|
|
{
|
|
delay(100);
|
|
return;
|
|
}
|
|
veces++;
|
|
bool envia=veces>10;
|
|
if(veces>10)
|
|
veces=0;
|
|
enviaData(false);
|
|
|
|
}
|
|
|
|
|
|
void enviaData(bool envia)
|
|
{
|
|
DataGPSSimManager* coor=sim808.GetGPS();
|
|
|
|
//envia mensaje inicial------------------------------
|
|
char buff[160];
|
|
char strlat[16];
|
|
char strlon[16];
|
|
char strfecha[24];
|
|
char stralt[16];
|
|
char strpres[16];
|
|
char strtem[16];
|
|
char strtemInt[16];
|
|
char strhdop[16];
|
|
char strvdop[16];
|
|
char precision[12];
|
|
dtostrf(coor->lat, 4, 6, strlat);
|
|
dtostrf(coor->lon, 4, 6, strlon);
|
|
dtostrf(coor->altitude, 6, 1, stralt);
|
|
dtostrf(coor->hdop, 2, 2, strhdop);
|
|
dtostrf(coor->vdop, 2, 2, strvdop);
|
|
sprintf(buff,"APPData;%s;%s;%s;%s; Prec=%s; HDOP=%s; VDOP=%s ",coor->getFecha(strfecha), strlat, strlon, stralt, coor->getPrecision(precision), strhdop, strvdop );
|
|
printCOM(buff);
|
|
if(!envia)
|
|
return;
|
|
if(!sim808.EnviaSMS("+34690744597", buff))
|
|
printCOM("Error al enviar sms data");
|
|
}
|
|
|
|
/*
|
|
* Para log en puerto COM en modo DEBUG
|
|
*/
|
|
void initCOM()
|
|
{
|
|
Serial.begin(9600);
|
|
Serial.println("Iniciando");
|
|
}
|