Shield sim908 com o Arduino IDE 1.0.1
4 participantes
Página 1 de 1
Shield sim908 com o Arduino IDE 1.0.1
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)
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
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
Shield sim908 com o Arduino IDE 1.0.1
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.
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
escape
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
Re: Shield sim908 com o Arduino IDE 1.0.1
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
Re: Shield sim908 com o Arduino IDE 1.0.1
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
+CMS ERROR: SIM not inserted
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
Tópicos semelhantes
» FONTE 9V/1A SHIELD SIM908 ARDUINO
» SIM908 SHIELD
» Arduino UNO SIM 908
» Enviar SMS pelo Arduino Mega2560 + shield sim908 na IDE 1.5.5
» SIM908 GPS GSM GPRS
» SIM908 SHIELD
» Arduino UNO SIM 908
» Enviar SMS pelo Arduino Mega2560 + shield sim908 na IDE 1.5.5
» SIM908 GPS GSM GPRS
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|