Índice:

Tweerstationneke A.k.a. Estação meteorológica holandesa: 4 etapas
Tweerstationneke A.k.a. Estação meteorológica holandesa: 4 etapas

Vídeo: Tweerstationneke A.k.a. Estação meteorológica holandesa: 4 etapas

Vídeo: Tweerstationneke A.k.a. Estação meteorológica holandesa: 4 etapas
Vídeo: Convenience items needed in the family 2024, Novembro
Anonim
Tweerstationneke A.k.a. Estação meteorológica holandesa
Tweerstationneke A.k.a. Estação meteorológica holandesa

Meu pai está sempre interessado nas últimas notícias e informações sobre o clima. Isso me trouxe o presente de aniversário perfeito quando ele completou 76 anos: uma pequena estação meteorológica sempre ligada, sem nenhum absurdo, que fica quieta em um canto o dia todo e fornece um resumo das últimas previsões.

Ele é projetado em torno de dois sites holandeses. Provavelmente você pode ver isso no engraçado título local deste tópico! Um fornece a previsão local por cidade a cada 10 minutos no formato json. O outro fornece a previsão de chuva para as próximas duas horas em formato de texto simples, o que é sempre útil saber. Tenho certeza de que se você não mora na Holanda, pode facilmente adaptar este tópico a qualquer outro serviço.

Suprimentos

  • Uma placa ESP8266; sugiro o uso de um mini Wemos D1
  • Uma tela TFT de 1,8 polegadas com 128 * 160 pontos; Cor de 16 bits
  • Alguns cabos
  • O programa como está ou para começar a criar o seu próprio
  • Uma bela caixa para colocar tudo junto. Use um padrão ou imprima o seu próprio com o desenho anexado

Etapa 1: Faça o protótipo

Faça o protótipo
Faça o protótipo

Tela de conexão e controlador

Use um pequeno cabo plano e solde a placa e a tela TFT juntas. Use a lista para conectar as peças da maneira certa

TELA TFT ------------------ WEMOS

LED ------------------------------- D8 SCK ---------------- --------------- D5SDA ------------------------------- D7A0 - -------------------------------- D3RESET ----------------- ----------- D2CS ---------------------------------- D4GND --- ---------------------------- GNDVCC --------------------- ---------- 3V3

Alternativamente, você pode colocar o LED em 3v3 em vez do pino D8. Usei o pino D8 para fazer o dispositivo dormir por volta das 23:00 da noite e acordar por volta das 07:00 novamente. Efetivamente, este será o primeiro momento em que lê o boletim meteorológico após esse horário, uma vez que lê o cabeçalho para verificar a hora. Não há relógio de tempo real neste dispositivo.

Se tudo funcionar, conecte seu cabo USB ao Wemos e carregue o software. Se tudo funcionar, você pode começar a construir a caixa.

Etapa 2: Design do programa

Desenho do Programa
Desenho do Programa

Minhas ideias sobre este dispositivo meteorológico onde

  • Facilmente adaptável a outro ambiente wi-fi
  • Exibir previsão do tempo e previsão de chuva
  • Sem botões
  • Sem som, simples qui, sem fuzz

Com isso em mente, criei um programa que começa com o código WifiManager quando não consegue descobrir uma rede Wifi conhecida. Ele cria sua própria rede e mostra o nome no display. Isso lhe dá a chance de definir os parâmetros de Wifi para sua própria rede doméstica.

Após esta configuração mostra a previsão do tempo e a precipitação de chuva em turnos, a cada 20 segundos. Se por algum motivo não for possível ler a próxima previsão, um pequeno número de erro será exibido no lado direito do display; e a imagem anterior será mostrada. Na próxima execução, uma nova tentativa é feita para recuperar as informações.

As informações meteorológicas são recebidas do site em uma mensagem estilo json. As informações nele são convertidas e salvas em variáveis globais. Desta forma, podemos dissociar a recuperação da informação da sua exibição. Não há razão para recuperar o clima mais rápido do que uma vez a cada 10 minutos.

Obter a precipitação da chuva é ainda mais simples. É servido em formato de texto simples, com a quantidade de chuva esperada no valor 0..255; uma barra vertical; uma vez em cada linha. Isso a cada 5 minutos nas próximas 2 horas. O rainvalue é fornecido de forma inteligente, onde valores pequenos dão mais espaço para mostrar a diferença como valores maiores. A fórmula usada é a seguinte:

mmhour = redondo (pow (10, (valor da chuva - 109) / 32) * 10) / 10;

Observe que "vezes 10, dividir por 10" é um truque para garantir que temos 1 decimal atrás do ponto. Dependendo da quantidade máxima de chuva esperada nas próximas 2 horas, existem 3 escalas usadas para o gráfico;

  1. Espera-se um máximo de 5 mm / hora
  2. Espera-se um máximo de 20 mm / hora
  3. O máximo é obtido a partir do valor mais alto na previsão

Aqui na Holanda, nosso valor mais alto está em torno de 80 mm / hora; então esta escala servirá perfeitamente. Para outros países, pode ser sensato mudar isso.

Etapa 3: Código do programa

Código do Programa
Código do Programa

Configurações do editor

O software para este dispositivo meteorológico é criado no ambiente de programação Arduino. Você o encontrará em anexo aqui para sua conveniência. Use-o como está; ou altere-o para atender às suas necessidades. Todos os textos que podem ser exibidos na tela TFT são DEFINIDOS no topo do programa; o que significa que você pode alterá-lo facilmente para seu próprio idioma, se desejar. Usei o Wemos D1 mini, mas placas semelhantes também funcionam.

No ambiente Arduino, usei as seguintes configurações;

  • Placa: LOLIN (WEMOS) D1 RA e Mini
  • Velocidade de upload: 115200
  • CPU freq: 80 MHz
  • Tamanho do Flash: 4M (sem SPIFFS) V2 Memória Inferior Desabilitada

Temporizadores de software são usados para tornar o loop () mais fácil e legível. A exibição das informações é separada do download das informações. Desta forma, podemos usar outros tamanhos de tela, etc, sem ter que alterar todo o programa.

Use o arquivo.ino e carregue-o no editor arduino. Configure sua placa no editor. Anexe o arquivo de cabeçalho que garante que os arrays PROGMEM estilo C necessários sejam incluídos no programa.

cartão SD

Observe que a maioria dos monitores de 1,8 polegadas disponíveis tem um slot para cartão SD na parte de trás da tela. Este é um bom recurso que ajuda a armazenar imagens grandes no cartão. A maioria dos microcontroladores não tem muita memória a bordo, o que ajuda.

Embora eu passe muito tempo tentando fazer com que o cartão SD funcione com a tela, não consegui ter uma situação viável. Eu poderia usar a tela; recuperar um arquivo do cartão SD com sucesso, mas depois disso não consegui mais acessar a tela TFT. Mudar as bibliotecas, mudar a ordem das bibliotecas e "despir" o programa ao menor corpo para descartar outras possibilidades não me ajudaram.

Para aumentar minha frustração; há muitos exemplos na internet de pessoas fazendo coisas semelhantes com resultados positivos, hmmm. Pode ser um problema de hardware na minha tela TFT? Ou algo em que não pensei? Todas as sugestões são bem-vindas para uma próxima tentativa. No final, depois de passar algumas noites nele; Decidi sair desse caminho. Como as imagens têm apenas 50x50 pixels (o que resulta em 5000 bytes cada uma com cores de 16 bits), o ESP é capaz de armazenar isso no PROGMEM com facilidade. Então foi esse o truque que usei.

Essa escolha resultou em mais um desafio. Como obter a imagem BMP que eu tinha em um formato legível. Depois de algumas pesquisas, descobri o site de Henning Karlsen, que resolveu esse quebra-cabeça antes. Ele criou um programa que converte arquivos do tipo-p.webp

Etapa 4: criar a caixa

Crie a caixa
Crie a caixa
Crie a caixa
Crie a caixa
Crie a caixa
Crie a caixa

Esta não é a primeira caixa de que preciso. Muitas caixas padrão estão disponíveis nos fornecedores. Usando uma pequena serra, uma faca, uma broca, etc., é fácil criar um orifício para a exibição na caixa. Mas nunca consegui fazer um retângulo exatamente bonito. Provavelmente não é suficiente habilidades e / ou paciência;-)

A solução: tive sorte. Eu tenho uma faculdade que é como o super-homem quando se trata de mexer com coisas técnicas. Isso inclui design e impressão 3D também. Então ele decidiu oferecer muito de seu tempo livre para medir o display TFT e o microcontrolador e criar uma caixa ao redor deles. Tudo se encaixa muito bem, dê uma olhada nas fotos. Ele ainda contém encaixes para a tela, um orifício para o conector USB e um local para fixar o microcontrolador.

Obrigado Arjan por este super trabalho realizado !!! Melhor ainda, ele foi tão gentil em dar a todos acesso ao seu trabalho, então se você baixar seus arquivos do link e usá-los para sua própria impressora 3D, você pode criar a mesma caixa com o conteúdo.

Recomendado: