Relógio de marés e meteorologia: 9 etapas (com fotos)
Relógio de marés e meteorologia: 9 etapas (com fotos)
Anonim
Maré e relógio meteorológico
Maré e relógio meteorológico

Embora você possa comprar relógios analógicos que tenham um único ponteiro indicando se a maré está alta ou baixa ou em algum ponto intermediário, o que eu queria era algo que me dissesse a que horas será a maré baixa. Eu queria algo que pudesse olhar rapidamente sem ter que ligá-lo, apertar nenhum botão ou esperar. E eu queria algo com bateria de longa duração. Então, usei uma placa TTGO T5, que é uma placa baseada em ESP32 com visor de papel eletrônico de 2,13 , conectada a um chip TTL5110. O TPL5110 liga o T5 a cada 2,5 horas e, uma vez por dia, o T5 baixa os dados da maré de O NOAA e os dados meteorológicos do OpenWeatherMap exibem os dados no e-paper e, em seguida, informa ao TPL5110 para desligar o T5.

ATUALIZAÇÃO (25 de fevereiro de 2020) O Tide Clock já está funcionando há um ano, e a bateria está em 4,00 volts, então o relógio pode funcionar por muitos anos.

Etapa 1: Lista de Hardware

Placa TTGO T5 $ 17

Placa Adafruit TPL5110 $ 5

Placa do tamanho Adafruit Perma-Proto Quarter (opcional) $ 0,71 (pedido mínimo $ 8,50)

Bateria Li-Poly 1200 mAh $ 10 (ou outra fonte de alimentação apropriada)

Cabo JST PH de 2 pinos - conector macho $ 0,75

Capacitor 220 uF

Etapa 2: Ferramentas

Ferro de solda

Decapantes de arame

Carregador de bateria Li-Po, como este.

Etapa 3: montar o hardware

Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
Montagem de Hardware

Montar o hardware é muito simples, como mostra o esquema. Eu usei uma placa Adafruit Perma-proto que é como uma protoboard normal, exceto que é disposta como uma breadboard, com as mesmas conexões elétricas de uma breadboard, o que é bom. Como eu só precisava de algumas conexões e queria encaixar todo o conjunto em uma pequena caixa, cortei uma das placas em quartos com uma roda de corte Dremel.

O capacitor 220 uF é muito importante. Sem ele, o TPL5110 nunca ligará o T5. Não está claro o porquê, mas outras pessoas que usam o TPL5110 tiveram o mesmo problema. Talvez o ESP32 consuma mais corrente na inicialização do que o TTL5110 pode fornecer?

Não conecte a bateria. Use o cabo JST-PH para desconectar a bateria e carregá-la. Pode haver uma maneira de carregar a bateria do T5 de volta ao TPL5110 se o TPL5110 estiver "ligado", mas não posso garantir essa técnica.

Eu fiz uma caixa de madeira como um invólucro, mas qualquer coisa com dimensões internas mínimas de 1,5 "x 2,75" x 1 "funcionaria.

Etapa 4: ajuste o tempo

A placa do TPL5110 possui um potenciômetro de compensação que define o intervalo de tempo em que o TPL5110 é ativado. Use uma pequena chave de fenda para girar totalmente no sentido anti-horário. Na minha placa, isso definiu o intervalo para 145 minutos, que na verdade é mais do que o máximo especificado de 120 minutos, mas funcionou e foi consistente e vai economizar ainda mais energia do que acordar a cada 120 minutos, então eu usei. Você não precisa saber o intervalo com precisão, já que o objetivo é apenas fazer o download dos dados aproximadamente uma vez por dia, por volta das 4h. Você pode especificar o intervalo (por exemplo, 145 minutos) e a hora de despertar (por exemplo, 4h) em env_config.h.

(Se você quiser um melhor controle de tempo para algum outro projeto, a placa TPL5110 tem um traço na parte de trás que você pode cortar para desabilitar o potenciômetro. Em seguida, você anexa um resistor ao pino Delay, e a resistência determina o intervalo, de acordo com este gráfico.)

Etapa 5: o software

Você precisará do Arduino IDE com o pacote ESP32. No IDE, configure sua placa para "ESP32 Dev Module".

O esboço está disponível em https://github.com/jasonful/Tides e requer 3 bibliotecas:

  1. "ESP8266 Weather Station", disponível no Arduino Library Manager (ou aqui). Você só precisará desses 6 arquivos: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.h e pode excluir o resto.
  2. "Json Streaming Parser" disponível no Arduino Library Manager (ou aqui)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo Mesmo que o código não seja empacotado como uma biblioteca verdadeira, você pode apenas copiá-lo no diretório de bibliotecas e incluir isto.

Etapa 6: configurar o software

Existem vários parâmetros que você terá que definir (e alguns que você pode querer definir) no arquivo env_config.h, incluindo:

  • SSID WiFi e senha
  • ID da estação NOAA (em outras palavras, onde você está)
  • OpenWeatherMap AppID, no qual você precisará se registrar (é fácil e gratuito)
  • OpenWeatherMap LocationID (novamente, onde você está)
  • CONFIG_USE_TPL5110, que permite usar um T5 sem um TPL5110. Em vez disso, o software entrará no modo de hibernação. A placa T5 consome cerca de 8 ma em repouso profundo, então eu esperava que a bateria durasse apenas alguns dias.

Etapa 7: Como o software funciona

(Você pode pular esta parte se não se importar.)

O objetivo é acordar uma vez por dia, mas como o intervalo máximo do TPL5110 é de apenas 2 horas ou mais, o T5 precisa acordar com mais frequência. Assim, depois de fazer o download dos dados de marés e clima, ele calcula quantos desses intervalos de 2 horas existem entre agora e as 4h da manhã de amanhã. Isso é um pouco complicado pelo fato de que o TPL5110 corta totalmente a energia do T5, o que é bom para a bateria, mas significa que perdemos RAM e o relógio em tempo real. É como acordar todas as manhãs com amnésia. Portanto, para descobrir que horas são agora, ele o extrai do cabeçalho HTTP do NOAA. E para lembrar quantos intervalos de 2 horas faltam, ele grava esse contador no armazenamento não volátil (flash). Cada vez que ele acorda, ele verifica esse contador, diminui-o, armazena-o e se for maior que zero, ele imediatamente envia um sinal para o TPL51110 ("Concluído") dizendo para colocá-lo em hibernação. Quando o contador chega a zero, o código baixa novos dados, recalcula e zera o contador.

Etapa 8: execute-o

Executá-lo
Executá-lo

Certifique-se de que a chave no lado esquerdo do T5 esteja na posição para cima (ligado), carregue o esboço no T5 e, em alguns segundos, a tela deve ser atualizada com informações sobre a maré e o clima.

Se você precisar depurar o software, altere o "#define DEBUG 0" no topo do Tides.ino para "#define DEBUG 1". Isso ativará a saída de depuração serial e também exibirá na parte inferior do e-paper o número de reinicializações restantes antes de baixar novos dados e a hora da última vez em que os dados foram baixados.

Etapa 9: Direções Futuras

  1. O uso do TPL5110 combinado com um display de e-paper é uma ótima maneira de exibir quaisquer dados que não mudam com frequência, com excelente duração da bateria.
  2. Quando estava projetando isso, pensei em usar o TrigBoard, que é uma placa ESP8266 com um TPL5111 a bordo. Seria necessário obter um display de papel eletrônico separado e uma placa de driver de papel eletrônico como este ou aquele. Ou uma combinação driver + placa como esta ou esta. Para portar o código para ESP8266, acho que o código SSL terá que usar impressões digitais em vez de certificados, e o código de armazenamento não volátil precisará usar memória EEPROM ou RTC.
  3. Recentemente, ouvi que a placa Lolin32 é bastante decente no modo de suspensão profunda: cerca de 100uA. Não tão bom quanto a placa TPL51110 (20uA de acordo com Adafruit), mas bom o suficiente.
  4. OpenWeatherMap retorna muito mais dados meteorológicos do que estou exibindo. Incluindo IDs de ícones, o que exigiria a localização de ícones monocromáticos em algum lugar.

Recomendado: