Blynk – Medição de temperatura com DS18B20

Olá como vão vocês? Hoje vamos criar um aplicativo para realizar a medição de temperatura de um líquido. O aplicativo será feito dentro da plataforma Blynk e utilizaremos o sensor DS18B20, que é um excelente sensor de temperatura, junto com um ESP8266 configurado para coletar e enviar as informações de temperatura para o app. Você pode modificar e aplicar este exemplo para monitorar outras grandezas como PH, luminosidade, umidade do ar, tudo depende do sensor utilizado e sua criatividade.

Conhecendo os Componentes

Sensor de temperatura DS18B20

O DS18B20 é um sensor digital de temperatura muito interessante pois podemos obter os dados de temperatura por apenas um fio (1-Wire).

Figura 1 – Sensor DS18B20.

Ele pode ser alimentado de forma convencional (VCC – GND) ou pela própria linha de dados (chamado de “modo parasita”). Além disso cada sensor possui um ID exclusivo de 64bits, permitido que outros sensores DS18B20 possam ser conectados no barramento utilizando apenas uma porta do microcontrolador. O DS18B20 também pode ser encontrado na versão à prova d’água, que permite que seja utilizado submerso em líquidos.

Figura 2 – Sensor DS18B20 a prova d’água.

Abaixo algumas características relevantes do sensor:

  • Tensão de alimentação: 3.0 – 5.5VDC;
  • Leitura de temperatura entre: -55°C a +125°C;
  • Tempo de atualização: menor que 750 ms;
  • Precisão: ±0.5°C;
  • Resolução: 9 ou 12 bits;
  • Interface 1 fio (1-Wire).

Consulte o datasheet do DS18B20 para obter todas as informações.

O que é Blynk

Uma ferramenta muito importante no nosso exemplo será o Blynk. O Blynk é uma plataforma IoT que permite realizar comunicação entre um smartphone e diferentes tipos de soluções microcontroladas como Arduino, ESP32, Raspberry Pi de forma simples. Com o Blynk é possível monitorar e controlar dispositivos pelo celular, realizar a comunicação entre dispositivos utilizando o Blynk Cloud sem a necessidade de app, permitindo o envio de e-mails, tweets, notificações push e etc.

O Blynk possui uma arquitetura simples composta por 3 elementos principais:

  • Aplicativo Blynk: Com o aplicativo podemos adicionar e configurar novos dispositivos, adicionar widgets para visualizar dados, adicionar botões de controle e etc. Todos os ajustes são feitos de forma extremamente simples e com poucas interações é possível realizar comunicação com nossa solução microcontrolada. O aplicativo Blynk está disponível para sistemas Android e IOS.
  • Servidor Blynk: Esse elemento gerencia toda a comunicação entre o app e os dispositivos microcontrolados. Geralmente utilizamos o Blynk Cloud, mas é possível executar um servidor Blynk localmente, num Raspberry Pi por exemplo.
  • Bibliotecas Blynk: São bibliotecas que trazem rotinas e funções úteis desde controle de GPIO até conexão com o servidor Blynk. Existem Bibliotecas para as plataformas mais populares como Arduino, ESP32/8266 e Raspberry Pi.

Figura 3 – Arquitetura Blynk.

Para conectar seu hardware à Internet, você pode escolher quase qualquer módulo embutido ou externo:

  • WiFi;
  • Ethernet;
  • Celular (GSM, 2g, 3g, 4g, LTE);
  • Serial;
  • USB através do seu PC.

Para mais informações acesse a documentação do Blynk.  

Mãos à Obra – Desenvolvimento do projeto

Componentes necessários

Bibliotecas necessárias

Neste projeto precisamos de bibliotecas para o sensor de temperatura DS18B20 e para utilizar o Blynk. Podemos encontrar todas elas no Gerenciador de bibliotecas da Arduino IDE.

Figura 4 – Biblioteca OneWire.

Figura 5 – Biblioteca DallasTemperature.

Figura 6 – Biblioteca Blynk.

Montando o Projeto – Fritzing

O sensor de temperatura DS18B20 a prova d’água possui 3 fios que serão ligados na seguinte sequência ao ESP8266.

  • Fio Amarelo/Azul – Conectado ao pino D4 do ESP8266 NodeMcu;
  • Fio Preto – ligado no pino GND do ESP8266 NodeMcu;
  • Fio Vermelho – ligado ao pino 3.3 V do ESP8266 NodeMcu.

Além disso precisamos ligar o fio de dados do sensor em resistor de Pullup.

  • Resistor de 4k7 – Ligado entre o pino D4 e o pino 3.3V do ESP8266 NodeMcu.

A montagem deste projeto, pode ser feita seguindo a ordem dos fios mostrada na imagem abaixo.

Figura 7 – Montagem do circuito.

Montagem do projeto no Blynk

Antes de tudo instale o Blynk no seu dispositivo móvel: 

 Para este post utilizei um smartphone com sistema Android.

Login e configuração

Após abrir pela primeira vez o aplicativo ele nos pedirá para criar uma conta. Utilize um email válido pois será por ele que você receberá os tokens necessários para cada novo dispositivo.

Figura 8 – Tela de login.

Após concluir o login estamos prontos para criar um novo projeto.

Figura 9 – Tela inicial.

Escolha a opção New Project e em seguida temos a opção de escolher o nome do projeto e qual dispositivo iremos utilizar. Para esse exemplo usaremos o ESP8266 como dispositivo, e nomearemos o projeto de “Sensor DS18B20”. Também temos a opção do tema escuro ou claro, mas não interfere no funcionamento do nosso sistema.

Figura 10 – Criando novo projeto.

Clicando em Create o Blynk irá emitir um aviso informando que seu token foi enviado por email.

Figura 11 – Envio do token.

Verifique a caixa de entrada do seu email e guarde o token, ele será utilizado para autenticar nosso ESP8266.

Figura 12 – E-mail com Token Blynk.

De volta ao Blynk click em Ok e nosso projeto deverá ter a aparência como da imagem abaixo.

Figura 13 – Projeto vazio.

Adicionando Widgets

Agora vamos adicionar alguns widgets. Acesse o menu de widgets através do botão: 

Adicionar Widget

Vamos adicionar no projeto um widget do tipo Gauge e dois do tipo Labeled Value. Primeiramente, o Labeled Value funcionará como um rotulo simples que nos mostrará o valor da temperatura em forma de texto e será atualizado sempre que a temperatura mudar. Já o widget Gauge é semelhante a um relógio onde existe uma barra em forma de arco com 2 limites, essa barra será preenchida de acordo com a variável de temperatura. Vale destacar que cada widget consome uma quantidade de “energia” do app. Temos 1200 pontos de energia para trabalhar na versão gratuita do app, para o nosso exemplo será mais do que o suficiente.

Figura 14 – Caixa de Widgets.

 Observe a seguir as configurações para cada widget.

Figura 15 – Label para temperatura em Celsius.

Figura 16 – Label para temperatura em Fahrenheit.

Figura 17 – Gauge para temperatura em Celsius.

Observe que o Gauge e um dos Labeled Value compartilham a variável V1. Ela receberá um dado referente a temperatura em graus Celsius. V2 receberá dados de temperatura em Fahrenheit. 

Figura 18 – Widgets do projeto.

Ajustando Widgets

Após adicionar todos o widgets você pode organizá-los em um layout de sua preferência. Escolha um widget, pressione e segure para editar o seu tamanho e posição.

Figura 19 – Ajuste de tamanho de widget.

Mantendo pressionado você também tem a opção de copiar e excluir o widget arrastando-o para uma das duas opções.

Figura 20 – Opções de copiar e excluir

Após ajustar os tamanhos e posições podemos ter uma aparência semelhante a da imagem abaixo.

Figura 21 – Widgets organizados.

Programando

Segue abaixo o sketch. 

Observe que além das credenciais da rede Wi-Fi temos uma variável chamada auth[] onde devemos preencher com o token que recebemos por e-mail ao criar o projeto no app Blynk.

Colocando para Funcionar

Agora com o código carregado e rodando podemos voltar ao app Blynk e verificar o funcionamento. Inicie o projeto pressionando no botão de iniciar o projeto:

Iniciar projeto

Se tudo ocorrer como esperado os dados serão exibidos como na imagem abaixo.

Figura 22 – App em funcionamento.

Em caso de falha na comunicação um ícone será exibido na parte superior direita.

Dispositivo Offline

Nesse caso verifique a conexão do ESP8266 com a internet.

Gostou? Deixe seu comentário logo abaixo, não deixe de conferir outras postagens do nosso blog. Confira também a nossa loja virtual encontre todos os componentes utilizados no projeto no post.

 

Yure Albuquerque

Graduando em Tecnologia Mecatrônica Industrial. Tenho experiência com Arduino e Raspberry Pi. Atualmente experimentando novas tecnologias como ESP32 e compartilhando no blog da Smart Kits.

Post navigation

1 Comentário

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

ESP8266 – Como Programar o NodeMCU Através da Arduino IDE

ESP8266/32 – Programação sem fio (OTA)

Blynk IoT – Monitoramento com ESP8266 e Sensor de Umidade do Solo (Higrômetro)