Projeto Arduino
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Shield sim908 com o Arduino IDE 1.0.1

4 participantes

Ir para baixo

Shield sim908 com o Arduino IDE 1.0.1  Empty Shield sim908 com o Arduino IDE 1.0.1

Mensagem  andersonlf Qua 12 Set - 8:45

Olá pessoal,
Giving back my 2cents para o forum...
Portei o código básico para mandar comandos AT de/para o Shield via Serial para a IDE 1.0.1 do Arduino.
Esse código funciona no Arduino Mega 2560, mas quem quiser portal para o UNO precisa fazer o truque já explicado em outros posts de trocar a hardware SERIAL2 pela SoftSerial. Quem estiver com o Arduino Mega não esqueça de fazer a ligação do Shield nas portas 16 e 17 conforme o outro post do Tiago (Por sinal: Tiago, eu segui o seu post, mas eu não entendi pq a placa precisa ser "jumpeada" daquela maneira.... vc tem alguma documentação da utilização dos jumpers da placa?)
Pelo que eu percebi o que mais mudou na versão nova do framework Arduino foi essa parte de comunicação serial. Estou usando um buffer junto com o evento que é chamado automaticamente quando tem dados na Serial (SerialEvent: mas documentação no site arduino.cc)


Código:

const int bufferSize = 100;
char buffer[bufferSize];
char buffer2[bufferSize];
int powerkey =  5;
int statuspin = 6;
int pinState = 0;

void setup ()
{
  pinMode(powerkey, OUTPUT);
  pinMode(statuspin, INPUT);
 
  Serial.begin(9600);              // hardware serial computador para arduino 
  Serial2.begin(9600);                // hardware serial arduino para GPS/GPRS 
}
 
void loop ()
{
  pinState = digitalRead(statuspin);
  if(pinState==LOW){
    digitalWrite(powerkey, HIGH);  // set the LED on
    delay(2000);
    digitalWrite(powerkey, LOW);
  }
  if (buffer[0] != '\0'){
    Serial2.println( buffer );
    for (int i=0; i < bufferSize;i++) buffer[i] = '\0'; //talvez alguem aconheça uma maneira mais bonita de apagar um array
  }
  if (buffer2[0] != '\0'){
    Serial.println( buffer2 );
    for (int i=0; i < bufferSize;i++) buffer2[i] = '\0'; //talvez alguem aconheça uma maneira mais bonita de apagar um array
  }
}
 
void serialEvent()
{
    Serial.readBytesUntil ( '\n', &buffer[0], bufferSize );
}

void serialEvent2(){
  Serial2.readBytesUntil ( '\n', &buffer2[0], bufferSize );
}

O GPS levou um tempão para retornar o primeiro FIX, mas funcionou conforme esperado depois disso...
Usei a lista de comandos AT abaixo para fazer ele funcionar:

AT+CGPSPWR=0 //força desligamento do GPS
AT+CGPSPWR=1 // liga o GPS
AT+CGPSRST=1 // aqui vc seta cold/warm ou hot start... tem q ver qual a melhor maneira de usar isso
AT+CGPSIPR=9600 //seta o boud rate.... o mesmo que vc está usando para a comunicação com o arduino
AT+CGPSOUT=32 //seta o tipo de saida esperado... acho q esse comando não é necessário
AT+CGPSINF=32 // solicita as coordenadas NMEA


abraço e boa sorte,
Anderson Luiz Ferrari
EmpowerLog Soluções

andersonlf

Mensagens : 6
Data de inscrição : 31/08/2012

Ir para o topo Ir para baixo

Shield sim908 com o Arduino IDE 1.0.1  Empty Re: Shield sim908 com o Arduino IDE 1.0.1

Mensagem  Admin Qua 12 Set - 9:16

Sempre use o AT+CGPSRST=0
Admin
Admin
Admin

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

https://projetoarduino.forumeiros.com

Ir para o topo Ir para baixo

Shield sim908 com o Arduino IDE 1.0.1  Empty Shield sim908 com o Arduino IDE 1.0.1

Mensagem  edmar_romanini Qua 19 Set - 13:32

Boa Tarde....

Desculpa a demora só estou respondendo hoje pois fiquei um pouco ocupado, funcionou o seu código para a IDE 1.0.1, só que estou enfrentando um problema para enviar SMS nos dois códigos. Pelo monitor serial e digito AT+CMGF=1 ele me responde OK, depois digito AT+CMGS="meu numero" e me aparece > que é para digitar a mensagem digito e depois vi em alguns sites que tem que digitar o comando CRTL+Z tentei digitar não deu erto, depois em outro site ele pede para pressionar a tecla CTRL+z mesmo assim nada acontece, após isso trava o simbolo > e eu tenho que reiniciar o Arduino. Você poderia me ajudar.


Grato.
Edmar Barbosa Romanini.


edmar_romanini

Mensagens : 15
Data de inscrição : 13/09/2012

Ir para o topo Ir para baixo

Shield sim908 com o Arduino IDE 1.0.1  Empty escape

Mensagem  andersonlf Qua 19 Set - 16:35

acho que não vai ter como enviar nenhum caracter de "escape" pelo Monitor Serial (pelo menos eu não sei como fazer isso)... o que vc pode fazer, é adaptar o código pra´ sempre que chegar uma sequencia, por exemplo "\z", vc substitui pelo ASCII equivalente ao ctrl-z... acho q isso deve funcionar, mas precisa adaptar o código...

andersonlf

Mensagens : 6
Data de inscrição : 31/08/2012

Ir para o topo Ir para baixo

Shield sim908 com o Arduino IDE 1.0.1  Empty Re: Shield sim908 com o Arduino IDE 1.0.1

Mensagem  edmar_romanini Qui 20 Set - 9:56

Obrigado pela ajuda, consegui fazer o comando executar pelo ASCII 26 (hexa 0x1A) que é o CTRL+Z, só que pelo monitor serial não dava mesmo assim então perguntei para o admin do forum também, ele me deu a dica para começar a usar o hyperterminal do SO, como uso o Win7 não tem o hyperterminal, então procurei na internet e achei o mesmo do XP, ele foi portado para o Win7 e agora está funcionando normalmente. Grato.

edmar_romanini

Mensagens : 15
Data de inscrição : 13/09/2012

Ir para o topo Ir para baixo

Shield sim908 com o Arduino IDE 1.0.1  Empty Re: Shield sim908 com o Arduino IDE 1.0.1

Mensagem  edmar_romanini Seg 24 Set - 15:24

Não sei o que aconteceu, mas o shield GSM não responde mais aos comados AT, você digita qualquer comando e o mesmo não responde nada, já tentei de tudo, mudei o baud para todos possíveis e nada, alguem poderia me dar uma força.

edmar_romanini

Mensagens : 15
Data de inscrição : 13/09/2012

Ir para o topo Ir para baixo

Shield sim908 com o Arduino IDE 1.0.1  Empty +CMS ERROR: SIM not inserted

Mensagem  tiagotaz Seg 26 Ago - 23:32

Eae Cara blz? Então vi que você tem arduino+ sim900 estou com um problema parecido com o seu, tenho a shield SIM900 v.1.1 + arduino UNO e estou ligando em uma fonte externa com 2 AMP porém é informado o erro sim card is not inserted, já passou por isso? Como você fez sua ligação física e sua configuração nos arquivos? Se puder me ajudar, ficarei muito grato, Obrigado.

tiagotaz

Mensagens : 2
Data de inscrição : 26/08/2013

Ir para o topo Ir para baixo

Shield sim908 com o Arduino IDE 1.0.1  Empty Re: Shield sim908 com o Arduino IDE 1.0.1

Mensagem  Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos