Índice:

Mais uma estação meteorológica (Y.A.W.S.): 18 etapas (com fotos)
Mais uma estação meteorológica (Y.A.W.S.): 18 etapas (com fotos)

Vídeo: Mais uma estação meteorológica (Y.A.W.S.): 18 etapas (com fotos)

Vídeo: Mais uma estação meteorológica (Y.A.W.S.): 18 etapas (com fotos)
Vídeo: Série Webinars - Energia Eólica: Estudos recentes desenvolvidos no NIEPIEE e os desafios atuais 2024, Novembro
Anonim
Mais uma estação meteorológica (Y. A. W. S.)
Mais uma estação meteorológica (Y. A. W. S.)

Este projeto é a minha opinião sobre a sempre popular Estação Meteorológica. O meu é baseado em um ESP8266, um display OLED de 0,96”e um sensor ambiental BME280. As estações meteorológicas parecem ser um projeto muito popular. O meu se diferencia dos outros usando um conjunto de sensores BME280 em vez do popular sensor de temperatura e umidade DHT22. O BME280 possui um sensor de temperatura, umidade e pressão do ar. Ele também usa a interface I2C. O display OLED de 0,96”usado também é I2C. Ele pode ser adquirido como I2C ou SPI ou ambos. Eu escolhi a versão I2C para simplificar a fiação. Com a tela OLED e o BME280 usando I2C e 3,3 V, foi muito fácil fazer um cabo 'Y' para conectar os dois dispositivos ao ESP8266. Enquanto desenvolvia este projeto, encontrei vários projetos de estações meteorológicas na Internet que usam o ESP8266, o mesmo display OLED e o BME280. Portanto, esta não é uma ideia original, mas é uma implementação original.

O BME280 fornece dados do ambiente interno. As informações meteorológicas externas são obtidas em OpenWeatherMap.org. Você precisará se inscrever no OpenWeatherMap.org para obter uma chave para acessar os dados meteorológicos. Eles oferecem um serviço gratuito, que é o que eu usei. Consulte a etapa Como obter uma chave OpenWeatherMap para obter instruções sobre como obter uma chave.

Um servidor de horário NTP é usado para obter a hora do dia e o dia da semana.

Os dados meteorológicos, horários e ambientais são exibidos no display OLED. Cada informação tem sua própria tela formatada. As telas são exibidas por cinco segundos antes de mudar para outra. OpenWeatherMap.org é acessado a cada quinze minutos para atualizar as informações meteorológicas. O BME280 é lido aproximadamente a cada cinquenta e cinco segundos. A fonte usada em cada tela é ajustada automaticamente para mostrar todas as informações na maior fonte possível.

O ESP8266 também está configurado para ser um servidor da web. Todas as informações meteorológicas podem ser acessadas usando um navegador de seu telefone, tablet ou computador. Uma das telas exibidas mostra o endereço IP do servidor da web.

O ESP8266 vem em uma variedade de formas e tamanhos. Eu escolhi um GEEKCREIT DoIt ESP12E Dev Kit V2. Este é totalmente compatível com o 'padrão' NodeMCU para módulos autônomos ESP8266. Ele tem um regulador de 3,3 V integrado, um CH340 como ponte USB para serial e o circuito de reinicialização automática NodeMCU. Você está livre para usar qualquer módulo ESP8266-12 que tiver. Esteja ciente de que pode ser necessário adicionar um regulador de 3,3 V ou outros circuitos para programá-lo. Eu também construí um usando um Witty Cloud ESP8266. Isso me permitiu embalar tudo em um cubo de 1,5 polegadas. A placa bridge USB inferior é desconectada após a programação. Eu adicionei um pino de cabeçalho de ângulo reto ao orifício de 3,3 V na placa Witty. O chicote era feito com duas conchas de quatro pinos, uma concha de dois pinos e duas conchas de um pino.

Na foto acima, a placa à qual o módulo ESP8266 é conectado é uma placa de circuito que desenvolvi como uma placa de breakout para o ESP8266 e o ESP32. Ele aceitará as placas ESP8266 de corpo estreito compatíveis com NodeMCU, a placa The Witty Cloud ESP8266 ou uma placa ESP32 da GEEKCREIT. Todos os pinos GPIO disponíveis são divididos em cabeçalhos para fácil acesso. Descobri que a maioria das placas de desenvolvimento nunca tem alimentação e pinos de aterramento suficientes. Cada vez que você deseja conectar algo, você precisa de pelo menos um pino de aterramento e, na maioria das vezes, um pino para alimentar o dispositivo. Cada linha de pinos GPIO é acompanhada por um pino de alimentação de 3,3 V e um pino de aterramento. Eu uso o mesmo layout que a First Robotics usa, potência no meio. Eu gosto desse layout porque se você conectar algo ao contrário, você não libera a fumaça mágica. A placa tem alguns extras, um sensor infravermelho, um botão de pressão e um LED tricolor. Jumpers podem ser usados para conectar-se a qualquer um desses recursos. Se você estiver interessado em uma dessas placas de apoio ESPxx, entre em contato comigo.

Etapa 1: O que você precisa:

O que você vai precisar
O que você vai precisar
O que você vai precisar
O que você vai precisar
O que você vai precisar
O que você vai precisar

1 - Placa do sensor BME280 I2C de Temperatura, Umidade e Pressão

Comprei o meu no Ebay da China por cerca de US $ 1,25 com frete grátis. Também disponível na Adafruit ou Sparkfun

1 - 0,96”, 128x64, display I2C OLED usando driver SSD1306

Comprei o meu no Ebay da China por cerca de US $ 4,00. O meu é branco. Você pode encontrar o azul e o branco com uma área amarela no topo. Alguns são vendidos como SPI e I2C. Você pode ter que mover alguns resistores para selecionar a operação I2C. O importante é que ele usa o chip driver SD1306. Também disponível na Adafruit.

1 - NodeMCU ESP8266-12 com CH340

Você pode usar qualquer módulo ESP8266-12 que desejar. Eu prefiro aqueles com a ponte CH340 USB-to-Serial. Houve uma onda de chips de ponte FTDI e SI falsos alguns anos atrás, então eu não confio mais em nada além do CH340.

2 - DuPont 4 pinos, cascas de passo de 0,1 pol. (2,54 mm)

2 - DuPont 2 pinos, cascas de passo de 0,1 pol. (2,54 mm)

12 - Crimpagem fêmea DuPont para fio 22-28 awg

Eu pego o meu no Ebay. Você também pode usar a Molex ou qualquer marca de sua preferência. Pinos crimpados ou IDC A escolha é sua. Tenha o cuidado de comprar os pinos corretos para suas conchas. Eles não são misturados e combinados. Você também pode simplesmente soldar os fios às placas e eliminar os conectores. Se você usar os pinos crimpados, precisará de um crimpador. Não tente crimpá-lo com um alicate. Não funciona.

Conjunto de alimentação de parede de 1 - 5 V, 1 A no mínimo.

Estes são baratos e estão disponíveis no Ebay. Obtenha um com um conector micro USB ou qualquer outro compatível com sua placa ESP8266.

Você também precisará de oito peças de fio 22-28 awg para conectar tudo. Ou você pode simplesmente conectar tudo a um pedaço de quadro de desempenho. É com você.

Incluí uma foto do que foi usado para construir a estação meteorológica usando uma Witty Cloud ESP8266. Uma imagem detalha onde adicionar um pino de cabeçalho de ângulo reto para pickup 3.3V. Um dos dois revestimentos de pino é substituído por dois revestimentos de um pino. Fios de aterramento e de 3,3 V são colocados em um revestimento de pino.

Siga este link para obter os arquivos de código-fonte do repositório GitHub; ESP8266-Estação meteorológica. A pasta zip ou pasta clonada terá uma pasta WeatherStation que contém WeatherStation.ino e BME280.h. Estes são os arquivos de código-fonte. Existem vários arquivos PDF também. Os arquivos PDF contêm praticamente as mesmas informações que este instrutível.

Etapa 2: Ferramentas:

Ferramentas
Ferramentas
Ferramentas
Ferramentas

Depois de experimentar muitas marcas de crimpadores, descobri que o engenheiro japonês PA-21 ou PA-09 funciona melhor para os crimpadores masculinos e femininos da DuPont. Ele está disponível no Ebay ou Amazon. Qualquer um deles funcionará com os pinos DuPont. O PA-09 também fará os pinos para os conectores JST comumente usados em baterias LiPo. Aqui está um link para um vídeo sobre como usar os crimpadores Engineer com os crimpadores DuPont; Como usar os Crimpadores PA-21

O Instructables recentemente teve um ótimo tutorial sobre o uso dos crimpadores Weierli Tools SN-28B com pinos e conchas DuPont. Você pode ver aqui; Faça um bom Dupont Pin-Crimp TODAS AS VEZES!

Etapa 3: Faça o arnês:

Faça o arnês
Faça o arnês
Faça o arnês
Faça o arnês

O chicote elétrico é a chave para este projeto. É um cabo 'Y' básico de quatro fios. Acima está uma foto do arnês que fiz. O display OLED e a matriz de sensores BME280 têm a mesma pinagem. Isso significa que os dois revestimentos de quatro pinos são idênticos após a inserção dos fios crimpados. Eu fiz meu chicote com os fios duplos crimpados indo para as duas conchas de dois pinos que se conectam à placa ESP8266. Você poderia, em vez disso, optar por colocar os fios duplos crimpados em uma das conchas de quatro pinos, tornando-a como uma conexão em cadeia. Qualquer um vai funcionar.

  1. Corte todos os fios no comprimento certo. Gosto de usar cores diferentes para cada fio; vermelho para 3,3 V, preto para terra, amarelo para SCL e verde para SDA.
  2. Desencape uma extremidade de cada fio em cerca de 0,1 polegada.
  3. Torça os fios juntos e adicione um frisado feminino.
  4. Uma vez que todos os fios tenham uma crimpagem em uma das extremidades, descasque todos os fios em cerca de 0,2 polegada.
  5. Torça os fios de dois fios da mesma cor juntos.
  6. Depois de torcido, apare para cerca de 0,1 polegada e adicione uma crimpagem feminina.
  7. Quando todos os pares de fios estiverem crimpados, é hora de inserir as pontas crimpadas nas conchas.
  8. Os dois invólucros de quatro pinos são recheados, da esquerda para a direita, com vermelho, preto, amarelo, verde ou 3,3 V, Gnd, SCL, SDA.
  9. Uma das cápsulas de dois pinos obtém os fios vermelho e preto.
  10. O outro escudo de dois pinos recebe os fios amarelo e verde.

Etapa 4: Dica:

Gorjeta
Gorjeta
Gorjeta
Gorjeta
Gorjeta
Gorjeta

Descobri que, quando uso um fio 28 awg com os pinos de crimpagem, eles tendem a cair. O que faço para evitar isso é descascar a ponta do fio com o dobro do comprimento normal. Torça os fios expostos juntos. Em seguida, dobre o fio torcido para dobrar a espessura. Agora, quando o prendo, o fio é grosso o suficiente para segurar com firmeza.

Etapa 5: conecte tudo junto:

Conecte tudo junto
Conecte tudo junto
Conecte tudo junto
Conecte tudo junto
Conecte tudo junto
Conecte tudo junto
  1. Conecte os quatro protetores de pinos no display OLED e nas placas BME280.
  2. Alinhe o fio vermelho com os pinos Vcc e 3V3.
  3. Conecte os dois pinos vermelho / preto em um par de pinos 3V3 (3,3V) e GND na placa ESP8266. Existem três locais na placa onde os pinos 3V3 e GND são adjecentes. Evite os pinos Vin (5V) e GND, pois eles liberarão a fumaça mágica de suas placas OLED e BME280. Certifique-se de que o fio vermelho esteja conectado ao pino 3V3.
  4. Conecte o revestimento de dois pinos amarelo / verde em D1 e D2 na placa ESP8266. O fio amarelo (SCL) deve estar em D1.

Verifique suas conexões. Se tudo estiver certo, você está pronto para ligar a placa ESP8266.

Etapa 6: Como obter uma chave OpenWeatherMap

Como obter uma chave OpenWeatherMap
Como obter uma chave OpenWeatherMap

Você precisará de uma chave de API para acessar o site OpenWeatherMap.org para obter informações meteorológicas atuais. As próximas etapas detalham como se inscrever no OpenWeatherMap.org e obter uma chave de API.

Siga este link para OpenWeatherMap.org.

Clique em API próximo ao meio da parte superior da página da web.

Etapa 7: como obter uma chave OpenWeatherMap, inscrever-se

Como obter uma chave OpenWeatherMap, inscrever-se
Como obter uma chave OpenWeatherMap, inscrever-se

No lado esquerdo, em Dados meteorológicos atuais, clique no botão Inscrever-se.

Etapa 8: como obter uma chave OpenWeatherMap, obter a chave de API

Como obter uma chave OpenWeatherMap, obter uma chave de API
Como obter uma chave OpenWeatherMap, obter uma chave de API

Clique em Get APIkey e em Start na coluna Free.

Etapa 9: como obter uma chave OpenWeatherMap, inscrição

Como obter uma chave OpenWeatherMap, inscrição
Como obter uma chave OpenWeatherMap, inscrição

Clique no botão Signup em How to get API key (APPID).

Etapa 10: Como obter uma chave OpenWeatherMap, criar uma conta

Como obter uma chave OpenWeatherMap, criar uma conta
Como obter uma chave OpenWeatherMap, criar uma conta

Preencha todos os campos. Quando terminar, marque a caixa de seleção Concordo com os Termos de Serviço e a Política de Privacidade. Em seguida, clique no botão Criar conta.

Verifique seu e-mail para ver se há uma mensagem de OpenWeatherMap.org. O e-mail terá sua chave API. Você precisará copiar a chave API no código-fonte da estação meteorológica para obter o clima atual.

O serviço gratuito OpenWeatherMap.org tem algumas limitações. O mais importante é que você não pode acessá-lo com mais frequência do que uma vez a cada dez minutos. Isso não deve ser um problema porque o tempo não muda tão rapidamente. As outras limitações têm a ver com as informações disponíveis. Qualquer uma das assinaturas pagas fornecerá informações meteorológicas mais detalhadas.

Etapa 11: configure o IDE do Arduino:

Configure o IDE Arduino
Configure o IDE Arduino

O desenvolvimento do programa foi feito usando o Arduino IDE versão 1.8.0. Você pode baixar o IDE do Arduino mais recente aqui; Arduino IDE. O site do Arduino tem orientações excelentes sobre como instalar e usar o IDE. O suporte para o ESP8266 pode ser instalado no IDE do Arduino seguindo as instruções fornecidas por este link: ESP8266 Addon to Arduino. Na página da web, clique no botão “Clonar ou Baixar” e selecione “Baixar Zip”. O arquivo ReadMe.md tem instruções sobre como adicionar o suporte ESP8266 ao Arduino IDE. É um arquivo de texto simples que pode ser aberto com qualquer editor de texto.

As placas ESP8266 vêm em todos os tamanhos, formatos e usam diferentes chips de ponte USB para Serial. Eu prefiro as placas que usam o chip ponte CH340. Há alguns anos, a FTDI, a SI e outros se cansaram de clones baratos que afirmam ser suas partes. Os fabricantes de chips alteraram seu código de driver para funcionar apenas com suas próprias peças originais. Isso resultou em muita frustração, pois as pessoas descobriram que as pontes USB para serial não funcionavam mais. Hoje em dia eu apenas fico com as pontes USB para serial baseadas em CH340 para evitar a compra de placas que podem ou não funcionar. Em qualquer caso, você precisará encontrar e instalar o driver correto para o chip ponte usado em sua placa. Este é um link para o site oficial dos drivers CH340; CH341SER_EXE.

O ESP8266 não possui hardware I2C dedicado. Todos os drivers I2C para o ESP8266 são baseados em bit-banging. Uma das melhores bibliotecas ESP8266 I2C é a biblioteca brzo_I2C. Ele foi escrito em linguagem assembly para o ESP8266 para torná-lo o mais rápido possível. A biblioteca de exibição OLED que estou usando usa a biblioteca brzo_I2C. Eu adicionei o código para acessar a matriz do sensor BME280 usando a biblioteca brzo_I2C.

Você pode obter a biblioteca OLED aqui: Biblioteca ESP8288-OLED-SSD1306.

Você pode obter a biblioteca brzo_I2C aqui: Biblioteca Brzo_I2C.

Ambas as bibliotecas precisarão ser instaladas em seu Arduino IDE. O site do Arduino tem instruções sobre como instalar bibliotecas zip no IDE aqui: Como instalar bibliotecas zip.

Dica: Depois de instalar o pacote de placas ESP8266 e as bibliotecas, feche o IDE do Arduino e abra-o novamente. Isso garantirá que as placas e bibliotecas ESP8266 apareçam no IDE.

Etapa 12: Selecione sua placa:

Selecione o seu quadro
Selecione o seu quadro

Abra o IDE do Arduino. Caso ainda não tenha feito isso, instale o complemento ESP8266, a biblioteca brzo_i2c e a biblioteca de drivers OLED.

Clique em “Ferramentas” na barra de menu superior. Role para baixo no menu suspenso até onde diz "Board:". Deslize até o menu suspenso "Board Manager" e role para baixo até; "NodeMCU 1.0 (Módulo ESP-12E)". Clique nele para selecioná-lo. Deixe todas as outras configurações com seus valores padrão.

Etapa 13: Selecione a porta serial:

Selecione a porta serial
Selecione a porta serial

Clique em “Ferramentas” na barra de menu superior. Role para baixo no menu suspenso até onde diz "Porta". Selecione a porta apropriada para o seu computador. Se sua porta não aparecer, sua placa não está conectada ou você não carregou o driver para seu chip ponte ou sua placa não estava conectada quando você abriu o IDE do Arduino. A correção simples é fechar o IDE do Arduino, conectar sua placa, carregar todos os drivers ausentes e, em seguida, reabrir o IDE do Arduino.

Etapa 14: WeatherStation.ino

Você pode usar os botões de download acima ou seguir este link para o GitHub para obter o código-fonte; ESP8266-Estação meteorológica.

Os arquivos WeatherStation.ino e BME280.h precisam estar na mesma pasta. O nome da pasta deve corresponder ao nome do arquivo.ino (sem a extensão.ino). Este é um requisito do Arduino.

Etapa 15: Editar WeatherStation.ino

Clique em “Arquivo” na barra de menu superior. Clique em "Abrir". Na caixa de diálogo Abrir Arquivo, encontre a pasta WeatherStation e selecione-a. Você deve ver duas guias, uma para WeatherStation e outra para BME280.h. Se não tiver as duas guias, você abriu a pasta errada ou não baixou os dois arquivos ou não os salvou na pasta correta. Tente novamente.

Você precisará editar o arquivo WeatherStation.ino para adicionar o SSID e a senha para sua rede sem fio. procure o seguinte na linha 62;

// coloque o SSID e a senha da sua rede WiFi aqui

const char * ssid = "yourssid"; const char * senha = "senha";

Substitua "yourssid" pelo SSID da sua rede sem fio.

Substitua "senha" pela chave de acesso da sua rede sem fio.

Você também precisará adicionar sua chave OpenWeatherMap e o código postal de onde você mora. Procure o seguinte na linha 66;

// coloque sua chave OpenWeatherMap.com e o código postal aqui

const char * owmkey = "sua chave"; const char * owmzip = "seuzip, país";

Substitua "sua chave" pela chave obtida em OpenWeatherMap.org.

Substitua "seuzip, país" pelo seu código postal e país. Seu código postal deve ser seguido por uma vírgula e seu país ("10001, nós").

Em seguida, você deve definir seu fuso horário e ativar / desativar o horário de verão (DST). Olhe ao redor da linha 85 para o seguinte;

// O tempo bruto retornado é em segundos desde 1970. Para ajustar os fusos horários, subtrair

// o número de segundos de diferença para seu fuso horário. O valor negativo // subtrai o tempo, o valor positivo adiciona o tempo #define TZ_EASTERN -18000 // número de segundos em cinco horas #define TZ_CENTRAL -14400 // número de segundos em quatro horas #define TZ_MOUTAIN -10800 // número de segundos em três horas # define TZ_PACIFIC -7200 // número de segundos em duas horas

// Ajuste o tempo para seu fuso horário alterando TZ_EASTERN para um dos outros valores.

#define TIMEZONE TZ_EASTERN // mude para o seu fuso horário

Há um grupo de instruções #define que definem a diferença de horário para vários fusos horários. Se o seu fuso horário estiver lá, substitua "TZ_EASTERN" na definição de "TIMEZONE". Se o seu fuso horário não estiver listado, você precisará criar um. O servidor NTP fornece a hora como Greenwich Mean Time. Você precisa adicionar ou subtrair algumas horas (em segundos) para chegar ao seu horário local. Basta copiar uma das instruções "#define TZ_XXX" e alterar o nome e o número de segundos. Em seguida, altere "TZ_EASTERN" para seu novo fuso horário.

Você também deve decidir usar o horário de verão ou não. Para desativar o horário de verão, substitua o "1" por um "0" na linha a seguir;

# define DST 1 // definido como 0 para desativar o horário de verão

Quando ativado, o DST avançará ou retardará automaticamente o tempo em uma hora, quando apropriado.

Etapa 16: faça upload do código para o seu ESP8266

Envie o código para o seu ESP8266
Envie o código para o seu ESP8266

Clique no ícone da seta circular voltada para a direita que está logo abaixo de "Editar" na barra de menu superior. Isso irá compilar o código e enviá-lo para a sua placa. Se tudo for compilado e carregado corretamente, após alguns segundos, o display OLED deve acender e a mensagem de conexão deve aparecer.

Etapa 17: Como visualizar o site de dados meteorológicos

Como visualizar o site de dados meteorológicos
Como visualizar o site de dados meteorológicos

A imagem acima mostra a página da web servida pela Estação Meteorológica. Você pode acessá-lo usando seu PC, telefone ou tablet. Basta abrir um navegador e digitar o endereço IP da estação meteorológica como o URL. O endereço IP da estação meteorológica é exibido em uma das telas da estação meteorológica. Clique em Atualizar página para atualizar as informações.

Etapa 18: Parabéns, você terminou

É isso. Agora você deve ter uma estação meteorológica funcionando. Sua próxima etapa pode ser projetar e fazer uma caixa para abrigar sua estação meteorológica. Ou talvez você queira adicionar mais algumas telas para mostrar a sensação térmica, ponto de orvalho, horário do nascer ou pôr do sol ou um gráfico de mudanças na pressão barométrica ou prever o tempo usando a pressão barométrica. Se divirta e aproveite.

Recomendado: