Índice:

LTE Arduino GPS Tracker + IoT Dashboard (Parte 1): 6 etapas (com imagens)
LTE Arduino GPS Tracker + IoT Dashboard (Parte 1): 6 etapas (com imagens)

Vídeo: LTE Arduino GPS Tracker + IoT Dashboard (Parte 1): 6 etapas (com imagens)

Vídeo: LTE Arduino GPS Tracker + IoT Dashboard (Parte 1): 6 etapas (com imagens)
Vídeo: GPS Tracking 2024, Novembro
Anonim
LTE Arduino GPS Tracker + IoT Dashboard (Parte 1)
LTE Arduino GPS Tracker + IoT Dashboard (Parte 1)
LTE Arduino GPS Tracker + IoT Dashboard (Parte 1)
LTE Arduino GPS Tracker + IoT Dashboard (Parte 1)
LTE Arduino GPS Tracker + IoT Dashboard (Parte 1)
LTE Arduino GPS Tracker + IoT Dashboard (Parte 1)

Introdução

E ai gente! Este Instructable é uma continuação do meu primeiro Instructable sobre como usar o escudo Botletics LTE / NB-IoT para Arduino, então, se ainda não o fez, leia-o para obter uma boa visão geral de como usar o escudo e do que se trata. Neste tutorial, vou me concentrar no registro de dados de IoT e, especificamente, no rastreamento de GPS e temperatura, e fornecer a você todo o código e orientação de que você precisa para pegar a estrada e testá-lo!

Este Instructable é focado principalmente no escudo LTE que eu pessoalmente projetei e construí, mas tudo aqui (incluindo a biblioteca Github Arduino) deve funcionar nos módulos 2G e 3G do SIMCom, como o SIM800 / 808/900/5320, já que é apenas um versão da biblioteca Adafruit FONA. Independentemente do hardware, o conceito é exatamente o mesmo e você pode fazer muitas coisas legais com isso, incluindo registro de dados do sensor, monitoramento remoto do tempo, rastreamento GPS de auto roubo de karma, etc … então continue lendo!

Etapa 1: Reúna as peças

Reúna peças
Reúna peças
Reúna peças
Reúna peças
Reúna peças
Reúna peças

A lista é a mesma do meu primeiro tutorial e é muito simples!

  • Arduino Uno, Mega ou Leonardo. Alternativamente, você pode usar qualquer outro microcontrolador de 3,3 V ou 5 V, mas teria que conectar os pinos externamente.
  • Kit de proteção SIM7000 da Botletics (vem com a proteção, antena uFL LTE / GPS dupla e cabeçalhos fêmeas empilháveis). Certifique-se de seguir este tutorial para selecionar uma versão apropriada!
  • Cartão SIM com holograma. O primeiro cartão SIM (chamado de cartão SIM de "desenvolvedor") é totalmente gratuito e vem com 1 MB de dados por mês! Nos EUA, você provavelmente estará na rede da Verizon se usar o cartão SIM com holograma. Você também pode pegá-lo ao lado do escudo Botletics se for mais conveniente.
  • Bateria LiPo de 3,7 V (capacidade 1000mAH ou superior recomendada).
  • Cabo USB para programar seu Arduino ou para ligá-lo.

Para o teste de rastreamento GPS!

  • Você pode usar um adaptador USB de carro para alimentar seu Arduino enquanto testa o escudo na estrada.
  • Como alternativa, você pode usar um pacote de bateria (7-12 V) para alimentar o Arduino por meio dos pinos VIN e GND.

Etapa 2: Montagem Física

Montagem Física
Montagem Física
Montagem Física
Montagem Física
Montagem Física
Montagem Física

Agora que você tem todas as suas peças, aqui está uma rápida recapitulação do que você precisa fazer para configurar seu hardware:

  • Solde os cabeçalhos fêmeas de empilhamento no escudo. Veja este tutorial sobre como fazer isso.
  • Conecte a blindagem ao Arduino, certificando-se de alinhar todos os pinos para não danificá-los!
  • Insira o cartão SIM conforme mostrado na imagem. Os contatos de metal estão voltados para baixo e anote a localização do entalhe no canto.
  • Conecte a bateria LiPo ao conector JST na blindagem
  • Conecte o Arduino ao computador usando um cabo USB. Você pode notar que o LED verde de alimentação do escudo não acende. Isso é perfeitamente normal porque o pino PWRKEY da blindagem precisa ser pulsado baixo um pouco para ligá-lo. O esboço de exemplo do Arduino na seção a seguir cuidará disso para você!
  • Conecte a antena LTE / GPS dupla aos conectores uFL na extremidade direita da blindagem. Observe que os fios se cruzarão, então não conecte os errados!
  • Você está pronto para o software!

Etapa 3: configuração do Arduino e teste do dispositivo

Configuração e teste de dispositivos do Arduino
Configuração e teste de dispositivos do Arduino

Arduino IDE Setup

Se ainda não o fez, consulte as etapas "Arduino IDE Setup" e "Arduino Example" no produto principal Instructable para certificar-se de que sua placa está funcionando corretamente. Nessas instruções, você precisará baixar a biblioteca na página do Github e abrir o código de exemplo "LTE_Demo". Depois de seguir essas instruções, você deve ter testado a conexão de rede, GPS e postar dados no dweet.io.

Esboço de exemplo de IoT

Agora que você testou os principais recursos de seu escudo, carregue o esboço "IoT_Example" no Arduino IDE. Você também pode encontrar aqui no Github. Faça o upload deste código para o seu Arduino e abra o monitor serial e você deverá ver o Arduino encontrar o módulo SIM7000, conectar-se à rede de celular, habilitar o GPS e continuar tentando até obter uma posição no local e postar os dados em dweet.io. Isso tudo deve ser executado sem alterar nenhuma linha do código, supondo que você esteja usando o escudo LTE e o cartão SIM de holograma.

Por padrão, você verá a linha a seguir definir a taxa de amostragem (bem, na verdade, o atraso entre as postagens).

#define samplingRate 30 // O tempo entre postagens, em segundos

Se esta linha não for comentada, o Arduino postará dados, atrasará 30s, postará dados novamente, repita, etc. Durante o atraso de 30s, você pode fazer coisas como colocar o Arduino no modo de baixo consumo de energia e coisas fantasiosas desse tipo, mas para manter coisas simples, vou usar a função delay () para pausar a operação. Se você comentar esta linha, o Arduino postará dados e irá diretamente para o modo de suspensão de baixa energia indefinidamente até que você pressione o botão de reinicialização em seu Arduino. Isso é útil se você estiver testando algo e não quiser queimar seus preciosos dados gratuitos (embora, honestamente, cada postagem use praticamente nada) ou talvez você tenha um circuito externo para reiniciar o Arduino (temporizador 555? Interrupção RTC? Interrupção do acelerômetro? Sensor de temperatura interromper? Pense fora da caixa!). Na verdade, no tutorial do Burgalert 7000, mostro como você pode usar um detector de movimento PIR para despertar o microcontrolador.

A próxima linha define se a blindagem será desligada após a postagem de dados ou se permanecerá ligada. Você pode optar pela primeira escolha descomentando a linha se estiver apenas amostrando de vez em quando, mas se tiver uma taxa de amostragem relativamente alta, você vai querer deixar a linha comentada para que o escudo permaneça ligado e não tenha para reinicializar, reativar GPRS e GPS, etc. Quando o escudo é deixado ligado, ele é capaz de postar extremamente rápido!

// # define turnOffShield // Desligue o escudo após postar dados

Também tenha em mente que este exemplo busca automaticamente o número IMEI específico do módulo e globalmente exclusivo do SIM7000 e o usa como o ID do dispositivo (ou "nome" se você preferir) para identificar o dispositivo quando ele envia dados para dweet.io. Você pode alterar isso se quiser, então pensei em informá-lo:)

Para verificar se seus dados estão realmente sendo enviados para dweet.io, basta preencher as informações apropriadas e copiar / colar o URL em qualquer navegador:

dweet.io/get/latest/dweet/for/{deviceID}

onde {deviceID} deve ser substituído pelo número IMEI que é impresso no monitor serial no início, logo após o Arduino encontrá-lo. Depois de inserir esse URL em seu navegador, você verá uma resposta JSON como a seguinte:

Olhando para o "conteúdo", você deve ver a latitude, longitude de sua localização, sua velocidade (em quilômetros por hora), direção (graus, com 0 graus sendo Norte), altitude (metros), temperatura (* C, mas sentir livre para converter no código), e a tensão de alimentação em mili-Volts (que é VBAT, a tensão da bateria). Para obter mais informações sobre a sequência de dados NMEA, você pode consultar a página 149 do manual de comando SIM7000 AT.

Depois de verificar se sua configuração está enviando dados com sucesso para o dweet, vamos configurar o painel para visualizar todos os nossos dados em uma interface agradável!

Etapa 4: configuração do Freeboard.io

Configuração do Freeboard.io
Configuração do Freeboard.io
Configuração do Freeboard.io
Configuração do Freeboard.io
Configuração do Freeboard.io
Configuração do Freeboard.io

Para este tutorial, usaremos freeboard.io, um painel IoT muito legal que pode se conectar a várias plataformas de nuvem como PubNub e dweet, bem como outros recursos como JSON e MQTT. Como você provavelmente já deve ter adivinhado, também usaremos dweet.io, que é usado no código de exemplo da seção anterior. Como uma observação importante, arrastar painéis em freeboard.io não parece funcionar no Chrome, então use Firebox ou Microsoft Edge. Caso contrário, pode ser um verdadeiro "painel" para reorganizar os itens em sua tela!

Configuração de conta e dispositivo

  • A primeira coisa que você precisa fazer é criar uma conta clicando no botão vermelho "INICIAR AGORA" na página inicial do freeboard.io, inserir as credenciais e clicar em "Criar minha conta". Você receberá uma notificação por e-mail confirmando sua nova conta.
  • Agora clique em "Login" no canto superior direito da página inicial e depois de entrar você deverá ver seus "painéis livres", que são apenas painéis que você configura para seus projetos. Obviamente, se a conta for nova, você não verá nada aqui, então apenas insira um novo nome de projeto e clique em "Criar novo" próximo ao canto superior direito. Isso o levará a um painel vazio onde você pode configurar a interface do jeito que quiser. No quadro livre, você pode configurar vários "painéis", e cada painel pode ter um ou vários "widgets" que são coisas como gráficos, mapas, medidores, etc. que exibem seus dados de alguma forma.
  • A primeira coisa que precisamos fazer agora é configurar a fonte real de dados, que é seu escudo Arduino + LTE. Para fazer isso, clique em "ADICIONAR" no canto superior direito em "Fontes de dados". Em seguida, selecione "Dweet.io" e digite o nome que desejar no campo "Nome". No entanto, certifique-se de que no campo "Nome da coisa" você insira o número IMEI do escudo em vez de qualquer nome arbitrário, porque é isso que o freeboard usará para puxar os dados do dweet.
  • Após clicar em "Salvar" você deverá ver o seu dispositivo aparecer em "Fontes de dados" assim como a última vez que ele enviou dados para o dweet. Você também pode clicar no botão Atualizar para verificar os valores mais recentes, mas o quadro livre será atualizado por si só, então normalmente você não precisará usar esse botão.

Configuração do painel

Agora vamos dar uma olhada em como configurar os sinos e assobios reais que você deseja ver na tela!

  • Para adicionar um painel, clique no botão "ADICIONAR PAINEL" no canto superior esquerdo e você verá uma pequena janela na tela. No entanto, não há nada aqui ainda porque não adicionamos nenhum widget!
  • Para adicionar um widget, clique no pequeno botão "+" no painel. Isso abrirá um menu suspenso com várias opções de widget. Já que faremos algum rastreamento GPS, vamos escolher o widget "Google Map". Você deve ver dois campos, a latitude e a longitude. Para preenchê-los corretamente, seu dispositivo precisa já ter postado no dweet. Assumindo que sim, você deve conseguir clicar em "+ Fonte de dados", clicar na fonte de dados (o "SIM7000 GPS Tracker"), depois clicar em "lat", que é o nome da variável que o escudo usa ao postar no dweet. Repita o procedimento para o campo de longitude e clique no controle deslizante na parte inferior se quiser que o mapa desenhe linhas entre os pontos de dados para marcar onde você esteve.
  • Agora você deve ver um pequeno mapa de sua localização aproximada! Para testar se o mapa funciona, tente alterar a latitude / longitude do seu GPS atual para algo ligeiramente diferente alterando, por exemplo, o primeiro dígito após o ponto decimal dos valores lat / long no URL dweet que foi impresso no monitor serial em Arduino IDE quando o escudo postou dados. Depois de ajustá-los, copie e cole o URL e execute-o em seu navegador.

dweet.io/dweet/for/112233445566778?lat=11.223344&long=-55.667788&speed=0&head=10&alt=324.8&temp=22.88&batt=3629

Agora volte para a borda livre e você verá que representou graficamente sua localização ajustada e desenhou uma linha laranja entre os pontos! Coisas legais né? Então eu acho que você entendeu que nosso rastreador GPS enviará dados de localização para dweet para você ver na borda livre em tempo real ou depois que sua aventura terminar

Extras

Já que nosso pequeno rastreador GPS envia não apenas dados de latitude / longitude, mas também altitude, velocidade, rumo e temperatura, vamos adicionar mais alguns widgets para deixar nosso painel mais colorido!

  • Vamos começar adicionando um novo painel e, para adicionar um medidor dentro do novo painel, clique no botão "+" no painel e selecione "Medidor". Assim como antes, use a fonte de dados e selecione "velocidade" como os dados que estamos interessados em buscar para este medidor. Você deverá ver um bom medidor em seu painel!
  • Repita isso para os valores de altitude e temperatura.
  • Agora, para o título, vamos adicionar um "Ponteiro". Esta é essencialmente uma bússola porque começa apontando para cima (Norte) em 0 graus e gira no sentido horário para direções positivas. Perfecto!
  • Para alterar o tamanho do painel, passe o mouse sobre o painel que contém o mapa e você verá um pequeno símbolo de chave inglesa no canto superior direito. Clique nele e digite um título para o painel e digite "2" em "Colunas" para aumentar a largura do painel.
  • Para alterar a localização dos painéis, basta arrastá-los! Você também pode experimentar adicionar um "Minigráfico" que é basicamente apenas um gráfico de linha para que você possa ver não apenas os dados mais recentes, mas também os dados históricos.

Divirta-se e arrume tudo como quiser, porque estamos prontos para fazer uma viagem de campo!

Etapa 5: Teste

Image
Image
Testando
Testando

Para testar sua configuração, eu recomendaria definir o tempo de amostragem com um valor menor, como 10-20s, para que você possa capturar sua jornada com resolução mais alta. Eu também deixaria a variável "turnOffShield" comentada para que o escudo não durma. Isso permite postar dados em rápida sucessão.

Depois de fazer o upload do código para o seu Arduino, obtenha uma bateria (7-12 V) para alimentar o Arduino ou simplesmente conecte o Arduino usando um adaptador USB do carro. Você também precisará de uma bateria LiPo de 3,7 V conectada à blindagem, conforme mencionado anteriormente; o escudo mostrado na imagem acima é uma versão antiga e não tinha suporte para bateria LiPo, mas agora é necessário em todas as versões mais recentes.

Em seguida, abra a borda livre em algum lugar para que quando você retornar, você possa ver os resultados! Depois de conectar o Arduino, você está pronto para prosseguir! Comece a dirigir, pegue um café, volte para casa e você verá os dados plotados na borda livre. Se você realmente quiser (não recomendo enquanto dirige …), você pode ver os dados da borda livre em seu telefone em tempo real enquanto seu amigo dirige o veículo. Coisas divertidas!

Etapa 6: Resultados

Resultados
Resultados

Para este teste, meu pai e eu fomos comprar tambores de frango no Trader Joe's (omnomnomnom …) e coletamos alguns dados bastante precisos. Fiz o dispositivo enviar dados a cada 10s e a velocidade máxima da viagem foi de cerca de 92 khm (cerca de 57 mph), o que é bastante preciso porque ficamos de olho no velocímetro o tempo todo. O escudo LTE definitivamente faz seu trabalho muito bem e envia dados para a nuvem muito rapidamente. Até agora tudo bem!

No entanto, talvez a notícia não tão boa seja que o widget de mapa no quadro livre não é tão bom quanto eu pensava originalmente. Ele não permite que você mova o local do mouse e permanece centralizado no último local, por isso é ótimo para coisas como um rastreador GPS de carro, mas não se você quiser analisar uma viagem concluída com todos os pontos de dados, especialmente se ela foi uma longa jornada.

Neste tutorial, aprendemos como usar o escudo LTE como um rastreador GPS e registrador de dados e como visualizar rapidamente os dados no freeboard.io. Agora use sua imaginação e aplique-a em seu próprio projeto. Você pode até adicionar mais escudos e transformar essa coisa em um registrador de dados solar de baixa energia! (Na verdade, estou planejando fazer um tutorial sobre isso no futuro!). Devido às limitações do mapa de borda livre, também estou planejando fazer um novo tutorial sobre como fazer seu próprio aplicativo Android que busca os dados do dweet e permitirá que você faça um gráfico da localização do rastreador no Google Maps com início, pause e pare os recursos para a sua viagem! Fique ligado!

  • Se você gostou deste projeto, por favor, dê-lhe um coração!
  • Se você tiver alguma dúvida, comentário, sugestão sobre um novo tutorial, ou experimentou este projeto você mesmo, comente abaixo!
  • Siga-me aqui no Instructables, inscreva-se no meu canal no YouTube ou siga-me no Twitter para ficar atualizado com meus projetos mais recentes do Arduino! Sou um jovem engenheiro apaixonado por compartilhar o que aprendi, então com certeza haverá mais alguns tutoriais em breve!
  • Se você quiser apoiar o que faço no compartilhamento de hardware de código aberto e documentando-o completamente para fins educacionais, considere comprar seu próprio escudo na Amazon.com para jogar!

Recomendado: