O DS18B20 é um sensor digital de temperatura.
Ele é capaz de medir temperaturas de -55 °C a +125 °C.
Este sensor pode ser utilizado para medir temperaturas a céu aberto, uma vez que ele possui isolação e pode ser exposto a qualquer condição climática.
Ele possui três pinos, sendo dois deles para alimentação (5V e GND), e um terceiro pino para dados.
Para conectar e ler os dados no Arduino, o modo mais simples é utilizar duas bibliotecas que fazem a conversão dos dados.
A primeira delas é a OneWire, que faz o Arduino conversar com dispositivos que usam o protocolo 1-Wire (um fio de dados).
A segunda é a Dallas Temperature, que em conjunto com a OneWire, traduz os dados brutos em temperatura de forma fácil.
Essas bibliotecas podem ser instaladas diretamente pelo Arduino IDE.
Este sensor pode ser utilizado para medição de temperaturas em ambientes abertos e fechados.
Também pode ser utilizado em automação residencial, agricultura e estufas, indústria e processos, servidores e eletrônicos, entre outros.
Neste projeto você criará um circuito que faz o uso de um sensor de temperatura DS18B20 com o Arduino.
Para a criação deste circuito serão necessários os seguintes componentes:
Para montar o circuito, visualize na imagem a seguir como conectar os componentes entre a placa Arduino e a breadboard.
Uma vez criado o circuito, use o código fonte a seguir no Arduino IDE para fazer o upload dele na placa Arduino e assim ver o resultado do circuito em funcionamento.
/**
* Código do curso Magos do Arduino para utilizar um sensor de temperatura DS18B20 com o Arduino.
*
* Imprima no monitor serial a leitura das temperaturas em graus Celcius e Fahrenheit de um
* sensor de temperatura DS18B20 com o Arduino.
*
* Este código depende da instalação de duas bibliotecas, a OneWire e a Dallas Temperature.
* Ambas podem ser instaladas diretamente pelo gerenciador de bibliotecas do Arduino IDE.
*
* (c) Copyright KazaleIT
* @kazaleitoficial no YouTube
**/
#include <OneWire.h>
#include <DallasTemperature.h>
#define PINO_DADOS 2
// cria uma instância do OneWire para comunicação com o sensor
OneWire oneWire(PINO_DADOS);
// cria uma instância do sensor DallasTemperature passando a conexão OneWire como parâmetro
DallasTemperature sensors(&oneWire);
void setup(void) {
// inicializa a comunicação serial
Serial.begin(9600);
// inicializa o sensor
sensors.begin();
}
void loop(void) {
// faz a requisição de leitura da temperatura
sensors.requestTemperatures();
Serial.print("Temperatura em graus Celsius: ");
// imprime a temperatura em graus Celsius
// o índice 0 é utilizado pois temos apenas um sensor e ele será o primeiro da lista
Serial.print(sensors.getTempCByIndex(0));
Serial.print(" - graus Fahrenheit: ");
Serial.println(sensors.getTempFByIndex(0));
// aguarda 1 segundo até a próxima leitura
delay(1000);
}