Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
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.