Índice:

Estação meteorológica Raspberry Pi Internet: 5 etapas (com imagens)
Estação meteorológica Raspberry Pi Internet: 5 etapas (com imagens)
Anonim
Estação meteorológica Raspberry Pi Internet
Estação meteorológica Raspberry Pi Internet
Estação meteorológica Raspberry Pi Internet
Estação meteorológica Raspberry Pi Internet

*** Atualizar ***

Este Instructable está desatualizado. Os serviços de meteorologia para os dados meteorológicos, utilizados neste Instructable, já não funcionam. NO ENTANTO, existe um projeto alternativo que faz basicamente a mesma coisa (só que melhor - este Instructable sempre foi apenas um hack). Então, aqui está o link que você deseja seguir:

https://piweatherrock.technicalissues.us/

Muito obrigado a Gene Liverman em PiWeatherRock por assumir o manto neste projeto.

Este Instructable mostrará como construir uma estação meteorológica baseada na Internet do Raspberry Pi muito legal. Na verdade, chamar isso de construção de "estação meteorológica" é uma afirmação um pouco inferior. Essa construção poderia ser facilmente ampliada para fornecer muito mais do que simplesmente o clima. No entanto, é um bom começo e parece muito bom na minha mesa.

Nossa família (OK, principalmente eu) tem gostado de ter o iPad familiar no balcão da cozinha, quando não está em uso, mostrando silenciosamente as atuais condições climáticas externas. No entanto, é uma dor de carregar e descarregar o iPad dentro e fora do estojo de arcade. Além disso, quando vou ver a previsão do tempo, descubro que alguém pegou a tela do iPad / previsão do tempo. O que é necessário é uma tela de balcão permanente que as crianças não vão deslizar como o iPad.

Etapa 1: Geração 1 - a estação meteorológica Lunchbox Pi

Gen 1 - a estação meteorológica Lunchbox Pi
Gen 1 - a estação meteorológica Lunchbox Pi
Gen 1 - a estação meteorológica Lunchbox Pi
Gen 1 - a estação meteorológica Lunchbox Pi

Meu primeiro pensamento foi usar um pequeno monitor de vídeo composto. Peguei o da foto no Ebay por US $ 22 - basta pesquisar "Monitor de visão traseira do carro LCD TFT de 4,3 polegadas". A tela tem uma resolução relatada de 656 por 416 pixels, o que torna a exibição de muitas informações úteis um desafio! O display requer 12Vdc como tensão de alimentação. O Raspberry Pi, é claro, precisa de 5Vdc como tensão de alimentação. Para resolver isso, comprei um carregador de carro USB barato da Amazon. Por cerca de $ 6 dólares eu encontrei um trocador de carro de 5Vdc por 2 Amp. Portanto, a lancheira tem uma fonte de alimentação externa de 12 Vcc na parede. O 12Vdc alimenta o display diretamente. O 12Vdc também vai para o carregador USB para carro, que reduz a tensão para 5Vdc regulado. Como um hack final, soldei um par de fios diretamente entre o carregador do carro e o Raspberry Pi - não foi minha melhor ideia.

Embora tudo tenha funcionado, não fiquei muito satisfeito com a qualidade do vídeo na tela composta. A fonte pequena na tela estava mais difusa do que eu gostaria. Além disso, enquanto a lancheira no começo parecia fofa, depois parecia meio cafona.

Etapa 2: Geração 2 - Monitor HDMI + Capa Arcade Laser Cut Plexiglass

Geração 2 - Monitor HDMI + Capa Arcade Laser Cut Plexiglass
Geração 2 - Monitor HDMI + Capa Arcade Laser Cut Plexiglass
Geração 2 - Monitor HDMI + Capa Arcade Laser Cut Plexiglass
Geração 2 - Monitor HDMI + Capa Arcade Laser Cut Plexiglass
Geração 2 - Monitor HDMI + Capa Arcade Laser Cut Plexiglass
Geração 2 - Monitor HDMI + Capa Arcade Laser Cut Plexiglass

De volta ao eBay, encontrei um monitor HDMI de estrutura aberta de $ 54 dólares com uma resolução de 800x600. Por definição, uma moldura aberta em que qualquer coisa precisa de uma moldura para montar. Já que a fofura da lancheira já havia passado, era hora de um acrílico cortado a laser. Meu espaço local de hackers, i3Detroit, tem um cortador de 150 watts muito bom que pode fazer carne picada de acrílico de 4,5 mm.

Eu vagamente baseiei meu gabinete de arcade na caixa de arcade do iPad. Se eu algum dia fizesse um projeto Gen 3, ele certamente incluiria uma bandeja removível / deslizante para o Pi. Acontece que é uma grande dor de cabeça tentar conectar as coisas dentro e fora do Pi, já que não há muito espaço entre o Pi e as paredes laterais.

O monitor HDMI também requer uma alimentação de 12 Vcc. Então, usei o mesmo truque de usar um carregador USB para carro novamente. Desta vez, porém, cortei um cabo USB antigo para que fios soldados no Pi não fossem necessários.

Se alguém estiver interessado no case de arcade poste um comentário abaixo e eu irei fazer o upload dos arquivos DXF. Ou os arquivos estão no meu site em ph-elec.com.

Etapa 3: Configuração de Pi

Configuração de Pi
Configuração de Pi

Configurar um novo Raspberry Pi com o software necessário não é tão difícil. Todo o software é escrito em Python com apenas um módulo Python adicionado. O módulo extra do Python é chamado de "pywapi". Aqui está um link onde você pode baixar o módulo. Este módulo facilita a obtenção do clima em tempo real do Yahoo, Weather.com ou NOAA.

Em primeiro lugar, aqui está uma lista de verificação para configurar um Raspberry Pi cru:

  1. Baixe o Raspbian mais recente (Debian Wheezy). Descompacte para obter um arquivo.img.
  2. Grave o em um cartão SD com "dd bs = 4M if = 2014-09-09-wheezy-raspbian.img of = / dev / sdb"
  3. O comando dd leva cerca de cinco minutos. Quando terminar, execute "sync" para limpar os tubos.
  4. Instale o cartão SD no Pi e reinicie. Certifique-se de que haja uma conexão Ethernet com o Pi.
  5. Usando a página "Dispositivos conectados" no roteador, encontre o endereço IP do novo Pi.
  6. Faça login no Pi usando "ssh [email protected]. ???" Onde ??? é o número IP de cima. A senha será "framboesa".
  7. No Pi, use o comando "raspi-config" para configurar os padrões.

    1. Ative a inicialização automática na GUI.
    2. Defina o nome do host como algo como "MyPi".
  8. Instale o VNC no Pi com "sudo apt-get install tightvncserver".

    Execute "tightvncserver" que define a senha

  9. De volta à grande caixa do Linux, use "Remote Desktop" para visualizar a área de trabalho Pi GUI.

    1. Defina o protocolo como "VNC" e o número IP como "192.168.1.???:1". Observe o ": 1" no final do número IP.
    2. Aperte o botão de conexão e forneça a senha VNC.
    3. Bingo, desktop remoto GUI Pi!

      Isso evita arrastar um monitor, teclado e mouse para conectar-se ao novo Pi

    4. Na área de trabalho, execute o ícone de configuração do WiFi. Configure o novo Pi / USB WiFi para se conectar à rede.
    5. Feche a conexão VNC - agora terminamos com os desktops remotos.
  10. De volta à janela ssh, reinicie o Pi com "sudo reboot". Desconecte o cabo Ethernet, pois o WiFi agora está configurado.
  11. De volta ao roteador doméstico, encontre o novo número IP que o Pi está usando com WiFi.
  12. Usando ssh, faça login novamente usando o novo número de IP. Desta vez, a conexão será por WiFi.
  13. Usando o Gerenciador de Arquivos no Linux, conecte-se ao Pi usando o comando "conectar ao servidor".

    O endereço do servidor é "sftp: //192.168.1. ??? / home / pi"

  14. Configuração básica concluída.

Em seguida, o pywapi precisa ser baixado e instalado. Novamente, isso não é muito difícil com as seguintes etapas:

  1. Baixe o mais recente aqui. Extraia o arquivo em um novo diretório.
  2. Usando o gerenciador de arquivos, copie o diretório para o diretório inicial do Pi.
  3. Usando ssh, faça o seguinte no Pi:

    1. cd pywapi-0.3.8
    2. sudo python setup.py build
    3. sudo python setup.py install
  4. Feito.

Atualização, esqueci de mencionar duas outras coisas:

  1. No Pi, execute o seguinte comando:

    1. sudo apt-get install avahi-daemon

      Isso permite a conexão com o Pi pelo nome. Portanto, em seu computador principal, você pode se conectar como "ssh [email protected]" em vez de usar números de IP. Com vários Pi's na rede, é fácil confundi-los, a menos que sejam chamados pelo nome

    2. sudo raspi-config

      1. Procure e execute a 4ª opção chamada "Opções de internacionalização" e defina seu fuso horário.
      2. Com o fuso horário definido e o ntpd (daemon de protocolo de tempo de rede) em execução, o Pi sempre exibirá a hora correta em alguns milissegundos! Tem que amar isto.
  2. OK, agora terminamos novamente.

Etapa 4: Código Fonte

Código fonte
Código fonte

Todo o código-fonte para esta pequena exibição do tempo é baseado em Python, PyGame e Pywapi. Todo software de código aberto / livre.

PyGame é usado para fazer todas as coisas da GUI. Coisas realmente incríveis. Usando o PyGame, todo o display é reconstruído uma vez por segundo. Perto do topo do meu código-fonte, você encontrará uma seção que permite ajustes para diferentes tamanhos de exibição. Há uma seção para a pequena tela de vídeo composto e uma segunda seção para a tela HDMI maior. Eu simplesmente comento uma das duas seções com base no tamanho de exibição de que preciso.

Para colocar meu código-fonte em execução, descompacte o anexo e copie todo o diretório para o Pi usando o Gerenciador de Arquivos. Depois de copiado, inicie o código usando os seguintes comandos ssh:

  1. cd clima
  2. sudo python weather.py

O comando sudo é necessário para que o Python possa controlar / ler os pinos GPIO. Provavelmente existe uma maneira de contornar essa restrição, mas ela me escapa.

Depois que tudo começar a funcionar usando o ssh, é hora de fazer com que o clima inicie automaticamente na reinicialização. Isso também é muito fácil de fazer.

  1. Usando ssh, execute "sudo vi /etc/rc.local"
  2. Pouco antes da última linha, que diz "saída 0", adicione o seguinte às linhas.

    1. cd / home / pi / clima
    2. sudo python weather.py &> err.log

Isso iniciará automaticamente o aplicativo de clima no Pi após uma reinicialização. Se mais tarde você quiser desligar isso, apenas use ssh para editar o arquivo e adicione o caractere de comentário "#" na frente de ambas as linhas e reinicie.

Observe, meu código-fonte é um grande hack e não tenho muito orgulho dele. No entanto, se eu esperasse até que estivesse apresentável, nunca seria apresentado. Então, pegue ou deixe, só não chore porque eu tenho uma pele muito fina.

Algumas outras coisas a serem observadas sobre meu código. Enterrado lá, você notará algum código para falar com um dispositivo X10. Esta foi a minha tentativa de controlar meus postes de luz externos que estão no endereço A3. Eu simplesmente queria as lâmpadas acesas ao anoitecer e apagadas ao amanhecer. Parece fácil e achei que tinha funcionado. Usando um dongle USB para RS232 no Pi, conectei um módulo CM11A X10. O CM11A é um antigo módulo de macro X10. O CM11A também possui uma porta RS232 que permite o controle sobre o barramento X10. Parece que ainda há alguns bugs porque as luzes do poste não estão recebendo a mensagem!

Também digno de nota, na tela maior há um bom espaço aberto ao longo do lado direito da tela. Meu plano é adicionar algumas lâmpadas de status nessa área. Estou tocando com alguns rádios IEEE802.15.4 e suas saídas um dia aparecerão naquele local aberto.

Para obter as melhores e mais recentes atualizações, visite meu site em ph-elec.com.

Bem, deixe-me saber na seção de comentários abaixo qualquer dúvida que você possa ter.

Obrigado, Jim.

Ah, e não se esqueça de votar em mim! Obrigado novamente.

BTW: Sempre há mais informações no meu site: www.ph-elec.com

Etapa 5: atualização da métrica

Em anexo está uma nova versão que permite a exibição de métricas ou imperiais.

Espero que isto ajude, Jim

Recomendado: