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

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

Введение

В данном проекте рассматривается подключение водонепроницаемого 1-проводного датчика температуры DS18B20 к микроконтроллеру ESP32 с использованием среды Arduino IDE. Для визуализации данных будет использовать 0,96-дюймовый OLED-дисплей с интерфейсом I2C. DS18B20 обеспечивает точные измерения в диапазоне от -55 °C до 125 °C. Перед началом работы необходимо интегрировать ESP32 в Arduino IDE, как это сделать, рассказывал в этой статье.

Необходимые детали

№ Компонент Количество Купить
1 Отладочная плата ESP32 1 шт Авито | AliExpress | RobotChip
3 Датчик DS18B20 в металлической гильзе 1 шт Авито | AliExpress | RobotChip
4 Провод DuPont 4 шт Авито | AliExpress | RobotChip
6 OLED-дисплей 1 шт Авито | AliExpress | RobotChip
6 Резистор 4.7 кОм 1 шт Авито | AliExpress | RobotChip

Описание

Водонепроницаемый датчик DS18B20 представляет собой герметичную версию одноименного цифрового датчика DS18B20, предназначенную для измерений во влажной среде. Устройство функционирует в диапазоне от -55 до 125 °C. Благодаря цифровому протоколу 1-Wire данные не подвержены искажениям на больших дистанциях. Датчик обеспечивает точность до ±0,5 °C (используя встроенный 12-битный АЦП) и совместим с любыми микроконтроллерами, требуя для подключения всего один цифровой пин. Кабель датчика заключен в оболочку из ПВХ. Подробные спецификации приведены в техническом описании компонента. В прошлых статья уже рассказывал о данном датчике, подробнее можете почитать в этой статье.

Модуль OLED-дисплея на базе контроллеров SSD1306 или SSD1315 доступен в диагоналях 0,96 и 1,3 дюйма с разрешением 128×64 пикселей и синим или белым цветом. Устройство совместимо с любыми микроконтроллерами благодаря поддержке интерфейсов I2C. В базовый комплект поставки входят дисплейная плата, сам экран и 4-контактный штыревой разъем, который уже установлен (припаян) на плате.

Подключение

Датчик температуры DS18B20 подключается к микроконтроллеру ESP32 по протоколу 1-Wire. Его сигнальный контакт (DATA) соединяется с портом GPIO23. Для стабильной работы шины между линией DATA и питанием VCC необходимо установить подтягивающий резистор номиналом 4,7 кОм. Одновременно с этим 0,96-дюймовый OLED-дисплей подключаем вывод SDA к порту GPIO22, а линия SCL к порту GPIO21. Оба модуля необходимо подключить к питанияю VCC и земли GND.

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

Для работы, будем использовать библиотеку «DallasTemperature», «Adafruit_SSD1306» и «OneWireNg» скачать можно используя интегрированную среду разработки Arduino IDE», для этого откройте «Скетч → Подключение библиотеки → Менеджер библиотек…», так же выложу библиотеки в конце статьи.

В строке поиска введите «DallasTemperature» и нажмите «Установить »

Далее, установим следующую библиотеку, в строке поиска введите «Adafruit_SSD1306», найдите библиотеку «Adafruit SSD1306 от Adafruit » и нажмите «Установить»

Для работы библиотеки необходимо установить зависимые библиотеки, нажимаем «Установить все»

Программа

Ниже приведён исходный код передатчика, загрузите скетч в плату ESP32.

Если все правильно сделали при открытия мониторинга порта увидим данные температуры

Описание программы передатчика

В начале программы подключаем библиотеки и объявление объектов

Далее настраиваем датчик DS18B20, указываем вывод GPIO23, создаем объект управления шиной OneWire и передает его библиотеке DallasTemperature.

Указываем разрешение экрана и создает объект.

В функции setup() запускается последовательный порт на скорости 115200 бод, после чего производится инициализация датчиков OneWire. Инициализирует дисплей по адресу 0x3C, очищает видеобуфер микроконтроллера и устанавливает белый цвет текста.

В функции loop() запускается преобразование температуры на всех датчиках OneWire, считывается значение первого устройства (индекс 0) в градусах Цельсия (float)

Полезные ссылки

№ Описание Скачать
1 Библиотека DallasTemperature DallasTemperature v.1.1.15.zip
3 Библиотека Adafruit_SSD1306 Adafruit_SSD1306 v.2.5.17.zip
4 Библиотека OneWireNg OneWireNg v.0.14.1
5 Библиотека Adafruit GFX Library Adafruit GFX Library v.1.12.6
6 Библиотека Adafruit BusIO Adafruit BusIO v.1.14.7

О нас Сергей

Посмотреть также

Подключение дисплея LCD1602 через интерфейс I²C к STM32 в CubeIDE

Подключение дисплея LCD1602 через интерфейс I²C к STM32 в CubeIDE

В данной статье подробно опишу процедуру подключения LCD-дисплея формата 1602 с интерфейсом I2C к плате …

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *