Índice:

AirVisual Air Quality API Dashboard: 5 etapas
AirVisual Air Quality API Dashboard: 5 etapas

Vídeo: AirVisual Air Quality API Dashboard: 5 etapas

Vídeo: AirVisual Air Quality API Dashboard: 5 etapas
Vídeo: Stream Air Quality with Air Visual API | GIT TECH'D 2024, Julho
Anonim
Image
Image

AirVisual (https://www.airvisual.com) é um site que fornece dados sobre a qualidade do ar em todo o mundo. Eles têm uma API que usaremos para obter dados de qualidade do ar para enviar a um painel. Vamos interagir com essa API de forma semelhante à que fizemos com o painel de clima.

Este é um projeto simples que ensina como usar uma API. Vamos começar!

Etapa 1: primeiros passos

API AirVisual
API AirVisual

Já reunimos a maior parte do código, mas você precisará fazer alguns ajustes ao longo do caminho. Existem muitas oportunidades para expandir o que fizemos também.

Para recuperar tudo o que preparamos para você, você precisará clonar o repositório do GitHub. GitHub é um serviço incrível que nos permite armazenar, revisar e gerenciar projetos como este. Você vai querer executar este script em um dispositivo dedicado. Você pode usar um laptop, Raspberry Pi ou outro computador de placa única. Para clonar o repositório, tudo o que precisamos fazer é entrar no terminal do nosso computador ou Pi e digitar este comando:

$ git clone

Pressione Enter e você verá estas informações:

$ git clone https://github.com/InitialState/airvisual.git Clonando em 'airvisual'… remoto: Enumerando objetos: 13, pronto. remoto: Contando objetos: 100% (13/13), pronto. remoto: Comprimir objetos: 100% (12/12), pronto. remoto: Total 13 (delta 2), reutilizado 0 (delta 0), embalagem reutilizada 0 Desembalando objetos: 100% (13/13), concluído.

Depois de ver isso, parabéns, você clonou com sucesso o GitHub Repo e tem todos os arquivos necessários para construir este projeto. Vamos para o novo diretório. Para alterar o diretório, tudo que você precisa fazer é digitar “cd” e, em seguida, digitar o nome do diretório que deseja acessar. Nesse caso, digitaremos:

$ cd airvisual

Assim que clicarmos em Enter, você verá que agora estamos no diretório airvisual. Vamos digitar "ls" para ver quais arquivos instalamos. Você deve ter a seguinte aparência:

LICENSE README.md airquality.py

Precisamos de alguns outros itens antes de editar o código, então vamos dar uma olhada na API de qualidade do ar a seguir.

Etapa 2: API AirVisual

API AirVisual
API AirVisual
API AirVisual
API AirVisual

AirVisual tem uma API de qualidade do ar (AQI) e poluição que permite até 10.000 chamadas API por mês gratuitamente. Você pode se inscrever no nível Comunidade. Depois de se inscrever, você pode ir para My Air e a guia API. É aqui que você encontrará suas chaves de API e documentação sobre a API.

Clique no botão + Nova chave para criar nossa primeira chave de acesso API. Para Selecionar Plano, use o menu suspenso para selecionar Comunidade e clique em Criar. Se tudo correr bem, você verá uma mensagem de sucesso e poderá voltar ao painel de API para encontrar suas novas informações importantes. O valor da chave (números e caracteres) é o que você precisa para este projeto. Se você examinar a documentação da API, verá que existem vários tipos de chamadas de API que você pode fazer. Para este projeto, queremos obter os dados da cidade mais próxima com base nas coordenadas GPS. Para esta chamada, você precisará de sua longitude, latitude e chave API. Insira esses parâmetros na chamada abaixo, coloque-os em uma barra de endereço do seu navegador e pressione Enter.

api.airvisual.com/v2/nearest_city?lat={{LATITUDE}}&lon={{LONGITUDE}}&key={{YOUR_API_KEY}}

Isso retornará os dados da cidade mais próxima com base nas coordenadas de GPS. Vai parecer algo assim:

Eu recomendo usar um formatador JSON para obter uma melhor visualização dos dados. Se você usar isso, ficará um pouco assim:

"status": "sucesso", "data": {"city": "Nashville", "state": "Tennessee", "country": "USA", "location": {"type": "Point", "coordinates": [- 86,7386, 36.1767]}, "current": {"weather": {"ts": "2019-04-08T19: 00: 00.000Z", "_v": 0, "createdAt": "2019-04-08T19: 04: 18.662Z "," hu ": 88," ic ":" 04d "," pr ": 1012," tp ": 18," updatedAt ":" 2019-04-08T19: 46: 53.140Z "," wd ": 90, "ws": 3.1}, "poluição": {"ts": "2019-04-08T18: 00: 00.000Z", "aqius": 10, "mainus": "p2", "aqicn": 3, "maincn": "p2"}

Podemos ver facilmente agora que temos informações sobre localização, clima e poluição. Os dois valores em que nos concentramos para este projeto são o Índice de Qualidade do Ar US (aquis) e o Poluente Principal (mainus). O valor do Índice de qualidade do ar nos diz qual é o valor da qualidade do ar local e como isso se aplica à sua saúde. O gráfico codificado por cores está abaixo. O principal poluente nos diz qual é o principal poluente do ar em sua região (material particulado, óxido de nitrogênio, ozônio, monóxido de carbono, óxido de enxofre). Esses poluentes são normalmente subprodutos de chaminés ou emissões de veículos.

Agora que sabemos como usar a API Air Visual, a próxima coisa de que precisaremos é uma plataforma de painel para exibir os dados.

Etapa 3: estado inicial

Estado inicial
Estado inicial
Estado inicial
Estado inicial

Queremos transmitir todos os nossos dados meteorológicos para um serviço de nuvem e fazer com que esse serviço transforme nossos dados em um bom painel. Nossos dados precisam de um destino, portanto, usaremos o Estado inicial como esse destino.

Registre-se para a conta de estado inicial

Acesse https://iot.app.initialstate.com e crie uma nova conta.

Instale o ISStreamer

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

$ / curl -sSL https://iot.app.initialstate.com -o - | sudo bash

Faça alguma Automagic

Depois de executar o comando curl, você verá algo semelhante à seguinte saída na tela:

$ / curl -sSL https://iot.app.initialstate.com -o - | sudo bash

Senha: 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 solicitado a obter automaticamente um script de exemplo, digite y. Isso criará um script de teste que podemos executar para garantir que possamos transmitir dados para o estado inicial. O próximo prompt perguntará onde você deseja salvar o arquivo de exemplo. Você pode digitar um caminho local personalizado ou pressionar Enter para aceitar o local padrão. Por fim, será perguntado qual aplicativo de estado inicial você está usando. Se você criou uma conta recentemente, selecione a opção 2 e insira o nome de usuário e a senha. Depois que a instalação for concluída.

Chaves de acesso

Vamos dar uma olhada no exemplo de script que foi criado. $ nano is_example.py Na linha 15, você verá uma linha que começa com streamer = Streamer (bucket_…. Esta linha cria um novo depósito de dados chamado “Python Stream Example” e está associado à sua conta. Essa associação ocorre por causa do access_key =”…” parâmetro na mesma linha. Essa longa série de letras e números é a chave de acesso de sua conta de estado inicial. Se você for para sua conta de estado inicial em seu navegador da web, clique em seu nome de usuário no canto superior direito e vá em "minhas configurações", você encontrará a mesma chave de acesso na parte inferior da página em "Chaves de acesso de streaming". Cada vez que você criar um stream de dados, essa chave de acesso direcionará esse stream de dados para sua conta (portanto, não compartilhe sua chave com qualquer pessoa).

Execute o script de teste ExampleRun para garantir que podemos criar um fluxo de dados para sua conta de estado inicial. Execute o seguinte em seu prompt de comando:

$ python is_example.py

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 depósito (pode ser necessário atualizar a página). Clique neste intervalo para visualizar os dados.

Agora você está pronto para iniciar o streaming de dados reais da API AirVisual.

Etapa 4: Painel de controle da qualidade do ar

Painel de controle de qualidade do ar
Painel de controle de qualidade do ar
Painel de controle de qualidade do ar
Painel de controle de qualidade do ar
Painel de controle de qualidade do ar
Painel de controle de qualidade do ar
Painel de controle de qualidade do ar
Painel de controle de qualidade do ar

Agora a parte divertida. Estamos prontos para começar a usar a API AirVisual para criar um painel de controle da qualidade do ar e capturar os dados de poluição do ar para onde quisermos. Este script airquality.py simplesmente chama a API AirVisual usando sua chave de API e recupera as informações atuais de poluição do ar. Ele também transmite esses dados para sua conta do estado inicial, o que permitirá que você crie um painel de controle da qualidade do ar.

Você pode acessar o script através do repositório Github que clonamos anteriormente. A primeira coisa que precisamos fazer é ter certeza de que estamos no diretório AirVisual:

$ cd airvisual

A partir daqui, você poderá acessar o arquivo python que executaremos para criar nosso painel de qualidade do ar. Precisamos fazer algumas alterações no arquivo antes de executá-lo. Para abrir o arquivo python, use o comando nano para abrir o editor de texto:

$ nano airquality.py

Depois que o editor de texto estiver aberto, você verá o seguinte próximo ao topo do seu script:

# --------- Configurações do Usuário ---------

LATITUDE = "LAT" LONGITUDE = "LONG" AIRVISUAL_API_KEY = "AIR VISUAL API KEY" BUCKET_NAME = "Qualidade do Ar Local" BUCKET_KEY = "aq1" ACCESS_KEY = "ESTADO INICIAL ACESSA CHAVES" MINUTES_BETWEEN_READS = 5 ---- -------------------------

Você precisa inserir sua latitude, longitude, chave de API do AirVisual e chave de acesso de estado inicial. O parâmetro MINUTES_BETWEEN_READS definirá a frequência com que seu script pesquisará a API AirVisual para obter informações sobre a qualidade do ar. 5 minutos o tempo suficiente para que você não ultrapasse seu limite de 10.000 chamadas de API por mês. Para fins de teste de curto prazo, você pode definir isso para 0,5 minutos. Depois de inserir os parâmetros, salve e saia da entrada de texto digitando Control + X. Agora você está pronto para executar seu script:

$ python airquality.py

Se quiser deixar este script em execução ininterrupto por um longo tempo, você pode usar o comando nohup (sem desligar) da seguinte maneira:

$ nohup python airquality.py &

Assim que estiver em execução, vá para o estado inicial para visualizar seus dados. Seu painel deve ser parecido com a imagem abaixo. Você tem sua localização GPS, seu valor de índice de qualidade do ar e seu principal poluente.

Minha recomendação seria mudar seu valor de AQI para um bloco de medida. Além disso, mova os blocos e redimensione conforme necessário. Se você estiver usando isso para um painel integrado, você pode movê-los para caber conforme necessário.

Se você decidir transformar seu valor de AQI em um medidor, poderá definir o limite de cor para ser semelhante ao gráfico de índice de qualidade do ar. Isso fornece uma atualização instantânea sobre onde o valor AQI cai no gráfico quando você verifica seu painel. Você pode adicionar uma imagem de plano de fundo ao seu painel para dar mais contexto.

Portanto, você tem tudo de que precisa para criar um painel de controle da qualidade do ar. Mas e se você quiser adicionar mais ou adicionar isso a um painel de clima que você já criou? Se for esse o caso, continue lendo!

Etapa 5: Faça um painel de clima total

Faça um painel de clima total
Faça um painel de clima total

Os dados sobre a qualidade do ar não são suficientes para você? Bem, existem muitas opções para adicionar mais ao seu painel ou transmitir esses dados para um painel de previsão do tempo que você já possui!

Transmita o clima e a qualidade do ar em um único painel

Se você já implementou nosso projeto DarkSky API ou Hyper-Local Weather Dashboard, pode adicionar esses dados de qualidade do ar ao seu painel existente. É muito simples, tudo o que você precisa fazer é alterar seus parâmetros no script de qualidade do ar para ter o mesmo nome de balde, chave de balde e chave de acesso que você usou para seu painel de clima. Isso permitirá que os dados sejam enviados para o mesmo painel. Agora você terá um painel meteorológico completo!

Faça com que seu arquivo Weather Python faça uma chamada para executar o arquivo Python de qualidade do ar

Outra opção, se você não quiser executar dois programas separados, é colocar o arquivo python de qualidade do ar no diretório de projeto do clima. Faça com que o arquivo python do projeto de clima faça uma chamada para o arquivo de qualidade do ar para que seja executado quando o arquivo de clima estiver em execução. Novamente, certifique-se de colocar o mesmo nome de intervalo, chave de intervalo e chave de acesso para que sejam executados no mesmo painel.

Crie um único arquivo com o clima e a qualidade do ar

E se você estiver se sentindo realmente ousado, pode colocar parte do código de qualidade do ar em seu script Python do tempo e ter apenas um único script para executar. Exigirá um pouco mais de esforço de codificação do que as outras duas opções, mas torna o programa simplificado.

Transmita informações adicionais da API AirVisual

Como você viu quando fizemos uma chamada para a API AirVisual, ela contém mais informações do que apenas a qualidade do ar. Ele também fornece temperatura, umidade, velocidade do vento, direção do vento e pressão atmosférica. Podemos enviar essa informação ao Estado Inicial da mesma forma que enviamos o valor do índice de qualidade do ar e o poluente principal. Requer apenas que você escreva mais algumas declarações if.

Recomendado: