Как подключить датчик DS18B20 к Arduino. Как написать скетч для измерения температуры. Какие преимущества у цифрового датчика DS18B20. Как откалибровать термометр на Arduino.
Обзор датчика температуры DS18B20
DS18B20 — это цифровой датчик температуры, который позволяет с высокой точностью измерять температуру в диапазоне от -55°C до +125°C. Он имеет ряд преимуществ по сравнению с аналоговыми термисторами:
- Цифровой интерфейс 1-Wire для подключения к микроконтроллеру
- Не требует калибровки или внешних компонентов
- Разрешение измерения от 9 до 12 бит
- Точность ±0.5°C в диапазоне от -10°C до +85°C
- Уникальный 64-битный серийный код, позволяющий подключать несколько датчиков к одной шине
Благодаря этим характеристикам DS18B20 является отличным выбором для создания цифрового термометра на базе Arduino.
Подключение DS18B20 к Arduino
Для подключения DS18B20 к Arduino потребуется всего 3 провода:
- VCC — питание датчика (3.3-5В)
- GND — земля
- DQ — линия данных
Схема подключения выглядит следующим образом:

- VCC датчика подключается к выводу 5V Arduino
- GND датчика подключается к выводу GND Arduino
- DQ датчика подключается к цифровому пину Arduino (например, 2)
- Между VCC и DQ нужно установить подтягивающий резистор 4.7 кОм
Подтягивающий резистор необходим для корректной работы шины 1-Wire. После подключения можно приступать к написанию скетча.
Программирование Arduino для работы с DS18B20
Для работы с DS18B20 потребуются следующие библиотеки:
- OneWire — для работы с протоколом 1-Wire
- DallasTemperature — для упрощения работы с датчиком DS18B20
Базовый скетч для считывания температуры будет выглядеть так:
«`cpp #includeЭтот скетч инициализирует датчик, запрашивает измерение температуры каждую секунду и выводит результат в Serial Monitor. Теперь рассмотрим основные функции для работы с DS18B20.

Основные функции для работы с DS18B20
Библиотека DallasTemperature предоставляет удобный API для работы с датчиком DS18B20. Вот некоторые полезные функции:
sensors.begin()
— инициализация датчикаsensors.requestTemperatures()
sensors.getTempCByIndex(0)
— получение температуры в градусах Цельсияsensors.getTempFByIndex(0)
— получение температуры в градусах Фаренгейтаsensors.getDeviceCount()
— получение количества подключенных датчиковsensors.getResolution()
— получение текущего разрешения измеренияsensors.setResolution(12)
— установка разрешения (9-12 бит)
Используя эти функции, можно легко настроить термометр под свои нужды. Например, изменить разрешение измерения или работать с несколькими датчиками одновременно.
Калибровка термометра на Arduino
Хотя DS18B20 не требует калибровки, иногда может потребоваться корректировка показаний. Для этого можно использовать следующий алгоритм:
- Измерьте температуру эталонным термометром
- Сравните показания DS18B20 с эталонным значением
- Вычислите разницу и добавьте ее к показаниям датчика в скетче
Например, если DS18B20 показывает 25.5°C, а эталонный термометр 26.0°C, нужно добавить коррекцию 0.5°C:

Этот скетч добавляет калибровочное смещение к измеренной температуре, обеспечивая более точные показания.
Использование нескольких датчиков DS18B20
Одно из преимуществ DS18B20 — возможность подключения нескольких датчиков к одной шине. Это позволяет измерять температуру в разных точках, используя всего один цифровой пин Arduino. Как это реализовать?
- Подключите все датчики параллельно к одному пину Arduino
- Используйте функцию
sensors.getDeviceCount()
для определения количества датчиков - В цикле опрашивайте каждый датчик по его индексу
Вот пример скетча для работы с несколькими датчиками DS18B20:

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

- Используйте режим сна Arduino между измерениями
- Отключайте питание датчика, когда он не используется
- Уменьшите частоту измерений
Вот пример энергосберегающего скетча для DS18B20:

Отображение данных с DS18B20 на LCD дисплее
Для создания автономного термометра удобно использовать LCD дисплей для отображения температуры. Как это реализовать?
- Подключите LCD дисплей к Arduino
- Используйте библиотеку LiquidCrystal для работы с дисплеем
- Выводите показания температуры на экран
Вот пример скетча для отображения температуры с DS18B20 на LCD дисплее:
Презентация к исследовательскому проекту «Инфракрасный термометр на Arduino своими руками» • Наука и образование ONLINE
Главная Работы на конкурс Предметное образование Технические дисциплины Презентация к исследовательскому проекту «Инфракрасный термометр на Arduino своими руками»
Автор: Ковалев Леонид Ильич
Место работы/учебы (аффилиация):
Научный руководитель: Блохин Сергей Викторович
Сегодня вопрос измерения температуры стоит наиболее остро, нежели ранее. В связи со вспышкой коронавируса и общего ухудшения здоровья населения желательно измерять температуру тела как можно чаще с целью выявления заболевания на ранней стадии, причем для сторонних людей относительно возможного зараженного это делать лучше бесконтактным способом. Пожалуй, не найдется уже такого человека, который бы не знал как, а главное — чем измерить температуру. Нам стало интересно узнать, что это – бесконтактный термометр, история возникновения, принцип работы, практическое применение, а главное, сможем ли мы сделать такой градусник.
Актуальность данной работы заключается в том, что изучение термометров медицинских поможет глубже изучить и познать окружающий мир, свойства физических тел.
Цели исследовательской работы:
- изучить особенности электронного термометра на базе программно-аппаратной системы Arduino;
- создать бесконтактный ИК термометр используя Arduino и инфракрасный температурный датчик.
Чтобы достичь поставленных целей, необходимо решить ряд задач:
- познакомиться с литературой по данной теме;
- раскрыть историю создания термометра;
- создать термометр с использованием бесконтактного датчика температуры под названием MLX90614;
- изучить систему Arduino, создав программу на языке C++;
- провести ряд опытов и исследовательскую работу, чтобы понять работу термометра.
Объект исследования: приборы для измерения температуры тела человека.
Предмет исследования: электронный термометры.
Проект «Чат-боты.PY»
Доступна к просмотру полнотекстовая версия работы
21 век — век развития информационных технологий, искусственный интеллект неразрывно связан с повседневной жизнью каждого человека. Изучение языков программирования важно для понимания механизма работы технических устройств и управления самыми совреме…
Посмотреть работу
Проект «Робот — не просто игрушка»
По телевизору показывают мультфильмы про роботов, в которых они помогают людям в жизни и даже могут вместо человека делать какую-нибудь сложную работу. В жизни мы часто сталкиваемся с роботами. Например, дома у многих есть игрушки на радиоуправлении,…
Посмотреть работу
Презентация по проекту «Разработка мобильного приложения для оказания первой помощи пострадавшим в мирное и военное время с аудио-подсказчиком алгоритмов действий»
В XXI веке технологии стали неотъемлемой частью жизни, они используются в работе, быту, спорте, во всех сферах современной жизнедеятельности, а мобильный телефон стал постоянным спутником и помощником почти каждого человека на планете, что привело к…
Посмотреть работу
Мероприятие завершено
4″>Конкурс, в котором работа участвуетIV Международный конкурс исследовательских работ школьников «Research start 2021/2022»
Направление
Технические дисциплины
Форма представления работы
Презентация к исследовательской работе
Ключевые слова
Проект по программированию (Pascal, Python, Java, С, С++, C# и др.)
Дата публикации работы
11.10.2021
датчик влажности и температуры на базе Ардуино с DHT11
Сегодня вы узнаете, как собрать электронный термогигрометр на базе Arduino и датчика влажности DHT11.
OLED, который вам понадобится, по диагонали 3,3 см (1,3”) и 128х64 точек, работающий на SPI-шине.
Чтобы обмениваться данными с дисплеем нужно будет установить библиотеку u8glib. С ее помощью будут выводиться числа, буквы, растровые изображения на комнатный термометр-гигрометр.
Шаг 1: Подключение к Arduino
Органический светодиод (OLED) – диод, в котором эмиссивный электролюминесцентный слой сделан из органического полимера, который начинает испускать свет под действием электрического тока. Этот слой органического полупроводника расположен между двумя электродами, обычно как минимум один из электродов светопроницаемый.
Дисплей, который я использую, по диагонали 3,3 см (1,3”), 128х64 точки, работает на четырехпроводном последовательном периферийном интерфейсе (шине SPI). Дисплей монохромный синий, потребляет 0,04 Вт энергии, что в десять раз меньше требуемой мощности обычного ЖК-дисплея 16х2.
OLED можно перенастроить для работы с другими шинами (I2C, например) или с трехпроводной SPI шиной. Для этого нужно перепаять один или два резистора с обратной стороны платы дисплея. Они отмечены нулями (на фото).
Для перенастройки на работу с i2c шиной – перепаять резистор BS1 на 1, а резистор BS0 оставить на 0.
Для перенастройки на работу с трехпроводной SPI шиной – перепаять резистор BS1 на 0, а резистор BS0 на 1.
Шаг 2: Немного о датчике DHT11
Датчик DHT11 – самый распространенный, недорогой цифровой датчик влажности и температуры. С помощью емкостного датчика влажности и термистора сенсор получает данные об окружающем воздухе, и отправляет результат на вывод данных (то есть не использует аналоговый выход). Его крайне просто использовать, но он требует четкой синхронизации обмена данными. Единственный минус датчика – он делает измерения каждые две секунды, то есть ваши данные фактически запаздывают на две секунды.
Характеристики:
- малый размер, низкая стоимость
- рабочее напряжения 3-5 В
- максимальный ампераж в режиме запроса данных – 2,5 мА
- диапазон измерения влажности воздуха 20-80%, погрешность не превышает 5%
- диапазон измерения температуры 0-50°С, погрешность не превышает 2°С
- частота измерений не превышает 1 Гц (одно измерение в секунду)
Шаг 3: Компоненты для сборки термогигрометра
Вам понадобятся следующие компоненты:
- Микроконтроллер Arduino UNO или аналогичный
- OLED дисплей 3,3 см (1.
3”) 128х64 точек
- Датчик температуры и влажности DHT11
- Печатная плата
- Соединительные провода, 12 шт.
Шаг 4: Подключение датчика и дисплея
Ознакомьтесь со схемой подключения к макетной плате. Положительный и отрицательный выводы под напряжением и датчика, и дисплея подключите соединительными проводами к земле и к 5В выводу платы контроллера.
Подключите соединительным проводом выходной разъем датчика к разъему A0 микроконтроллера.
Подключите пины OLED дисплея к пинам микроконтроллера в следующем порядке:
- пин DIN дисплея с пином 13 контроллера
- пин CLK с пином 11
- пин CS с пином 10
- пин D/C с пином 9
- пин RES с пином 8
Пины 13, 11, 10, 9 и 8 используются для передачи данных через интерфейс SPI платой Arduino Uno, а также являются разъемом ICSP с нижней стороны платы контроллера.
После подключения можно загрузить код в контроллер (загрузить его можно также и до подключения).
Шаг 5: Загружаем код
Этот этап достаточно простой, просто загрузите два файла с расширением «.INO» (они называются Farenheit и Celsius, для измерения в Фаренгейтах и Цельсиях соответственно), откройте их в программе Arduino IDE и загрузите в Arduino Uno.
Если вам не нравится шрифт, его можно поменять редактируя код. Для этого просто загрузите поддерживаемые шрифты в библиотеку u8glib.
Загрузите библиотекидля DHT и u8glib, разархивируйте и загрузите в папку библиотек (/Program Files(x86)/Arduino/Libraries (default)).
Последний файл с кодом для SSD1306 128X32 и 128X64 с SPI шиной, и для двуцветных OLED дисплеев (1/4 желтых, 3/4 синих диодов, SSD1306).
Файлы
- DHT_OLED_Celsius_v1.3.2016.ino
- DHT_OLED_Fahrenheit_v1.3.2016.ino
- DHT_DC_OLED_V1.26.16.ino
Шаг 6: Испытания
Ваш датчик влажности и температуры на Ардуино на базе микропроцессора Arduino собран и теперь вы можете узнать температуру и влажность окружающего воздуха, когда вам угодно.
7. MCP9808: точный модуль термометра для вашего Arduino
Руководство по периферийным устройствам Arduino серии
MCP9808 – это очень точный датчик температуры для вашего Arduino. Он предлагает выбранные пользователем разрешения, программируемые оповещения, возможность подключения I2C и работает с Arduino 5 В и 3,3 В.
В предыдущей статье я рассказал о трех распространенных термометрах, используемых производителями Arduino. Студент недавно спросил, являются ли датчики термометра более точными, чем обычные DHT11/22, TMP36 и BMP280.
Высокоточный датчик температуры Microchip MCP9808
Конечно, есть! Представляем MCP9808 от Microchip.
Вы можете видеть, что этот модуль сделан для точности, взглянув на первую страницу его технического описания; вот что вы видите:
Информации о точности прибора больше, чем обычно, с типичными и максимальными значениями для разных диапазонов. Также можно выбрать разрешение измерения!
Оценка графиков точности MCP9808
Первая страница также содержит очень интересный график распределения точности температуры:
Этот график говорит нам о том, что 20% показаний из выборки из 854 единиц этого модуля содержат приблизительно a 0,0 ˚С ошибка!
Данные показывают, что это очень точный датчик!
В техническом описании содержится еще несколько интересных графиков, например, на странице 7:
Эти графики иллюстрируют изменение точности в диапазоне температур, которые может измерять датчик. Обратите внимание, что на рис. 2-3, где показано распределение погрешности при 25°C, распределение высокое и узкое, сосредоточенное вокруг отметки 0 на горизонтальной оси; это указывает на то, что производитель откалибровал этот датчик для лучшей работы при обычных комнатных температурах, при которых работает большая часть нашей электроники.
Затем посмотрите на рисунки 2-5 и 2-4, где распределение ошибок при 85°C и -20°C короче и более разбросано, что указывает на больший разброс ошибок измерения.
Наглядное описание того факта, что точность датчика меняется по всей ширине диапазона, в котором он работает.
Подробнее
Используется интерфейс I2C для связи с микроконтроллером. Adafruit опубликовал библиотеку, которая делает ее использование еще проще.
Если вы хотите узнать, как использовать MCP9808 с вашим Arduino, рассмотрите мой курс «Начало работы с Arduino: шаг за шагом», где я рассказываю о датчике в лекции 14 раздела 10.
Arduino Step by Step Getting Started — наш самый популярный курс для начинающих.
Этот курс содержит высококачественное видео, мини-проекты и все необходимое для изучения Arduino с нуля. Мы поможем вам начать работу и на каждом этапе с помощью первоклассных инструкций и нашего супер-полезного пространства для обсуждения курса.
Узнать больше
Просмотрите эту статью
Высокоточный датчик температуры Microchip MCP9808
Оценка графиков точности MCP9808
Узнать больше
Перейти к другой статье
Изучили основы? Ищете более сложные темы?
Arduino Step by Step Getting Serious — это наш комплексный курс Arduino для тех, кто готов перейти на новый уровень.
Узнайте о Wi-Fi, BLE и радио, двигателях (серводвигателях, двигателях постоянного тока и шаговых двигателях с различными контроллерами), ЖК-дисплеях, OLED- и TFT-экранах с кнопками и сенсорными интерфейсами, управлении большими нагрузками, такими как реле и источники света, и о многом, НАМНОГО больше.
Узнать больше
Включите JavaScript, чтобы просматривать комментарии с помощью Disqus. Модуль датчика цифрового термометра/гигрометра(DHT11) для Arduino
- {{выделение}}
6,95 $
Деталь №: VUPN5921
Купить 1+ | 6,95 $ | |
Купить 10+ | 6,60 $ | Сохранить задачу% |
Посмотреть корзину »
{{ product_selected().in_stock }} в наличии для немедленной отправки.
Этого товара в данный момент нет в наличии.
Посмотреть корзину »
Рекомендуемые продукты
{{ rp[‘product_title’] }}
${{ rp[‘product_price’] }}
Описание продукта
Модуль датчика цифрового термометра/гигрометра (DHT11) для Arduino
Хотите добавить мониторинг окружающей среды в свой Arduino? Этот модуль цифрового термометра/датчика влажности дает вам огромное количество информации в крошечном корпусе!
Измерение температуры в диапазоне от 0°C до 50°C (от 32°F до 122°F) с точностью до 1°C! Измеряйте относительную влажность от 20 до 90% относительной влажности с точностью до 4% относительной влажности!
Этот модуль отправляет чисто цифровые данные, используя только одну сигнальную линию для приема сигнала запуска и отправки последовательных данных.
Цифровой дизайн позволяет этому датчику работать с незначительным энергопотреблением, просыпаясь на короткий всплеск активности только по запросу!
Этот элемент состоит из датчика DHT11, установленного на небольшой коммутационной плате, которая включает в себя подтягивающий резистор 10 кОм на линии передачи данных и размыкает соединения GROUND, POSITIVE_POWER и SERIAL_DATA на три прочных, удобных для макета разъема с шагом 0,1 дюйма. контакты (контакт 1 заголовка — заземление, контакт 2 заголовка — положительное питание, а контакт 3 заголовка — последовательные данные).
|
КОЛ-ВО: 1 цифровой датчик термометра/гигрометра (DHT11) для Arduino
Состояние продукта: Новый
ПРЕДУПРЕЖДЕНИЕ : Рак и репродуктивный вред — www.