Índice:

Estação meteorológica ESP32 com energia solar: 9 etapas
Estação meteorológica ESP32 com energia solar: 9 etapas

Vídeo: Estação meteorológica ESP32 com energia solar: 9 etapas

Vídeo: Estação meteorológica ESP32 com energia solar: 9 etapas
Vídeo: DIY Solar Powered WiFi Weather Station - V2.0 || Solar Weather Station ESP8266 2024, Junho
Anonim
Image
Image
ESP32 estação meteorológica movida a energia solar
ESP32 estação meteorológica movida a energia solar
ESP32 estação meteorológica movida a energia solar
ESP32 estação meteorológica movida a energia solar

Neste tutorial, vamos construir um projeto de estação meteorológica habilitada para WiFi.

O objetivo é projetar uma estação meteorológica com quase todas as características possíveis:

  • Mostra as condições atuais, tempo, temperatura, umidade, pressão
  • Mostrar previsão para os próximos dias
  • Atualização no ar
  • Construído em web site para configuração e representação de dados
  • Faça upload de dados para a nuvem para estatísticas de histórico
  • Integrado com Aple Home Kit ou MQTT
  • Accu Indepeded alimentado com possível recarga ou conexão ao painel solar

Não posso adicionar mais e não mais imaginação sobre o que mais deve ou pode ser

Etapa 1: peças que são necessárias

Partes que são necessárias
Partes que são necessárias
Partes que são necessárias
Partes que são necessárias
Peças que são necessárias
Peças que são necessárias
  • ESP32 (usei o módulo dev)
  • 2.8 "240x320 TFT LCD SPI ILI9341
  • Caixa de plástico
  • 3 x 18650 Accu
  • Sensor meteorológico BME280 para medir temperatura, umidade e pressão
  • Módulo carregador USB de lítio
  • DC-DC step UP18650
  • suporte de bateria (3 unidades)
  • Detector de movimento HC-SR505
  • Resistor 220 Om
  • 2 resistores de 10 kOm
  • O transistor NPN TIP120 (Darlington) pode ser usado com qualquer outro transistor compatível
  • ButtonWires, switch, placa de solda….

Etapa 2: Fiação e montagem

Fiação e montagem
Fiação e montagem
Fiação e montagem
Fiação e montagem
Fiação e montagem
Fiação e montagem
Fiação e montagem
Fiação e montagem

O primeiro passo é a montagem das potências da estação.

Dividi a caixa de plástico em dois pars, um deles usado para bateria, switch, carregador USB e DC-DC. Nesta parte, coloco o suporte da bateria e faço janelas para o switch e o carregador USB. Esteja ciente de que o módulo do carregador USB é bastante quente, portanto, usei uma placa de alumínio e coloquei o carregador USB nele usando cola Star 922.

A segunda etapa é a montagem da parte dos controladores.

Veja o diagrama de fiação como deve ser conectado

Eu usei a tábua de pão para este propósito com as seguintes etapas

  • Placa dev solda ESP32
  • Escudo de solda para manter a tela TFT
  • Solde outros componentes eletrônicos: BME280, resistores, botões
  • Fiação de solda entre os componentes de acordo com o diagrama

A terceira etapa é preparar a montagem da placa do pão na segunda parte da caixa de plástico. Eu imprimi na minha impressora 3d duas barras, monte-as no quadro por meio de parafusos e faça cortes retangulares para a tela do monitor.

Colei suportes de barras de plástico ao corpo da caixa de plástico. Agora, quando a cola estiver seca, a placa do pão pode ser desmontada por meio de parafusos.

A próxima etapa é:

  • Fiação de solda para fonte de energia
  • Fiação de solda para o status de tensão da bateria
  • Soldar e montar detector de movimento

Passo final:

  • configurar o conversor DC-DC sintonizando a tensão de saída 5v
  • conecte duas partes do controlador da estação à energia: fios de energia e leitura de tensão

Para o detector de movimento e o botão, fiz orifícios adicionais no lado frontal.

Etapa 3: Upload de firmware para ESP32

Para este projeto usei um software universal, desenvolvido por mim

Por favor, dê uma olhada na página do github ESPHomeController. Esta contém instruções completas sobre como compilar e configurar.

! Se você não está familiarizado com a compilação e o Arduino, dê uma olhada na etapa Upload de firmware pronto

Assim que você fizer o upload do firmware pela primeira vez, o ESP32 iniciará no modo de configuração (modo de ponto de acesso)

Você deve configurá-los. Para este efeito, abra em qualquer lista de dispositivos de WiFi disponíveis. Encontre o HomeController e conecte-se a ele. O portal cativo deve iniciar automaticamente. Se não entrar na url do seu navegador: 192.168.4.1 e você verá a tela de configuração

Siga as instruções e configure as credenciais de WiFi para sua rede WiFi.

O ESP irá reiniciar depois disso como cliente WiFi e se conectará ao seu Wifi.

Quando a conexão sson for iniciada, ele montará automaticamente o sistema de arquivos Spiffs e fará o download dos arquivos necessários para o portal da web:

  • index.html
  • filebrowse.html
  • js / bundle.min.js.gz

O download acontece na pasta

Agora você pode ver o conteúdo do arquivo via navegador da web. para isso você deve agora o endereço IP do seu ESP32

Você pode encontrá-lo de uma das seguintes maneiras:

  • Usando o monitor de porta serial para ver os registros ESP32
  • Usando qualquer scanner tcp para verificar seus dispositivos de rede
  • Pressione um botão na estação meteorológica e você verá as informações do sistema

Coloque em browse https://192.168.0. XX/browse e você verá uma lista de arquivos do seu ESP

(192.168.0. XX é o endereço IP do seu dispositivo

Para o ajuste final, você precisa preparar os arquivos de configuração.

Etapa 4: Upload de firmware pronto

Carregando Firmware Pronto
Carregando Firmware Pronto

Esta seção é especialmente para auditores que não irão produzir firmware por conta própria. Você só precisa fazer o upload do firmware "pronto"

1. Faça download de ferramentas de upload de flash desta página

2. Baixe os arquivos anexados (extrair dos arquivos) HomeController.bin e bootloader_qio_80m.bin para o seu disco rígido

3. Inicie a ferramenta de download ESP32 e insira os valores de acordo com a captura de tela

4. Pressione iniciar

Etapa 5: configuração

Antes de iniciar a preparação da configuração, você precisa:

  1. Crie o seu canal no discurso e na chave para o seu canal. Prepare 4 campos e nomeie-os adequadamente como Temperatura, Umidade, Pressão, Tensão
  2. Registre-se no Weather.com para obter sua chave de API

Thingspeak são necessários para fazer upload de seus dados e monitorar tendências e valores

O tempo é necessário para obter dados de previsão.

Ok, finalmente você precisa criar o arquivo services.json com o seguinte conteúdo

[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," activateleep ": true," sleeptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}, {" service ":" BME280Controller "," name ":" BME "," enabled ": true, "interval": 900000, "i2caddr": 118, "uselegacy": true, "temp_corr": - 3.0, "hum_corr": 10.0}, {"service": "WeatherClientController", "name": "WeatherForecast", "ativado": verdadeiro, "intervalo": 500000, "uri": "https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & units = m & language = en -US & apiKey = weatherapi "}, {" service ":" WeatherDisplayController "," name ":" WeatherDisplay "," enabled ": true," interval ": 500}, {" enabled ":" true "," interval ": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, "cfmt": "%. 2f V", "acctype": 10}, {"service": "ThingSpeakController", "name": "ThingSpeak", "enabled": true, "interval": 1200000, "value": [1, 1, 1, 1, 0, 0, 0, 0], "apiKey": "ervilha kapi "}, {" enabled ": true," interval ": 1," pin ":" "," service ":" ButtonController "," name ":" Button "," pins ": [27]}]

! Substitua

  • Thingspeakapi com sua chave de API do Thingspeak
  • weatherapi com sua chave de API do clima
  • geocodifique com a sua localização para a qual deseja obter uma previsão

Em seguida, prepare o segundo arquivo triggers.json

[{"type": "BMEToWeatherDisplay", "source": "BME", "destination": "WeatherDisplay"}, {"type": "TimeToWeatherDisplay", "source": "Time", "destination": "WeatherDisplay "}, {" type ":" WeatherForecastToWeatherDisplay "," source ":" WeatherForecast "," destination ":" WeatherDisplay "}, {" type ":" BMEToThingSpeak "," source ":" BME "," destination ": "ThingSpeak", "t_ch": 1, "h_ch": 2, "p_ch": 3}, {"type": "ButtonToWeatherDisplay", "source": "Button", "destination": "WeatherDisplay"}, { "tipo": "LDRToThingSpeak", "fonte": "LDR", "destino": "ThingSpeak", "ch": 4}]

Ambos os arquivos devem ser enviados para a raiz do esp.

Você pode fazer isso através do navegador https://192.168.0. XX/browse, onde https://192.168.0. XX é o endereço IP do seu dispositivo

Depois de fazer o upload o ESP deve ser reiniciado e tudo foi feito da maneira certa. Esp irá mostrar a tela apropriada como na foto e vídeo acima

Etapa 6: ajuste e consumo de energia

Tunning e consumo de energia
Tunning e consumo de energia

Estou usando meu aparelho com a conexão ao Painel Solar e para ter certeza que pode funcionar "infinitamente"

o consumo de energia é importante e, após várias experiências, usei dois truques principais

Reduza o consumo do LED bacground da tela TFT

De acordo com a medição está comendo 15-20 mA (muito), portanto, usei táticas com detector de movimento. Funciona perfeitamente com detectores de movimento capazes de reconhecer qualquer detecção até 8-10 metros e aumentar a tensão no cabo de sinal. Esta é a abertura de um transistor e o Led backround recebem uma alimentação. Normalmente o detector mantém esse estado por até 10 segundos, o que é mais do que suficiente para ver o monitor, mas se você continuar os movimentos, o sinal ainda estará alto e o LED acenderá.

Tal abordagem me dá uma grande economia, sem efeitos adicionais, não encontro nenhum problema para ver minha tela quando quero

2. Reduza o consumo de energia por ESP32

Quando o ESP está conectado a WiFi, está constantemente comendo 7-10 mA, estou falando de tempo constante, não de inicialização e primeira conexão. Isso pode ser aceitável se você sempre viu a data e a hora reais, acesse seu sistema a partir do kit doméstico da Apple

Para minha energia solar no inverno também era para funcionar sem fontes de energia adicionais, Portanto, decidi colocar periodicamente o ESP32 no modo de espera (comer é menos de 1 mA). Para mim, está tudo bem, por exemplo, o ESP está dormindo por 20 minutos, então acorda, atualiza a tela (dados reais e previsão) e envia dados para o material de fala e volta ao modo de hibernação novamente

Os pontos negativos são:

  • A tela do clima exibe valores de tempo desatualizados
  • A estação não está acessível a partir do navegador e do Apple Home Kit durante o período de suspensão

Cabe a você decidir o que é mais importante, você pode simplesmente reconfigurar isso.

Por favor, dê uma olhada no arquivo services.json e linha

[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," enabledleep ": true," sleeptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}

"ativa o sono": verdadeiro ativa o sono, se colocado lá, falso ou remove o parâmetro (falso é o padrão) ESP nunca irá dormir

"sleepinterval": 900000 isto é millis, ou 15 min, significa que a cada 15 min o ESP vai acordar e fazer a equipe necessária

Então, agora todos podem jogar facilmente de acordo com a necessidade

Etapa 7: Ajuste de Sensores

Para minimizar o impacto do aquecimento interno no sensor de temperatura BME280

Firts fiz alguns tubos em torno do sensor e dos orifícios. Hovewer no meu modo quando o LED normalmente está desligado e o ESP está dormindo não é tão importante. Em outros casos, o sensor BME280 deve se mover para algum lugar para excluir a influência do aquecimento interno. Qualquer que seja o quão pequena influência eu encontrei, há dois parâmetros para compensar

"hum_corr": 10.0

o que significa que esses valores serão adicionados após a medição

O segundo é calibrar a medição da tensão da bateria, {"enabled": "true", "interval": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, " cfmt ":"%. 2f V "," acctype ": 10}, "cvalmin": 0,0

"cvalmax": 7,2

são para este propósito, porque a tensão é medida após os divisores dos resistores e comparada com 3,3 V, jogando com o valor cvalmax você pode alcançar a sintonia exata da tensão com o seu valor multimetr

Etapa 8: Adicionar dispositivo ao Apple Home Kit

Adicionando dispositivo ao Apple Home Kit
Adicionando dispositivo ao Apple Home Kit

Finalmente, quando seu dispositivo estiver funcionando corretamente, ele poderá ser adicionado ao Apple Home Kit e você poderá ver

valores dos sensores na tela inicial da Apple.

Primeiro você precisa reiniciar o dispositivo, assim que o dispositivo for iniciado ele não irá dormir 20 minutos é mais do que suficiente

Em seguida, abra o aplicativo Home Kit em seu dispositivo iOS e selecione ou crie um novo Home1. Pressione Adicionar (+)

2. Selecione Adicionar acessório.

3. Pressione Não tenho um código ou Não consigo digitalizar (serão adicionados mais detalhes sobre digitalização)

4. se tudo correr bem, você deve ver o seu novo dispositivo esp em uma lista (veja a imagem)

5. Selecione o dispositivo e confirme a adição sem certificação oficial

6. Digite a senha 11111111

7. Isso tudo! Você verá que o dispositivo foi emparelhado com sucesso, caso contrário, inicie o processo de emparelhamento novamente.

Com base nessa configuração, você verá dois dispositivos no Apple

1. Sensor de temperatura e sensor de Hum, indo profundamente, exibirá os valores em tela cheia

2. Sensor de luz:) Na verdade, a Apple é capaz de mostrar o ambiente de luz, mas não a voltagem, portanto, a voltagem da bateria está sendo exibida em Lux

Etapa 9: OTA: atualizações no ar

Antes de iniciar qualquer atualização é melhor reiniciar o ESP32, como mencionado antes, ele não irá dormir nos primeiros 20 minutos

Existem duas possibilidades para atualizar

  1. Configuração usando https://192.168.0. XX/browse você pode acessar seu sistema de arquivos no ESP e alterar os arquivos de configuração
  2. Você pode atualizar o firmware completamente. para este propósito, primeiro você precisa criar um novo. Isso pode ser feito por meio do Arduino ou do Visual Studio IDE. Em seguida, digite no navegador https://192.168.0. XX/update, selecione seu firmware e pressione atualizar. Espere até que o processo termine e você obterá uma resposta OK, caso contrário, repita a etapa novamente

Recomendado: