ESP32

BME280 com ESP32 e Blynk

BME280 com esp32 e blynk

Vou adiantar que estou apenas utilizando a informação de temperatura do BME280 com ESP32, pois é o propósito para um projeto no momento. Pode ser que futuramente seja implementada a umidade, mas agora o que importa é fundamentalmente isso.

BME280 com ESP32

Por se tratar de um sensor I2C, ele pode ser utilizado com qualquer dispositivo que ofereça uma interface I2c. Se não tiver uma biblioteca para facilitar o uso, basta ler o datasheet e implementar. Não é difícil escrever uma biblioteca para dispositivos I2C, como você pode ver nesse outro artigo, onde escrevi uma biblioteca para Raspberry utilizando o sensor BMP180.

Especificações do BME280

Trabalha entre 300 e 1100 hPa (hectoPascal) para medição de pressão atmosférica. Se pretende medir pressões muito altas (muito além de 1 atmosfera), utilize um sensor pneumático.

O BME280 mede temperaturas entre -40 e 85 graus Celsius. Se pretende medir temperaturas muito altas (do ponto de ebulição em diante, ou resfriamento por nitrogênio), utilize um PT100.

Seu consumo a 1Hz vai de 1.8 uA até 3.6uA. Insignificante para a maioria das aplicações. A variação se dá pelas leituras (umidade, pressão, temperatura).

O tempo de resposta (tau) é de 63% em 1 segundo.

O desvio é de aproximadamente 3% na umidade relativa e a histerese é menor que 2% da umidade relativa.

O rúido RMS é de 0.2Pa (equivalene a 1.7 cm), bastante preciso, hum?

A sensibilidade de erro é de ~0.25 (numa faixa de 1m a 400m).

Trabalha em 3v3, dimensões de 15×10 mm.

Existem algumas variações, mas este modelo que estou utilizando tem apenas VCC, GND, SCL e SDA.

A própria Bosh disponibiliza um código em C, o que pode ser suficiente para utilizá-lo em plataformas que a biblioteca da Adafruit não seja aplicável.

Onde comprar?

Essa belezinha está disponível em nosso parceiro CurtoCircuito. Acesse o site e aproveite para ver a grande variedade de sensores que eles estão vendendo, certamente lhe será atrente.

Código do BME280 com ESP32 e Blynk

Como citei anteriormente, seria necessário implementar esse sensor em um projeto (não complexo, mas muito trabalhoso). Nessa fase já estava rodando o servidor Blynk local (se desejar ter seu próprio servidor Blynk, veja nesse link como fazê-lo). Restava conectar o dispositivo ao servidor. Existe ao menos dois modos de fazê-lo; utilizando o mesmo token do aplicativo do smartphone (o que pode gerar conflito por N razões) ou utilizar o modo bridge para fazer comunicação entre tokens diferentes (descrito nesse outro artigo). Optei por utilizar o mesmo token, uma vez que o aplicativo do smartphone tem unicamente o propósito de visualizar o gráfico de temperaturas. O atuador está em outro dispositivo, que também só fará leituras e agirá conforme necessário.

O código utiliza a biblioteca Blynk disponível no repositório do Arduino, não é necessário fazer nada de especial, apenas instalar a biblioteca e usar esse código. Do mesmo modo, deve-se instalar a biblioteca BMP280 da Adafruit, mas procure por BME280. Dependendo do sensor que estiver utilizando, apenas mude o include. Já deixei as linhas comentadas.

Para a biblioteca Blynk, fiz um define especificando a board. Se utilizar ESP8266 invés de ESP32, basta remover a primeira linha.

Agora, o código:

Basicamente isso; uma função é definida para o timer do Blynk e essa função é chamada no intervalo especificado.

Mais uma vez, para conectar-se ao seu servidor local, utilize esse link como referência. Você terá que configurar uma conta de email dentro dos padrões descritos no artigo, então criar uma conta no seu servidor. O token será enviado por email (para o email que você criou).

Configurar o super chart para visualização

Se desejar ter um histórico, utilize o widget super chart para criar a visualização. O programa acima está utilizando o pino virtual 1. Se nunca utilizou Blynk, dê uma pesquisada aqui no site, tem diversos tutoriais e detalhes suficientes para criar suas aplicações.

Basicamente, adicione o widget ao seu dashboard, toque-o para editar, crie um dataset, toque o dataset criado e em PIN, selecione VirtualV1. Ao conectar, já estará recebendo os valores lidos pelo ESP32 / ESP8266.

O resultado deve ser algo como o gráfico da imagem de destaque desse artigo (está bem mais elaborado o dashboard da imagem de destaque, mas faz parte do mesmo projeto).

Projetos para sua empresa

Do bit Ao Byte é mais do que um blog. Somos uma empresa de serviços, cuja principal atividade é desenvolvimento e implementação de projetos embarcados e IoT.
Trabalhamos dentro da legalidade, emitindo nota fiscal de serviço, elaboração de requisitos de sistema e documentação do código.
Não importa onde você esteja, montamos a prova de conceito e gravamos vídeo do projeto antes de entregar o código e/ou hardware configurado.

Em parceria com a AFEletrônica, projetamos e produzimos hardware industrial (também com nota), para lhe entregar a melhor experiência para seu projeto.
Entre em contato:
vendas@afeletronica.com.br
Ou direto comigo:
djames.suhanko@gmail.com

Será um prazer tê-lo como nosso cliente!