O sensor de temperatura DS18B20 é um sensor de temperatura digital de um fio. Isso significa que ele só precisa de uma linha de dados (e GND) para se comunicar com a placa ESP8266. Cada sensor de temperatura DS18B20 tem um código serial exclusivo de 64 bits. Isso permite que você conecte vários sensores ao mesmo fio de dados. Assim, você pode obter a temperatura de vários sensores usando apenas um GPIO.
O sensor de temperatura DS18B20 também está disponível na versão à prova d’água.
Apresentando o sensor de temperatura DS18B20
O sensor de temperatura DS18B20 é um sensor de temperatura digital de um fio. Isso significa que ele só precisa de uma linha de dados (e GND) para se comunicar com o ESP8266.
Ele pode ser alimentado por uma fonte de alimentação externa ou pode obter energia da linha de dados (chamada de “modo parasita”), o que elimina a necessidade de uma fonte de alimentação externa.
Cada sensor de temperatura DS18B20 tem um código serial exclusivo de 64 bits. Isso permite que você conecte vários sensores ao mesmo fio de dados. Assim, você pode obter a temperatura de vários sensores usando apenas um GPIO.
O sensor de temperatura DS18B20 também está disponível na versão à prova d’água. Como mostrado na foto anterior.
Veja a seguir um resumo das especificações mais relevantes do sensor de temperatura DS18B20:
- Comunica-se por meio de barramento de um fio
- Faixa de alimentação: 3,0V a 5,5V
- Faixa de temperatura operacional: -55ºC a +125ºC
- Precisão +/-0,5 ºC (entre a faixa de -10ºC a 85ºC)
Para obter mais informações, consulte o datasheet do DS18B20.
Peças necessárias
Para concluir este tutorial, você precisa dos seguintes componentes:
- ESP8266 – (Qualquer modelo, preferencialmente Versão de Dev)
- Sensor de temperatura DS18B20 (um ou vários sensores) – versão à prova d’água
- Resistor de 4,7k Ohm
- ProtoBoard
- Fios de jumper
Diagrama esquemático do ESP8266 com DS18B20
Como mencionado anteriormente, o sensor de temperatura DS18B20 pode ser alimentado pelo pino VDD (modo normal) ou pode derivar sua energia da linha de dados (modo parasita). Você pode escolher qualquer um dos modos.
Modo parasita
Modo normal
Observação: neste exemplo, estamos conectando a linha de dados do DS18B20 ao GPIO 4, mas você pode usar qualquer outro GPIO adequado.
Observação: se estiver usando um ESP-01, o GPIO 2 é o pino mais adequado para se conectar ao pino de dados do DS18B20.
Instalação de bibliotecas para o DS18B20
Para fazer a interface com o sensor de temperatura DS18B20, você precisa instalar a biblioteca One Wire e a biblioteca Dallas Temperature. Siga as próximas etapas para instalar essas bibliotecas.
- Abra o Arduino IDE e vá para Sketch > Include Library > Manage Libraries. O Gerenciador de bibliotecas deve se abrir.
- Digite “onewire” na caixa de pesquisa e instale a biblioteca OneWire.
- Em seguida, procure por “Dallas” e instale a biblioteca Dallas Temperature.
Depois de instalar as bibliotecas, reinicie o Arduino IDE.
Código (DS18B20 único)
Depois de instalar as bibliotecas necessárias, você pode carregar o seguinte código no ESP8266. O código lê a temperatura do sensor de temperatura DS18B20 e exibe as leituras no monitor serial do IDE do Arduino.
#include <OneWire.h> #include <DallasTemperature.h> // GPIO ao qual o DS18B20 está conectado const int oneWireBus = 4; OneWire oneWire(oneWireBus); DallasTemperature sensors(&oneWire); void setup() { Serial.begin(115200); sensors.begin(); } void loop() { sensors.requestTemperatures(); float temperatureC = sensors.getTempCByIndex(0); float temperatureF = sensors.getTempFByIndex(0); Serial.print(temperatureC); Serial.println("ºC"); Serial.print(temperatureF); Serial.println("ºF"); delay(5000); }
Há muitas maneiras diferentes de obter a temperatura dos sensores de temperatura DS18B20. Entretanto, se estiver usando apenas um único sensor, essa é uma das maneiras mais fáceis e simples.
Como o código funciona
Comece incluindo as bibliotecas OneWire e DallasTemperature.
#include <OneWire.h> #include <DallasTemperature.h>
Você está gostando do projeto, ele completo é encontrado no Ebook com este e outros, abaixo.
Guia de Esp8266 com sensores e módulos