Arduino – Medindo a Temperatura com o Sensor DS18B20

Arduino – Medindo a Temperatura com o Sensor DS18B20

Nesta prática você vai aprender a utilizar o Sensor de Temperatura DS18B20 do tipo sonda em conjunto com o Arduino e mostrar em um Display LCD 16X2 o valor de temperatura obtido.

sensor_de_temperatura_ds18b20O Sensor de Temperatura DS18B20 do tipo sonda é um item comumente utilizado em projetos que envolva medir temperatura ambiente ou de recipientes com líquido. Este sensor possui alta precisão em suas medições e é revestido com material impermeável, tendo sua ponta encapsulada em aço inoxidável.

Abaixo está a lista dos itens necessários para esta prática, e mais informações sobre cada um deles:

Arduino Uno  R3 com Cabo USB A/B
Cabo Jumper
Display LCD 16×2
Protoboard

Resistor de 4,7K
Sensor de Temperatura DS18B20 – Prova D’água do Tipo Sonda

Na imagem abaixo podemos observar a identificação dos fios do Sensor de Temperatura DS18B20:

identificação dos fios do sensor ds18b20

Abaixo está o esquema de ligação para esta prática:

esquema de ligação do sensor ds18b20 com o display lcd

Um detalhe importante para o funcionamento desta prática é a ligação do resistor de 4,7K (Pull Up) junto ao fio de dados do Sensor de Temperatura DS18B20. O resistor de Pull Up garante que a leitura do sensor no pino digital não irá ficar flutuando e vai se manter estabilizada. Sem a utilização deste resistor, o sensor não funcionará corretamente.

Feito o esquema de ligação, será necessário instalar três biblioteca na IDE do Arduino para em seguida carregar o código na placa.

Faça o download da biblioteca OneWireDallas e LiquidCrystal para em seguida instalar ambas na IDE do Arduino.

Se você não sabe como fazer a instalação de bibliotecas na IDE, acesse o link abaixo e em seguida retorne para continuar:

Arduino – Importando bibliotecas para a IDE

O código para testes está abaixo, basta copiar o mesmo, colar na IDE, salvar e carregar:

No vídeo abaixo você pode ver o resultado final desta prática:

Pra quem necessita de um sensor de temperatura com alta precisão, o DS18B20 é uma ótima opção.

Gostou desta prática? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigada e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Diretora de Marketing, Designer e Criadora de Conteúdo da MasterWalker Shop. Bacharel em Engenharia da Computação. Apaixonada por tecnologia, fã de super-heróis e bandas de rock.

Existem 30 comentários para esta postagem
  1. Gutembergue às 19:06

    Boa noite, como posso ligar 4 sensores de temperatura DS18B20, fazendo ler cada temperatura e gravando em um cartão de memória para depois fazer um gráfico no excel.

  2. Rafael às 21:14

    Boa Tarde Euler Oliveira!
    sensacional seu post, esta de parabéns.

    Como faço para enviar um e-mail pra mim ou qualquer outra pessoa da temperatura acima ou abaixo de um padrão escolhido?
    Poderia me ajudar?

  3. jose rafael pereira às 08:38

    olá, fiquei na duvida e para utilizar o display com o I2C como ficaria o código ?

  4. Feminixta Tecnologyca às 17:43

    Deu certo aqui, obrigada por compartilhar.
    Adicionei um print pra visualizar também no serial monitor,
    muito legal!

  5. Eduardo às 21:51

    Boa noite!
    Esse sensor de temperatura pode ser ligado diretamente em um controlador? No arduino funcionou perfeitamente, mas tenho um controlador C100 e nenhum tipo de sensor na configuração do controlador se encaixa

  6. Gustavo às 23:54

    Boa noite, fiz meu projeto de acordo com as ligações realizadas, porém as ligações feitas foram em um display 16×2 com comunicação i2c. porém, as temperaturas que está sendo registrados são 0ºC e -127ºC. Alguma dica do que possa ser ?

    • Euler Oliveira às 10:02

      Olá Gustavo.

      Agradeço pelo comentário!

      Teste somente o sensor de temperatura sem o display para que as informações de temperatura sejam mostradas no monitor serial e veja se ainda assim vai medir errado.

  7. lucas ferreira às 07:55

    Bom dia
    parabéns pelos trabalho feito com arduino , deixando informações muito clara.

    gostaria de saber se alguém poderia me ajudar com uma duvida , quero colocar um termômetro DS18B20 no arduino pra fazer a leitura de temperatura e que transmite essa informação em display de 7 segmento com 3 dígitos ex: 17,8 se alguém poder me ajudar com esse tipo de programação , no assunto arduino sou leigo .

  8. davidson fellipe pena fellipe às 17:50

    ola muito bom o tópico, eu queria saber se teria como eu setar alguns valores de temperatura e criar uma condição, exemplo: a temperatura medida no sensor é de 25 graus, quero criar um condição de set, tipo se a temperatura estiver acima da temperatura de set por exemplo liga um ventilador ou se estiver abaixo liga por exemplo um led ou alguma outra coisa pra mostrar se está abaixo ou acima da temperatura de set. desde já agradeço muito

    • Euler Oliveira às 18:40

      Olá Davidson.

      Agradeço pelo comentário!

      Sim, você pode fazer isso sim. Basta fazer as condições para as temperaturas e nestas condições definir o que será acionado.

  9. Keven Brito às 15:00

    Olá, gostaria de saber se para obter a leitura de vários DS18B20, colocando um sensor em cada porta do arduino, fazendo o lcd me mostrar cada temperatura individualmente, seria apenas ajustando o programa? Tipo setando cada porta de leitura, para que um por um seja mostrado no LCD. Saberiam me informar se isto é possível?

  10. marcelo crovador às 18:52

    Eu quero esse projeto mais com uma com sensor de temperatura é uma saída com rele para ligar um motor ventilador com voltagem de 110v ou 220v. Como fazer esse projeto , vcs me ensinao como fazer?

  11. Júnior às 13:28

    Boa tarde,
    Qual a alteração necessária no código para se utilizar 2 sensores ds18b20 juntos?

    • Euler Oliveira às 15:52

      Olá Júnior.

      Ainda não tenho nenhuma implementação utilizando dois DS18B20, logo, não consigo te dizer ao certo quais mudanças seriam necessárias.

  12. Ivo às 11:53

    Boa tarde!!

    Como adapto este código para ler a temperatura de 2 sensores DS18B20 ao mesmo tempo.

    Obrigado!

    • Euler Oliveira às 15:52

      Olá Ivo.

      Ainda não tenho nenhuma implementação utilizando dois DS18B20, logo, não consigo te dizer ao certo quais mudanças seriam necessárias.

  13. Bruno às 17:11

    Boa tarde.

    Estou tentando acionar rele pela internet porém não vai de jeito nenhum, consigo acionar um led mas um rele não! :@
    Sabe me dizer se é porque o USB não fornece corrente o suficiente para acionar o rele?

    • Euler Oliveira às 21:19

      Olá Bruno.

      Poderia fornecer o código que está utilizando e mostrar o esquema de ligação que seguiu?

      Com estas informações fica mais fácil tentar te auxiliar.

  14. Wellington às 10:03

    Bom dia,
    Consegui ligar o sensor de temperatura, só que estou utilizando um cooler para resfriar o ambiente então eu seto 30º e aqueço o sensor até atingir a temperatura e nisto já liga o cooler. Mas seto a temperatura mínima 28º para que o cooler desliga, mas quando atinge a temperatura 29,9° já desliga o cooler. Poderia me ajudar!
    Grato

    • Euler Oliveira às 12:13

      Olá Wellington.

      Poderia postar o código que está utilizando?

  15. Edvandro às 22:28

    Olá, tem como utilizar varios sensores por exemplo 4 unidades DS18B20 para medir temperaturas de ambientes diferentes e mostrar em um unico LCD? Sei que posso usar todos em uma porta mas creio que mede a media de todos juntos…

    • Euler Oliveira às 15:07

      Olá Edvandro.

      Se deseja apresentar os valores de temperatura em um único display, o ideal é usar um display maior (20X4, por exemplo), pois no 16X2 não vai caber todas as informações.

  16. Golbery às 18:55

    Ola tudo bem….

    Montei aqui e deu tudo certo, apareceu a leitura no lcd, porem esta acusando somente negativo, você teria uma noção do que possa ter feito de errado. (Usei exaltamento o mesmo código)

    • Euler Oliveira às 20:50

      Ola Golbery.

      Confere no seu esquema de ligação se não há nada ligado de forma errada ou se ficou faltando alguma conexão.

  17. MATEUS SOARES REIS às 23:07

    Como faço para usar Modulo Relé 8 Canais para ligar ventoinha de 12 v, ligar as mesma quando bater determinada temperatura

    • Euler Oliveira às 06:52

      Olá Mateus.

      O código abaixo compila, mas não cheguei a testar na prática. Acredito que funcione para o que precisa.

      Fiz apenas para usar 1 canal do módulo relé. Para utilizar os outros 7 canais, basta fazer as declarações de pinos e replicar as condições ‘if’ dentro do código. Além disso, fiz o código considerando que vai utilizar o contato NC (normalmente fechado) do módulo relé.

      Basta ler os comentários para entender o que cada linha está fazendo e qual pino digital foi definido para uso de um dos canais do módulo relé. Na linha 24 você pode fazer a mudança do valor de temperatura para o valor que for melhor para seu caso:

  18. Flavio às 11:34

    Parabens funcionou perfeitamente com o meu adquirido com vcs!!

    Queria acender um led verde quando a temperatura for inferior a 0 graus! Não estou conseguindo! Pode me ajudar?

    • Euler Oliveira às 12:57

      Olá Fávio.

      Que bom que o tutorial foi útil pra você.

      Para acender um LED sempre que a temperatura for menor que 0ºC, basta utilizar o trecho de código abaixo dentro do void loop:

      Lembre-se de declarar a variável pinoLed no inicio do seu código e atribuir um pino digital pra ele.

      Abraço.

    • João Paulo às 17:39

      Fiz do jeito como está aí no código, porém não pegou nem nada. Não apareceu nada na tela. O que poderia ser. O sensor tá pegando. Já fiz o teste. As conexões também. A lcd, comprei um nova. Ajude – me