Magos do Arduino

Sensor de temperatura DS18B20

Aprenda a utilizar um sensor de temperatura DS18B20 com o Arduino

Magos do Arduino

Sensor de temperatura DS18B20

O DS18B20 é um sensor digital de temperatura.

Sensor de temperatura DS18B20

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.

Sensor de temperatura DS18B20

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:

  • 1x Breadboard (opcional)
  • 1x Arduino UNO
  • 1x Sensor de temperatura DS18B20
  • Jumpers

Circuito Sensor de temperatura DS18B20

Para montar o circuito, visualize na imagem a seguir como conectar os componentes entre a placa Arduino e a breadboard.

Circuito Sensor de temperatura DS18B20

Código fonte para o circuito do sensor de temperatura DS18B20

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);
}