Índice:

Rastreamento GPS em tempo real: 3 etapas
Rastreamento GPS em tempo real: 3 etapas

Vídeo: Rastreamento GPS em tempo real: 3 etapas

Vídeo: Rastreamento GPS em tempo real: 3 etapas
Vídeo: ESTE DISPOSITIVO RASTREIA E MONITORA EM TEMPO REAL PELO GPS 2024, Novembro
Anonim

Por elizabethnaFollow Mais do autor:

Rastreador de doces ou travessuras de Pumpkin Pi
Rastreador de doces ou travessuras de Pumpkin Pi
Rastreador de doces ou travessuras de Pumpkin Pi
Rastreador de doces ou travessuras de Pumpkin Pi
Como construir um monitor de temperatura Raspberry Pi
Como construir um monitor de temperatura Raspberry Pi
Como construir um monitor de temperatura Raspberry Pi
Como construir um monitor de temperatura Raspberry Pi
Transmita dados do Planilhas Google para um painel
Transmita dados do Planilhas Google para um painel
Transmita dados do Planilhas Google para um painel
Transmita dados do Planilhas Google para um painel

Neste tutorial, mostraremos como fazer rastreamento de localização em tempo real usando um BerryGPS-GSM, um Raspberry Pi Zero e o estado inicial. Enviaremos longitude, latitude e velocidade via 3G com o BerryGPS-GSM para o estado inicial.

Suprimentos

  • Raspberry Pi Zero
  • BerryGPS-GSM
  • Estado inicial

Etapa 1: estado inicial

Estado inicial
Estado inicial

Queremos transmitir todos os nossos dados de longitude, latitude e velocidade para um serviço em nuvem e fazer com que esse serviço transforme nossos dados em um bom painel que podemos acessar de nosso laptop ou dispositivo móvel. Usaremos o estado inicial.

Etapa 1: Registre-se para uma conta de estado inicial

Acesse https://iot.app.initialstate.com e crie uma nova conta. Você obtém um teste gratuito de 14 dias e qualquer pessoa com um endereço de e-mail educacional pode se inscrever para um plano de estudante gratuito.

Etapa 2: Instale o ISStreamer

Instale o módulo Python de estado inicial em seu Raspberry Pi. No prompt de comando, execute o seguinte comando:

$ cd / home / pi /

$ / curl -sSL https://get.initialstate.com/python -o - | sudo bash

Etapa 3: Faça um pouco de Automagic

Após a Etapa 2, você verá algo semelhante à seguinte saída na tela:

pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: Iniciando a instalação fácil do ISStreamer Python! A instalação pode demorar alguns minutos, pegue um café:) Mas não se esqueça de voltar, terei perguntas mais tarde! Easy_install: setuptools 1.1.6 encontrado pip: pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) versão principal do pip: 1 versão secundária do pip: 5 ISStreamer encontrado, atualizando… Requisito já atualizado: ISStreamer em Library / Python / 2.7 / site-packages Limpando… Deseja obter automaticamente um script de exemplo? [s / N] Onde você deseja salvar o exemplo? [padrão:./is_example.py] Selecione qual aplicativo de estado inicial você está usando: 1. app.initialstate.com 2. [NOVO!] iot.app.initialstate.com Insira a opção 1 ou 2: Insira iot.app Nome de usuário.initialstate.com: Digite a senha iot.app.initialstate.com:

Quando perguntado se você deseja obter um script de exemplo de forma automática, coloque "y" para sim e pressione Enter para salvar seu script no local padrão. Para a pergunta sobre qual aplicativo você está usando, selecione 2 (a menos que você tenha se inscrito antes de novembro de 2018) e digite seu nome de usuário e senha.

Etapa 4: execute o script de exemplo

Execute o script de teste para se certificar de que podemos criar um fluxo de dados para sua conta de estado inicial. Escreva o seguinte comando:

$ python is_example.py

Etapa 5: Dados de exemplo

Volte para sua conta do estado inicial no navegador da web. Um novo depósito de dados chamado “Exemplo de fluxo do Python” deve ter aparecido à esquerda em sua prateleira de registro (pode ser necessário atualizar a página). Clique neste intervalo para visualizar seus dados.

Etapa 2: BerryGPS-GSM e Raspberry Pi Zero

BerryGPS-GSM e Raspberry Pi Zero
BerryGPS-GSM e Raspberry Pi Zero

Se estiver usando um BerryGPS-GSM, você pode seguir este guia para fazer o GPS funcionar e fazer com que seu Pi se conecte via 3G usando PPP.

O guia vinculado também mostra como fazer seu Pi se conectar à rede da operadora automaticamente quando inicializado. Você precisará disso se planeja realizar o rastreamento remoto.

Instalar Bibliotecas

Você precisará instalar as seguintes bibliotecas:

$ sudo apt-get install python-pip

$ sudo pip install pynmea2 $ sudo pip install ISStreamer

Script Python Principal

Aqui, criaremos o script principal que transmitirá os dados GPS para o estado inicial. O código a seguir cria uma thread separada que é usada para monitorar a porta serial. Isso é necessário porque temos uma pausa no loop principal. A pausa existe para limitar a quantidade de dados que carregamos no 3G.

Se fizéssemos tudo na mesma thread durante a pausa, o buffer serial ficaria cheio (é FIFO) e quando obtivermos o próximo valor do buffer, ele ficará velho em alguns segundos. Isso acontece a cada loop e, eventualmente, os dados ficarão minutos ou horas atrasados.

Para criar o script Python e abrir o editor de texto, digite o seguinte comando:

$ nano GPStracker.py

Copie e cole o código a seguir no editor de texto. Você precisará inserir sua chave de acesso de estado inicial na linha 11, onde diz "DIGITE SUA CHAVE DE ACESSO":

#! / usr / bin / pythonfrom gps import * from time import * import threading import datetime from ISStreamer. Streamer import Streamer gpsd = Nenhum #Setup variável global #Setup the Initial State stream, insira sua chave de acesso abaixo streamer = Streamer (bucket_name = "GPS_Tracker ", bucket_key =" GPS_TRACKER ", access_key =" DIGITE SUA CHAVE DE ACESSO ") class GPSDcollector (threading. Thread): def _init _ (self, threadID): threading. Thread._ init _ (self) self.threadID = threadID global gpsd #bring no escopo gpsd = gps (mode = WATCH_ENABLE) #Start GPSD self.running = True #Iniciar a execução deste thread def run (self): gpsd global while gpsdThread.running: gpsd.next () if _name_ == '_main_': gpsdThread = GPSDcollector (1) # crie um thread para coletar dados try: gpsdThread.start () # inicie enquanto True: print 'GPS', gpsd.utc, 'CPU time->', datetime.datetime.now ().time (), if (gpsd.fix.longitude0) e (gpsd.fix.longitude'nan '): streamer.log ("Location", "{lat}, {lon}". format (lat = gpsd.fix.latitude, lon = gpsd.fix.longitu de)) streamer.log ("velocidade", gpsd.fix.speed) imprimir 'lat', gpsd.fix.latitude, imprimir 'lon', gpsd.fix.longitude, imprimir 'velocidade', gpsd.fix.speed sleep (5) exceto (KeyboardInterrupt, SystemExit): #quando você pressiona ctrl + c print "\ nKilling Thread…" gpsdThread.running = False gpsdThread.join () # aguarde o thread terminar o que está fazendo print "Feito. / NSaindo."

Salve e saia do editor de texto pressionando CTRL + X, Y, Enter.

Inicie o script automaticamente na inicialização

Se estiver fazendo monitoramento remoto, você deseja que o script seja executado na inicialização. Para fazer isso, criaremos um pequeno script que iniciará o programa python principal. Digite o seguinte comando:

$ nano GPStrackerStart.sh

Copie as linhas no editor de texto:

#! / bin / bash

sleep 15 python /home/pi/GPStracker.py &

A pausa acima existe para dar ao Pi tempo para inicializar e se conectar via PPP.

Torne o script executável:

$ chmod + x ~ / GPStrackerStart.sh

Usaremos cron para iniciar o script sempre que o Pi for inicializado:

$ crontab -e

Adicione a linha abaixo ao final:

@reboot /home/pi/GPStrackerStart.sh &

Etapa 3: Painel de localização e velocidade

Painel de localização e velocidade
Painel de localização e velocidade

Agora que você tem seu projeto instalado e funcionando, os dados devem ser enviados para o estado inicial. Você terá dados de GPS e dados de velocidade. Você pode usar os dados de GPS em um bloco de mapas para rastrear a localização. Para o bloco do mapa, certifique-se de marcar a caixa de seleção Desenhar caminho para que seu rastreamento de localização seja mapeado como o painel acima. Você pode colocar seus dados de velocidade em um gráfico de linha para ver a velocidade ao longo do tempo.

Recomendado: