Índice:
- Suprimentos
- Etapa 1: estado inicial
- Etapa 2: BerryGPS-GSM e Raspberry Pi Zero
- Etapa 3: Painel de localização e velocidade
Vídeo: Rastreamento GPS em tempo real: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Por elizabethnaFollow Mais do autor:
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
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
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
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:
Introdução - Transforme um Raspberry Pi em um servidor de rastreamento GPS: 12 etapas
Introdução - Transforme um Raspberry Pi em um servidor de rastreamento GPS: Neste guia, mostrarei como instalar o software de rastreamento GPS Traccar em um Raspberry Pi que receberá dados de dispositivos compatíveis pela Internet, registrando suas posições em um mapa em tempo real rastreamento, e também rastreamento de reprodução
Exibição de tempo e tempo do Arduino 3 em 1: 11 etapas
Arduino 3 em 1 Time and Weather Display: Eu gosto de microcontroladores PIC e gosto de programar em linguagem assembly. Na verdade, nos últimos dois anos, postei cerca de 40 projetos em meu site com base nessa combinação. Recentemente, eu estava encomendando algumas peças de um dos meus favoritos dos EUA v
Rastreador GPS em tempo real caseiro (SIM800L, Ublox NEO-6M, Arduino): 8 etapas
Rastreador GPS em tempo real caseiro (SIM800L, Ublox NEO-6M, Arduino): Então você tem um módulo GSM por aí como eu? Também um rastreador GPS? Nós pensamos o mesmo! Nestes instrutíveis, tentarei guiá-lo como atingir seu objetivo da perspectiva de um novato. Como eu não tinha nenhum conhecimento anterior de engenharia elétrica (para
Como conectar o DeLorme Earthmate GPS LT-20 ao Google Earth para obter um ótimo mapa de rastreamento GPS: 5 etapas
Como conectar o DeLorme Earthmate GPS LT-20 ao Google Earth para obter um ótimo mapa de rastreamento GPS .: Vou mostrar como conectar um dispositivo GPS ao popular programa Google Earth, sem usar o Google Earth Plus. Não tenho um grande orçamento, então posso garantir que será o mais barato possível
Como trocar a bateria em uma etiqueta de tempo de tempo: 12 etapas
Como trocar a bateria em uma etiqueta de tempo Tempo: As etiquetas de tempo de tempo do navio Vessel são um substituto legal para um relógio, prendendo em roupas, alças de bolsa ou bordas de bolso. A bateria acaba eventualmente, então veja como substituí-la. É uma bateria 364 / AG1 / LR621 / SR621W / 164 padrão que