SIMM800L e Arduino - Erro quando uso comandos HTTP e SMS read

Estou usando o exemplo "HTTPS_GET_SoftSerial" da biblioteca Simm800l para ler os dados de um servidor e funciona bem.


Mas quando tento ler a mensagem SMS, enviando antes a configuração abaixo , os bytes do SMS vêm com problemas.

Sim800l.print("AT+CMGF=1\n;AT+CNMI=2,2,0,0,0\n;ATX4\n;AT+COLP=1\n"); 

O curioso é que a rotina HTTPS não é executada no meu código. Eu coloquei a seguinte linha:


if (falso) { uint16_t rc = sim800l-> doGet (URL, 10000); }

Ou seja, a interferência entre as funções ocorre apenas pelo fato do código ser compilado.

Alguém teria um exemplo usando GPRS e GSM no mesmo código?

Exibições: 61

Responder esta

Respostas a este tópico

Olá David,

O que você descreve pode ser um problema com a comunicação serial.
Cabos, conexões ou até mesmo a velocidade de comunicação entre o Arduino e o módulo GSM.

Verifique os cabo/conexões. Teste diferentes velocidades de comunicação com o módulo.

Em geral os exemplo usam 9600, mas já li que essa velocidade cria uma certa instabilidade.

Tente com 38400 por exemplo.

Olá Rodrigo,

Desde já agradeço pela resposta!

O que eu percebi foi um mal funcionamento ao utilizar duas portas seriais via software, uma para o MODEM e outra para o GPS. 

Basta apenas compilar o código para aparecer alguns comportamentos anômalos, tais como, mensagem que chegam pela metade ou com bytes invertidos, mensagens chegando picadas e com intervalo grande entre elas etc.

Agora estou pensando em uma maneira de colocar o MODEM ou o GPS na porta serial de hardware e usar apenas uma via software. O problema, que você já deve ter sacado, vai ser a trabalheira de toda hora ficar desconectando/conectando o dispositivo quando for gravar o firmware no Arduino.

Você teria uma sugestão?

RSS

© 2021   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço