Configurando o Modem SIM800 usando um PC como servidor sobre o Protocolo TCP-IP: IOT Parte 26

SIM800 é um modem GSM GPRS popular. Ele suporta General Packet Radio Service (GPRS) para conexão com a Internet. Este módulo tem pilha TCP/IP embutida que pode ser acessada serialmente com comandos AT. O modem precisa ser configurado conectando-o a um PC. Em tal configuração, o modem SIM800 com cartão SIM atua como cliente TCP e o PC atua como servidor TCP.
O cliente primeiro se conecta ao servidor e envia alguns dados para o servidor e o servidor também responde com alguns dados para confirmar o recebimento dos dados. Este modem não possui nenhum tipo de processador, portanto requer um microcontrolador como o Arduino para acioná-lo. Na configuração do modem, a placa Arduino atua como conversor USB para serial.
Componente necessário –
1) Placa Arduino UNO R3 ou qualquer placa compatível
2) Módulo GSM SIM800
3) Fios de conexão
4) Cartão Micro SIM (de qualquer operadora de telecomunicações)
Conexões de Circuito –
O modem SIM800 suporta comandos AT através de comunicação serial. Para conectá-lo ao computador, ele deve estar conectado a um controlador, pois possui qualquer controlador. O Arduino UNO é usado nesta configuração. O Arduino UNO atua como conversor USB para serial. Ele atua como um gateway entre o computador e o modem para fornecer comunicação serial com o modem. A configuração tem as seguintes conexões de circuito –
SIM800 – SIM800 é o modem GSM GPRS usado nesta configuração. O mesmo está configurado para se conectar à rede GPRS com a ajuda de um PC como servidor TCP-IP. O modem tem a seguinte configuração de pinos –
Tabela de listagem de configuração de pinos do módulo SIM800

Fig. 1: Tabela de listagem de configuração de pinos do módulo SIM800

Tabela de listagem de configuração de pinos do módulo SIM800

Fig. 2: Tabela de listagem de configuração de pinos do módulo SIM800
Tabela de listagem de configuração de pinos do módulo SIM800
Fig. 3: Tabela que lista a configuração dos pinos do módulo SIM800
Tabela de listagem de configuração de pinos do módulo SIM800
Fig. 4: Tabela de listagem de configuração de pinos do módulo SIM800
Num módulo, apenas alguns dos pinos mencionados acima podem estar disponíveis. Geralmente pinos para interface de áudio, pinos GPIO, fonte de alimentação e comunicação serial ficam disponíveis nos módulos adquiridos no mercado.
Fonte de alimentação – Deve-se tomar cuidado para que o módulo SIM800 use tensão de entrada operacional de 3,7 V-4,2 V. Portanto, não deve ser fornecido 5 V do Arduino, caso contrário, isso pode danificar o módulo também. O modem pode ter fornecido 3,3 V do Arduino, mas isso também pode aquecer o modem, pois o modem não obterá energia suficiente para operar. Portanto, é fortemente sugerido que uma fonte de alimentação externa seja usada para obter a tensão desejada com corrente suficiente. Uma bateria é uma boa opção para usar como fonte externa, caso contrário, uma fonte de alimentação constante como LM317 seria ótima para usar. Deve-se certificar de que a fonte de alimentação forneça corrente suficiente para o modem operar.
Como o modem tem níveis de entrada tolerantes de 5 V, não há necessidade de conversor de nível lógico, mas alguns modems funcionam no princípio da lógica CMOS, então haverá necessidade de conversor de nível lógico porque o Arduino funciona no nível lógico TTL. O módulo deve ser conectado à fonte de alimentação da seguinte forma –
Tabela listando conexões de fonte de alimentação para módulo SIM800
Fig. 5: Tabela listando as conexões da fonte de alimentação para o módulo SIM800
Uma fonte de alimentação adequada deve ser selecionada de acordo com o modem GSM GPRS em uso. O modem SIM800 usado nesta configuração funciona melhor com fonte de alimentação de 3,7 V. Quando o modem SIM800 está ligado, há um LED de status da rede que deve acender no modem GSM. Ao iniciar, o LED pisca a cada 1 segundo, o que significa que o SIM não está conectado à rede e está procurando a rede. Se estiver conectado à rede, piscará a cada 3 segundos.
Arduino UNO – O Arduino é usado como adaptador USB para serial. O pino SIM_TX do modem GPRS é conectado ao TX do Arduino e o pino SIM_RX do modem GPRS é conectado ao RX do Arduino. O pino GND do modem GSM pode ser conectado a qualquer GND do Arduino. As conexões do circuito entre o Arduino UNO e o módulo SIM800 são resumidas na tabela a seguir.
Tabela listando as conexões do circuito entre o Arduino e o módulo SIM800
Fig. 6: Tabela listando as conexões do circuito entre o Arduino e o módulo SIM800
O Arduino deve ser programado para funcionar como um adaptador USB para Serial. Um Arduino Sketch de código aberto para isso pode ser baixado da internet. O Arduino deve ser conectado ao PC usando um cabo USB.
Configurando o PC como um servidor TCP-IP
Para fazer do PC um servidor, o aplicativo de teste de soquete é usado. O aplicativo de teste de soquete tem a capacidade de atuar como cliente e também como servidor. O aplicativo de teste de soquete mostra o endereço IP dos clientes conectados. O cliente, neste caso, é o modem SIM800.
Para configurar o aplicativo de teste de soquete para atuar como servidor de PC, siga as etapas abaixo –
1) Primeiro abra o aplicativo de teste de soquete e na guia do servidor, escreva o endereço IP privado do PC no qual o aplicativo está sendo executado. 2) Escreva a porta selecionada aleatoriamente na qual o PC está escutando. Como visto abaixo, o servidor está escutando na porta “123”.
Captura de tela da guia Servidor no aplicativo SocketTest
Fig. 7: Captura de tela da guia Servidor no aplicativo SocketTest
Se o servidor ainda não estiver escutando na porta “123”, isso pode ser verificado online em “canyouseeme.org”, onde pode ser verificado se o servidor não está escutando na porta “123”.
Captura de tela da verificação da porta do servidor em CanYouSeeMe.org
Fig. 8: Captura de tela da verificação da porta do servidor em CanYouSeeMe.org
Pode ser necessário abrir uma porta no firewall do Windows, pois o firewall impede acesso não autorizado aos recursos do computador. Para permitir que o IP específico se comunique com o computador, vá para o painel de controle -> Firewall do Windows -> Configuração avançada. Uma nova janela será aberta, chamada Firewall do Windows com segurança avançada. Nessa janela, vá para Regras de entrada -> Nova regra -> PORTA -> TCP e escreva o número da porta no bloco de portas locais específicas e, em seguida, vá para Permitir a conexão -> próximo -> nome preferido e Concluir.
3) Em seguida, faça o encaminhamento de porta para que o ISP não bloqueie a porta específica. Para o encaminhamento de porta, digite o endereço IP do gateway padrão, que geralmente é 192.168.1.1 no navegador, depois vá para Configuração avançada -> NAT -> Adicionar servidor de PC com o IP local do PC e a porta com 123. Em seguida, abra canyouseeme.org e verifique com a porta usada. A janela deve mostrar uma mensagem como a mostrada abaixo –
Captura de tela da verificação da porta do servidor em CanYouSeeMe.org
Fig. 9: Captura de tela da verificação da porta do servidor em CanYouSeeMe.org
Dessa forma, a porta é registrada no servidor do PC e agora pode ser usada para acessar o servidor através do cliente.
Para comunicação serial, é utilizada a ferramenta Tera Term VT. Baixe este aplicativo de terminal no seguinte link –
Tera Term VT
Configurando o SIM800 usando PC como servidor TCP-IP
Após fazer as conexões do circuito e configurar o PC como servidor, insira um cartão SIM válido no slot do cartão do modem e aguarde até que ele não esteja conectado à rede. Certifique-se de não tocar no chip SIM800 IC. Em seguida, abra o aplicativo Tera Term VT no PC e siga os passos abaixo –
1) Primeiro, envie o comando AT no monitor serial para verificar se o modem está funcionando corretamente ou não. O modem deverá responder com OK. O seguinte comando deve ser escrito na janela do terminal para isso –
NO
2) Então enviar AT+CREG? comando para ver se o SIM está registrado na rede ou não. Se o SIM estiver registrado na rede, ele deverá responder com +CREG: 0,1 ou +CREG:1,1. Este comando é necessário para verificar porque todo o processo posterior depende da conexão de rede. O seguinte comando deve ser escrito na janela do terminal para isso –
AT+CREG?
3) Agora, quando o SIM estiver conectado à rede, anexe o dispositivo ao serviço de domínio de pacote. O dispositivo é anexado à rede GPRS antes que um contexto PDP possa ser estabelecido. Ele deve responder com OK, quando se conectar à rede GPRS. O comando a seguir deve ser escrito na janela do terminal para isso –
Em+CGATT=1
4) Em seguida, se tudo estiver funcionando bem, verifique se o modem tem alguma conexão TCP anterior. Se o SIM tiver alguma conexão TCP, feche todas as conexões anteriores porque uma nova conexão deve ser iniciada. O modem deve responder com SHUT OK. O comando a seguir deve ser escrito na janela do terminal para isso –
EM+CIPSHUT
5) Em seguida, defina a conexão IP como IP único (AT+CIPMUX =n, ou seja, n=0) ou conexão IP múltipla (ou seja, n=1). A conexão IP única é criada aqui. O dispositivo deve responder com OK quando estabelecer uma conexão IP única. O comando a seguir deve ser escrito na janela do terminal para isso –
Em+CIPMUX=0
6) Configure o APN para conexão TCP. O APN, nome de usuário e senha do cartão SIM devem ser conhecidos. Um SIM Airtel é usado aqui e nenhum nome de usuário e senha foram definidos para acessar o SIM. Deve responder com OK. O seguinte comando deve ser escrito na janela do terminal para isso –
AT+CSTT= “airtelgprs.com”, “”, “”
7) Agora abra a conexão sem fio com a Internet. Este comando leva algum tempo para responder OK. Agora o dispositivo está conectado à conexão sem fio TCP/IP. Agora pode-se observar que no modem o LED de status da rede começa a piscar rapidamente (3 piscadas/seg). O seguinte comando deve ser escrito na janela do terminal para isso –
AT+CIICR
8) Use o comando AT+CIFSR para retornar o endereço IP local do dispositivo. Agora, o endereço IP do modem SIM800 pode ser visto quando conectado à rede de comunicação. A resposta deve ser 192.168.1.XXX. O comando a seguir deve ser escrito na janela do terminal para isso –
AT+CIFSR
9) Como a comunicação cliente e servidor é fornecida através do protocolo TCP, deve-se iniciar uma conexão TCP/IP no lado cliente. Isso pode ser habilitado usando o comando AT+CIPSTART= “TCP”, “nome de domínio do servidor (IP público)”, “PORTA”. Escreva o nome de domínio do servidor a partir do qual se comunicará e a porta na qual o servidor está escutando. Neste caso, o servidor está escutando na porta “123”. Deve responder com CONNECT OK. O seguinte comando deve ser escrito na janela do terminal para isso –
AT+CIPSTART= “TCP”, “nome de domínio do servidor (IP público)”, “PORTA”
10) Finalmente a conexão TCP/IP foi estabelecida no lado do cliente e a conexão TCP/IP no lado do servidor já foi estabelecida. Agora envie alguns dados para o servidor. Através deste comando, alguns dados são enviados ao servidor na porta especificada. Deve responder com > (seta de deslocamento para a direita). Agora digite a mensagem a ser enviada como “Hello PC server” e pressione CTRL+Z do teclado para enviar a mensagem, ela deverá responder com ENVIAR OK. O seguinte comando deve ser escrito na janela do terminal para isso –
AT+CIPSEND
No lado do servidor, a mensagem do cliente em particular deve ser recebida. O servidor também pode enviar alguma mensagem ao cliente para fornecer comunicação bidirecional entre cliente e servidor. Dessa forma, o cliente e o servidor se comunicam entre si pelo protocolo TCP/IP.
Pode haver alguns erros possíveis que devem ser tratados conforme mencionado abaixo –
• Se o modem não for capaz de se comunicar serialmente com o computador, verifique se a taxa de transmissão está definida como 9600 ou não, porque o modem precisa de uma taxa de transmissão de 9600 para se comunicar com o computador.
• Se o modem não conseguir se conectar à rede, verifique a fonte de alimentação. Deve ser verificado se o módulo está recebendo corrente suficiente ou não, ou seja, 2A. Se o módulo estiver recebendo corrente suficiente, o erro pode ser causado pelo cartão SIM. Tente trocar o cartão SIM, escolha o cartão SIM com alto nível de sensibilidade no local.
• Antes de aplicar o comando AT+CSTT ao APN, nome de usuário e senha, verifique se o modem está conectado ao GPRS ou não usando o comando AT+CGATT?. Se o resultado for +CGATT:0, este modem não está conectado ao GPRS, então conecte o modem usando o comando AT+CGATT=1.
• Se a conexão de internet estiver funcionando, o que pode ser verificado abrindo um site no navegador, mas não se conectando ao servidor do PC, o possível motivo para o erro de fechamento da conexão TCP pode ser porque a porta pode não ter sido registrada no firewall do Windows do PC. Siga as instruções mencionadas acima para habilitar a porta no firewall do Windows e o encaminhamento de porta.
No próximo tutorial, aprenda a implementar o protocolo MQTT no modem SIM800.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.