Tabela de conteúdos
Usando o Módulo 2G SIM800L
O SIM800L é um módulo que contém todos os elementos necessários para comunicação através de redes de celular 2G. Este módulo pode ser utilizado com diversos microcontroladores ou até mesmo conectado diretamente à porta serial de um PC por meio de um adaptador USB.
Atenção:
Alimentação
A principal dificuldade ao utilizar o SIM800L é que ele requer uma fonte de tensão não superior a 4,2 V e não inferior a 3,7 V. Ou seja, não pode ser conectado diretamente a um Arduino UNO (que opera a 5 V), nem a um ESP32 (que opera a 3,3 V), por exemplo.
Além disso, o módulo exige uma fonte capaz de fornecer corrente com picos de até 2 A, necessária durante os momentos de comunicação com a rede celular.
Por isso, é essencial uma fonte externa estável, configurada para 4 V e corrente de até 2 A.
Comunicação Serial
O SIM800L é controlado por meio dos chamados comandos AT, muito comuns em dispositivos de telecomunicações. Essa interface é feita através de uma porta serial (Rx/Tx) entre o módulo e uma controladora externa, que pode ser um Arduino ou até mesmo um PC.
É importante sempre observar as diferenças de tensão entre o controlador e o SIM800L.
Apesar do SIM800L receber alimentação entre 3,7 e 4,2V, os pinos de lógica como o Rx/Tx/RST não devem receber sinais lógicos com tensão superior a 2,8V. Por exemplo, ao utilizar um ESP32 na comunicação serial com o SIM800L, não conecte o sinal Tx do ESP32 diretamente ao Rx do SIM800L. Ao invés disso, use um divisor de tensão para baixar a tensão de 3,3V para 2,8V. Mais detalhes no datasheet, páginas 29 a 32.
A conexão entre o Rx no ESP32 e o Tx no SIM800L pode ser conectado diretamente visto que quem gera o sinal é o SIM800L, já em 2,8V e o ESP32 não terá problema em interpretar este sinal lógico.
Se o microcontrolador que você está usando é de 5V, considere usar um Level Shifter, o que possivelmente irá requer também o uso de um regulador de tensão de 2,8V.
Observar que o mesmo se aplica ao pino de RESET (RST) do SIM800L. De acordo com o datasheet (página 26/27) o sinal não deve ser superior a 2,9V.
Cálculo do divisor de tensão
Há diversos calculadores online para isso. Nos meus testes eu usei um resistor de 1,8K e um de 3,9K para abaixar a tensão no pino Tx do SIM800L de 4,1V para aproximadamente 2,8V, deixando-o compatível com o nível de tensão no meu adaptador serial.
Calculadora online de divisor de tensão.
Velocidade da comunicação serial / Boud rate
Com relação a velocidade de comunicação (boud rate) o SIM800L é capaz de se auto-configurar. Em meus testes utilizo a velocidade de 9600 por conveniência.
Enviando SMS com o módulo SIM800L
Adaptador Serial-> USB no PC
Implementação
Para testar e aprender a usar o módulo SIM800L, foi utilizada a quantidade mínima de componentes:
- Um chip SIM de operadora, com adaptador para micro SIM;
- Um módulo SIM800L (preferencialmente com antena externa);
- Uma fonte externa ajustada para 4,1 V / 2,5 A;
- Um adaptador USB FTDI para comunicação serial (operando a 3,3 V);
- Resistores de 1 kΩ e 5,6 kΩ para o divisor de tensão;
- Uma protoboard;
- Fios e cabos de conexão.
Instalação do chip SIM
O cartão SIM deve ser inserido com os contatos voltados para a PCB e a aba para cima, conforme a imagem ilustrativa.
Significado do indicador LED
Observe que o módulo possui um LED indicador, com os seguintes significados:
- Piscando 1x por segundo: módulo ligado, mas não conectado à rede. Se não houver conexão mesmo após alguns minutos, teste o SIM em um aparelho de celular e verifique se funciona ali.
- Piscando 1x a cada 2 s: módulo conectado à rede 2G, mas sem garantia de envio de SMS.
- Piscando 1x a cada 3 s: módulo conectado à rede 2G e pronto para envio de SMS.
Exemplo de teste em protoboard
Exemplo de fonte de alimentação de bancada
Resultados
Uma vez ligado, utilize o monitor serial da IDE do Arduino:
- Configure para enviar o caractere CR (carriage return) ao pressionar ENTER;
- Envie o comando 'AT', a resposta deve ser OK;
- Envie 'AT+CMGF=1' para configurar o modo texto;
- Envie 'AT+CMGS=“+55XX99999999”', substitua o número pelo destinatário;
- Digite o texto da mensagem (até 160 caracteres);
- Envie o caractere EOF (CTRL+Z). Veja o artigo *CTRL-Z* para mais detalhes;
- Se tudo estiver correto, o telefone celular do destinatário deverá receber a mensagem SMS.
Demonstração
Usando um Arduino Pro Mini
[por fazer]



