Índice:

ESP8266 NodeMCU com medidores BME280 e gráfico: 5 etapas
ESP8266 NodeMCU com medidores BME280 e gráfico: 5 etapas

Vídeo: ESP8266 NodeMCU com medidores BME280 e gráfico: 5 etapas

Vídeo: ESP8266 NodeMCU com medidores BME280 e gráfico: 5 etapas
Vídeo: Arduino IoT Cloud con ESP32, Relé (relay) y Sensor DHT22. Guía completa paso a paso desde cero 2024, Novembro
Anonim
ESP8266 NodeMCU com gráficos e medidores BME280
ESP8266 NodeMCU com gráficos e medidores BME280
ESP8266 NodeMCU com gráficos e medidores BME280
ESP8266 NodeMCU com gráficos e medidores BME280

Gráficos e medidores extravagantes para sua placa de desenvolvimento NodeMCU ESP8266 com sensor BME280 de temperatura, umidade e pressão. Thingspeak armazenará todos os seus dados na nuvem para recuperação a qualquer momento nos anos (espero) que virão. Os medidores e o gráfico são preenchidos com os dados armazenados no thingspeak e são atualizados automaticamente a cada 5 minutos.

Itens necessários:

Placa de desenvolvimento NodeMCU ESP8266 ($ 3,79 em Banggood.com Hong Kong)

Bosch BME280 ($ 5,63 em Banggood.com Hong Kong)

Breadboard Jumpers (US $ 3,09 em Banggood.com Hong Kong)

Breadboard ($ 2,28 em Banggood.com Hong Kong)

Fonte de alimentação, grátis se você tiver um carregador de telefone micro USB

Cabo micro USB, grátis se você já tiver um

Arduino IDE, download grátis

Obtenha os arquivos de código.ino e. HTML aqui

Etapa 1: Crie e configure seus canais Thingspeak

Crie e configure seus canais do Thingspeak
Crie e configure seus canais do Thingspeak

1. Crie uma conta gratuita no Thingspeak e um novo canal em https://thingspeak.com, ligue para o canal "ESP8266-NodeMCU-12E-BME280"

2. O novo canal deve ter 3 campos chamados Temperatura Umidade Pressão nessa ordem específica (observe a capitalização da primeira letra).

3. Anote o seu novo "ID do canal" XXXXXX em "Configurações do canal"

4. Clique no link "Chaves API" e anote suas "API Write" e "Read API Keys" XXXXXXXXXXXXXXX. Além disso, torne este um canal público sob compartilhamento.

5. Crie um segundo canal Thingspeak que manterá os dados de "Hoje" (desde a meia-noite) High Low. Chame-o de "BME280 Daily High Low Data"

6. Este novo canal deve ter 6 campos denominados Tmax Tmin Hmax Hmin Pmax Pmin nessa ordem específica (observe a capitalização da primeira letra).

7. Anote o "ID do canal", "Ler" e "Gravar chaves API" "BME280 Daily High Low Data" assim como nas etapas acima.

Etapa 2: configurar o IDE Arduino, bibliotecas e configurar o BME280

Configure o IDE Arduino, bibliotecas e configure o BME280
Configure o IDE Arduino, bibliotecas e configure o BME280

8. Siga as instruções para instalar o Arduino IDE e o núcleo ESP8266 em

9. Abra o IDE do Arduino para que possamos instalar as quatro bibliotecas de que precisaremos.

10. Você precisará da biblioteca "Adafruit Unified Sensor Driver", instale-a no "Library Manager" no Arduino IDE. Menu Sketch Incluir Biblioteca Gerenciar Bibliotecas faça uma pesquisa por Tipo = "Recomendado" Tópico = "Sensores" e coloque as palavras Adafruit Unified Sensor Driver na caixa de pesquisa. Aquele que você deseja diz "Adafruit Unified Sensor Driver by Adafruit"

11. Além disso, você também precisará que a "Adafruit BME280 Library" instale-a no "Library Manager" no Arduino IDE. Menu Sketch Incluir Biblioteca Gerenciar Bibliotecas faça uma busca por Type = "Recomendado" Topic = "Sensores" e coloque as palavras Adafruit BME280 Library na caixa de busca. Aquele que você deseja diz "Adafruit BME280 Library by Adafruit"

12. Outra biblioteca que você precisa é Wire.h, instale-a no "Library Manager" no Arduino IDE. Menu, Sketch Incluir Biblioteca Gerenciar Bibliotecas Faça uma busca por Type = "Contributed" Topic = "Signal Input / Output" e coloque a palavra Wire na caixa de busca. Aquele que você deseja diz "Wire Built-in by Arduino". Provavelmente na parte inferior da seleção.

13. Mais uma biblioteca, ESP8266WiFi, instale-a no "Library Manager" no Arduino IDE. Menu, Sketch Incluir Biblioteca Gerenciar Bibliotecas Faça uma pesquisa por Type = "Contributed" Topic = "Communication" e coloque a palavra ESP8266wifi na caixa de pesquisa. O que você deseja diz "ESP8266wifi integrado por Ivan Grokhotkov"

14. O endereço I2C para BME280 está codificado no arquivo Adafruit_BME280.h (procure a linha #define BME280_ADDRESS 0x77) dentro da pasta Adafruit_BME280_Library. Os módulos de sensor BME da Adafruit são conectados para usar o endereço I2C de 0x77. Mas o BME280 pode ter um endereço I2C ligeiramente diferente (0x76) se seu pino SDO externo estiver aterrado. Se você estiver usando os módulos de sensor de terceiros, é provável que seu endereço não corresponda ao valor padrão na biblioteca Adafruit. Por exemplo, para a maioria dos módulos de sensor BME280 disponíveis no eBay ou Aliexpress, seu endereço I2C é 0x76. Se você não obtiver uma resposta do sensor usando o endereço padrão definido no arquivo Adafruit_BME280.h, pode ser necessário alterá-lo para 0x76.

Pontos de conexão BME280 e ESP8266. ESP8266 3,3 V para BME280 Vin, ESP8266 GND para BME280 GND, ESP8266 D4 para BME280 SCL, ESP8266 D3 para BME280 SDA. 15. Abra o arquivo ESP8266-NodeMCU-12E-BME280.html fornecido em um editor de texto e digite seu "ESP8266-NodeMCU-12E-BME280" (o primeiro canal que você criou) "Channel ID" e "Read API Key" para o variáveis key1 e chan1. Insira também a "Read API Key" e "Channel ID" para "BME280 Daily High Low Data" (O segundo canal que você criou) para key2 e chan2. Além disso, insira a diferença de fuso horário em relação ao UTC. Como em -5 para mim. Todos os valores devem estar entre as aspas simples fornecidas 'XXXXX'. Salve e saia do editor de texto.

Conecte o ESP8266 com o cabo USB ao computador e selecione a porta serial para ser a porta USB.

Os usuários do Linux podem ter que mudar a propriedade da porta USB para se comunicarem com o / dev / ttyUSB0 como em 'sudo chown seunomedeusuario / dev / ttyUSB0' ou o que quer que você tenha selecionado como sua porta na configuração.

Etapa 3: programe o ESP8266 com o Arduino IDE

Programe o ESP8266 com o Arduino IDE
Programe o ESP8266 com o Arduino IDE

16. Em seguida, programaremos o ESP8266. Conecte um cabo USB entre o ESP8266 e o computador.

Carregue o arquivo New_BME_Sensor.ino fornecido no Arduino IDE. Seu sensor BME280 deve ser conectado a D3 (SDA) e D4 (SCL) no ESP8266. Digite seu "ESP8266-NodeMCU-12E-BME280" (o primeiro canal que você criou) "Chave de gravação" "SSID sem fio" e "Senha" na seção correta do esboço. Em seguida, clique no item de menu "Sketch" e "Upload". Depois de fazer o upload do esboço (o progresso chega a 100%) para o ESP8266, você pode abrir o monitor serial (o ícone superior direito parece uma lupa) e ver seus dados impressos após 5 minutos, a cada 5 minutos. Os dados são enviados para o thingspeak em intervalos de 5 minutos, então levará algum tempo até que você tenha dados gráficos significativos, mas você deve ter leituras do medidor após 5 minutos.

Certifique-se de obter leituras corretas do BME280 no monitor serial.

A primeira medição provavelmente será um nan inválido.

Espere alguns minutos até a próxima leitura e verifique se as leituras parecem boas.

Etapa 4: volte ao Thingspeak para fazer alguns ajustes de dados

Volte para o Thingspeak para fazer alguns ajustes de dados
Volte para o Thingspeak para fazer alguns ajustes de dados

17. Agora, enquanto os dados estão sendo carregados lentamente para o thingspeak, vamos fazer alguns ajustes para obter alguns dados adicionais do que está sendo carregado. Volte para o site do Thingspeak e na página do canal "BME280 Daily High Low Data" do Thingspeak (O segundo canal que você criou) clique no botão verde "MATLAB Analysis". Selecione o modelo "Personalizado (sem código inicial)"

18. Nomeie a análise MATLAB como "Calcular Mín. Máx. Desde Meia-Noite".

19. Copie o código MATLAB Analysis.txt no espaço fornecido. Digite o "ID do canal" para "ESP8266-NodeMCU-12E-BME280" (O primeiro canal que você criou) em "readChannelID". Digite "BME280 Daily High Low Data" (O segundo canal que você criou) Grave "Channel ID" e "Write Key" em writeNewChannelID & writeAPIKey respectivamente. Eu sei que parece confuso (leia novamente). Clique em salvar e executar. Se você fez isso corretamente e o canal de leitura é público, você não verá nenhum erro e os valores serão impressos com sucesso. Nota, você pode ver um erro se nenhum dado foi carregado para aquele canal ainda. Apesar do erro continuar. Se desejar, você pode revisitar Clique em salvar e executar para ter certeza de que funciona assim que os dados forem carregados.

20. Em seguida, precisamos criar um "Controle de tempo" para disparar este código a cada 5 minutos e nossos dados são gravados no canal "BME280 Daily High Low Data" (o segundo canal que você criou). Na página principal de "BME280 Daily High Low Data" (O segundo canal que você criou), selecione Apps na parte superior. Em ações, selecione "TimeControl" e, em seguida, o botão verde "New TimeControl". Nomeie-o como "Send High Low Temps ESP8266". Selecione seu fuso horário, se necessário, e selecione "Recorrente" em Frequência. Selecione Minuto em Recorrência. Configure para ser executado a cada 5 minutos. A ação deve ser MATLAB Analysis e "Code to Execute" é "Calculate Min Max Since Midnight". Economize TimeControl.

Etapa 5: edite o arquivo HTML fornecido

Edite o arquivo HTML fornecido
Edite o arquivo HTML fornecido

Edite os arquivos HTML e procure os comentários que dizem "******** Mude-me 1 de 8 *********" Altere-os de acordo com sua preferência.

Notas:

Alguns dos campos de texto e o gráfico semanal não serão preenchidos corretamente até que você tenha um dia inteiro e uma semana inteira de dados para a seção e gráfico 24 horas e semana. Assim que tiver muitos dados, você pode ampliar os gráficos com a roda do mouse (clique com o botão direito para redefinir). Você também pode ter um quarto medidor (como visto nas imagens) de outro sensor de outro canal, mas eu expus as partes relevantes. Se você se sentir bem, conecte-o. Há também alguns problemas de tempo a serem considerados. Você provavelmente não terá os dados mais atuais absolutos, mas eles devem ter sempre menos de 5 minutos. Isso ocorre quando o controle de tempo é acionado, quando os dados foram enviados do ESP8266 e quando você carregou / atualizou a página da web.

Abra o arquivo ESP8266-NodeMCU-12E-BME280.html fornecido em seu navegador da web e você deverá ver os medidores e o gráfico preenchidos.

Obtenha os arquivos de código.ino e. HTML aqui

Recomendado: