Как подключить датчик температуры DS18B20 к Arduino. Какие компоненты необходимы для подключения. Как написать скетч для считывания температуры с DS18B20. Какие преимущества у цифрового датчика DS18B20 перед аналоговыми.
Что такое датчик температуры DS18B20 и его особенности
DS18B20 — это цифровой датчик температуры, который позволяет измерять температуру в диапазоне от -55°C до +125°C с точностью ±0.5°C. Какие ключевые особенности выделяют этот датчик среди аналогов?
- Цифровой интерфейс 1-Wire для простого подключения
- Не требует дополнительных компонентов (кроме подтягивающего резистора)
- Возможность подключения нескольких датчиков на одну линию данных
- Уникальный 64-битный серийный код для каждого датчика
- Широкий диапазон измерений от -55°C до +125°C
- Высокая точность ±0.5°C в диапазоне от -10°C до +85°C
Благодаря этим характеристикам DS18B20 отлично подходит для различных проектов на Arduino, где требуется точное измерение температуры.
Необходимые компоненты для подключения DS18B20 к Arduino
Для подключения датчика DS18B20 к Arduino понадобится минимальный набор компонентов. Что нужно приобрести?
- Arduino (Uno, Nano, Mega или другая совместимая плата)
- Датчик температуры DS18B20 (в корпусе TO-92 или водонепроницаемом исполнении)
- Резистор 4.7 кОм (подтягивающий)
- Макетная плата и провода для соединения
Дополнительно может потребоваться USB-кабель для подключения Arduino к компьютеру и загрузки скетча.
Схема подключения DS18B20 к Arduino
Подключение DS18B20 к Arduino осуществляется по следующей схеме:
- VDD (питание) датчика подключаем к 5V на Arduino
- GND (земля) датчика — к GND на Arduino
- DQ (линия данных) — к цифровому пину на Arduino (например, D2)
- Между VDD и DQ подключаем подтягивающий резистор 4.7 кОм
Установка необходимых библиотек для работы с DS18B20
Для работы с DS18B20 потребуются две библиотеки:
- OneWire — для работы с протоколом 1-Wire
- DallasTemperature — для упрощения работы с датчиками Dallas Semiconductor (в том числе DS18B20)
Как установить эти библиотеки в Arduino IDE?
- Откройте Arduino IDE
- Перейдите в меню Скетч -> Подключить библиотеку -> Управлять библиотеками
- В поиске введите «OneWire» и установите библиотеку от Paul Stoffregen
- Аналогично найдите и установите «DallasTemperature»
После установки библиотек перезапустите Arduino IDE для применения изменений.
Написание скетча для считывания температуры с DS18B20
Базовый скетч для считывания температуры с DS18B20 выглядит следующим образом:
«`cpp #includeЭтот скетч инициализирует работу с датчиком, запрашивает измерение температуры и выводит результат в Serial Monitor каждую секунду.
Объяснение ключевых моментов скетча:
ONE_WIRE_BUS 2
— определяет пин, к которому подключен датчикsensors.requestTemperatures()
— запрашивает измерение температурыsensors.getTempCByIndex(0)
— получает температуру в градусах Цельсия от первого (индекс 0) датчика на шине
Загрузка скетча и проверка работы датчика
После написания скетча необходимо загрузить его на Arduino и проверить работу датчика. Как это сделать?
- Подключите Arduino к компьютеру через USB-кабель
- В Arduino IDE выберите правильную плату и порт в меню Инструменты
- Нажмите кнопку «Загрузить» (стрелка вправо) для компиляции и загрузки скетча
- После успешной загрузки откройте Serial Monitor (Ctrl+Shift+M или значок лупы в правом верхнем углу)
- Убедитесь, что скорость в Serial Monitor установлена на 9600 бод
Если всё сделано правильно, вы увидите значения температуры, обновляющиеся каждую секунду.
Преимущества DS18B20 перед аналоговыми датчиками температуры
Цифровой датчик DS18B20 имеет ряд преимуществ перед аналоговыми датчиками температуры. Какие основные преимущества выделяют DS18B20?
- Высокая точность измерений без необходимости калибровки
- Простота подключения — требуется всего один цифровой пин
- Возможность подключения нескольких датчиков на одну линию
- Отсутствие влияния длины проводов на точность измерений
- Встроенное преобразование аналогового сигнала в цифровой
- Возможность программного задания разрешения измерений (от 9 до 12 бит)
Эти преимущества делают DS18B20 отличным выбором для проектов, где требуется надежное и точное измерение температуры.
Расширенные возможности работы с DS18B20
Помимо базового измерения температуры, DS18B20 предоставляет ряд расширенных возможностей. Какие дополнительные функции можно реализовать с этим датчиком?
- Изменение разрешения измерений (9-12 бит)
- Установка пороговых значений температуры для сигнализации
- Считывание уникального 64-битного кода каждого датчика
- Работа с несколькими датчиками на одной шине
- Использование режима паразитного питания (без отдельного провода питания)
Рассмотрим пример скетча, который демонстрирует работу с несколькими датчиками DS18B20 на одной шине:
«`cpp #include
Практические применения DS18B20 в проектах Arduino
Датчик DS18B20 находит широкое применение в различных проектах на базе Arduino. Какие интересные проекты можно реализовать с использованием этого датчика?
- Домашняя метеостанция с измерением температуры внутри и снаружи помещения
- Система мониторинга температуры в аквариуме или террариуме
- Контроль температуры в холодильной установке или инкубаторе
- Измерение температуры почвы в системах автоматического полива растений
- Термометр для ванны или бассейна с водонепроницаемым исполнением датчика
- Система предупреждения перегрева в компьютерах или электронных устройствах
Каждый из этих проектов может быть расширен дополнительной функциональностью, например, подключением к интернету для удаленного мониторинга или интеграцией с другими датчиками и устройствами.
Шановні клієнти! У зв’язку з перебоями у енергопостачанні, обробка замовлень може займати 2-4 дні.
|
Ардуино датчик температуры и влажности. DHT 11. Ардуино проекты.
Подключим датчик температуры ардуино. Для определения температуры будем использовать датчик dht 11. Этот датчик кроме температуры может измерять и влажность. Для установки скачаем библиотеку dht h от Adafruit. В ардуино измерение температуры и влажности происходит каждые 2 секунды. Датчик dht 11 и dht 22 это очень точные температурные сенсоры для применения в быту и ардуино проектах.
Сегодня будет урок для начинающих. Я расскажу как подключить датчик температуры DHT 11 или 22. Если у вас датчик в виде модуля, то это сделать очень просто. Достаточно подключить его к питанию 5 или 3,3 вольта. Всё зависит от того с какой платой вы работаете, Ардуино или ESP.
Если у вас просто отдельный модуль, то вам необходимо будет припаять к нему резистор10 кОм между выводами 1 и 2. Третий мы не задействуем, а четвёртый это земля.
Посмотрите как должно быть.
Теперь подключаем его к любому цифровому выводу Ардуино. Я буду использовать вывод D2, так как он указан в библиотеки и вам тогда не придётся редактировать код.
Теперь вам надо установить библиотеку для работы с датчиком. Если она у вас уже установлена, то можете пропустить этот кусок видео, а остальные давайте смотреть.
Открываем программу Arduino IDE и нажимаем на вкладку Инструменты. Теперь выбираем Управлять библиотеками. Мы попадаем в окно Менеджер библиотек. Здесь можно выбрать и установить различные библиотеки для работы с Ардуино. Так как библиотек очень много, то можно начинать набирать название, и библиотеку начнут подбираться сами. Я написал DHT и мне подгрузились возможные варианты библиотек.
Нам нужно установить библиотеку DHT SENSOR LIBRARY от компании Adafruit. Это очень известная компания и у неё много нужных и полезных библиотек.
Ниже идёт другая библиотека. Она для подключения к модулю ESP. В следующем уроке я покажу как подключать датчик температуры к этому модулю и получать данные удалённо по сети WIFI. И строить графики температуры и влажности с выводом на web страницу своего сервера. Так что если вам это интересно, то ставьте лайк, подписывайтесь на канал и нажимайте на колокольчик, тем самым вы не пропустите это видео.
Теперь нажимаем Установить и нам выпадает окно с выбором. Установить только эту библиотеку или установить все библиотеки от этой компании. Как я уже говорил, у них много полезных библиотек и мы в своих примерах не раз будем их касаться. Так что советую установить их все и сейчас, чтобы потом не отвлекаться на это.
Теперь закрываем окно и переходим к примерам.
Находим папку DHT SENSOR LIBRARY. Там находятся примеры к датчику температуры, и загружаем Тестер.
Давайте рассмотрим что за код нам открылся.
Сначала нам показывают строку подключения датчика температуры. По умолчанию он подключен к цифровому входу D2 Ардуино. Но вы можете подключить к любому цифровому или аналоговому входу.
А здесь сказано, что для подключения к модулю ESP нужно подключать ко входам 3,4,5,12,13 или 14. И не желательно подключать к 15 входу из-за ограничений в работе.
Здесь выбираем и раскомментируем строку с типом вашего датчика.
Это информация о подключении датчика ко входам Ардуино и к выходам напряжения. И что вам необходимо между 1 и 2 выводами датчика установить резистор 10 кОм. Это я вам рассказывал вначале.
Функция setup подключается всего один раз при включении Ардуино или после перезапуска. Так что всё что внутри этой функции будет выполнено 1 раз.
Здесь установлена скорость обмена серийным портом компьютера. По умолчанию она установлена в 9600 бод. И строка которая будет выведена при включении монитора порта. Это мы увидим потом.
Эти строки отвечают за считывание температура и влажности и присваивание переменным этих значений.
Теперь нам не надо заботиться о получении этих значений. Мы просто будем выводить эти переменные.
А здесь сказано, что если какое-то из этих значений не будет прочитано, то скетч прекратит работать и будет выведено сообщение об ошибке.
Это какой-то коэффициент. Я если честно не знаю что это и для чего. Если кто знает, то напишите. Для работы он нам не пригодится.
И на конец, в последних строчках кода сказано, как будет выведена информация о влажности и температуре в Цельсиях и Фарентейтах на экран, в мониторе порта.
Давайте прошьём нашу Ардуино и посмотрим как это работает.
Видим, что у нас показана влажность, температура в Цельсиях и Фарентейтах, а также индекс.
Вроде всё хорошо. Но выглядит это не очень. Всё написано в одну строчку, да ещё на не нашем языке. Мы же патриоты, давайте переведём на наш язык. Без обид для других языкоговорящих.
Для начала уберём индекс. Всё равно не знаем что это.
Теперь уберём Фаренгейт. Так как это не наше. И напишем по русски.
Смотрим что получилось. То что нужно, но надо ещё добавить переход на новую строку.
Вот теперь, то что надо.
На этом закончим. Это был урок для начинающих, и если вам понравилось, то вы знаете что делать. Следующие видео будет ещё интереснее. Жду вас в гости на канале. До встречи.
Измеряйте температуру и управляйте периферийными устройствами с помощью приложения Arduino Explorer — MATLAB & Simulink
Open Live Script
Этот пример поможет вам использовать приложение Arduino® Explorer для подключения к плате Arduino и управления подключенными периферийными устройствами в зависимости от изменений температуры.
В этом примере плата Arduino подключена к трем периферийным устройствам: серводвигателю, светодиоду и датчику температуры.
Приложение предоставляет унифицированный интерфейс для контроля входных сигналов от датчика температуры и предоставления выходных данных для светодиодов и периферийных устройств серводвигателя.
Чтобы открыть приложение, на панели инструментов MATLAB® на вкладке Apps в разделе Test and Measurement щелкните Arduino Explorer.
Требования
Для запуска этого примера необходимо следующее оборудование:
Измерение температуры и управление периферийными устройствами с помощью приложения Arduino Explorer
Плата Arduino уже настроена и подключена через USB. Если плата нуждается в предварительной настройке, см. раздел «Настройка и настройка оборудования Arduino».
Нажмите кнопку View Pinout , чтобы просмотреть схему выводов платы. Схема распиновки поможет вам определить контакты Arduino для подключения периферийных устройств к плате.
Настройте плату Arduino
Настройте аналоговый контакт A0 Arduino для получения аналоговых входных сигналов от датчика температуры. На панели Конфигурация контактов выберите строку A0. В панели Configure pin установите Mode как AnalogInput и Пользовательское имя как TempData.
Приложение Arduino Explorer автоматически отображает входные данные в таймоскоп. Вы можете отключить построение графика, сняв выделение с вывода на панели Plot Pins . Точно так же установите Mode цифровых контактов D2 и D3, как DigitalOutput и Servo. Вы также можете указать собственные имена для этих выводов. Примечание : приложение Arduino Explorer отображает выводы, которые находятся в режиме чтения или ввода.
Значение чтения 9Панель 0012 отображает входящие значения выводов. Контакт A0 отображает входное напряжение от датчика температуры. Контакт D2 отображает текущий угол вала серводвигателя (нормализованный).
Вы можете использовать Write Value для записи данных на контакты Arduino. Запись 1 на цифровой контакт D2 заставит светодиод светиться. Для D3 запись значения, отличного от прочитанного значения, приведет к вращению вала серводвигателя.
Вы также можете записать данные контактов, выбрав Запись PIN-кода в разделе Конфигурация контактов и нажатием Запись на панели инструментов. Эти данные записываются в переменные рабочей области в течение заданного времени.
Если у вас есть набор инструментов для обработки сигналов, записанные данные также можно визуализировать с помощью приложения Signal Analyzer, нажав кнопку Signal Analyzer на панели инструментов.
В панели инструментов приложения Arduino Explorer нажмите Generate Script, , чтобы открыть редактор MATLAB live и отобразить эквивалентный код MATLAB. Код содержит команды для создания соединения Arduino®, настройки контактов Arduino, а также для чтения и записи данных.
Вы можете добавить свою логику в код, управлять настройкой.
Теперь установка готова к управлению серводвигателем, когда температурное напряжение превышает пороговое значение.
У вас есть модифицированная версия этого примера. Хотите открыть этот пример со своими правками?
Вы щелкнули ссылку, соответствующую этой команде MATLAB:
Запустите команду, введя ее в командном окне MATLAB. Веб-браузеры не поддерживают команды MATLAB.