Подключение нескольких DS18B20 к ESP32
В этом руководстве рассказывается, как считывать показания с нескольких датчиков температуры DS18B20 посредством микросхемы ESP32 с помощью среды разработки Arduino IDE.
Мы покажем, как к одной шине данных ESP32 подключить несколько датчиков, установим необходимые библиотеки и приведём простой пример, который вы сможете использовать в своих проектах. Эта инструкция подходит также для плат семейства ESP8266 и различных платформ Arduino.
Описание датчика температуры DS18B20
DS18B20 — цифровой датчик температуры с возможностью подключения одним проводом. Каждому датчику присвоен уникальный 64‑битный серийный номер, что позволяет использовать множество датчиков на одной шине данных (т. е. множество датчиков, подключённых к одной линии ввода-вывода общего назначения).
Это особенно полезно для проектов с регистрацией данных и управлением температурой. DS18B20 — прекрасный датчик, поскольку он недорог, точен и его очень просто использовать.
Распиновка слева-направо: первый вывод — заземление GND, второй — данные, третий, крайний справа, — питание VCC.
Примечание: также существует водонепроницаемая версия датчика температуры DS18B20.
Основные характеристики датчика температуры DS18B20:
- Связь поддерживается посредством однопроводной шины
- Рабочий диапазон температуры: -55…+125 °C
- Точность: ±0,5 °C (при температуре от -10 до +85 °C)
Подключение нескольких датчиков DS18B20
Для подключения датчика температуры DS18B20 вам нужно подключить резистор на 4,7 кОм между питанием VCC и линией данных. На следующей схеме показан пример для трёх датчиков (при необходимости вы можете добавить их еще больше).
На вышеприведённой схеме датчик повёрнут закруглённой стороной к нам. Плоская сторона смотрит в обратную сторону.
Подготовка среды разработки Arduino IDE
Для среды Arduino IDE существует дополнение, которое позволяет программировать микросхему ESP32 посредством этой среды и её языка программирования.
Скоро выйдет отдельный материал, как подготовить среду Arduino IDE для работы с ESP32.
Установка библиотек
Перед загрузкой кода вам необходимо установить две библиотеки в среду Arduino IDE. Библиотека OneWire Пола Штоффрегена и библиотека Dallas Temperature. Выполните следующие шаги, чтобы установить эти библиотеки.
Библиотека OneWire
-
. После скачивания, в вашей папке с загрузками должен появиться архивный файл с расширением .zip (например, в папке Downloads — «Загрузки»).
- Разархивируйте файл с расширением .zip — должна появиться папка OneWire-master.
- Смените название папки OneWire-master на OneWire.
- Переместите папку OneWire в папку с установленными библиотеками среды Arduino IDE.
- Перезапустите среду Arduino IDE для подгрузки бибоиотеки.
Библиотека Dallas Temperature
-
. В вашей папке с загрузками должен появиться архивный файл с расширением .zip (например, в папке Downloads — «Загрузки»).
- Разархивируйте файл с расширением .zip — должна появиться папка Arduino-Temperature-Control-Library-master.
- Смените название папки Arduino-Temperature-Control-Library-master на DallasTemperature
- Переместите папку DallasTemperature в папку с установленными библиотеками среды Arduino IDE
- Перезапустите среду Arduino IDE.
Получение адреса датчика DS18B20
Каждому датчику температуры DS18B20 еще на заводе назначается свой серийный номер. В первую очередь вам необходимо узнать этот номер, чтобы промаркировать с его помощью соответствующий датчик. Это необходимо для того, чтобы позже вы могли понять, от какого именно датчика получены показания температуры.
Загрузите следующий код в микросхему ESP32. Убедитесь, что выбрали правильную плату и последовательный COM-порт.
Источник: