SIM800L não responde

Boa noite pessoal.
Vergonhosamente meu primeiro post é para pedir ajuda e não para ajudar.
Mas espero poder ajudar algumas pessoas daqui para frente :slight_smile:

Estou com um problema há semanas já com um módulo GSM SIM800L.

  • Nem o módulo e nem o Arduino (Uno) que tenho são originais. $e é que me entendem.

Bom, tentei vários tópicos semelhantes mas o máximo que consegui chegar é a resposta:

AT%13%

Essa resposta vem depois da chamada do método

begin(9600)

O esquema de ligações é simples:
--> TX do módulo no pino 2 do Arduino Uno
--> RX do módulo no pino 3 do Arduino Uno
--> GND do módulo no negativo da bateria
--> VCC do módulo na positivo da bateria

Meu módulo é igual a esse:

O mais estranho é que quando tento ligar para o chip sem ligar o módulo, vai para caixa postal (óbvio hehe). Mas quando tento ligar depois de aguardar alguns segundos após ligar o módulo, chega até a tocar.

A alimentação que estou usando é uma bateria de celular de 3.7V (e tensão máxima de 4.2V) e corrente de 2000mAh.
Testei a tensão no multímetro e está mesmo com 3.7V.

Serei muuuito grato caso alguém consiga me ajudar.

Uma imagem não diz muito sobre um módulo. Conclusão: Alguém terá que perder tempo a procurar as características desse módulo para o poder ajudar.
Qualquer coisa que tenha unidade mAh, não se refere a correte, mas sim a capacidade (se não, não tinha o "h").
Já tentou ligar o módulo directamente ao PC (sem passar pelo Arduino)? Os problemas podem ser vários, desde as ligações até à alimentação do módulo, passando pelas mensagens que está a enviar. Não reconheço a mensagem "AT%13%", a menos que esse "%13%"seja o caracter com código ASCII 13, mas sendo assim, será que o Arduino entende isso e consegue executar correctamente?

Opa! Obrigado pela resposta.

luisilva:
Qualquer coisa que tenha unidade mAh, não se refere a correte, mas sim a capacidade (se não, não tinha o "h").

Me desculpe, sou leigo em algumas coisas e termos :slight_smile:

luisilva:
Alguém terá que perder tempo a procurar as características desse módulo para o poder ajudar.

Tenho algumas especificações, talvez ajude:

SIM800L is a complete Quad-band GSM/GPRS solution in a LGA type which can be embedded in the customer  applications.  SIM800L support Quad-band 850/900/1800/1900MHz, it can transmit Voice, SMS and data information with low power  consumption. With tiny size of 15.8*17.8*2.4 mm, it can fit into slim and compact demands of customer design.

 

General features

•Quad-band 850/900/1800/1900MHz

•GPRS multi-slot class 12/10

•GPRS mobile station class B

•Compliant to GSM phase 2/2+

– Class 4 (2 W @ 850/900 MHz)

– Class 1 (1 W @ 1800/1900MHz)

•FM: 76~109MHz worldwide bands with 50KHz  tuning step

•Dimensions: 15.8*17.8*2.4 mm

•Weight: 1.35g

•Control via AT commands (3GPP TS 27.007, 27.005 and SIMCOM enhanced AT Commands)

•Supply voltage range 3.4 ~ 4.4V

•Low power consumption

•Operation temperature:-40°C~85°C

 

Specifications for GPRS Data

•GPRS class 12: max. 85.6 kbps (downlink/uplink)

•PBCCH support

•Coding schemes CS 1, 2, 3, 4

 •PPP-stack

•CSD up to 14.4 kbps

•USSD

•Non transparent mode

Specifications for SMS via GSM/GPRS

•Point to point MO and MT

•SMS cell broadcast

 •Text and PDU mode

 

Software features

•0710 MUX protocol

•Embedded TCP/UDP protocol

•FTP/http

•MMS

•E-MAIL

 •DTMF

 •Jamming Detection

luisilva:
Já tentou ligar o módulo directamente ao PC (sem passar pelo Arduino)

Não pois imagino que isso iria queimá-lo. Mas a alimentação dele não é com o Arduino, mas sim com a bateria. E mesmo sem conectar o módulo ao Arduino, o número chama quando ligo para ele.

luisilva:
passando pelas mensagens que está a enviar

Não chego a tentar enviar pois o módulo da problema logo no begin (apenas retorna este código) e se tento enviar algo para ele depois disso, ele não responde.

Experimenta enviar o codigo AT para o modulo e ve se a resposta e OK.

Se o modulo toca quando ligas para ele, e sinal que pelo menos tem alimentacao. Falta agora saber como esta ligado e que modulo e esse.

Estas a usar a porta serie de software? que biblioteca, se alguma, estas a usar para comunicar com o modulo?

Viva.

Passa por aqui:

https://forum.arduino.cc/index.php?topic=337710.0

Pode ser que ajude.

Boa tarde!

bubulindo:
Experimenta enviar o codigo AT para o modulo e ve se a resposta e OK.

Experimentei e não retornou nada. Até por que o begin dele já retorna aquele código "AT%13%" e pelo que pesquisei deveria retornar muitos mais dados para que a conexão fosse bem sucedida (posso estar errado quanto a isso).

bubulindo:
Estas a usar a porta serie de software? que biblioteca, se alguma, estas a usar para comunicar com o modulo?

Estou usando a SoftwareSerial.h para isso. Tentei usar uma biblioteca, mas não obtive sucesso. Se tiver algum exemplo de algum que já utilizou e sabe que funciona, isso pode ser muito útil :slight_smile:

Boa tarde arssant.

arssant:
Viva.

Passa por aqui:

SIM800L issue - Project Guidance - Arduino Forum

Pode ser que ajude.

Sim, passei por esse post, tanto que foi lá que me informei que o Arduino não conseguia alimentar o módulo e para isso utilizei a bateria conforme citado.

Vou tentar fazer de novo o código que o vlada0 citou.

LeonildoAlbani:
Vou tentar fazer de novo o código que o vlada0 citou.

O módulo não responde ao comando AT arssant, na verdade não responde a nenhum comando.
Tentei inclusive inverter os fios de TX e RX, pois no código que tu citou o cara falou que é para ligar conforme o código, aí no primeiro comentário fala para colocar o TX no pino 10 e o RX no 11 e depois inverte isso.

Nem de uma, nem de outra forma funcionou :frowning:

Bem, não sei se você ainda está utilizando este módulo GPRS, ou deu sequência no projeto, mas eu tive "problemas" iniciais com o uso deste módulo.

Primeiramente, no meu projeto, não utilizei o arduino, e sim uma placa que eu mesmo fiz com o chip avr atmega328p programado em C puro. Basicamente isso não influi em um problema, pois o funcionamento é praticamente o mesmo, só muda a programação.

Seguindo então, tinha este problema, o módulo ligava porém não conseguia realizar nenhuma transmissão, até que então, varrendo os datasheets do módulo, encontrei uma solução.

O módulo GPRS Sim800l no meu caso, é CMOS, saindo uma tensão de 3,3V aproximadamente dos pinos TX e RX. Sendo assim, é necessário realizar um circuito para equalizar o nível de tensão, para que a USART se comunique corretamente com o microcontrolador (ou arduino) no seu caso.

Os pinos RX e TX, devem ser ligados inversamente, com certeza. RX do módulo no TX do arduino, e vice versa.

O circuito que citei, está representado na página 32 do datasheet, no link a seguir.

https://www.seeedstudio.com/wiki/images/4/46/SIM800L_Hardware_Design_V1.00.pdf

Boas

Se tiveres algum conversor USB/Serie tipo ftdi232 o mais fácil é tentares nao meter o arduino para ja ao "barulho" e tentares fazer as operações básicas no modem com o pc(ligar, desligar chamada, enviar sms ...)
Para tal basta ligares o teu modem com este conversor USB e ligares no teu PC diretamente.
Depois podes usar isto:
Download AT Command Tester | M2MSupport.net para enviares comandos AT diretamente para a porta serie que o teu conversor "ganhou" no windows ou no linux,mac ...
Podes também usar o putty, terraterm, gtk-term ou outro qualquer cliente de hiperterminal para fazeres essa operação.
Quando tiveres a realizar as operações básicas com o modem ai podes ligar ao arduino e tentar repetir os mesmos.
Nota que a fonte deve conseguir fornecer alguma currente pois o modem quando em transmissão ou receção faz pedidos de currente que se nao tiver disponivel pode resetar o modem.

Amigo, já resolveu seu problema?
Comecei a utilizar um desses hoje e também tive algumas surpresas.

Se a voltagem estiver abaixo de 3,7v ou acima de 4,5 ele não funciona.
Ele liga avisa que está fora e desliga.

Outra coisa...qando vc liga o led acente?
Ele deve ficar piscando.

abaços.

Ola, eu estou com o mesmo problema, ainda não saquei o que pode ser, mas encontrei inúmeros tutoriais para ajudar com esse modelo. Os que mais chegaram perto foram:

http://www.belajarduino.com/2016/06/sim800l-control-relay-4-channel-with.html

No meu caso já tentei com o Mega 2560 e o nano. Nenhum dos dois responde aos comandos AT, etc.

Tentei ligar para o numero, mesmo com o led piscando, foi caixa postal.

Estou usando uma bateria da samsung, já tentei também a lance dos diodos 1n4007 no VCC de 5v e nada...

Alguém tem mais alguma ideia?

Boa tarde;

Não li todos as respostas. Se alguém tiver resolvido, desculpem pela duplicidade.

Seguinte, o módulo deve ser alimentado com 4.1v, eu uso um regulador de tensão. Não esquecer de conectar o terra do regulador no terra do Arduino.

O chip é inserido com o chanfro para a parte superior (para fora).

Os cabos TX e RX vão conectados no 10 e 11 e no caso do MEGA eu uso a Serial1 (TX1 e RX1)

O módulo pisca rapidamente se não consegue conexão com a operadora e quando estabelece a conexão ele pisca uma vez a cada 3 segundos.

#include <SoftwareSerial.h>

SoftwareSerial serialGSM(10, 11); // RX, TX

SoftwareSerial serialGSM(Serial1); // Arduino Mega

Boa noite pessoa. Preciso de ajuda, estou iniciando minha brincadeira com arduino. Estou utilizando um módulo gsm Sim800l. Ele faz contato com o arduino uno, porem, sempre que recebe uma mensagem ou realizo algum comando AT, sempre retorna uns caracter estranho no meio. Tipo:? ou quadradinhos. Para funcionar tive que setar na porta SoftwareSerial 115200 e na porta da Serial 9600. Porem estou com esse problema.

Estava com o mesmo problema na verdade ainda estou, mas gostaria de compartilhar uma possível causa para o seu problema. Possivelmente seu módulo veio configurado com a velocidade serial de 115200 onde você terá que fazer as mudanças tanto no código sketch quanto no monitor serial para só então realizar a mudança na configuração do módulo, pelo sketch de TESTE_GSM com comandos AT. Pelo menos no meu caso foi assim, agora o problema é que mesmo mudando a configuração do módulo pelo código AT+IPR=9600 ou qualquer outra velocidade desejada, sempre que inicializa-lo irá voltar para os 115200.... Logo acredito que seu sketch deverá conter esse código para configuração antes da inicialização do sketch. Só não descobri COMO?

alanrgon:
Boa tarde;

Não li todos as respostas. Se alguém tiver resolvido, desculpem pela duplicidade.

Seguinte, o módulo deve ser alimentado com 4.1v, eu uso um regulador de tensão. Não esquecer de conectar o terra do regulador no terra do Arduino.

O chip é inserido com o chanfro para a parte superior (para fora).

Os cabos TX e RX vão conectados no 10 e 11 e no caso do MEGA eu uso a Serial1 (TX1 e RX1)

O módulo pisca rapidamente se não consegue conexão com a operadora e quando estabelece a conexão ele pisca uma vez a cada 3 segundos.

#include <SoftwareSerial.h>

SoftwareSerial serialGSM(10, 11); // RX, TX

SoftwareSerial serialGSM(Serial1); // Arduino Mega

Boas, tenho um adaptador com output 5v, como faço para conseguir os 4,1v??? LM338 dá?

Renato_Silva:
Boas, tenho um adaptador com output 5v, como faço para conseguir os 4,1v??? LM338 dá?

Ola,
Não pode usar o LM338 nessa situação. O LM338 precisa de uma diferença de tensão de pelo menos 3V entre a entrada e a saída.
Use um daqueles módulos reguladores de tensão com LM2596 ou similar.

O modulo SIM800L requer um tensão de alimentação entre 3.4V a 4.4V. Não precisa ser estabilizada.
Um diodo retificador comum de 2A ou mais (1N5401) pode ser colocado em série com o 5V para reduzir a tensão para 4.3V.