Localize seu quadro com um SMS
Componentes e suprimentos
![]() |
| × | 1 |
Sobre este projeto
Observação:este tutorial pode estar desatualizado, vá aqui para uma versão mais atual.
O objetivo deste projeto é mostrar como usar a localização celular do Arduino MKR GSM 1400. Para isso, implementamos um aplicativo simples que permite tentar novamente a latitude e longitude do MKR GSM quando um SMS com verificação de segurança carta é recebida. O número do remetente é recuperado do SMS recebido e uma resposta é criada com o link apropriado do Google Maps preenchido pelas coordenadas fornecidas pelos serviços de localização fornecidos pelo módulo u-blox.
O que você precisa
O projeto é baseado em um Arduino MKR GSM 1400, uma antena, uma bateria LiPo, um smartphone e um cartão SIM de dados.
- O Arduino MKR GSM 1400 executa o esboço e suporta a conectividade GSM que permite as funções de localização exigidas por nosso projeto;
- Antena e bateria são usadas respectivamente para permitir a conexão à rede de dados do celular com um bom sinal e para alimentar o dispositivo quando outras fontes de alimentação não estiverem disponíveis;
- O smartphone é necessário para enviar o SMS para o MKR GSM 1400 e solicitar a localização GPRS;
- O cartão SIM é necessário para acessar a rede de dados e permitir a operação da rede;
- PIN, APN e credenciais de acesso são necessários para se conectar à rede de dados.
Configuração de hardware
Este projeto não requer nada especial. Conecte à placa a antena, insira o cartão SIM e conecte a bateria LiPo ao conector JST.
A bateria LiPo é opcional, mas permite fazer frente aos picos de corrente que o módulo GSM pode exigir em condições particulares de cobertura insuficiente.

Como funciona
Este projeto utiliza a biblioteca MKRGSM para gerenciar as mensagens SMS e a georreferenciação baseada em células.
Quando um SMS é recebido, o conteúdo é verificado para descobrir se contém a letra "L". Somente se for o caso, o esboço prossegue com a localização e transmissão do SMS. Com esta solução, qualquer número pode solicitar a localização do sistema, mas só quem conhece a palavra-passe (a “carta secreta”) obterá resposta. Esta é a linha que faz a verificação
if (c! =76)
e 76 é o código ASCII de "L". Você pode alterar o valor para alterar a letra reconhecida. O módulo GSM não possui receptor GPS, mas o fabricante possui um banco de dados com a localização de cada célula da rede GSM e, portanto, fornece as coordenadas para cada ID de célula fornecida. Este sistema é bastante preciso em áreas urbanas, onde cada célula cobre pequenas áreas. Nas áreas rurais a cobertura de cada célula é muito maior e a localização fornecida é com aproximação mais grosseira.
Para criar o link para o Google Maps, usamos um URL padrão onde apenas concatenamos os valores Long e Lat adequados no final. Este URL se parece com "https://www.google.com/maps/place/
O esboço
Seguindo uma descrição detalhada do Sketch; a primeira seção de código é usada para incluir as bibliotecas exigidas pelo aplicativo.
MKRGSM incluem todas as funcionalidades de conexão GSM, localização e gerenciamento de SMS, disponíveis através do objeto GSMClient, GPRS, GSM e GSMLocation, as APIs de gerenciamento de SMS estão disponíveis por meio do objeto GSM_SMS , o cabeçalho ArduinoLowPower importar as APIs que permitem o gerenciamento de baixo consumo de energia do módulo da placa.
Se você baixar o código do Editor da Web, encontrará um arduino_secrets.h arquivo que inclui os dados importantes, como PIN, APN, usuário e senha. No editor da web, você deve preencher os dados importantes na guia Segredos.
// inclui a biblioteca GSM #include #include "ArduinoLowPower.h" char PINNUMBER [] =SECRET_PINNUMBER; char GPRS_APN [] =SECRET_GPRS_APN; char GPRS_LOGIN [] =SECRET_GPRS_LOGIN [] =SECRET_GPRS_LOGIN [char GPRS_LOGIN; ] =SECRET_GPRS_PASSWORD; // inicializar as instâncias da bibliotecaGPRS gprs; GSM gsmAccess; GSM_SMS sms; GSMLocation location;
O measureLocation () consulta o módulo para tentar novamente as coordenadas pela rede celular, se novas coordenadas estiverem disponíveis, ele as atribui à variável global, caso contrário, peça novamente por 45 segundos, se não houver medidas disponíveis que respeitem as restrições de precisão, ele retorna as últimas boas
// variável global usada para gerenciamento de localizaçãoString GSMlatitude ="0,000000"; String GSMlongitude ="0,000000"; // Esta função usa as APIs de localização para obter as coordenadas do dispositivo e atualizar a variável globa se todos os requisitos forem satisfeita com a medidaLocation () {unsigned long timeout =millis (); while (millis () - timeout <45000) {if (location.available () &&location.accuracy () <300 &&location.accuracy ()! =0) { GSMlatitude =String (location.latitude (), 6); GSMlongitude =String (location.longitude (), 6); break;}}}
O connectNetwork () função usar a API smAccess.begin e gprs.attachGPRS para conectar a placa à rede de dados; são usados os dados de credenciais pin , apn , usuário e passar atribuído pelas declarações em arduino_secrets.h.
// A função connectNetwork () é usada para os dados da placa connectionvoid connectNetwork () {bool status =false; // definir o tempo limite do comando AT global para permitir a recuperação da comunicação uart // congelar entre o módulo samd e ublox module.gprs.setTimeout (100000); gsmAccess.setTimeout (100000); // Iniciar conexão GSM ao mesmo tempo (status ==false) {if ((gsmAccess.begin (PINNUMBER) ==GSM_READY) &(gprs.attachGPRS (GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) ==GPRS_READY)) {status =true;} else {delay (1000);}}} A seção de configuração permite inicializar todos os objetos usados pelo esboço, é chamada de função connectionNetwork () para estabelecer os dados conexão e a estrutura de localização começando.// seção de código usada para inicializar a conexão de dados e localização objectvoid setup () {connectNetwork (); location.begin ();}
A última seção do código é a função de loop onde são implementados o gerenciamento de SMS e a medida de localização, cada vez que um novo SMS é disponibilizado a placa responde ao rsender com um SMS com as coordenadas da placa, para reduzir o consumo a placa desligou o módulo e entra em sono profundo por 60 segundos.
void loop () {int c; Resposta da string; String messager =""; measureLocation (); tempo limite longo sem sinal =milis (); while (millis () - tempo limite <5000) {if (sms.available ()) {// verificar se há disponibilidade de SMS senderNumber [20] ={"0"}; sms.remoteNumber (senderNumber, 20); // Obter numberint remoto c =sms.read (); if (c! =76) {sms.flush (); break;} // concatenar a mensagem de string a ser enviada para o numberString remoto txtMsg ="https:// www.google.com/maps/place/ "+ GSMlatitude +", "+ GSMlongitude; // envie as mensagensms.beginSMS (senderNumber); sms.print (txtMsg); sms.endSMS (); break;}} // Desligue o módulo GSM para obter o menor consumo de energia da placa enquanto estiver hibernando gsmAccess.shutdown (); LowPower.sleep (60000); // habilita a baixa potência por 60 segundos e depois tenta novamente a placa connectNetwork (); // ligue o módulo e reconecte-se à rede de dados}
Como usar
Configure o hardware conforme explicado acima, personalize o sketch com suas credenciais de acesso, carregue o sketch no quadro e aguarde o estabelecimento da conexão com a rede GSM. Isso pode levar 30 segundos.
Após o estabelecimento da conexão, basta enviar um SMS para o número SIM do MKRGSM com um "L" como texto:isso iniciará o processo de localização e a diretoria responderá com um SMS contendo o link do Google Maps com a posição solicitada.
Código
Arduino
Processo de manufatura
- Ganhe grande ou vá para casa com seu novo design de produto
- Junte-se ao IOT com sua estação meteorológica - CWOP
- Usando o PSoC 6 Pioneer Board com o Pioneer IoT Add-on Shield
- Usando códigos QR com seu CMMS:Passo a passo
- Atualize sua bagagem com conjuntos de bagagem de fibra de carbono
- Seja inteligente com seu dólar IoT
- Webinar:automatize seu processo com o Techman Robot
- 7 maneiras de reduzir o custo do seu PCB
- Aumente suas operações com manutenção de fazenda
- O que fazer com seu equipamento usado