Índice:

Crie um painel de clima usando a API Dark Sky: 5 etapas (com imagens)
Crie um painel de clima usando a API Dark Sky: 5 etapas (com imagens)

Vídeo: Crie um painel de clima usando a API Dark Sky: 5 etapas (com imagens)

Vídeo: Crie um painel de clima usando a API Dark Sky: 5 etapas (com imagens)
Vídeo: Orion Nebula WITHOUT a Star Tracker or Telescope, Start to Finish, DSLR Astrophotography 2024, Julho
Anonim
Image
Image

Dark Sky é especialista em previsão e visualização do tempo. O aspecto mais legal do Dark Sky é sua API de clima, que podemos usar para recuperar os dados meteorológicos de quase qualquer lugar do mundo. Não se trata apenas de tempo chuvoso ou ensolarado, mas também de temperatura, ponto de orvalho, rajada de vento, umidade, precipitação, pressão, índice de UV e muito mais, tudo facilmente disponível para onde você quiser, quando quiser.

Vamos aprender como usar a API super simples do Dark Sky. Se você é novo no uso de APIs, prometo que será muito fácil! E se você já usou APIs antes, espero que possamos ensinar algo novo com o código que usamos.

O que você precisará para este projeto:

  • Conta Dark Sky API
  • Conta de estado inicial
  • Raspberry Pi ou laptop

Etapa 1: primeiros passos

Já colocamos muito trabalho de perna para você montar o código e organizar as informações. Precisamos apenas que você faça alguns ajustes ao longo do caminho. Se você quiser um pouco de desafio, faça algumas alterações em nosso código e nos dados meteorológicos que serão enviados, as possibilidades são ilimitadas!

Para recuperar tudo o que preparamos para você, você precisará clonar o repositório do GitHub. GitHub é um serviço que nos permite armazenar, revisar e gerenciar projetos como este. Você vai querer executar este script em um dispositivo dedicado. O Raspberry Pi é uma opção perfeita para executar aplicativos como este tutorial.

Para clonar o repositório, tudo o que precisamos fazer é entrar no terminal do nosso Pi ou no terminal do seu computador que está conectado por SSH ao seu pi e digitar este comando:

$ git clone

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

Clonando em 'darksky' …

remoto: Contando objetos: 2, pronto. remoto: Total 2 (delta 0), reutilizado 0 (delta 0), embalagem reutilizada 2 Objetos de desempacotamento: 100% (2/2), concluído. Verificando a conectividade … 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. Antes de seguirmos para a próxima etapa, vamos explorar este diretório e aprender alguns comandos básicos de linha de comando.

Digite o comando abaixo em seu terminal:

$ ls

Este comando lista tudo o que está disponível no diretório em que você está atualmente. Esta lista mostra que nosso GitHub Repo foi clonado com sucesso em nosso diretório sob o nome “darksky”. Vamos dar uma olhada no que está nesse diretório. Para mover para um diretório, tudo que você precisa fazer é digitar “cd” e, em seguida, digitar o nome do diretório para o qual deseja ir.

Nesse caso, digitaremos:

$ cd darksky

Assim que clicarmos em Enter, você verá que agora estamos no diretório darksky. Vamos digitar "ls" novamente para ver quais arquivos instalamos em nosso pi.

README.md darksky.py…

Aqui vemos que temos nosso documento leia-me e arquivos Python. Vamos dar uma olhada em darksky.py usando o comando "nano". O comando nano nos permite abrir o editor de texto nano, onde temos todo o nosso código python para cada segmento deste projeto. Vá em frente e digite:

$ nano darksky.py

Aqui você pode ver todo o código que preparamos para você neste projeto. Não faremos nenhuma alteração neste documento ainda, mas fique à vontade para navegar e ver o que faremos posteriormente neste tutorial.

Etapa 2: Usando a API Dark Sky

Estado inicial
Estado inicial

Para usar a API Dark Sky, você primeiro precisa de sua própria chave de API. Não se preocupe, obter uma chave de API é rápido e gratuito. Tudo que você precisa fazer é ir ao site e clicar em "Experimente gratuitamente" para criar uma conta.

  • Você recebe 1.000 chamadas de API gratuitamente todos os dias. Cada solicitação de API acima do limite diário gratuito custa US $ 0,0001.
  • Este limite é redefinido automaticamente a cada dia à meia-noite UTC.
  • A solicitação de previsão retorna a previsão do tempo atual para a próxima semana.
  • O Time Machine Request retorna as condições meteorológicas observadas ou previstas para uma data no passado ou futuro.

Sua chave secreta da API Dark Sky será parecida com esta: 0123456789abcdef9876543210fedcba.

Você pode fazer uma chamada de API para Dark Sky digitando um URL em seu navegador no seguinte formato:

api.darksky.net/forecast/[key]/[latitude], [longitude]

Substitua "chave" pela chave API Dark Sky e longitude / latitude pelo que você quiser. Você pode encontrar sua longitude e latitude acessando o Google Maps e pesquisando sua localização. Esses valores estarão no URL. Copie e cole o URL céu escuro acima com sua chave de acesso e valores adicionados em uma barra de endereço.

Depois de fazer isso, você verá algo assim:

day "," mais próximoStormDistance ": 57," mais próximoStormBearing ": 15," precipIntensity ": 0," precipProbability ": 0," temperatura ": 53,9," temperatura aparente ": 53,9," ponto de orvalho ": 29,59," umidade ": 0,39, "pressão": 1022,45, "windSpeed": 3,87, "windGust": 9,25, "windBearing": 259, "cloudCover": 0,01, "uvIndex": 3, "visibilidade": 7,8, "ozônio": 309,71}, "minuciosamente": {"summary": "Clear para a hora.", "icon": "clear-day", "data": [{"time": 1550615280, "precipIntensity": 0, "precipProbability": 0 }, …

Pode ser um pouco opressor e difícil de ler, então o que eu recomendo fazer é usar um formatador JSON para ajudar a tornar os dados mais legíveis. Quando você fizer isso, terá a seguinte aparência:

objeto {9}

latitude: 37,8267 longitude: -122,4233 fuso horário: América / Los_Angeles atualmente {19} hora: 1550615286 resumo: Ícone claro: dia claro mais próximo ao Tempestade Distância: 57 mais próximo ao Tempestade: 15 precipIntensidade: 0 precipitabilidade: 0 temperatura: 53,9 ponto aparente Temperatura: 53,9 orvalho: 29,59 umidade: 29,59 0,39 pressão: 1022,45 velocidade do vento: 3,87 vento: 9,25 vento: 259 nuvemCobertura: 0,01 uv Índice: 3 visibilidade: 7,8 ozônio: 309,71

Você acabou de fazer uma chamada de API! Viu como foi fácil? Você nem mesmo precisa escrever uma única linha de código. Agora que você já domina as APIs, podemos passar para a parte de streaming de dados.

Etapa 3: estado inicial

Queremos transmitir todos os nossos dados meteorológicos para um serviço em nuvem e fazer com que esse serviço transforme nossos dados em um bom painel que possamos acessar de nosso laptop ou dispositivo móvel. Nossos dados precisam de um destino. Usaremos Estado inicial como esse destino.

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 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 6: Exemplo de dados

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 4: painel de clima Dark Sky

Dark Sky Weather Dashboard
Dark Sky Weather Dashboard

Agora a parte divertida. Estamos prontos para começar a usar a API Dark Sky para criar um painel de clima e capturar o histórico do clima para o local que escolhermos. Para fazer isso, vamos usar o script Python: https://github.com/initialstate/darksky/blob/master/darksky.py. Este script simplesmente chama a API Dark Sky usando sua chave API e recupera as informações meteorológicas em um intervalo de tempo especificado. Ele também transmite esses dados para sua conta do estado inicial, o que permitirá que você crie um painel meteorológico Dark Sky.

Você pode copiar esse script para o seu Pi ou acessá-lo por meio do repositório GitHub que clonamos anteriormente. Você pode fazer isso mudando para o diretório darksky, digitando:

$ cd darksky

A partir daqui, você poderá acessar o arquivo python que executaremos para criar nosso painel de meteorologia. Antes de executá-lo, você precisa definir os parâmetros desejados e inserir suas chaves. Nano no arquivo darksky.py digitando:

$ nano darksky.py

Em seguida, edite a seção próxima ao topo do script:

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

CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "COLOQUE SUA CHAVE DE API DO CÉU ESCURO AQUI" BUCKET_NAME = ": parcialmente_sunny:" + CITY + "Clima" BUCKET_KEY = "ds1" ACESSE SUA CHAVE DE ENTRADA CHAVE AQUI "MINUTES_BETWEEN_READS = 15 # ---------------------------------

Você precisa definir as coordenadas GPS desejadas e o nome da cidade. Você também deve inserir sua chave de API Dark Sky e sua chave de acesso de conta de estado inicial ou seus dados não irão a lugar nenhum. O parâmetro MINUTES_BETWEEN_READS definirá a frequência com que seu script pesquisará a API Dark Sky para obter informações sobre o clima. 15 minutos fornecem um bom intervalo de longo prazo. Para fins de teste de curto prazo, você pode definir isso para 0,5 minutos. Faça suas alterações e digite control + X para sair e salvar.

Depois de definir seus parâmetros, você está pronto para executar seu script:

$ python darksky.py

Se você estiver fazendo ssh'ing em seu Pi e 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 darksky.py &

Este script fará um pouco mais do que apenas ler os dados meteorológicos e enviá-los ao estado inicial. Este script vai tirar proveito do suporte a emojis embutido nas ferramentas do estado inicial para tornar o painel um pouco mais legal. Você pode ver a lógica usada para obter o status do clima do ícone -> atual e convertê-lo em um token de emoji na função weather_icon. Algo semelhante acontece para a fase da lua na função moon_icon e a direção do vento na função wind_dir_icon.

Etapa 5: Conclusão

Conclusão
Conclusão
Conclusão
Conclusão

Vá para sua conta do estado inicial e verifique seus dados. Mudei todos os meus valores percentuais para medidores de arco, a precipitação para um medidor de líquido e a temperatura para um medidor de temperatura. Você pode mudar para qualquer tipo de tipo de bloco e escolher suas cores para os medidores e gráficos de linha. Você pode deixar seu painel escuro ou claro e incorporar o produto final em um site usando um iframe incorporado.

Se você deseja usar o layout do painel de um compartilhamento público como seu painel, você pode importar um layout para o seu depósito de dados seguindo as instruções aqui. Você pode adicionar uma imagem de plano de fundo ao seu painel para dar mais contexto.

O URL de compartilhamento público de nosso painel é

Agora que você já domina a API Dark Sky, as possibilidades são infinitas! Há uma quantidade ilimitada de APIs online gratuitas para explorar, então comece.

Recomendado: