- Descrição: O Módulo Joystick KY-023 foi desenvolvido com a…
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.
O 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:
Abaixo está o esquema de ligação para esta prática:
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 OneWire, Dallas 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#include <OneWire.h> //BIBLIOTECA NECESSÁRIA PARA O DS18B20 #include <DallasTemperature.h> //BIBLIOTECA NECESSÁRIA PARA O DS18B20 #include <LiquidCrystal.h>//BIBLIOTECA NECESSÁRIA PARA O DISPLAY LCD #define DS18B20 7 //DEFINE O PINO DO SENSOR DS18B20 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //PINOS UTILIZADOS PARA A CONEXÃO DO DISPLAY OneWire ourWire(DS18B20);//CONFIGURA UMA INSTÂNCIA ONEWIRE PARA SE COMUNICAR COM DS18B20 DallasTemperature sensors(&ourWire); //PASSA A TEMPERATURA PARA O DallasTemperature void setup(){ delay(1000); //INTERVALO DE 1000 MILISSEGUNDOS sensors.begin(); // INICIA O SENSOR DS18B20 lcd.begin(16, 2); // INICIA O LCD pinMode(6,OUTPUT);//DEFINE O PINO 6 (PWM) COMO AJUSTE DE CONTRASTE DO DISPLAY LDC analogWrite(6,5); //ESCREVE O VALOR 5 NA PORTA 6 (CONTROLE DO CONTRASTE VIA PWM) } void loop(){ lcd.setCursor(0,0);//SETA O CURSOR PARA INICIAR AS ESCRITAS NO LCD lcd.print("MASTERWALKERSHOP"); //IMPRIME O TEXTO NO LCD sensors.requestTemperatures();//REQUISITA A TEMPERATURA DO SENSOR lcd.setCursor(0,1);//SETA O CURSOR PARA INICIAR AS ESCRITAS NA SEGUNDA LINHA DO LCD lcd.print(sensors.getTempCByIndex(0));//IMPRIME NO LCD O VALOR DA TEMPERATURA lcd.write(223);//IMPRIME NO DISPLAY LCD O SÍMBOLO 'º' lcd.setCursor(9,1);//SETA O CURSOR PARA ESCREVER A PALAVRA CELSIUS NA SEGUNDA LINHA E COLUNA 9 DO DISPLAY lcd.print("CELSIUS");//IMPRIME O TEXTO NO LCD delay(500);//INTERVALO DE 500 MILISSEGUNDOS } |
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: Descobrindo a faixa de IP do seu roteador
Próxima postagem: Arduino – Utilizando o Sensor Ultrasonico HC-SR04 e Buzzer 5V
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.
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?
olá, fiquei na duvida e para utilizar o display com o I2C como ficaria o código ?
Olá Jose Rafael.
Agradeço pelo comentário!
Você pode usar a postagem abaixo como referência para adaptar ao que precisa:
https://blogmasterwalkershop.com.br/como-usar-com-arduino-modulo-adaptador-i2c-para-display-lcd-16×2-20×4/
Deu certo aqui, obrigada por compartilhar.
Adicionei um print pra visualizar também no serial monitor,
muito legal!
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
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 ?
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.
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 .
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
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.
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?
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?
Boa tarde,
Qual a alteração necessária no código para se utilizar 2 sensores ds18b20 juntos?
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.
Boa tarde!!
Como adapto este código para ler a temperatura de 2 sensores DS18B20 ao mesmo tempo.
Obrigado!
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.
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?
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.
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
Olá Wellington.
Poderia postar o código que está utilizando?
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…
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.
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)
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.
Como faço para usar Modulo Relé 8 Canais para ligar ventoinha de 12 v, ligar as mesma quando bater determinada temperatura
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:
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?
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.
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