Primeiros Passos com o DS18B20




Introdução

Sensor DS18B20
Sensor DS18B20

Você já pensou em fazer um projeto que tinha a necessidade de medir a temperatura de algum ambiente, mas se deparou com um ambiente molhado? Então hoje você irá conhecer o sensor DS18B20 à prova d'água. Nesse tutorial você irá aprender a fazer a medição de temperatura de maneira simples e utilizando a sua BlackBoard.

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. Uma outra boa vantagem desse sensor é que, caso você tenha a necessidade de medir a temperatura em uma distância relativamente afastada de sua BlackBoard, por ele utilizar o protocolo OneWire (criado pela Dallas Semiconductor), é possível realizar a leitura sem ter problemas com interferências causadas pela distância. Além disso, esse protocolo tem como diferencial o fato de utilizar apenas um cabo de comunicação, assim utilizando somente um pino de sua BlackBoard.

Lista de Materiais

Primeiros Passos

Em um primeiro momento, vamos fazer uma leitura simples de temperatura utilizando o sensor DS18B20 com a BlackBoard.

Circuito

Monte o circuito conforme a imagem abaixo. Se necessário, descasque a ponta dos cabos do sensor para fazer a ligação em sua protoboard, desconsiderando o cabo branco, já que o sensor que você irá utilizar tem apenas 3 cabos (preto, vermelho e amarelo).

Circuito DS18B20
Circuito utilizando DS18B20

Programação

Biblioteca

Para começar é necessário fazer a instalação de duas bibliotecas para a leitura dos dados do sensor. Na sua Arduino IDE, clique em Sketch, depois vá até "Incluir Biblioteca" e entre em "Gerenciar Bibliotecas". Feito isso, digite no campo de pesquisa o nome das bibliotecas, "DallasTemperature" e "OneWire", e selecione para realizar instalação como nas imagens abaixo.

>Caminho para o Gerenciador de Bibliotecas da IDE
Caminho para o Gerenciador de Bibliotecas da IDE
Resultados de Pesquisa para a Biblioteca DallasTemperature
Resultados de Pesquisa para a Biblioteca DallasTemperature
Resultados de Pesquisa para a Biblioteca OneWire
Resultados de Pesquisa para a Biblioteca OneWire

Código

Entendendo o Código

A primeira seção do código consiste apenas em adicionar as duas bibliotecas. Após as inclusões, definimos o pino no qual o sensor está conectado (const int PINO_ONEWIRE = 12). Também definimos algumas variáveis para serem usadas com as bibliotecas. Com OneWire oneWire(PINO_ONEWIRE) indicamos que o pino declarado é usado para uma comunicação OneWire. Já com DallasTemperature sensor(oneWire) indicamos que o sensor DS18B20 (sensor) deve usar a comunicação declarada anteriormente. Finalmente, a última linha, DeviceAddress endereco_temp, declara uma variável auxiliar que representa o endereço do sensor no barramento OneWire (afinal, esse protocolo permite o uso de diversos dispositivos no mesmo barramento).

Na função setup() configuramos a comunicação serial e inicializamos o sensor, conforme o trecho a seguir.

E no final temos a parte que determina o intervalo de tempo entre cada leitura e o tratamento da leitura do sensor.

A função sensor.requestTemperature() inicia a leitura do sensor, que encaminha os dados de temperatura para sua BlackBoard. A função getAddress() verifica se um sensor válido está presente na linha, por isso a usamos para exibir uma mensagem de erro. Por fim, a função getTempC() retorna a temperatura em graus Celsius, para ser impressa no monitor serial.

O Que Deve Acontecer

Feito o upload para sua placa, abra o monitor serial, verifique se ele está em 9600 bps, e veja que a leitura da temperatura do seu sensor aparecerá na tela.

Exibindo a Temperatura no Monitor Serial
Exibição da Temperatura no Monitor Serial

Controle de Temperatura com Relé

O bacana é que, em algumas situações, você quer adicionar componentes para deixar seu projeto mais funcional. Vamos adicionar alguns componentes para controlar uma situação em que seja necessário ligar algo para esfriar o ambiente caso a temperatura esteja acima do desejado.

Circuito

Adicionamos ao circuito montado anteriormente um relé, agora pensando que você terá que ligar um dispositivo que vai resfriar o ambiente onde o sensor está, caso esteja muito quente. No exemplo abaixo iremos demonstrar utilizando um ventilador.

Circuito para Acionamento de Relé e Dispositivo

Como na imagem acima, você terá que fazer a ligação da carga com o relé utilizando os pinos NA e C para que seu dispositivo funcione. Dessa forma, o cabo que está no pino C será ligado direto na tomada (neutro) onde você irá ligar o ventilador e o pino NA será utilizado para a carga do dispositivo, deixando apenas o segundo terminal do dispositivo para ser ligado na rede elétrica (fase).

Atenção: antes de ligar a alimentação 110V/220V, verifique se todas as conexões estão feitas corretamente e se o cabo de alimentação está bem isolado. Nós da RoboCore não nos responsabilizamos por danos à rede elétrica ou à integridade física do praticante, portanto tenha muito cuidado antes de iniciar ou consulte um profissional da área.

Código

Após a montagem de seu circuito, carregue o código abaixo.

Entendendo o Código

Foi feita uma adição no código anterior para acionar um relé quando a temperatura ultrapassar 30 °C. Este relé, por sua vez, irá acionar um ventilador para resfriar até essa temperatura.

O Que Deve Acontecer

Feitas todas as verificações, alimente sua Blackboard, abra o monitor serial e observe os valores exibidos. Para esquentar o sensor, utilize sua mão, fechando-a com o componente dentro, e você vai perceber que a temperatura irá subir. A partir do momento em que ela chegar em 30 °C, o relé irá acionar o ventilador que irá começar a climatizar o ambiente.

Acionar um Dispositivo para Esfriar o Ambiente

Indo Além

Caso você queira esquentar o ambiente e tenha que utilizar um aquecedor, você deve apenas alterar o código de forma a ligar o seu dispositivo se a temperatura ficar abaixo de 10 °C, por exemplo. Caso utilize um aquecedor, verifique antes se o módulo relé usado é o suficiente para suportar a corrente elétrica necessária. Para modificar o código você pode alterar o laço if para algo como o trecho a seguir.

Agora é inovar e tentar criar situações em que você possa utilizar o sensor DS18B20 à prova d'água da melhor maneira possível. Esperamos que esse tutorial tenha te ajudado a criar o projeto de forma tranquila e qualquer dúvida ou sugestão é só comentar abaixo.

Solução de Problemas

Mensagem de erro "sensor nao conectado"

Caso o sensor não esteja sendo reconhecido, verifique as conexões.

Avatar