Подключение DS18B20 к ESP32

Цифровой термометр 1-Wire

DS18B20 к ESP32 — три провода: VDD на 3,3 В, GND и DQ на любой GPIO. На линию данных между DQ и питанием ставят подтяжку 4,7 кОм. Датчик работает от 3,0 до 5,5 В, поэтому с ESP32 совместим без делителей.

Схема подключения DS18B20 к ESP32

DS18B20ESP32
DQGPIO4
VDD3V3
GNDGND

Схема из примера «DS18B20: цифровой термометр на шине 1-Wire».

DS18B20: цифровой термометр на шине 1-Wire

Открыть пример целиком

Выводы DS18B20

ВыводНазначение
DQлиния данных 1-Wire, подтяжка 4,7 кОм к VDD
VDDпитание 3,0–5,5 В
GNDобщий провод

Код для ESP32

#include <OneWire.h>
#include <DallasTemperature.h>

// Данные DS18B20 — на GPIO4. На настоящей плате между этим выводом и 3V3
// ставят резистор 4,7 кОм; в симуляторе подтяжка на линии есть всегда.
#define ONE_WIRE_PIN 4

OneWire oneWire(ONE_WIRE_PIN);
DallasTemperature sensors(&oneWire);

void setup() {
  Serial.begin(115200);
  sensors.begin();
  Serial.printf("датчиков на шине: %d\n", sensors.getDeviceCount());
}

void loop() {
  sensors.requestTemperatures();             // запустить измерение и дождаться его
  float t = sensors.getTempCByIndex(0);      // первый датчик на шине

  if (t == DEVICE_DISCONNECTED_C) {
    Serial.println("датчик не отвечает");
  } else {
    Serial.printf("%.2f °C\n", t);
  }
  delay(1000);
}

Скетч можно править и запускать в симуляторе без платы и установки среды.

Что учесть на ESP32

В железе

У платы-модуля подтяжка 4,7 кОм обычно уже распаяна, а у корпуса TO-92 и водонепроницаемого зонда её ставят самостоятельно между DQ и VDD. Провода зонда: красный — питание, чёрный — земля, жёлтый или белый — данные.

Частые ошибки при подключении к ESP32

Другие детали для ESP32