Início
/
Projetos Arduino
/
Projetos Squids
/
Básico
/
Projeto 84 - Controle de temperatura em baixo d'água - sensor DS18B20 e Arduino
Projeto 84 - Controle de temperatura em baixo d'água - sensor DS18B20 e Arduino
Angelo Luis Ferreira | 17/06/2020
Acessos: 10.486
Básico - Projeto 84
Controlando temperatura em baixo d'água - DS18B20 com display
Objetivo
Neste projeto vamos demonstrar como controlar as temperaturas em um reservatório com água utilizando o sensor de temperatura DS18B20 com cápsula blindada a prova de água. Controlado pelo Arduino, vamos simular um reservatório para manter a temperatura entre 18ºC e 22ºC. Ao atingir os valores máximo ou mínimo um alarme de som é disparado, o que poderia ser substituído por um sistema liga e desliga de uma resistência para aquecer um aqúario, por exemplo. Ao clicarmos em botão (push button) o sistema entra no modo silencioso, onde o buzzer é desativado e apenas o led vermelho é acionado. No projeto, os valores da temperatura são exibidos em um display LCD.
Observações:
1) Utilizamos o sensor DS18B20 com cápsula a prova de água como controle de temperatura da água. O sensor DS18B20 à prova d'água é recomendado para situações onde é necessário medir a temperatura em ambientes úmidos. Também existe a possibilidade de ele ficar submerso, já que ele possui um cabo envolto de PVC e uma ponta de aço inox, o que facilita a utilização sem medo de danificá-lo.
2) Este projeto foi desenvolvido para um display LCD com controlador HD44780 em conjunto com o módulo serial I2C (soldado ou não).
3) Se você não possui um módulo I2C para display LCD, poderá adaptar o projeto para o display LCD sem o adaptador. Veja como montar o display no projeto Projeto 38 - Controlando um display LCD (instalação e comandos básicos).
Definições
Sensor DS18B20 - O DS18B20 é um sensor de temperatura capaz de efetuar leituras entre -55ºC e 125ºC com precisão de até ±0,5 ºC. Cada sensor possui um endereço físico, possibilitando que se utilize vários sensores em uma única porta do microcontrolador e mesmo assim, efetuar a leitura individualmente. Ele portanto, pode ler a temperatura, interpreta-la e enviar a informação do valor de temperatura em graus Celsius para o microcontrolador usando um barramento de apenas um fio (protocolo de comunicação OneWire ou 1-wire ). Em geral, os sensores de temperatura trabalham de forma diferente, pois a maioria deles são analógicos e fornecem um valor de tensão ou de corrente que precisa ser interpretado pelo microcontrolador.
Endereço individual e fixo
Cada sensor de temperatura DS18B20 possui um endereço serial de 64 bits próprio, possibilitando a montagem com vários sensores em uma única porta digital do microcontrolador e obter valores de temperatura para cada sensor separadamente. Veremos na prática este recurso em projetos futuros.
Encapsulamento
a) O sensor de temperatura DS18B20 é fornecido com o encapsulamento TO-92, o mesmo utilizado no sensor LM35.

b) O sensor DS18B20 também é produzido com proteção à prova de água (cápsula metálica) com fios. São muito comuns no controle de temperatura de aquários, piscinas e banheiras aquecidas.

Outros Recursos
Estes recursos não serão utilizados nesse tutorial:
a) Modo parasita: pode ser utilizado apenas 2 terminais para ligar o sensor.
b) Alarme programável de temperatura alta e baixa.
c) Resolução configurável para 9, 10, 11 ou 12 bits
Sensores de temperatura são dispositivos que identificam a temperatura de um determinado equipamento, processo ou do próprio ambiente, podendo ser utilizados no monitoramento e controle para que se mantenham as condições adequadas de funcionamento e/ou conforto térmico. Veja abaixo altguns tutoriais que apresentamos medições de temperatura com diferentes sensores:
Projeto 39 - Display LCD como mostrador de temperatura (sensor LM35)
Projeto 40 - Sensor de temperatura e umidade DHT11 com display LCD
Projeto 41 - Usando o sensor de temperatura termistor NTC 10K com LCD
Projeto 51 - Relógio digital com temperatura - RTC DS3231 Arduino
Aplicação
Para fins didáticos e projetos onde é necessária a medição de temperatura do ambiente e monitoramento piscinas, banheiras e aquários.
Componentes necessários
Referência
|
Componente
|
Quantidade
|
Imagem
|
Observação
|
Protoboard |
Protoboard 830 pontos |
1 |
 |
No mínimo utilizar protoboard com 830 pontos
|
Jumpers |
Kit cabos ligação macho / macho |
1 |
 |
|
Display LCD |
Display LCD 16X2 com pinos soldados
|
1 |
 |
LCD que utilize o controlador HD44780 (veja na descrição ou datasheet do componente)
O display poderá ser de qualquer cor (fundo verde, azul ou vermelho)
|
Módulo I2C para display LCD |
Módulo I2C com CI PCF8574
(opcional)
|
1 |
 |
O módulo I2C poderá vir separado ou já soldado no display LCD
(datasheet)
Se você não possui um módulo I2C para display LCD, poderá adaptar o projeto para o display LCD sem o adaptador.
|
Sensor de Temperatura DS18B20 |
Sensor de Temperatura DS18B20
(encapsulamento a prova de água)
|
1 |

|
Tensão de operação: 3 a 5,5V
Faixa de medição de temperatura: -55 ºC a +125 ºC
Precisão: +/- 0,5 ºC entre -10 ºC e +85 ºC
Ponta de aço inoxidável (6 x 50mm), com cabo de 108 cm de comprimento
(datasheet)
|
Led 5mm |
Led 5mm |
2 |
 |
1 led vermelho
1 led verde
(Obs.: você poderá utilizar leds de quaisquer cores, de 5 ou 3mm)
|
Resistor |
Resistor
|
3 |
 |
1 resistor de 4,7KΩ a 10KΩ (sensor)
2 resistores de 150Ω ou superior (leds)
|
Push Button |
Push button 6X6X5mm |
1 |
 |
|
Buzzer |
Buzzer ativo 5V 12mm |
1 |
 |
Utilize um buzzer, um disco piezoelétrico ou um mini autofalante |
Arduino UNO R3 |
Arduino UNO |
1 |
 |
Você poderá utilizar uma placa Arduino UNO original ou similar
|
Montagem do Circuito
Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da força enquanto você monta o circuito.

Atenção
1. Neste projeto vamos utilizar um display LCD 16x2 com controlador HD44780, que se adapta aos mais diversos projetos com vários modelos de placas e microcontroladores. Este display possui 16 colunas por 2 linhas com backlight (luz de fundo) verde, azul ou vermelha e tem 16 pinos para a conexão. Atenção: Utilize um display LCD com os pinos soldados.

2. Para a montagem do display com adaptador, entenda a estrutura do módulo I2C para display LCD 16x2 / 20X4:

2.1. Na lateral do adaptador encontramos 4 pinos, sendo: 2 pinos para alimentação (Vcc e GND) e 2 pinos para conexão com a interface I2C (SDA e SCL) que deverão estar conectados nos pinos analógicos A4 (SDA) e A5 (SCL) do Arduino Uno ou nos pinos A20 (SDA) e A21 (SCL) do Arduino Mega 2560. Veja a tabela abaixo com onde temos as principais placas Arduino e suas conexões com o I2C.

2.2. Para controlar o contraste do display, utilize o potenciômetro de ajuste de contraste. O jumper lateral, quando utilizado, permite que a luz do fundo (backlight) seja controlada pelo programa ou permaneça apagada.

2.3. A seleção de endereço do adaptador I2C para display LCD, na maioria dos módulos fornecidos no mercado já vêm configurados com o com o endereço 0x27. Se você não sabe qual endereço que o seu módulo I2C e/ou módulo RTC DS3231 está configurado, baixe o seguinte "sketch":
DOWNLOAD - I2C_scanner.ino
2.3.1 Após instalar e rodar o sketch acima, abra o monitor serial que mostrará qual é o endereço que o seu módulo I2C está configurado:

2.3.1.1 Nos casos em que módulo I2C estiver configurado com uma faixa de endereços diferente do endereço 0X27 altere a alinha de programação -> LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE); com o endereço correto.
2.5. Para saber mais sobre a montagem e utilização de display LCD com módulo I2C leia: Projeto 48 - Como controlar um display LCD com o módulo I2C.
3. Lembre-se que o LED tem polaridade: O terminal maior tem polaridade positiva e o lado do chanfro tem polaridade negativa.

3.1. Portanto, faça a conexão do Arduino no terminal positivo do led (anodo) e o GND no terminal negativo (catodo).
3.2. Para evitar danos ao led é necessário a inclusão de um resistor no circuito. Como o resistor é um limitador da corrente elétrica, ele poderá estar conectado no anodo (terminal maior) ou no catodo (terminal menor) do led, tanto faz.
4. Determinamos o valor do resistor através da tabela prática: Tabela prática de utilização de leds 3mm e 5mm. Entretanto, o mais correto é sempre verificar o datasheet do fabricante do LED para você ter os exatos valores de tensão e corrente do mesmo - leia Leds ligados em série e em paralelo.
2.1. Valores utilizados para nossos projetos: LEDs difusos ou de alto brilho: Vermelho, Laranja e Amarelo: 150 Ω | Led Verde e Azul: 100 Ω (utilizamos resistores de 200 Ω neste projeto)
5. O buzzer tem polaridade. Portando, cuidado para não ligar o buzzer invertido. Se você retirar o adesivo superior do buzzzer poderá ver um sinal de positivo (+). Este sinal mostra onde está o pino positivo do componente que deverá estar conectado ao potenciômetro (neste projeto) ou a uma porta digital do Arduino e o polo negativo ao GND.
