Raspberry Pi connecté à un SIM800L

Como ligar e usar um módulo GSM SIM800L com o Raspberry Pi (sem bateria).

Atualizada 9 September 2020 - 0 Comentários - , , , ,

ⓘ Este artigo pode ter sido parcialmente ou totalmente traduzido usando ferramentas automáticas. Pedimos desculpas por quaisquer erros que isso possa causar.

O SIM800L é um modem GSM/GPRS que é amplamente utilizado em eletrônicos devido ao seu preço muito baixo e ampla disponibilidade. É uma maneira acessível de enviar SMS com um Raspberry Pi ou Arduino, conectar em 3G ou implementar um GPS.

No entanto, é quase impossível encontrar explicações satisfatórias sobre seu uso e especialmente sobre sua conexão.

Então, neste tutorial vamos ver como conectar e alimentar um SIM800L de um Raspberry (note que ele também funciona para um Arduino), sem energia externa ou bateria!

O hardware necessário para conectar seu SIM800L ao seu Raspberry.

Entraremos em detalhes e explicações mais tarde neste tutorial, mas esteja ciente de que para vincular um SIM800L a um Framboesa é necessário um pouco de hardware. Então você vai precisar:

  • De um módulo SIM800L.
  • Um ferro de solda para montar seu SIM800L se ele ainda não estiver.
  • Uma prancha de pão, um capacitor 5 V, 100 graus Fahrenheit ou mais, um diodo 1N4007, cabos Dupont. Você poderia comprar cada item sozinho, mas você deve realmente comprar dezenas de capacitores e diodos apenas para pagar os custos de transporte. Então eu acho que a coisa mais fácil é pegar um kit eletrônico como este que contém tudo o que acabamos de mencionar.
Um kit como este contém tudo o que você precisa.

Claro, você também precisará de um Raspberry com raspbian instalado e um cartão SIM com uma assinatura. Observe que o cartão SIM deve estar em formato micro sim. Se o seu for de tamanho menor (nano), você precisará de um adaptador.

Agora vamos passar para explicações e práticas.

Não há tempo ou desejo de ler as explicações? Vá diretamente para a parte "Na Prática…".

Teoria, como usar um SIM800L com um Raspberry Pi?

O SIM800L é um modem. É aquele que se cadastra na rede da sua operadora, etc. No geral, ele se comporta como um telefone que você poderia controlar diretamente do seu Raspberry.

Para controlar o SIM800L, a partir do Raspberry, você terá que fornecer energia para a primeira e fisicamente e software conectar tanto usando uma porta TTL, mais frequentemente chamada de porta ou interface serial.

A partir daí você pode controlar o SIM800L enviando comandos hayes para a porta da série – na verdade mais frequentemente referido como comandos AT – que são comandos específicos para as funções de um modem. Por exemplo, enviar um SMS, digitar um PIN, verificar o status da rede e muito mais!

Em teoria, para usar um SIM800L com o Raspberry Pi você deve, portanto, fazer assim:

  1. Conecte o SIM800L VDD a um GPIO que fornece energia no Raspberry.
  2. Conecte o SIM800L GND a um GPIO GND no Raspberry.
  3. Vincule o SIM800L TXD ao Raspberry RXD.
  4. Vincule o RXD do Raspberry ao SIM800L TXD.
  5. Envie e receba dados com comandos AT na porta serial.

Só aqui, tudo isso é a teoria, mas você vai ver que na prática as coisas são um pouco mais complicadas…

A realidade é, por que é difícil conectar um SIM800L?

Se a teoria soar simples, na realidade você encontrará alguns tutoriais na internet explicando como usar o SIM800L com um Raspberry. Pior, você essencialmente encontrará tutoriais incorretos que, na melhor das hipóteses, tornarão sua instalação completamente instável, na pior das hipóteses, danificarão seu SIM800L.

Mas então, como é que não há mais recursos de qualidade disponíveis para um módulo tão conhecido? Porque o SIM800L é particularmente difícil de alimentar e sensível.

Um módulo projetado para telefones e baterias.

Originalmente, o SIM800L foi projetado para ser usado em telefones pelos fabricantes. Seu uso em eletrônicos de consumo é muito mais recente e não tem sido considerado pelo fabricante.

Bateria de íon de lítio em um telefone.
Basicamente o SIM800L é suposto caber em telefones com uma bateria …

Como resultado de seu uso dentro dos telefones, o módulo foi projetado para ser alimentado com baterias de íons de lítio, que oferecem tensões de cerca de 3,6 a 3,7 volts. Esse recurso será um primeiro problema, pois na eletrônica digital geralmente usamos 3,3 volts ou 5 volts, mas não 3,6 volts.

Um módulo com fome de energia.

O segundo problema é que o SIM800L realiza operações de rádio que requerem picos de corrente grandes e muito pontuais. Normalmente, as operações envolvidas são gravar na rede da operadora, enviar mensagens, etc. Se durante essas fases o módulo não receber a corrente necessária seu comportamento se torna completamente imprevisível, desde a mensagem de erro até a reinicialização até a perda da rede.

Infelizmente, verifica-se que os suprimentos em geral e as portas GPIO do Raspberry Pi, em particular, têm dificuldade em responder a esses tipos de picos de consumo.

Na verdade, a quantidade de energia consumida é tão grande e em um período tão curto de tempo que o uso de cabos de energia muito longos e finos pode ser suficiente para travar o módulo! Este é tipicamente o caso se você conectar vários cabos Dupont em série.

Fique tranquilo, vamos explicar como resolver esses dois problemas!

Na prática, como você alimenta um SIM800L diretamente de um Raspberry?

Então vimos que temos dois problemas para alimentar um SIM800L de uma Framboesa: tensão inconsistente e picos no consumo de energia.

Primeiro, vamos resolver o problema da tensão.

Reduza a tensão fornecida pelo Raspberry Pi.

Se lermos a folha de dados, ou seja, a ficha técnica, do SIM800L, vemos que o fabricante indica uma tensão de potência de 3,4 e 4,4 volts, com uma tensão ótima de 4 volts.

O Raspberry Pi pode fornecer duas tensões, 3,3 e 5 volts. Então devemos aumentar um pouco nossa pressão sanguínea ou diminuí-la.

Vamos eliminar a primeira possibilidade que é muito complicada de implementar e olhar para a segunda. Estamos, portanto, procurando uma maneira confiável, simples e muito barata de reduzir uma tensão de pelo menos 0,6 volts, sem diminuir a intensidade da corrente (ampers). Felizmente, acontece que há um componente eletrônico que faz exatamente isso, e que além disso este componente é tão difundido que absolutamente todos os eletrônicos sabem disso: o diodo.

1N4007 diodos em close-up
O diodo 1N4007, provavelmente o mais conhecido e usado.

Diodos são conhecidos principalmente por deixar a corrente passar em uma direção. Mas uma de suas características também é causar uma queda de tensão, que é estimada para diodos de silício a 0,7 volts.

Então nós só temos que inserir um diodo de silício, vamos tomar um 1N4007, entre o GPIO 5 volts do nosso Pi e o PIN VDD (alimento) do nosso SIM800L. E é isso, temos uma tensão de 4,3 volts, exatamente o que precisamos.

Forneça uma fonte de energia que possa responder ao pico de consumo.

Agora que resolvemos nosso problema de tensão, continua sendo nosso problema de pico de consumo. Desta vez, precisaríamos de um componente que nos permitisse "armazenar energia" e fornecê-lo muito rapidamente quando o SIM800L precisar dele. Novamente felizmente, ele existe e é chamado de capacitor!

Um bando de capacitores.
Capacitores podem ser encontrados em todos os lugares, de todas as formas, tamanhos e tamanhos.

Capacitores são usados em muitos casos, mas um dos usos mais conhecidos é a estabilização de energia. Eles carregam quando há muita energia e descarga quando há uma escassez.

Então vamos inserir um capacitor eletrolítico (vamos tomar pelo menos um 100-F 5 V, se tivermos mais em F ou volts sem problemas) em paralelo com os pinheiros VDD e GND do nosso SIM800L.

A montagem completa.

Agora que resolvemos nossos problemas, vamos ver como é nossa edição completa antes de testar tudo por mensagem de texto.

Para manter todos os nossos componentes no lugar e conectá-los juntos, usaremos uma prancha e cabos Dupont.

Então aqui está o diagrama de conexão final, o fio vermelho vai para o VDD, o preto para o GND.

Montado com um SIM800L e um Raspberry.
O conjunto completo para conectar um SIM800L a um Raspberry Pi.

Alguns comentários sobre edição:

  • Faça as conexões raspberry off e não plugado, conecte-o somente depois de verificar tudo e certifique-se de que sua edição está boa.
  • Tenha cuidado para conectar o capacitor o mais próximo possível dos pinheiros SIM800L VDD e GND, idealmente como no diagrama.
  • O capacitor é um componente polarizado, deve ser conectado em uma direção precisa, ânodo no VDD, cátodo no GND. O cátodo é marcado por uma listra branca ao lado.
  • Como o capacitor, o diodo é um componente polarizado, novamente o cátodo é marcado por uma faixa branca.

Uma vez que o conjunto esteja concluído, você poderá inserir o cartão SIM no local fornecido no SIM800L.

Preste muita atenção ao significado, não é absolutamente intuitivo. Você tem que colocar os contatos laterais do cartão contra a placa de circuito, o corte de canto inclinado em direção à abertura (excede um pouco). Se você inserir o cartão de cabeça para baixo, você terá um erro típico SIM not inserted usando o módulo.

Assim que o conjunto estiver completo, ligue seu Raspberry Pi, poderemos testar enviando um SMS!

Envie seu primeiro SMS do Raspberry com um SIM800L.

Para finalizar este tutorial, enviaremos um primeiro SMS para verificar se tudo funciona. Não vamos mais longe no uso do SIM800L, mas sabemos que ele oferece muitos outros recursos. Para maior uso, consulte o guia de comando AT para o SIM800.

Para começar, você terá que seguir nosso tutorial para ativar a porta da série Raspberry Pi. Uma vez que você tenha terminado de ativar a porta da série, poderemos nos conectar ao SIM800L através da porta da série.

Para fazer isso, abra uma conexão com /dev/serial0 com minicom usando a linha de comando abaixo:

sudo minicom -b 115000 -o -D /dev/serial0

Digite o comando AT (muitas vezes a primeira linha não aparece quando você digita, é normal) e depois volta para a linha para validar. Você deve ter uma mensagem de resposta OK.

Agora vamos verificar se o cartão SIM está desbloqueado (o PIN está inserido). Para fazer este tipo de comando AT+CPIN?. Se o cartão estiver desbloqueado, você deve ter uma resposta:

+CPIN: READY
OK

Se você tem uma resposta como a abaixo é porque você tem que digitar o PIN do seu cartão.

+CPIN: SIM PIN
OK

Para fazer isso use o comando AT+CPIN=0000 Substituir 0000 pelo seu próprio PIN. Você deve então ter uma resposta no formulário:

AT+CPIN=0000
OK
+CPIN: READY
SMS Ready
Call Ready

Tudo bem, você está conectado à rede da sua operadora. Tudo o que temos que fazer é enviar uma mensagem de texto. Para fazer isso use os comandos AT+CMGF=1 para ativar o modo de texto (ele nos permite escrever o SMS em um formato compreensível para um humano), em seguida AT+CMGS="+33612345678" Substituir +33612345678 pelo número para o qual você deseja enviar o SMS.

Um personagem > vai aparecer, digitar seus sms e, em seguida, uma vez que você está feito, fazer Ctrl+Z.

No final, você deve ter algo da seguinte forma:

AT+CMGF=1
OK
AT+CMGS="+33612345678"
> Mon premier SMS avec un SIM800L
+CMGS: 29

OK

E eis que você enviou seu primeiro SMS com um Raspberry Pi e um SIM800L!

Como você pode ver o uso diário diretamente com comandos AT não é necessariamente muito prático, mas fique tranquilo, existe software para simplificar sua vida, e falaremos sobre isso muito em breve em outro tutorial!

Compartilhar
Boletim de Notícias
Autor:
Raspberry Pi FR
Junte-se à comunidade Raspberry Pi
Um computador de $35 já vendeu 10 milhões de cópias
COMPRE A NOVA RASPBERRY PI 4
Tutoriais relacionados
Use um leitor RFID com o Raspberry Pi. Ative a porta serial TTL do Raspberry Pi e verifique se está funcionando. Crie um cluster Raspberry Pi com Docker Swarm Faça piscar o LED verde integrado do Raspberry Pi. Ligue e desligue um LED com o Raspberry Pi e o Python.
No Comments
Compartilhar
Inscrição no boletim informativo
Assine a newsletter.
Gostou deste artigo ?
Inscreva-se e mantenha-se informado!