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

В этом руководстве рассказывается, как считывать показания с нескольких датчиков температуры DS18B20 посредством микросхемы ESP32 с помощью среды разработки Arduino IDE.

Мы покажем, как к одной шине данных ESP32 подключить несколько датчиков, установим необходимые библиотеки и приведём простой пример, который вы сможете использовать в своих проектах. Эта инструкция подходит также для плат семейства ESP8266 и различных платформ Arduino.

Считывание показаний с датчиков DS18B20 через ESP32

Описание датчика температуры DS18B20

DS18B20 — цифровой датчик температуры с возможностью подключения одним проводом. Каждому датчику присвоен уникальный 64‑битный серийный номер, что позволяет использовать множество датчиков на одной шине данных (т. е. множество датчиков, подключённых к одной линии ввода-вывода общего назначения).

Это особенно полезно для проектов с регистрацией данных и управлением температурой. DS18B20 — прекрасный датчик, поскольку он недорог, точен и его очень просто использовать.

Считывание показаний с нескольких датчиков температуры DS18B20 посредством микросхемы ESP32

Распиновка слева-направо: первый вывод — заземление GND, второй — данные, третий, крайний справа, — питание VCC.

Примечание: также существует водонепроницаемая версия датчика температуры DS18B20.

Основные характеристики датчика температуры DS18B20:

  • Связь поддерживается посредством однопроводной шины
  • Рабочий диапазон температуры: -55…+125 °C
  • Точность: ±0,5 °C (при температуре от -10 до +85 °C)

Подключение нескольких датчиков DS18B20

Для подключения датчика температуры DS18B20 вам нужно подключить резистор на 4,7 кОм между питанием VCC и линией данных. На следующей схеме показан пример для трёх датчиков (при необходимости вы можете добавить их еще больше).

Считывание показаний с нескольких датчиков температуры DS18B20 посредством микросхемы ESP32

На вышеприведённой схеме датчик повёрнут закруглённой стороной к нам. Плоская сторона смотрит в обратную сторону.

Подготовка среды разработки Arduino IDE

Для среды Arduino IDE существует дополнение, которое позволяет программировать микросхему ESP32 посредством этой среды и её языка программирования.

Скоро выйдет отдельный материал, как подготовить среду Arduino IDE для работы с ESP32.

Установка библиотек

Перед загрузкой кода вам необходимо установить две библиотеки в среду Arduino IDE. Библиотека OneWire Пола Штоффрегена и библиотека Dallas Temperature. Выполните следующие шаги, чтобы установить эти библиотеки.

Библиотека OneWire

    . После скачивания, в вашей папке с загрузками должен появиться архивный файл с расширением .zip (например, в папке Downloads — «Загрузки»).

  1. Разархивируйте файл с расширением .zip — должна появиться папка OneWire-master.
  2. Смените название папки OneWire-master на OneWire.
  3. Переместите папку OneWire в папку с установленными библиотеками среды Arduino IDE.
  4. Перезапустите среду Arduino IDE для подгрузки бибоиотеки.

Библиотека Dallas Temperature

    . В вашей папке с загрузками должен появиться архивный файл с расширением .zip (например, в папке Downloads — «Загрузки»).

  1. Разархивируйте файл с расширением .zip — должна появиться папка Arduino-Temperature-Control-Library-master.
  2. Смените название папки Arduino-Temperature-Control-Library-master на DallasTemperature
  3. Переместите папку DallasTemperature в папку с установленными библиотеками среды Arduino IDE
  4. Перезапустите среду Arduino IDE.

Получение адреса датчика DS18B20

Каждому датчику температуры DS18B20 еще на заводе назначается свой серийный номер. В первую очередь вам необходимо узнать этот номер, чтобы промаркировать с его помощью соответствующий датчик. Это необходимо для того, чтобы позже вы могли понять, от какого именно датчика получены показания температуры.

Загрузите следующий код в микросхему ESP32. Убедитесь, что выбрали правильную плату и последовательный COM-порт.


Источник: voltiq.ru