Índice:
- Suprimentos
- Etapa 1: Corte da fita
- Etapa 2: Dark Sky Pi
- Etapa 3: O Código
- Etapa 4: Unicorn HAT e Servo
- Etapa 5: Jiggle do fone de ouvido
- Etapa 6: Montagem
- Etapa 7: Obsessão silenciosa
Vídeo: 1984 WeatherMan Pi: 7 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Este leitor de cassetes portátil é agora um visor de clima IoT ambiente com o estilo do início dos anos 80, exibindo uma animação de "condições atuais", temperatura de rolagem e gráfico de probabilidade de chuva através da janela da fita. Quando as condições climáticas mudam, os fones de ouvido servo-controlados na parte superior balançam para frente e para trás como um alerta sutil.
Abrindo a porta da fita funcional podemos ver que os componentes originais empoeirados foram substituídos por um Raspberry Pi Zero W, um Pimoroni Unicorn Hat HD (LED Matrix) e um pequeno servo. Os dados meteorológicos são obtidos usando um script Python que consulta a API Dark Sky Weather ultraprecisa, adaptada para a minha localização específica.
É uma construção de IoT simples, mas atraente e funcional que fica no alto-falante de mesa oposto ao meu contador do YouTube, mantendo-me silenciosamente atualizado com o clima.
Suprimentos
Raspberry Pi Zero
Pimoroni Unicorn HAT HD
Servo Pequeno
1984 Hitachi SP-1 estéreo pessoal e fones de ouvido
Adaptador WiFi USB
Haste roscada de 2 mm
Sugru (preto e cinza)
GeoMag magnet
Etapa 1: Corte da fita
Minha sogra me deu este adorável toca-fitas antigo em setembro e imediatamente me apaixonei por seu visual icônico e botões grossos. A verdadeira atração, porém, era aquela grande janela de fita - depois de possuí-la por cerca de 15 segundos, tirei uma régua e fiquei surpreso ao descobrir que ela é, em mm, do mesmo tamanho de um Raspberry Pi HAT (Hardware anexado no topo) padrão.
Essa descoberta por si só foi suficiente para empurrar meu projeto do relógio cuco para baixo na lista de "tarefas" e comecei a trabalhar imediatamente, desmontando o reprodutor.
A desmontagem correu muito bem e acabei com três peças distintas para trabalhar - consegui quebrar algumas das peças de plástico, mas nada que não pudesse ser colado novamente.
Etapa 2: Dark Sky Pi
Estou usando o Dark Sky no meu telefone há um tempo e estou realmente impressionado com a precisão das previsões, então fiquei feliz em ver que eles oferecem uma API abrangente que eu poderia usar neste projeto. É bom e simples de configurar também!
Em primeiro lugar, vá para https://darksky.net/dev e inscreva-se para uma conta gratuita - uma conta de "teste" permite que você faça 1000 solicitações de API por dia, o que é suficiente para uma atualização a cada 1,5 minutos - com frequência suficiente até mesmo para o meu Nível britânico de obsessão pelo clima.
Uma vez inscrito, você obterá uma "Chave Secreta" - é o que você precisa para acessar os dados e é usado no script Python, portanto, mantenha-o à mão (e, você sabe, secreto).
Comecei adaptando um script que usei na compilação do Contador de assinantes do YouTube, que usa o módulo Requests em Python para recuperar dados da API. O script que usei está no GitHub, você só precisa adicionar sua chave de API Dark Sky e, é claro, substituir seus próprios valores de latitude e longitude.
Foi muito simples obter dados sobre as condições meteorológicas atuais, e decidi fazer uso dos elementos "Ícone", "Probabilidade de precipitação" e "Temperatura".
Etapa 3: O Código
Se você quiser reutilizar ou retirar o código que usei, ele está no repositório WeatherMan no GitHub - clone ou baixe a pasta "weather" para a pasta "pi" no seu Raspberry Pi.
As principais funções do script são as seguintes:
weatherman.py
Este é o script principal que extrai os dados meteorológicos do Dark Sky. Você precisará configurar uma conta Dark Sky em https://darksky.net/dev e colocar sua chave secreta no script onde indicado. Você também precisará inserir a latitude e longitude do local do clima de seu interesse - isso pode ser encontrado no Google Maps, basta clicar com o botão direito e selecionar "O que há aqui?" e você verá um pop-up mostrando a latitude / longitude do local.
Depois de recuperar os dados da API, weatherman.py passa parâmetros para vários scripts menores para iniciar as animações e os jiggles dos fones de ouvido.
O script está definido para ser executado na inicialização, editando o arquivo de inicialização …
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
… E adicionando:
@ python3 /home/pi/weather/weatherman.py &
no final do arquivo.
icon.py
Este script pega um parâmetro de "condições atuais" do script weatherman.py e o usa para exibir uma animação do clima 16x16 - todos armazenados na pasta "ícones" e fazem parte da documentação padrão do Unicorn HAT HD. Você pode editar os arquivos de animação-p.webp
phones.py
Se as condições meteorológicas mudaram desde a última solicitação de API (ou é uma nova inicialização e não está nevando), este script é chamado de weatherman.py e instrui o servo a "balançar" para frente e para trás para alertá-lo de que as condições mudado.
precip.py
Este script aceita um parâmetro de "probabilidade de precipitação" de weatherman.py e exibe linhas em azul no Unicorn HAT relacionadas à% de probabilidade. Se 100% todas as 16 linhas brilharão em azul, se 50%, apenas 8 linhas etc.
temp.py
Outro script Pimoroni padrão, este pega um parâmetro "temp" de weatherman.py e o exibe com texto de rolagem. Ele está configurado para usar a fonte truetype Herkules (na pasta "fonts"), mas pode usar uma fonte padrão se preferir. Você pode até aprimorá-la para que o texto exibido mude de cor dependendo do valor da temperatura!
Etapa 4: Unicorn HAT e Servo
Ser capaz de obter os dados meteorológicos foi ótimo, mas agora eu precisava exibi-los no Unicorn HAT. Eu olhei vários conjuntos de ícones de clima na Internet e estava no meio do caminho para adaptá-los quando percebi que havia um exemplo de clima incluído na documentação do Pimoroni - e isso incluía animações de clima!
Isso economizou uma enorme quantidade de trabalho e eu estava pronto e funcionando em nenhum momento, com um ícone animado para as condições atuais, algum texto de rolagem para a temperatura e um gráfico para a% de precipitação (que envolvia alguns cálculos matemáticos). Eu mantive os scripts separados e usei o módulo Subprocess do Python para passar parâmetros para frente e para trás.
Adicionar o servo era o veículo ideal para esses alertas, pois faria um pouco de ruído e chamaria a atenção sem ser muito incômodo. Com o HAT já ocupando muitos dos pinos do Pi, soldei os cabos do servo na parte inferior da placa, usando o pino 17 para controlar o movimento do servo usando modulação por largura de pulso.
Ligar o servo a partir do Pi não era o ideal, mas ele só seria usado para uma sacudida momentânea, então a precisão não era um grande problema aqui. Ele conectou conforme mostrado no diagrama, com cabo marrom para GND, vermelho para 5v e laranja (o cabo de controle) para GPIO17.
Por último, editei alguns dos arquivos de animação do clima no GIMP para adicionar meus próprios toques pessoais, como morcegos na lua e um rosto sorridente no sol. Eu também adicionei uma animação personalizada "Old Tech New Spec" para ser reproduzida na inicialização, apenas por diversão.
Etapa 5: Jiggle do fone de ouvido
A ideia do WeatherMan era que ele se sentasse passivamente no alto-falante da minha mesa, ocasionalmente exibindo a previsão do tempo, mas eu queria que ele fizesse um pouco mais! Os fones de ouvido que vieram com ele eram torrados, mas clássicos dos anos 80, então decidi fazer algo com eles. Depois de tirar todo o cabo e colar com cola quente o quebrado, fiquei com três partes, o plugue de 3,5 mm, o botão em forma de diamante e os próprios telefones em sua faixa de metal flexível.
Ocorreu-me a ideia de que, se eu pudesse encontrar uma maneira de montar os telefones na parte superior da unidade, poderia fazê-los girar para frente e para trás com um servo e usar isso como uma notificação adicional.
Em primeiro lugar, perfurei o plugue de 3,5 mm e desmontei a chave de diamante, depois coloquei-a em um pedaço de haste roscada. Em seguida, colei uma porca a um conector de plástico, de modo que a haste pudesse se encaixar com segurança (e diretamente) em cima do servo. Na outra extremidade da haste, acrescentei outra porca. Por fim, usei Sugru cinza para colar a parte superior da haste à faixa do fone de ouvido e também para cobrir a porca na parte inferior do conjunto. Se você ainda não ouviu falar de Sugru, é uma cola moldável que vem em pequenos sachês coloridos - ela molda como Play-Doh, mas adere como supercola e endurece como plástico!
Com o frio recente, o Sugru demorou alguns dias para endurecer totalmente, mas os fones de ouvido e seu estande logo ficaram prontos para a montagem final.
Etapa 6: Montagem
O Pi, o HAT e o Servo estavam todos funcionando bem no banco, então o próximo trabalho era colocá-los no case. Antes de iniciar os componentes grandes, usei um pouco de Sugru cinza que sobrou para fixar o botão de volume, a entrada do fone de ouvido e a chave de "fita de metal", separando os cosméticos. Também colei os botões Play, Stop, FF e Rew originais em um tubo de plástico para que fiquem no lugar certo. Foi uma pena não reutilizar nenhum dos botões desta vez, mas não havia realmente nada para eles controlar!
Usei o resto do Sugru cinza para segurar o servo na posição, com seu eixo cutucando o soquete de fone de ouvido ampliado. Passando para a outra metade da caixa, usei um pouco de Sugru preto para prender o conjunto HAT e Pi à porta da fita, de modo que eles abrissem com ela. Eu realmente gostei do pequeno toque final - fixar um ímã GeoMag para que a porta fosse mantida firmemente fechada.
Juntar as duas metades foi um negócio nervoso, pois eu temia que o Pi e o Servo se chocassem, mas no final havia cerca de um milímetro de sobra, bastante no meu livro. Como a porta aberta daria acesso total ao interior para manutenção futura, apenas colei as duas metades juntas a quente e, depois de limpar minhas impressões digitais gordurosas, encaixei o conjunto do fone de ouvido na parte superior - pronto!
Etapa 7: Obsessão silenciosa
Segundo Prêmio no Concurso de Reutilização
Recomendado:
Howto: Instalando Raspberry PI 4 Headless (VNC) com Rpi-imager e imagens: 7 etapas (com imagens)
Howto: Instalando Raspberry PI 4 Headless (VNC) com Rpi-imager e imagens: Eu pretendo usar este Rapsberry PI em um monte de projetos divertidos em meu blog. Sinta-se à vontade para dar uma olhada. Eu queria voltar a usar meu Raspberry PI, mas não tinha um teclado ou mouse no meu novo local. Já fazia um tempo desde que configurei um Raspberry
Gesture Hawk: robô controlado por gestos manuais usando interface baseada em processamento de imagens: 13 etapas (com imagens)
Gesture Hawk: Robô controlado por gestos manuais usando uma interface baseada em processamento de imagem: Gesture Hawk foi apresentado no TechEvince 4.0 como uma interface homem-máquina baseada em processamento de imagem simples. Sua utilidade reside no fato de que nenhum sensor adicional ou vestível, exceto uma luva, é necessário para controlar o carro robótico que funciona em diferentes
Como desmontar um computador com etapas e imagens fáceis: 13 etapas (com imagens)
Como desmontar um computador com etapas e imagens fáceis: Esta é uma instrução sobre como desmontar um PC. A maioria dos componentes básicos é modular e facilmente removível. No entanto, é importante que você seja organizado sobre isso. Isso ajudará a evitar que você perca peças e também a fazer a remontagem e
Salvando suas imagens para sua tarefa: 4 etapas (com imagens)
Salvando suas imagens para sua tarefa: 1. Abra um novo documento do Google e use esta página para proteger suas imagens.2. Use ctrl (control) e " c " chave para copy.3. Use ctrl (control) e " v " chave para colar
Fazendo imagens sem costura horizontal ou verticalmente apenas (para "The GIMP").: 11 etapas (com imagens)
Fazendo imagens sem costura horizontalmente ou verticalmente apenas (para "The GIMP") .: Se você tentar o plug-in "Make seamless" no GIMP, ele tornará a imagem contínua tanto horizontal quanto verticalmente ao mesmo tempo. Ele não permitirá que você faça isso perfeito em apenas uma dimensão. Este instrutível irá ajudá-lo a fazer ima