Arduino - Sensor de Temperatura

Existem muitos tipos de sensores de temperatura que funcionam com o Arduino, como LM35, TH02, HDC1000 ou HTS221... Neste tutorial, vamos aprender como usar o sensor de temperatura à prova d'água DS18B20 com o Arduino. Este sensor é barato, fácil de usar e tem uma aparência elegante.

Hardware Necessário

1×Arduino Uno R3
1×Cabo USB 2.0 tipo A/B (para PC com USB-A)
1×Cabo USB 2.0 tipo C/B (para PC com USB-C)
1×Sensor de Temperatura DS18B20 (con Adaptador)
1×Sensor de Temperatura DS18B20 (sin Adaptador)
1×Fios Jumper
1×(Recomendado) Shield com Bornes de Parafuso para Arduino Uno
1×(Recomendado) Sensors/Servo Expansion Shield for Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Case para Arduino Uno
1×(Recomendado) Placa Base de Prototipagem e Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Buy Note: Many DS18B20 sensors available in the market are unreliable. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.

Sobre o Sensor de Temperatura One Wire - DS18B20

Pinagem

O sensor de temperatura DS18B20 tem três pinos:

  • Pino GND: precisa ser conectado ao GND (0V)
  • Pino VCC: precisa ser conectado ao VCC (5V ou 3.3V)
  • Pino DATA: é o barramento de dados 1-Wire. Ele deve ser conectado a um pino digital do Arduino.

O sensor geralmente tem duas formas: encapsulamento TO-92 (parece um transistor) e sonda à prova d'água. Usamos a forma de sonda à prova d'água neste tutorial.

Pinagem do sensor de temperatura DS18B20

Conectar um sensor de temperatura DS18B20 a um Arduino exige um resistor de pull-up, o que pode ser trabalhoso. No entanto, alguns fabricantes simplificam o processo oferecendo um adaptador de ligação que tem um resistor de pull-up embutido e um bloco de bornes de parafuso, tornando tudo muito mais fácil.

Diagrama de Ligação

  • Diagrama de ligação com protoboard
Diagrama de Ligação do Sensor de Temperatura com Arduino

This image is created using Fritzing. Click to enlarge image

  • Diagrama de ligação com adaptador (recomendado)
Diagrama de Ligação do Arduino com DS18B20

This image is created using Fritzing. Click to enlarge image

  • Diagrama de ligação real com adaptador
Diagrama de ligação do Arduino com adaptador DS18B20

This image is created using Fritzing. Click to enlarge image

Sugerimos comprar um sensor DS18B20 que vem com um adaptador de ligação para facilitar a conexão. O adaptador tem um resistor embutido, eliminando a necessidade de um resistor separado na ligação.

Como Programar o Sensor de Temperatura DS18B20

  • Inclua a biblioteca:
#include <OneWire.h> #include <DallasTemperature.h>
  • Declare os objetos OneWire e DallasTemperature correspondentes ao pino conectado ao pino DATA do sensor
OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature sensors(&oneWire); // pass oneWire to DallasTemperature library
  • Inicialize o sensor:
sensors.begin(); // initialize the sensor
  • Envie o comando para obter as temperaturas:
sensors.requestTemperatures();
  • Leia a temperatura em Celsius:
tempCelsius = sensors.getTempCByIndex(0);
  • (Opcional) Converta Celsius para Fahrenheit:
tempFahrenheit = tempCelsius * 9 / 5 + 32;

Código Arduino

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> const int SENSOR_PIN = 13; // Arduino pin connected to DS18B20 sensor's DQ pin OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature tempSensor(&oneWire); // pass oneWire to DallasTemperature library float tempCelsius; // temperature in Celsius float tempFahrenheit; // temperature in Fahrenheit void setup() { Serial.begin(9600); // initialize serial tempSensor.begin(); // initialize the sensor } void loop() { tempSensor.requestTemperatures(); // send the command to get temperatures tempCelsius = tempSensor.getTempCByIndex(0); // read temperature in Celsius tempFahrenheit = tempCelsius * 9 / 5 + 32; // convert Celsius to Fahrenheit Serial.print("Temperature: "); Serial.print(tempCelsius); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempFahrenheit); // print the temperature in Fahrenheit Serial.println("°F"); delay(500); }

Passos Rápidos

  • Conecte o Arduino ao PC por meio do cabo USB
  • Abra o Arduino IDE, selecione a placa e a porta corretas
  • Vá até o ícone Libraries na barra esquerda do Arduino IDE.
  • Pesquise “DallasTemperature” e, em seguida, encontre a biblioteca DallasTemperature de Miles Burton.
  • Clique no botão Install para instalar a biblioteca DallasTemperature.
Biblioteca Dallas Temperature do Arduino
  • Será solicitado que você instale a dependência da biblioteca
  • Clique no botão Install All para instalar a biblioteca OneWire.
Biblioteca OneWire do Arduino
  • Copie o código acima e abra-o no Arduino IDE
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Coloque o sensor em água quente e fria, ou segure o sensor com a mão
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Temperature: 26.31°C ~ 79.36°F Temperature: 26.44°C ~ 79.59°F Temperature: 26.50°C ~ 79.70°F Temperature: 26.56°C ~ 79.81°F Temperature: 27.06°C ~ 80.71°F Temperature: 27.75°C ~ 81.95°F Temperature: 28.37°C ~ 83.07°F Temperature: 29.00°C ~ 84.20°F Temperature: 29.56°C ~ 85.21°F Temperature: 30.00°C ~ 86.00°F Temperature: 30.31°C ~ 86.56°F Temperature: 30.62°C ~ 87.12°F Temperature: 30.87°C ~ 87.57°F
Ln 11, Col 1
Arduino Uno on COM15
2

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!