Подключение датчиков температуры DS18B20 |
Содержание
Датчик температуры DS18B20
Датчик температуры DS18B20
DS18B20 цифровой термометр с программируемым разрешением, от 9 до 12–bit, которое может сохраняться в EEPROM памяти прибора.
Разрешение датчика влияет на время преобразования и на точность (минимальный шаг измерения температуры):
Время преобразования определяет минимальный период опроса датчика температуры DS18B20. DS18B20 обменивается данными по 1-Wire шине. Все процессы на шине управляются программой (прошивкой) «Smacont-ESP». Характеристики
- Питание: 3 - 5.5В;
Датчик DS18B20 выпускается в двух исполнениях: в корпусе TO-92 и в герметичном исполнении. Последний имеет длину кабеля 1...5 метра и используется для измерения температуры в сложных условиях - под водой, в земле, и т.д.
Описание датчика DS18B20 (datasheet):
Схема подключенияВ схеме используется два датчика в корпусе TO-92 (DA1, DA2) и один датчик в герметичном исполнении (DA3). Причем DA1 и DA3 подключены к напряжению питания +3,3В, а DA2 подключен к напряжению питания +5В. Это сделано для того, чтобы проследить зависимость показаний значений от питающего напряжения. Схема подключения датчиков температуры DS18B20 к WiFi-модулю WiFi-модуль и датчики DS18B20 установлены на макетной плате для проектирования (Breadboard), позволяющей собирать проекты без пайки. В качестве внешнего источника используется адаптер питания для зарядки сотовых телефонов, смартфонов, планшетов, с выходным током не менее 500мА. Для автономного питания контроллера можно использовать портативные аккумуляторы (Power Bank) емкостью от 2000мА*ч и выше. В качестве соединительного кабеля между макетной платой (Breadboard) и адаптером используется кабель для зарядки сотовых телефонов. Подготовка модуля к работеПодготовка модуля к работе заключается в выполнении следующих шагов. Шаг 1. Программирование модуляПрограммирование модуля (запись программы (прошивки) «Smacont-ESP») осуществляется в соответствии с инструкцией «Программирование модулей ESP и отладочных плат». Шаг 2. Настройка сетевого соединения с модулемВыполнить настройку сетевого соединения с модулем в соответствии с инструкцией «Первое включение». Шаг 3. Настройка WiFi-сети (при необходимости)При необходимости выполнить настройку WiFi-сети в соответствии с инструкцией «Настройки WiFi-сети». Конфигурация модуляGPIOДля работы c тремя датчиками температуры DS18B20, сконфигурируем выводы модуля «GPIO5» («D1»), «GPIO4» («D2») и «GPIO14» («D5») как выводы, для работы с 1-Wire шиной. Конфигурирование сенсоров DS18B20 TIMERДля периодического опроса датчиков DS18B20 будем использовать «TMR1», так как он по умолчанию уже настроен на работу с периодом 3 сек.
На вкладке «TIMER» необходимо произвести конфигурирование таймера «TMR1»:
Для обеспечения возможности дальнейшей обработки события от таймера, необходимо привязать параметр «Состояние» таймера «TMR1» к одному из «Vx», например, к «V12». Конфигурирование «TIMER» ДействияСоздаем действие-функцию «sens_DS18B20()». Устанавливаем параметры функции, как показано на рисунке ниже.
В качестве параметра "Начало выходных данных" указываем переменную «V0». Соответственно, получаем список наших выходных данных:
Действие - функция «sens_DS18B20()» Сценарии (Задачи)Создаем сценарий (задачу, триггер) «Сценарий N0», который будет вызываться по событию обновления переменной «V12». В качестве действия выберем «Действие N0», по которому будет вызываться функция «sens_DS18B20()». Сценарии (Задачи)
Получаем следующий алгоритм работы:
Vx mapЗначения температуры от датчиков «DA1», «DA2» и «DA3» можно проконтролировать на вкладке переменных «Vx map». Переменные «Vx» В дальнейшем, полученные значение температуры, можно использовать в сценариях, например, для реализации проекта терморегулятора. ЗаключениеПри подключенных DA1 к напряжению питания +3,3В, а DA2 к напряжению питания +5В, наблюдается различие в показаниях. Показания сенсора DA1 и DA2 отличаются на 0,5...0,7ºС. Это связано с работой внутреннего стабилизатора напряжения датчика температуры ds18b20. При питании от источника питания +5В, внутри датчика выделяется больше тепла, что и приводит к разнице показаний. Поэтому, предпочтительно датчики температуры ds18b20, питать от источника напряжения +3,3В. На точность показаний также оказывает влияние период опроса. При частом опросе сенсоров DS18B20, происходит внутренний саморазогрев, что приводит к завышению показаний. Датчики в корпусе TO-92 (DA1, DA2) отличаются меньшей инерционностью при изменении температуры окружающей среды (быстрее нагреваются/остывают), чем датчики в герметичном исполнении (DA3). При сравнении показаний температуры нужно учитывать многие факторы. Два одинаковых датчика (в одинаковом корпусе), при одинаковом напряжении питания, расположенные на небольшом расстоянии друг от друга, могут показывать разное значение температуры. Разность показаний зависит от многих условий. Например, при проверке, рука пользователя (работающий монитор, какое-либо включенное силовое устройство или другое устройства, выделяющее тепло) может располагаться ближе к одному из датчиков на несколько сантиметров, чем к другому. Уже данного фактора достаточно для получения разницы в отображении текущего значения температуры. |
Программы
Прошивка «Smacont-ESP»:
«Программа Настройки»:
Телеграм каналНовостиЭнергонезависимая память (EEPROM) Переменные «Vx» (карта переменных «Vx») Действие «wifi_CheckConn()». После подключения к WiFi-сети, выполнить действие с задержкой Обмен данными. Open Monitoring Датчики температуры и влажности AHT10/AHT15/AHT20/AHT21/AHT25 Датчик температуры и влажности SHT30 (SHT31/SHT35) Действие «valueToVx()», «valueToArrVx()». Отслеживание заданного уровня в диапазоне значений Действие «termostat()». Термостат ESP-NOW. Датчик температуры и влажности с питанием от батареек Последовательные интерфейсы (UART, I2C, SPI) Управление одноканальным модулем реле |