SIM908 e arduino UNO rastreador veicular

Página 2 de 4 Anterior  1, 2, 3, 4  Seguinte

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  zavattih em Sab 3 Ago - 20:05

Acho que não fico muito muito claro o que escrevi no tópico anterior, eu já sei como o código funciona para mandar os dados.
O que quero saber é a sintaxe no arduino para imprimir as aspas,para que o sim908 entenda a string enviada a ele para configurar a APN.
Por exemplo esta correto o que segue abaixo?
mySerial.println("AT+CSTT=\"wap.vivo.com.br\",\"vivo\",\"vivo\"");// o arduino ira imprimir as aspas e as strings de modo que cheguem neste formato para o sim908:
AT+CSTT="wap.vivo.com.br","vivo","vivo"
Agradeço.

zavattih

Mensagens : 14
Data de inscrição : 27/07/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  Admin em Seg 5 Ago - 6:49

sim está correto
avatar
Admin
Admin

Mensagens : 560
Data de inscrição : 07/04/2009
Idade : 36
Localização : Franca

Ver perfil do usuário http://projetoarduino.forum-livre.com

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  zavattih em Ter 6 Ago - 23:41

Esta zicado mesmo esse projeto. Agora depois que o GPS sincroniza, quando vai enviar os dados ele começa a mandar estas respostas e não sincroniza mais. E tambem não envia os dados. O que pode ser agora?
Dados recebidos na serial:

32,032451.000,V,0.000000,N,0.000000,E,0.00,0.0AT+CGPSINF=32

32,032457.000,V,0.000000,N,0.000000,E,0.00,0.0AT+CGPSINF=32

32,032504.000,A,2525.014901,S,4930.019378,W,0.
+PACSP: 1
AT+CGPSINF=32

32,000000.000,V,0.000000,N,0.0000AT+CGPSINF=32
ü
32,000000.000,V,0.000000,N,0.000000,E,0.00,0.
RDY

+CFUN: 1

+CPIN: READY
AT+CGPSINF=32

32,000000.0
Call Ready

RDY

+CFUN: 1

+CPIN: READY
AT+CGPSINF=32

32,000000.0ðððððððððððððððT+CGPSINF=32
ððððüððððððððððððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿAT+CGPSINF=32

32,000000.000,V,0.000000,N,0.000000,E,0.00,0.0AT+CGPSINF=32

32,000000.000,V,0.000000,N,0.000000,E,0.00,0.0
+PACSP: 1
AT+CGPSINF=32

32,000000.000,V,0.000000,N,0.0000ððððððððððððððððüAT+CGPSINF=32

zavattih

Mensagens : 14
Data de inscrição : 27/07/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  Admin em Qua 7 Ago - 10:32

Já conferiu a fonte de alimentação parece que o modulo está reiniciando
avatar
Admin
Admin

Mensagens : 560
Data de inscrição : 07/04/2009
Idade : 36
Localização : Franca

Ver perfil do usuário http://projetoarduino.forum-livre.com

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  giovaniriolli em Qua 7 Ago - 21:31

zavattih, segue o código que peguei no segundo vídeo do autor deste tópico, caso consiga rodar ele nos informe.
Fiz vários testes e envia dados errados, como por exemplo a palavra AT CGPSINF=3 (veja na página que visualiza os dados capturados) no lugar das coordenadas.
O autor do tópico fez funcionar e agora sumiu e não conheço ninguém que fez ele rodar...

A página que visualiza os dados capturados é: http://www.webytes.com.br/consultadados.asp
Fique a vontade para fazer seus testes....

#include
NewSoftSerial mySerial(2, 3);

#define BUF_LEN 200

int powerkey = 5;
int statuspin = 6;
int pinState = 0;
int verifica = 0;
String lat;
String lon;
String ctrl;
byte num_of_bytes;
byte retorno;
char comm_buf[BUF_LEN];
byte n;

void setup()
{

pinMode(powerkey, OUTPUT);
pinMode(statuspin, INPUT);

mySerial.begin(9600);
Serial.begin(9600);

}

void loop()
{

pinState = digitalRead(statuspin);
if(pinState==LOW){
digitalWrite(powerkey, HIGH); // set the LED on
delay(2000);
digitalWrite(powerkey, LOW);
delay(7000);
}

if (verifica == 0) {
mySerial.println("AT+CGPSPWR=0");
delay(1000);
mySerial.println("AT+CGPSPWR=1");
delay(1000);
mySerial.println("AT+CGPSRST=0");
delay(1000);
verifica = 1;
mySerial.flush();
}

lat = "";
lon = "";
ctrl = "";
limpa_buffer();
mySerial.flush();
delay(500);
mySerial.println("AT+CGPSINF=32");
delay(1000);
leserial();
delay(60000);
if (ctrl == "S") {
enviadados();
}
limpa_buffer();
}

void limpa_buffer()
{
memset(comm_buf,'\0',BUF_LEN);
}

void enviadados()
{
mySerial.println("AT+CSTT=\"zap.vivo.com.br\",\"vivo\",\"vivo\"");//executa comando
delay(2000); //espera
limpa_buffer();

mySerial.println("AT+CIICR");//executa comando
delay(5000); //espera resultado na serial
limpa_buffer();

mySerial.println("AT+CIFSR");//executa comando
delay(2000); //espera resultado na serial
limpa_buffer();

mySerial.println("AT+CDNSCFG?");//executa comando
delay(3000); //espera resultado na serial
limpa_buffer();

mySerial.println("AT+CIPSTART=\"tcp\",\"webytes.com.br\",\"80\"");//executa comando
delay(2000); //espera resultado na serial
limpa_buffer();

mySerial.println("AT+CIPSEND");//executa comando
delay(2000);
limpa_buffer();

mySerial.println("GET http://www.webytes.com.br/inseredados.php?lati=\"lat\"&longe=\"lon\"&codcli=15");//executa comando
delay(3000);
limpa_buffer();

delay(1000);
mySerial.println();
delay(1000);
mySerial.println(0x1A,BYTE);
limpa_buffer();
mySerial.flush();
}


void leserial()
{
num_of_bytes = mySerial.available(); //Pega quantidade de bytes que estao na serial
while (mySerial.available() > 0) //Espera até que serial possua bytes
{
for(n=0; n{
comm_buf[n] = mySerial.read();
}
}
if (n == 63) {
//Se o n for menor que 63 descarta pacote
//Alimenta as variaveis com o conteudo do buffer
lat = comm_buf;
lon = comm_buf;
ctrl= lat.substring(30,31);
//Pega só a latitude e longitude
lat = lat.substring(18,29);
lon = lon.substring(32,43);
}
mySerial.flush(); //limpa buffer de entrada da serial
limpa_buffer();
}

giovaniriolli

Mensagens : 17
Data de inscrição : 06/06/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  zavattih em Sex 9 Ago - 20:00

giovaniriolli Este codigo é o mesmo que eu peguei tambem. Ele não esta pegando os recortes das variávies corretamente. Testei seu código e nem sincronizou.
Segue o meu código completo se quiser testar ai:
Ele esta sincronizando certinho e pegando as coordenadas e convertendo elas já, só não estou conseguindo conectar com a rede GPRS.
Código:




#include <WString.h>
#include <icrmacros.h>
#include <NewSoftSerial.h>
NewSoftSerial mySerial(2, 3);

#define BUF_LEN 200

int powerkey = 5;
int statuspin = 6;
int pinState = 0;
int verifica = 0;
String id = "91491252";
int vel = 0;
byte n;
float lat,lon;
String hora,lats1,lats2,lons1,lons2,velo,ctrl,cood,latitude,longitude,velocidade;
float lat1,lon1,lat2,lon2;
byte num_of_bytes,retorno;
char  comm_buf[BUF_LEN];

void setup()
{

pinMode(powerkey, OUTPUT);
pinMode(statuspin, INPUT);

mySerial.begin(9600);
Serial.begin(9600);

}

void loop()
{

pinState = digitalRead(statuspin);
if(pinState==LOW){
digitalWrite(powerkey, HIGH); // set the LED on
delay(2000);
digitalWrite(powerkey, LOW);
}
////escrever e ler na serial////////
if(Serial.available())
    {
      mySerial.write(Serial.read());
    }  
    else  if(mySerial.available())
    {
      Serial.write(mySerial.read());
    }
/////fim//////

///////RESET///////
if (verifica == 0) {
mySerial.println("AT+CGPSPWR=0");
delay(1000);
mySerial.println("AT+CGPSPWR=1");
delay(1000);
mySerial.println("AT+CGPSRST=0");
delay(1000);
verifica = 1;
mySerial.flush();
///////fim/////////
}

latitude = "";
longitude = "";
velocidade= "";
ctrl = "";
limpa_buffer();
mySerial.flush();
delay(500);
mySerial.println("AT+CGPSINF=32");
delay(1000);
leserial();
delay(20000);
if (ctrl == "S") {
enviadados();
}
limpa_buffer();
}

void limpa_buffer()
{
memset(comm_buf,'\0',BUF_LEN);
}

void enviadados()
{
mySerial.println("AT+CSTT=\"wap.vivo.com.br\",\"vivo\",\"vivo\"");//confugurar APN
delay(2000); //espera
limpa_buffer();

mySerial.println("AT+CIICR");//conexão com o GPRS
delay(5000); //espera resultado na serial
limpa_buffer();

mySerial.println("AT+CIFSR");//Pegar IP local
delay(2000); //espera resultado na serial
limpa_buffer();

mySerial.println("AT+CDNSCFG?");//Configuração do dominio do servidor
delay(3000); //espera resultado na serial
limpa_buffer();

mySerial.println("AT+CIPSTART=\"tcp\",\"www.frotaz.com.br\",\"65535\"");//inicia conexão TCP
delay(2000); //espera resultado na serial
limpa_buffer();

mySerial.println("AT+CIPSEND");//inicia envio de dados
delay(2000);
limpa_buffer();

mySerial.println("GET http://www.frotaz.com.br/insere_dados.php?lat="+latitude+"&lon="+longitude+"&vel="+velocidade+"&idsim="+id+"");//executa comando
Serial.print(comm_buf);
Serial.print("http://www.frotaz.com.br/insere_dados.php?lat="+latitude+"&lon="+longitude+"&vel="+velocidade+"&idsim="+id+"");
delay(3000);
limpa_buffer();

delay(1000);
mySerial.println();
delay(1000);
mySerial.println(0x1A,BYTE);
limpa_buffer();
mySerial.flush();
}

void leserial()
{
num_of_bytes = mySerial.available(); //Pega quantidade de bytes que estao na serial
while (mySerial.available() > 0) //Espera até que serial possua bytes
{
for(n=0; n<num_of_bytes;n++)
{
comm_buf[n] = mySerial.read();
}
}
if (n == 63) {
//Se o n for menor que 63 descarta pacote
cood = comm_buf;
ctrl= cood.substring(45,46);
hora= cood.substring(21,26);
lats1 = cood.substring(33,35);
lats2 = cood.substring(35,44);
lons1 = cood.substring(47,49);
lons2 = cood.substring(49,58);
velo = cood.substring(61,63);
vel= velo.toFloat();
lat1=lats1.toFloat();
lat2=lats2.toFloat();
lon1=lons1.toFloat();
lon2=lons2.toFloat();
lat=(lat1+(lat2 / 60))*-1;
lon=(lon1+(lon2 / 60))*-1;
latitude = String(lat);
longitude = String(lon);
velocidade = String(velo);
Serial.print(cood);
Serial.print("\n");
Serial.print(ctrl);
Serial.print(  hora   );
Serial.print("   lat:");
Serial.print(lat,8);
Serial.print(",");
Serial.print(lon,8);
Serial.print("   vel:");
Serial.print(vel);
Serial.print("\n");
}
mySerial.flush(); //limpa buffer de entrada da serial
limpa_buffer();
}

zavattih

Mensagens : 14
Data de inscrição : 27/07/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  giovaniriolli em Sex 9 Ago - 22:21

Amigo, muito obrigado pelo envio do código.
Por favor, qual a versão do software arduino que você esta usando, esta apresentando o erro nas linhas:

vel= velo.toFloat();
lat1=lats1.toFloat();
lat2=lats2.toFloat();
lon1=lons1.toFloat();
lon2=lons2.toFloat();

No código que eu tenho na linha que faz a conexão com o site da Vivo:

mySerial.println("AT+CSTT=\"zap.vivo.com.br\",\"vivo\",\"vivo\"");//confugurar APN

eu uso o zap.vivo.com.br e não wap.vivo.com.br e a conexão e feita e os dados são enviados, fiz os testes com variáveis fixas.
Outra coisa, (desculpe se estou sendo chato) no site da Vivo eu fiz um contrato de uso da rede GPRS para envio dos dados acho que foi no valor de R$ 9,90/mês antes disto ele não enviava nada.

Gosto de detalhar as coisas pois como programador sei que é nos detalhes que está algum erro que passa despercebido.

giovaniriolli

Mensagens : 17
Data de inscrição : 06/06/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  zavattih em Dom 11 Ago - 14:32

É zap.vivo.com.br mesmo, só tinha colocado para testar, O erro que esta aparecendo ai é devido à biblioteca. Você tem que adicioná-la na pasta do arduino a biblioteca Wstring.h para funcionar. A versão que uso é a 022.

zavattih

Mensagens : 14
Data de inscrição : 27/07/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  Admin em Seg 12 Ago - 9:10

Tente assim pra ver se envia os dados

Código:
#include <WString.h>
#include <icrmacros.h>
#include <NewSoftSerial.h>
NewSoftSerial mySerial(2, 3);

#define BUF_LEN 200

int powerkey = 5;
int statuspin = 6;
int pinState = 0;
int verifica = 0;
String id = "91491252";
int vel = 0;
byte n;
float lat,lon;
String hora,lats1,lats2,lons1,lons2,velo,ctrl,cood,latitude,longitude,velocidade;
float lat1,lon1,lat2,lon2;
byte num_of_bytes,retorno;
char  comm_buf[BUF_LEN];

void setup()
{

pinMode(powerkey, OUTPUT);
pinMode(statuspin, INPUT);

mySerial.begin(9600);
Serial.begin(9600);

}

void loop()
{

pinState = digitalRead(statuspin);
if(pinState==LOW){
digitalWrite(powerkey, HIGH); // set the LED on
delay(2000);
digitalWrite(powerkey, LOW);
}
////escrever e ler na serial////////
if(Serial.available())
    {
      mySerial.write(Serial.read());
    } 
    else  if(mySerial.available())
    {
      Serial.write(mySerial.read());
    }
/////fim//////

///////RESET///////
if (verifica == 0) {
mySerial.println("AT+CGPSPWR=0");
delay(1000);
mySerial.println("AT+CGPSPWR=1");
delay(1000);
mySerial.println("AT+CGPSRST=0");
delay(1000);
verifica = 1;
mySerial.flush();
///////fim/////////
}

latitude = "";
longitude = "";
velocidade= "";
ctrl = "";
limpa_buffer();
mySerial.flush();
delay(500);
mySerial.println("AT+CGPSINF=32");
delay(1000);
leserial();
delay(20000);
if (ctrl == "S") {
enviadados();
}
limpa_buffer();
}

void limpa_buffer()
{
memset(comm_buf,'\0',BUF_LEN);
}

void enviadados()
{
mySerial.println("AT+CSTT=\"wap.vivo.com.br\",\"vivo\",\"vivo\"");//confugurar APN
delay(2000); //espera
limpa_buffer();

mySerial.println("AT+CIICR");//conexão com o GPRS
delay(5000); //espera resultado na serial
limpa_buffer();

mySerial.println("AT+CIFSR");//Pegar IP local
delay(2000); //espera resultado na serial
limpa_buffer();

mySerial.println("AT+CDNSCFG?");//Configuração do dominio do servidor
delay(3000); //espera resultado na serial
limpa_buffer();

mySerial.println("AT+CIPSTART=\"tcp\",\"www.frotaz.com.br\",\"65535\"");//inicia conexão TCP
delay(2000); //espera resultado na serial
limpa_buffer();

mySerial.println("AT+CIPSEND");//inicia envio de dados
delay(2000);
limpa_buffer();

mySerial.print("GET http://www.frotaz.com.br/insere_dados.php?lat=");
mySerial.print(latitude); //Corrige aqui
mySerial.print("&lon=");
mySerial.print(longitude);
mySerial.print("&vel=");
mySerial.print(velocidade);
mySerial.print("&idsim=");
mySerial.println(id);//executa comando
Serial.print(comm_buf);
Serial.print("http://www.frotaz.com.br/insere_dados.php?lat="+latitude+"&lon="+longitude+"&vel="+velocidade+"&idsim="+id+"");
delay(3000);
limpa_buffer();

delay(1000);
mySerial.println();
delay(1000);
mySerial.println(0x1A,BYTE);
limpa_buffer();
mySerial.flush();
}

void leserial()
{
num_of_bytes = mySerial.available(); //Pega quantidade de bytes que estao na serial
while (mySerial.available() > 0) //Espera até que serial possua bytes
{
for(n=0; n<num_of_bytes;n++)
{
comm_buf[n] = mySerial.read();
}
}
if (n == 63) {
//Se o n for menor que 63 descarta pacote
cood = comm_buf;
ctrl= cood.substring(45,46);
hora= cood.substring(21,26);
lats1 = cood.substring(33,35);
lats2 = cood.substring(35,44);
lons1 = cood.substring(47,49);
lons2 = cood.substring(49,58);
velo = cood.substring(61,63);
vel= velo.toFloat();
lat1=lats1.toFloat();
lat2=lats2.toFloat();
lon1=lons1.toFloat();
lon2=lons2.toFloat();
lat=(lat1+(lat2 / 60))*-1;
lon=(lon1+(lon2 / 60))*-1;
latitude = String(lat);
longitude = String(lon);
velocidade = String(velo);
Serial.print(cood);
Serial.print("\n");
Serial.print(ctrl);
Serial.print(  hora  );
Serial.print("  lat:");
Serial.print(lat,8);
Serial.print(",");
Serial.print(lon,8);
Serial.print("  vel:");
Serial.print(vel);
Serial.print("\n");
}
mySerial.flush(); //limpa buffer de entrada da serial
limpa_buffer();
}
Gente não seria melhor portar de uma vez para a versão 1.0 da ide do arduino ?
avatar
Admin
Admin

Mensagens : 560
Data de inscrição : 07/04/2009
Idade : 36
Localização : Franca

Ver perfil do usuário http://projetoarduino.forum-livre.com

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  giovaniriolli em Seg 12 Ago - 10:22

A biblioteca wstring.h na minha versão 0022 esta na pasta Core, será que é a mesma?
Baixei o script do wstring.h e agora onde coloca ela? Já coloquei em diversas pasta e até na pasta principal do 0022 e continua o erro.

giovaniriolli

Mensagens : 17
Data de inscrição : 06/06/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  zavattih em Seg 12 Ago - 20:14

Coloque a biblioteca WString.h nos locais: ...\arduino-0022\hardware\arduino\cores\arduino e na pasta ...\arduino-0022\libraries.
No programa vá em Sketch>Import library e adicione a biblioteca WString no programa. É para funcionar desta maneira.
Giovani, testei o código, mas mesmo assim não enviou nada, uso o mesmo pacote de internet que você mencionou.
Qual a tensão e corrente da fonte que você esta usando?

zavattih

Mensagens : 14
Data de inscrição : 27/07/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  giovaniriolli em Seg 12 Ago - 21:44

zavattih. vamos a configuração da fonte:

Marca: Leader Eletronics INC.
I.T.E POWER SUPLY
Design NO: MU08-91120-PJ0S
Input: 100-240V- 50/60Hz 0,3A
Output: 12.0V == 0,5A
- É idêntica ao produto do link mas não é de 1A e sim de 0,5A (SE FOR PROIBIDO POSTAR LINK DE PRODUTO PEÇO QUE POR FAVOR EXCLUA A LINHA, A IDEIA É SOMENTE PARA MOSTRAR E NÃO DIVULGAR PRODUTO)
http://produto.mercadolivre.com.br/MLB-501603297-fonte-de-alimentaco-chaveada-12v-05a-bi-volt-cftv-_JM?redirectedFromParent=MLB492959124

OBS: No meu servidor a porta TCP é 80 e não 65535, mas isso é de cada servidor...

Neste momento gravei no arduino o ultimo script que foi enviado pelo Admin e tirei do código a parte que está dando o erro e você poderá ver na página http://www.webytes.com.br/consultadados.asp que os dados foram enviados, menos a latitude e o longitude pois não estou conseguindo a simples tarefa de adicionar um arquivo WString no meu arduino.

Peguei o Wstring.h que esta dentro da pasta \arduino-0022\hardware\arduino\cores\arduino e coloquei dentro da pasta library/NewSoftSerial e o erro continua.
Acho que estou fazendo tudo errado, na pasta cores do Arduino já existe o Wstring.h e o wstring.cp , inclusive copiei os dois para a pasta da NewSoftSerial e o erro continua.
Já baixei novamente o Arduino 0022 da página do arduino.cc e nada de funcionar.

Não sei se existe outra Wstring.h e onde baixar.

No erro que apresenta ele diz: 'String classe "não tem nenhum membro chamado' toFloat '
na linha vel= velo.toFloat();

giovaniriolli

Mensagens : 17
Data de inscrição : 06/06/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  zavattih em Ter 13 Ago - 16:18

Giovani, não coloque o arquivo WString.h na mesma pasta do Newsoftserial, crie outra pasta dentro da pasta libraries com o nome WString e coloque os arquivos WSring.h e Wstring.cpp dentro desta pasta, abra o código no arduino e vá em Sketch>Import library e adicione a biblioteca WString.

zavattih

Mensagens : 14
Data de inscrição : 27/07/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  giovaniriolli em Qua 14 Ago - 12:49

zavattih, obrigado pelas informações.

os arquivos WString.h e .cpp foram salvos do link https://bitbucket.org/bjoern/arduino_osc/src/a5ebcc130072/libraries/String/WString.h, tambem copiei da pasta core e não de certo

Fazendo tudo o que foi dito ainda o erro é gerado, eita projeto complicado...

Consegui capturar as coordenadas tirando toda a parte com erro no meu script, e alterei a capturas dos caracteres na parte "lats1 = cood.substring(33,44);" e "lons1 = cood.substring(47,58);" e coloquei direto nas variáveis longitude e latitude sem fazer os cálculos de soma e  divisão (vou fazer via programação ASP).
Ate ai tudo bem mas ele só consegue enviar uma vez ou a cada vez que o Arduino é ligado ou resetado, mas envia as coordenada uma vez.

....
if (n == 63) {
//Se o n for menor que 63 descarta pacote
cood = comm_buf;
ctrl= cood.substring(45,46);
hora= cood.substring(21,26);

//lats1 = cood.substring(33,35);
lats1 = cood.substring(33,44); AQUI EU JUNTEI O lats1 com o lats2
//lats2 = cood.substring(35,44);

//lons1 = cood.substring(47,49);
lons1 = cood.substring(47,58); AQUI EU JUNTEI O lons1 com o lons2
//lons2 = cood.substring(49,58);

velo = cood.substring(61,63);


//vel= velo.toFloat(); AQUI DA ERRO
//lat1=lats1.toFloat(); AQUI DA ERRO
//lat2=lats2.toFloat(); AQUI DA ERRO
//lon1=lons1.toFloat(); AQUI DA ERRO
//lon2=lons2.toFloat(); AQUI DA ERRO

lat=(lat1+(lat2 / 60))*-1;
lon=(lon1+(lon2 / 60))*-1;


latitude = String(lats1); AQUI EU COLOQUEI A VARIÁVEL QUE JUNTEI LÁ EM CIMA
longitude = String(lons1); AQUI EU COLOQUEI A VARIÁVEL QUE JUNTEI LÁ EM CIMA
velocidade = String(velo);

Serial.print(cood);
Serial.print("\n");
Serial.print(ctrl);
Serial.print(  hora  );
Serial.print("  lat:");
Serial.print(lat,8);
Serial.print(",");
Serial.print(lon,8);
http://Serial.print("  vel:");
http://Serial.print(vel);
Serial.print("\n");
}
mySerial.flush(); //limpa buffer de entrada da serial
limpa_buffer();
}

giovaniriolli

Mensagens : 17
Data de inscrição : 06/06/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  zavattih em Qui 15 Ago - 16:15

Giovani, pode retirar estas linhas que estão dando erro e imprimir direto as variáveis recortadas da string do código NMEA, já que você vai tratar as coordenadas depois, elas são apenas para que eu possa fazer cálculos com os valores recortados no formato de float.
Mais um pergunta. Qual é este plano que você mencionou de dados via GPRS, pois eu tenho o plano de R$9,90/mês da vivo e não estou conseguindo enviar, creio que por esta motivo.

zavattih

Mensagens : 14
Data de inscrição : 27/07/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  giovaniriolli em Qui 15 Ago - 20:12

zavattih, vamos lá sobre a conta vivo gprs.

Comprei um chip novo e a loja cadastrou um plano GPRS onde fiz uma recarga de R$13,00 para o celular e de R$ 9,90 para o GPRS pois informei que precisava enviar dados...
Coloquei o chip no Shield sim908 e peguei o primeiro código deste fórum e o tempo foi passando e eu nada de conseguir fazer enviar os dados ou sincronizar o GPS, com isso passou o mês e o meu valor de R$ 9,90 para uso do mês acabou.
Então entrei no site da vivo para ver meu saldo e fui obrigado a fazer um cadastro, diante disto tive acesso a minha área de cliente Vivo, nesta mesma tela da Vivo tinha os menus com vários planos e vi que o plano de envio de dados não estava contratado, então preenchi outros dados online e contratei "novamente" o plano de R$ 9,90/mês para o GPRS e com isso consegui enviar dados através do Arduino...
Resumindo o contrato feito na loja utilizando informações passados pelo celular não valeu de nada. Para ajudar não estou conseguindo entrar no site da vivo pois meu plano vence dia 17 e preciso ver como esta o fluxo de envio do chip.

Consigo pegar a coordenada e o GPRS só envia uma ou duas vezes e depois para, isto a cada vez que ligo e desligo, não sei qual "Delay" no código devo mudar para que envie a cada 3 ou 5 minutos pois acho que o GPRS não está conseguindo enviar muito rápido ou está com problema de sincronizar e depois não sincronizar mais.

Ainda volto a insistir no seu código sobre a porta de envio TCP/HTTP, pelo que vi seu serviço de hospedagem aceita a troca de porta, a padrão é 80.

Gostaria que você fizesse um teste tentando enviar as coordenadas de seu Shield para o meu servidor e com isso poderíamos ver se é problema de chip da vivo, as linhas de acesso são:

mySerial.println("AT+CIPSTART=\"tcp\",\"www.webytes.com.br\",\"80\"");//inicia conexão TCP

mySerial.print("GET http://www.webytes.com.br/inseredados.php?lat=");

Serial.print("http://www.webytes.com.br/inseredados.php?lat="+latitude+"&lon="+longitude+"&vel="+velocidade+"&idsim="+id+"");

A pagina de consulta é: http://www.webytes.com.br/consultadados.asp (meu calculo de coordenadas é feito no ASP e não como você fez no Arduino)

Lembrando que este código é o último passado pelo Administrador do fórum.

giovaniriolli

Mensagens : 17
Data de inscrição : 06/06/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  zavattih em Seg 19 Ago - 22:43

Giovani, como esta indo seu projeto?
Esta enviando tudo direitinho?
O meu ainda não esta enviando e também esta com esse problema de resetar após tentar enviar 2 ou 3 vezes os dados.
Não estou conseguindo entrar no site da vivo pois acho que esta com a algum problema no login lá.
Qualquer novidade avisa ai.
Ou por email se quiser.
josce.zavattih@gmail.com

zavattih

Mensagens : 14
Data de inscrição : 27/07/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  Admin em Ter 20 Ago - 8:27

Zavathi já conseguiu enviar dados digitando os comando AT na mão ? ele reseta quando vc faz dessa forma ?

Use o modo AT sempre que estiver com dúvidas não fique debugando com o arduino pois é muito dificil.

Imagino que a essa altura do campeonato vc já sabe oq é modo AT
avatar
Admin
Admin

Mensagens : 560
Data de inscrição : 07/04/2009
Idade : 36
Localização : Franca

Ver perfil do usuário http://projetoarduino.forum-livre.com

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  giovaniriolli em Ter 20 Ago - 15:13

Zavathi,

Estou no mesmo pé que parei, não entendo muito de Arduino e o que eu estou fazendo é testes de acordo com o que eu vou lendo...
Testei com o chip da Tim e foi enviada as coordenadas igual ao chip da Vivo mas somente 3 ou 4 vezes e depois para.
Abri o serial monitor e as coordenadas estão sendo capturadas normalmente só dá este problema de enviar 3 vezes e parar.
No código onde eu altero os minutos para o envio GPRS? gostaria de enviar a cada 4 minutos para fazer testes...

giovaniriolli

Mensagens : 17
Data de inscrição : 06/06/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  zavattih em Ter 20 Ago - 15:24

Altere na linha depois do comando leserial().
mySerial.println("AT+CGPSINF=32");
delay(1000);
leserial();
delay(20000);//delay em milisegundos só alterar para (300000) que é 5 minutos.

Não sei o pq mas acho que ele esta resetando por algum motivo quando mando o comando para se conectar na rede.
A fonte que estou usando é 12V 1A.
Quando eu mando os comandos via hyperterminal eu obtenho as seguintes respostas:
Código:
AT+CGPSRST=0
OK
AT+CGPSINF=32
32,235951.000,V,0.000000,N,0.000000,E,0.00,0.00,050180,,E,A
OK
AT+CSTT="ZAP.VIVO.COM.BR","VIVO","VIVO"
OK

RDY

+CFUN: 1

+CPIN: READY

+PACSP: 1

GPS Ready

Call Ready
AT+CIFSR
ERROR

zavattih

Mensagens : 14
Data de inscrição : 27/07/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  Admin em Ter 20 Ago - 15:29

Tentou trocar a fonte ?

faz assim vai no barzinho da esquina e compra um chip pré pago claro, poem no primeiro celular pra fazer aquele cadastro obrigatório, poem credito e testa a internet no celular pra ver se está navegando. ai sim vc testa no sim908.

Se continuar resetando o modulo me envie de volta que pode ser defeito, mas reinterando que o problema pode ser a fonte se chegar aqui e estiver funcionando o custo de reenvio é por sua conta.
avatar
Admin
Admin

Mensagens : 560
Data de inscrição : 07/04/2009
Idade : 36
Localização : Franca

Ver perfil do usuário http://projetoarduino.forum-livre.com

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  giovaniriolli em Dom 25 Ago - 11:10

Conforme eu informei que o modulo está pegando as coordenadas e somente enviando o GPRS duas ou três vezes e depois para, vi no serial monitor que isto ocorre após surgir um caractere nas linhas das coordenadas depois de capturar umas três vezes.
Este caracteres não possui um valor fixo inicia com m.br/ins... ou br/ins... e depois dai nada mais é enviado e as coordenadas são capturadas umas duas vezes e depois também para.
Isso ocorre com fonte de 12V 0,5A e 12V 1A

Resumindo: Depois que ele alinha, envia duas vezes, surgi o caractere e captura só mais duas vezes e não envia.

== AQUI ESTÁ CAPTURANDO E ENVIANDO NORMAL ==
AT+CGPSINF=32
32,042109.000,A,2136.295557,S,4653.894067,W
52,042  lat:0.00000000,0.00000000  vel:10

AT+CGPSINF=32
32,042430.000,A,2136.295557,S,4653.894067,W,0.
S42430  lat:0.00000000,0.00000000  vel:10
m.br/ins.295557

== A PARTIR DAQUI ESTÁ CAPTURANDO E NÃO  ENVIANDO  ==

AT+CGPSINF=32
32,042813.000,A,2136.283218,S,4653.861575,W
12,042  lat:0.00000000,0.00000000  vel:10

AT+CGPSINF=32
32,043135.000,A,2136.283218,S,4653.861575,W,0.
S43135  lat:0.00000000,0.00000000  vel:10

== DAQUI PRA FRENTE NÃO CAPTUROU  MAIS, FICOU 12 HORAS LIGADO ==

giovaniriolli

Mensagens : 17
Data de inscrição : 06/06/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  Admin em Seg 26 Ago - 6:50

Certo mas esse teste vc está fazendo via serial monitor ou é o arduino que está digitando esses os comandos AT?
avatar
Admin
Admin

Mensagens : 560
Data de inscrição : 07/04/2009
Idade : 36
Localização : Franca

Ver perfil do usuário http://projetoarduino.forum-livre.com

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  giovaniriolli em Seg 26 Ago - 12:51

Este teste é no serial monitor do arduino.
Ao abrir o serial monitor as coordenadas são informadas automaticamente sem a necessitade de digitar o comando AT

giovaniriolli

Mensagens : 17
Data de inscrição : 06/06/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  Admin em Ter 27 Ago - 7:45

então se gravar o software de comando AT e ir no hyperterminal e digitar

AT+cgpspwr=1

at+cgpsrst=0

at+cgpsinf=32

at+cstt="claro.com.br","claro","claro"

at+ciicr

at+cifsr

at+cipstart="nomedosite.com.br","porta"

at+cipsend

GET nomedosite.com.br/bla.bla,blar.coordenadas

ctrl+j

ctrl+m

ctrl+z

e esperar um tempo ele perde as coordenadas ?
avatar
Admin
Admin

Mensagens : 560
Data de inscrição : 07/04/2009
Idade : 36
Localização : Franca

Ver perfil do usuário http://projetoarduino.forum-livre.com

Voltar ao Topo Ir em baixo

Re: SIM908 e arduino UNO rastreador veicular

Mensagem  Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Página 2 de 4 Anterior  1, 2, 3, 4  Seguinte

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum