Projeto didático: Termômetro Digital com Sensor de Temperatura a Prova d'água e Display LCD 16x2 i2C



Introdução

Neste post ilustrativo você vai aprender como construir, de maneira bem simples,  um termômetro digital com display LCD como o mostrado acima, que é funcional e pode ser utilizado para diversas aplicações diferentes, seja um experimento didático, um estudo científico, ou a integração com equipamentos profissionais.  

Nesse termômetro a temperatura pode ser obtida nas três principais escalas: Celsius, Kelvin e Fahrenheit. Além disso ele pode ser utilizado para imersão em líquidos, pois esse sensor está disponível na forma de sonda a prova d'água e pode medir temperaturas de -55 ºC até 125 °C.

Desenvolvendo este projeto simples, você vai conhecer os componentes necessários, vai aprender a conectá-los corretamente, como montar os blocos do código, converter dados de temperatura entre escalas diferentes e também como imprimir os dados coletados do sensor  de temperatura no display LCD

Ao final, você verá que, na verdade, construir você mesmo um termômetro digital é muito mais simples do que você imaginava.

Lista de materiais

01 plaquinha Espduino-32 (~R$ 50,00);
01 sensor de temperatura a prova d'água DS18B20 (~R$10,00);
01 resistor de 5 kΩ; (~1,00);
01 Display 16x2 LDC I2C (~25,00);
01 Protoboard (~R$10,00);
04 conectores tipo jumper macho-macho (~R$2,00); 
01 cabo mini USB para upload do código.

Para a programação e upload vamos utilizar o aplicativo  gratuito Mixduino32, compatível com o sistema operacional Windows. Para saber como baixar e instalar clique aqui.

Todos componentes utilizados neste post estão disponíveis no Kit Espduino-32 Maker, mas podem ser adquiridos separadamente na internet.

Esquema Elétrico

Veja a seguir  o esquema elétrico do circuito, mostrando como conectar os componentes à placa, que foi desenhado utilizando o aplicativo fritzing.


Como pode ser observado acima,  a conexão dos componentes é bem simples. 

Para conectar o sensor de temperatura utilizamos apenas 3 fios. A alimentação do circuito elétrico interno do sensor é feita utilizando 5V (fio vermelho) e o aterramento (GND). Já os dados de temperatura são coletados através dos fios de dados SCL e SDA.

O sensor de temperatura DS18B20, além de ser a prova d'água e possuir cabo que permite que o sensor possa ser utilizado em líquidos, ele pode medir temperaturas de -55°C até 125°C, com uma precisão de  precisão  ±0,5 ºC entre -10°C e  85°C. Sua tensão de operação é de 3 a 5,5 V. Veja abaixo a imagem do circuito montado.




O sensor DS18B20 vem com um cabo de 100 cm e uma ponta de aço inox de 6 x 50 mm.

O Display LCD 16x2 I2C, mostrado acima é utilizado para a impressão dos dados em uma pequena tela LDC no mesmo ambiente do circuito dispensando a necessidade de um monitor de computador, para que as informações possam ser visualizadas. 

O display utilizado neste projeto, se conecta a placa Espduino através da conexão I2C (pinos SCL e SDA), que necessita de apenas  4 fios conectores, sendo dois para a alimentação do circuito interno do display e 2 para a exibição dos dados.

Código em blocos


Para a conexão lógica  entre os componentes, de modo que os dados de temperatura sejam coletados, processados e mostrados no display LCD vamos utilizar o exemplo do código abaixo, que foi montado utilizando a interface de programação gráfica em português Mixduino32, que é gratuita e está disponível para download nesse link.




Como pode ser visto acima, no bloco de setup (configurações gerais) declaramos a variável temperatura como "Temp_C", informamos o tipo de dados como "float", ou seja, armazena números reais, e atribuímos um valor arbitrário inicial "0".
Ainda no bloco de setup incluímos o bloco com as especificações do display que utilizamos neste projeto (Display LCD, com 16 colunas e 2 linhas do tipo I2C).

Em seguida, criamos os blocos para coleta de dados de temperatura e impressão desses dados no display LCD. Observe que primeiro colocamos os blocos para a temperatura em graus Celsius, e nos próximos apenas utilizamos as equações matemáticas para fazer as conversões para as escalas Celsius e Fahrenheit, que podem ser facilmente encontradas em um livro de física ou mesmo na internet.

Também colocamos um bloco de tempo para a apresentação das informações no display, nesse caso 3000 milissegundos, o que equivale  3 segundos, e também um bloco para limpar os dados do display antes de passar para exibição da temperatura em uma outra escala.

O segundo conjunto de blocos fica rodando continuamente dentro da função principal do programa, que é conhecida como "void loop()". Essa função pode ser visualizada na tela principal do aplicativo Mixduino32, clicando-se na seta da lateral direita da tela, onde é mostrado todo o código em linguagem de texto. 

Veja o  resultado da apresentação dos dados de temperatura coletados pelo sensor DS18B20 em três diferentes escalas  nas imagens abaixo. 

1. Display mostrando a temperatura ambiente em graus Celsius.



 
2. Display mostrando a temperatura ambiente em graus Farhenheit.
 


   
3. Display mostrando a temperatura ambiente absoluta em  Kelvin.



Neste projeto foi utilizado apenas um sensor de temperatura do tipo sonda a prova d'água, ideal para imersão e monitoramento de temperatura em líquidos. 

No entanto, você pode acrescentar vários outros sensores, não só o de temperatura, e exibir todas as informações no display, apenas acrescentando alguns blocos no código, sendo que os princípios e fundamentos são os mesmos.


 Autor: Prof. Farley Xavier





Comentários