Desenvolvimento IOT – Lendo Informações de um Sensor com WEMOS D1 e MQTT

415 views

A placa WEMOS D1 já passou por aqui, mostramos no post Desenvolvimento IOT – Acionando Cargas com WEMOS D1 e MQTT algumas características e os conceitos básicos do protocolo MQTT e de como acionar uma carga através desta placa por este protocolo de comunicação.

Agora vamos ler informações de um sensor e como exemplo utilizaremos o LM35. Para saber mais sobre este sensor clique aqui.

 

Circuito

A porta analógica da placa WEMOS trabalha com valores de 0 a 1 V e quando o sensor de temperatura LM35 detecta 155ºC a tensão de saída será igual a 1,5V, assim ultrapassando a tensão de trabalho da porta analógica.

Para resolver esse problema, foi utilizado um divisor de tensão:

Divisor de Tensão

Vout = R2/(R1+R2)*Vin

1 = R2/(R1+R2)*1.5

Onde:

1.5 – será a tensão de Vin quando a temperatura do sensor detectar 155ºC;
1 – será a tensão Vout sobre o resistor 2 (R2). Essa tensão “cairá” sobre o pino de entrada analógica (A0);
Para determinar os valores dos resistores, inicialmente será definido R2 como 100KΩ:
1 = 100K/(R1+100K)*1.5
O valor do cálculo para R1 será de 50 KΩ, porém comercialmente o valor mais próximo é de 47 KΩ.
Em resumo, quando a temperatura chegar a 155ºC o valor da tensão no pino será de 1 volt, porém o programa deverá entender que esse valor será equivalente a temperatura máxima, onde veremos mais adiante. O sensor trabalha de forma linear, os valores de tensão e temperatura podem ser vistos na página do Baú, clicando aqui.

 

Circuito Completo
Circuito Completo

Material Utilizado:

1 – Protoboard 170 pontos;
1 – Placa Wemos D1 R2 Wifi ESP8266;
1 – Resistor 100 KΩ;
1 – Resistor 47 KΩ;
Jumpers (macho – macho);

O tutorial também pode ser realizado com a Wemos D1 Mini, atentando-se com a pinagem. 

Programação

Abaixo, segue o código do sistema de leitura do sensor LM35:

Explicando o Programa

No geral, o programa acima executa funções de conexão para a comunicação MQTT, mais detalhes sobre essas funções, leia o post Desenvolvimento IOT – Acionando Cargas com WEMOS D1 e MQTT.
Vale a pena ressaltar a rotina void dadosLM35(). Através da expressão abaixo é possível converter o valor analógico para um valor de temperatura:

temperatura = analogRead(LM35)*4*100/1023;

O valor da temperatura será alocado na variável temperatura. Esse valor será formatado como float (ponto flutuante) e alocado em MsgTemperaturaMQTT.

O valor da temperatura é enviado (publicado) a cada 1 segundo para que seja subscrito, conforme os trechos abaixo:

CloudMQTT e MQTT Dash

Veja como configurar o broker CloudMQTT para gerenciar a troca de mensagens.
Após criar uma instância, a tela com as informações para a conexão será aberta. Essas informações serão importantes para preencher os dados no código que já foi desenvolvido:

CloudMQTT
CloudMQTT

Após o CloudMQTT fornecer as informações, estas devem ser inseridas no trecho do código abaixo:

O MQTT Dash é um aplicativo gratuito para uso do MQTT no smartphone que pode ser baixado no Google Play.

Após a instalação clique no sinal + conforme é mostrado abaixo:

MQTT DASH

Preencha as informações fornecidas pelo Cloud MQTT (Figura 03) conforme é mostrado abaixo e clique no disquete do lado superior direito:

Em seguida clique em BaúMQTT, caso as informações estejam corretas, não aparecerá nenhuma mensagem, caso contrário, aparecerá uma mensagem de erro de conexão. Quando estiver tudo correto, clique no sinal + e em seguida clique em Range/progress:

A tela a seguir será aberta, preencha com o nome da tela do Range e em seguida o nome do tópico criado no CloudMQTT. Logo abaixo da mesma tela escolha a temperatura máxima e mínima de trabalho do sensor e sua unidade (Postfix), escolha também a cor do indicador do pregresso da medida e a qualidade de comunicação. Em seguida clique no disquete do lado superior direito:

A janela com a medida da temperatura será aberta:

 

Pessoal, esperamos que tenham gostado deste tutorial.

Para dúvidas e sugestões, deixe um comentário abaixo! Aproveite e confira outros produtos em nossa loja!

(Visited 351 times, 1 visits today)