Датчик температуры для arduino: Датчик температуры Arduino DS18B20 — описание подключения на русском

Содержание

Модуль микро датчика температуры для

Модуль микро датчика температуры RCK205704 предназначен для совместного использования с устройствами, использующими платформу ARDUINO (Ардуино).
Рекомендуется для создания различных робототехнических проектов, обучения конструированию различных систем мехатроники и программированию, а также для конструкторских хобби.

С помощью модуля RCK205704 электроника грубо определяет температуру воздуха.

  • Датчик имеет два выхода: A (аналоговый) и D (цифровой).
  • Аналоговый выход может подключаться непосредственно ко входу АЦП ARDUINO и использоваться для измерения температуры.
  • Для непосредственного измерения температуры в схеме использован терморезистор типа NTC, от слов «Negative Temperature Coefficient»). С изменением температуры корпуса терморезистора меняется его сопротивление.
  • В качестве порогового элемента цифрового выхода использован компаратор TL331.
  • В схеме установлены два светодиода: красный — индикатор наличия питания, зеленый — уровень 0 на выходе D.
  • Регулировка порога переключения цифрового выхода осуществляется подстроечным резистором на плате датчика.

Технические характеристики
Напряжение питания (Vcc): 3.5 – 5.5 В
Потребляемый ток: 10 мА
Формат сигнала цифрового выхода: TTL(0/1)
Уровень сигнала аналогового выхода: 0 — Vcc
Рабочая температура: от 0 до +70°С
Размеры: 35 х 10 х 8 мм
Масса: 2.5 гр.
Диаметр монтажного отверстия: 1 мм

Обозначение выводов датчика
Вывод с меткой «+» –> плюс питания (+3.3V ~ +5.5V)
Вывод с меткой «-» –> минус питания
Вывод с меткой «D» –> цифровой выход (выход логического сигнала сообщающего о превышении установленного порога)
Вывод с меткой «A» –> аналоговый выход (напряжение сигнала соответствует температуре)

При использовании только цифрового сигнала, что является самым простым применением, модуль датчика температуры соединяют жгутом со специальными модулями расширения Ардуино содержащие ориентированные на такие подключения группы контактов.

Работа модуля датчика температуры
Воспринимающий элемент датчика – терморезистор. Он соединен со входом микросхемы компаратора TL331. С помощью подстроечного резистора выполняется настройка порога срабатывания компаратора. Так устанавливается температурный порог. При превышении температурой установленного порога на выходе D будет высокий уровень напряжения. Если температура мала, то на выходе D низкий уровень.

Основное назначение модуля RCK205704 – контроль температуры воздуха, но с его помощью можно контролировать температуру поверхности. Для этого термистор прижимается механическим креплением к поверхности, а между терморезистором и поверхностью вносят термопроводящую пасту. В крайнем случае, при отсутствии пасты, терморезистор приклеивают.
В автоматике используется для грубого определения температуры, что позволяет включать или отключать исполнительные устройства с помощью схем на дискретных элементах. Основное назначение – коррекция, стабилизация режима работы цепей схем при колебаниях температуры.

Модуль датчика температуры RCK205704 применяется для контроля температуры воздуха в помещении. Используется в следующих случаях: регулятор температуры, автоматика систем отопления, автоматизация систем вентиляции.
Определяет превышение температурой установленного порога и одновременно позволяет грубо оценивать величину температуры. Пороговое значение настраивается точно, но для точного измерения температуры или для сборки электронного термометра используют другой датчик с цифровым выходом.

Индикация модуля
Красный светодиод сообщает о подаче питания. Зеленый светодиод включается при превышении температурой окружающего воздуха установленного порога. Обращая внимание на зеленый светодиод удобно проводить настройку модуля.

Проверка и настройка модуля
При включении на выходе A присутствует напряжение соответствующее температуре в комнате. Эта температура известна лишь приблизительно. Есть способы точно определить какой температуре соответствует какое напряжение выхода A. Сожмите терморезистор пальцами. Мы узнаем напряжение аналогового выхода при температуре 36,6 °C. На эти данные можно опираться в дальнейшем.
Еще одна точка зависимости – 0 °C. Используйте надежный пленочный пакетик с таящим льдом, снегом из холодильника. Получим новое значение напряжения, которому можно верить.

ВНИМАНИЕ! При подключении датчика следует тщательно соблюдать полярность питания. Переполюсовка ведет к выходу датчика из строя без права на последующий гарантийный ремонт или замену.

Arduino датчик температуры | Датчики температуры

Считываем показания датчика DS18B20 (DS18S20)

Рассмотрим как при помощи Arduino считывать показания с цифрового датчика температуры DS18B20 или DS18S20. В настоящий момент м/с DS18B20 фирмы Dallas является наиболее распространенным и доступным цифровым датчиком температуры. Работает по протоколу 1-wire. Даташит датчика: DS18B20

Датчик может запитываться двумя способами — внешним питанием (3 провода) или паразитным (питание от шины, 2 провода). Расписывать эти режимы не буду, все есть в документации. Отмечу лишь то, что в данном проекте мы будем использовать нормальное (внешнее) питание датчика.

Схема подключения датчика DS18B20 к Arduino приведена ниже. Подтягивающий Pull-Up резистор номиналом 4.7 кОм (5 кОм) включается между выводом DQ (Data) и питанием датчика Vdd.

Рабочий скетч представлен ниже. Необходима библиотека OneWire, последнюю версию которой можно скачать здесь .

После установки библиотеки, в меню появиться рабочий пример, которым и можно воспользоваться.

Мониторинг температуры на Arduino и Cosmo GSM Connect

Разберем пример устройства позволяющего удаленно отслеживать показания сенсоров, например — датчиков температуры. В качестве аппаратной части устройства будем использовать — Arduino (Uno или другие версии), GSM-шилд «Cosmo GSM Connect », датчики температуры.

Основные возможности системы.

  • Получать СМС при понижении/повышении температуры, причем индивидуально для каждого датчика.
  • Получать СМС при возвращении температуры в заданный интервал.
  • Запрашивать по дозвону текущие показания всех датчиков.

При превышении заданного порогового значения температуры произойдет отправка тревожного СМС-сообщения. При возвращении показаний датчика в нормальный температурный диапазон — отправка соответствующее СМС уведомление. Также реализуем возможность получения показания датчиков по запросу.

Для получения точных значений температуры будем использовать цифровой температурный датчик DS18B20. Его диапазон измерений от –55°C до +125°C и точность 0.5°C в диапазоне от –10°C до +85°C. DS18B20 обменивается данными по 1-Wire шине в 9-12 битном (программируется пользователем) коде с ценой младшего разряда от 0.5°C до 0.0625°C и при этом датчик может быть как единственным устройством, так и работать в группе.

Питание датчика возможно двумя способами — внешнее и паразитное питание. При паразитном питании максимально измеряемая температура составляет + 100 °C. Для расширения диапазона температур до + 125 °C необходимо использовать внешнее питание.

Сенсор DS18B20 отличается наличием во внутренней энергонезависимой памяти (EEPROM) программируемых установок по превышению температуры (TH) и по понижению температуры (TL). Внутренний регистр флага будет выставлен, когда измеренная температура больше чем TH или меньше чем TL.

Итак, возьмем два датчика DS18B20 и подключим их по паразитной схеме питания к 8 пину Ардуино.

Воспользуемся функциональной возможностью встроенной в датчик EEPROM и укажем для каждого сенсора свой диапазон температур. При пересечении этого диапазона, как в большую, так и в меньшую сторону — произойдет срабатывание регистра и в этом случае будем производить отправку тревожного СМС.

Реализуем, чтобы по возвращению температуры в заданные параметры, также отправлялось сообщение о нормализации пареметров.

Для работы с датчиками DS18B20 скачайте и установите библиотеку DallasTemperature .

Для работы с шилдом «Cosmo GSM Connect » скачайте и установите библиотеку GSM

Итак, запускаем Arduino IDE, копируем в него следующий скетч.

Редактируем номер телефона (const char RemoteID[]), с которого можно будет производить дозвон и на который будут приходить СМС. При необходимости можно убрать проверку на номер и тогда на все входящие вызовы шилд будет отправлять смс со значениями датчиков.

Задание температурного диапазона для датчика «sensor_1» от +30 до -10 градусов цельсия, выглядит следующим образом:

Аналогичным способом задаем диапазон срабатывания и для второго датчика. Уже в том случае, как будет зафиксировано значение вне заданного диапазона сработает Alarm.

Таким образом, получилась несложная система мониторинга температуры, позволяющая устанавливать каждому температурному датчику свой диапазон срабатываний.

Аналоговые датчики температуры и Arduino

В предыдущей статье я уже упоминал о том, как устроена аналоговая микросхема-датчик температуры, а сейчас предлагаю перейти к практике.

Обычно, мы получаем сенсор в корпусе TO-92 (не перепутайте с транзистором):

На фото — популярный датчик TMP36 от Analog Devices. Как видите, выводов три, и если смотреть в положении «надписью к нам, ножками вниз», то получается (слева направо): питание (Vs), выход (Vout), земля (GND). Главная особенность таких датчиков — значение напряжения на выходе однозначно определяет температуру, независимо от напряжения питания (!). Последнее может варьироваться от 2,7 до 5,5 Вольт.

Это очень удобно, и позволяет нам выполнить проверку датчика вне схемы, если под рукой есть элемент питания 3В, хотя бы даже и батарейка CR2032. В активном состоянии датчик потребляет не более 50 мкА, для проверки в течение двух-трех минут вполне хватает. Собираем схему:

Теперь, подключая мультиметр к выходу датчика (разумеется, в режиме измерения напряжения), мы будем наблюдать напряжение около 0,78 В, что соответствует 28 °С.

Чтобы убедиться в работоспособности датчика, его надо слегка нагреть, отлично подойдут:

  • пальцы рук (температура вашего тела — 36,6 °С)
  • дующий горячим возухом фен (можно довести и до 50 °C)
  • кошка (температура 38-39 °C)

Показания мультиметра должны расти при нагревании и уменьшаться при охлаждении.

Конечно, даже простого пальца будет достаточно, чтобы увидеть результат:

Теперь подключим датчик к Arduino. Пусть выход будет подключаться к analog0, а питание — к стабилизированному питанию +5В Arduinio:

Для чтения придется использовать АЦП, а ему, как известно, требуется опорное напряжение, надо выбрать один из трех вариантов: питание, внешнее на AREF или внутреннее.

Напряжение на выходе датчика TMP36 меняется от 100 мВ до 2В, так что использовать внутренний источник опорного напряжения 1,1В не получится. Хотя, такое значение у источника МК ATmega168/328, а вот в ATmega8 это будет уже 2,56 В. Гораздо проще ориентироваться на стабилизированные +5 В, которые поступают от USB.

Чтобы правильно перевести показания датчика в температуру, надо сначала понять, какое напряжение мы прочитали. АЦП возвращает число от 0 до 1023, при этом 0 = 0В, 1023 = 5В для нашего случая. Поэтому:

voltage = 5 В / 1024 * sensor

Заглянем в документацию на датчик: там оговаривается, что изменение на один градус цельсия соответствует изменению на 10 мВ, при этом 500 мВ будет соответствовать температуре 0°C. Получаем формулу:

tempC = (voltage — 0.5) * 100

Одно маленькое замечание к тексту скетча: значение опорного напряжения надо писать именно «5.0». чтобы компилятор случаем не решил разделить 5 на 1024 целочисленным делением и не получил пожизненный ноль в итоге.

Вернемся к вопросу о точности. Наш АЦП имеет шаг измерения 4,9 мВ, в то время как сам датчик имеет погрешность ±1°C, или ±10 мВ. Таким образом, даже если мы понизим опорное напряжение, например, до 3,3 В и получив таким образом шаг преобразования 3,3 / 1024 = 3,2 мВ, это повышение точности не спасет нас от ошибки самого сенсора. С другой стороны, напряжение питания +5 В тоже может запросто «гулять» ±5%, но в итоге это порождает ту же самую ошибку ±10 мВ. Таким образом, как ни крути, для данной схемы погрешность измерения будет не менее ±2°C. Из этого следует, кстати, забавный метрологический вывод: дробную часть можно отбрасывать 😉

Коптильный комплекс на базе Arduino. Шаг 3 Датчики температуры

Пора что-то подключить!!!

Начнем с датчиков температуры…. Я не буду глубоко вдаваться в теорию вопроса, но для раскрытия темы придется слегка обобщить материал.

Как уже сказано в «Шаге 0», прошивка позволяет легко менять различное подключенное оборудование. Определимся со списком этого оборудования.
На мой взгляд, на первое время будет достаточно реализовать подключение следующих датчиков:

  • 1 : LM35 ( TMP35, TMP37, LM335) National Semiconductor(диапазон −55˚…150˚C точность + / — 0.75°C)
  • 2 : 10 кОм (подтяжка 4.7К) NTC thermistor(диапазон -55…125 °C точность + / — 0.5°C) стоит в KY-013
  • 3 : 100 кОм (подтяжка 4.7К) ATC Semitec 104GT-2 thermistor (диапазон -50…300 °C точность + / — 0.6°C)
  • 4 : 200 кОм (подтяжка 4.7К) ATC Semitec 204GT-2 thermistor (диапазон -50…300 °C точность +/- 0.6°C) (добавлено 28 10 2017)
  • 5 : DS18B20 ATC Semitec 104GT-2 thermistor (диапазон -50…125 °C точность + / — 0.6-2.0°C) стоит в KY-001
  • 6 : MAX6675 + К-тип термопара (диапазон -200˚…1350˚C точность +/- 0.25°C) (добавлено 29 09 2017)
  • 7 : BME280 (диапазон -40 до + 85 °C точность + / — 1°C)
  • 8 : HTU21D (SHT21, Si7021 HDC1080) (диапазон −40˚…125˚C точность + / — 0.4°C)
  • 9 : SHT31 (диапазон 0%…100% точность +/- 2%) + Т -40-125°C +/- 0.2°C
  • 10 : AM2305/DHT22(диапазон 0%…100% точность +/- 2%) + Т -40-125°C +/- 0.4°C

Список конечно можно расширять, если это нужно….

Почему именно они?

Это популярные представители основных семейств датчиков температуры в массовом сегменте.

LM 35 — представитель семейства «интегральных датчиков температуры»

Это датчики у которых выходное напряжение пропорционально температуре по шкале Цельсия. Очень простое подключение и код для контроллера. Низкая цена. Но не терпит «вольностей» при монтаже.. Все экранируем, ставим RC цепочки… и.т.д. Смотрим  datasheet LM35.pdf (306,53 КБ)
Скачано: 263.

Основная ценность этих датчиков в том, что у них ЛИНЕЙНАЯ зависимость значения напряжения на выходе от температуры. Коэффициент 10 мВ/ °C.

10 кОм/100 кОм/200 кОм терморезисторы Точные, экономичные, живучие при высоких температурах, стабильные… в общем все вроде чудесно.. Картину портит нелинейность параметров. На разных температурах значение сопротивления на градус разные. Эта особенность отбила желание применять их у многих. Причем эти многие, не понимая причины, кричат «врут», «большая погрешность»… и.т.д. И при этом бурно аплодируют всяким «цифровым» заменителям у которых внутри они же и стоят.. Есть дрейф показателей со временем…. Да, есть трудности пересчета значений, но при нормальном подходе все очень даже не плохо..


DS18B20 Один из самых распространенных представителей семейства «цифровых датчиков температуры». Такой «крепкий середнячёк». Все у него без рекордов, средняя точность, не очень экономичные, склонны к саморазогреву и смерти на низких температурах. Требуют контроллер для снятия показаний. Но функциональность отличная… Имеют память где хранят значения, сигналят о превышении порогов температуры, 2 вида питания основное/паразитное (правда на паразитном питании сужается диапазон)…. В общем заслуженно попал в список.

MAX6675 + К-тип термопара Arduino контроллеры не в состоянии переварить данные от термопары, возможности АЦП не позволяют этого. Но если пропустить через дополнительный модуль это становится реальным. Говорить про термопару нечего, достаточно посмотреть на характеристики. (добавлено по комментарию)

AM2305, SHT31, BME280 и HTU21D — комбинированные датчики которые измеряют не только температуру но и влажность, а BME280 еще и давление. Подробней остановлюсь на них в следующем шаге. Так как попали они в список по теме влажности.. А температура уже «прицепом»…

Подключение к контроллеру

Сопротивления на 4,7 кОм нужно подобрать/купить/найти как можно более точные….

Программные вопросы

  • Выбор датчиков

В конфигурации просто поменять цифру типа датчика на нужную.

Если у Вас есть уличный температурный датчик (он является дополнительным оборудованием) установите в строке #define TEMP_SENSOR_EXT тип нужного датчика . Это действие подключит датчик наружной температуры.. Все просто.

Напоминаю: в программе существует поправка показаний датчиков. Она меняет +/- на всем диапазоне измерений..

LM35 — с ним все очень просто, расчет линейный, реализовано 3 уровня точности.

Для выбора точности поменяйте в этом месте значение:

10 кОм/100 кОм терморезисторы — расчет идет не по формуле а через массив значений. Где значению АЦП соответствует свое значение температуры:

Левая колонка — значение АЦП, правая — Температура….

Если у Вас стандартный терморезистор — ничего менять не нужно… Если непонятно что.. то тут можно подправить в нужную сторону значения АЦП…

Например: в диапазоне 15-55 градусов температура отличается от 1 до 0.5 градусов, свыше 55 температура точная…

Первый путь — Заносим в табличный редактор колонку АЦП, посчитали кол-во строк где нужно поменять. Поделили, получили вес 1 строки. Пропорционально разбросали поправку..

Второй путь — Плавно нагревая датчик, контролируем по поверочному прибору температуру и снимаем показания АЦП. Вносим их в таблицу.

Цифровые датчики сами усредняют показания, в случае аналоговых это сделано программно.

На экране Вы видите не фактические показания аналоговых датчиков, а усредненные за период. Если что-то не нравится, можно изменить эти интервалы. Меняем их в переменных:

Например: хотим обновлять на экране раз в 2 секунды

Меняем 3000 на 2000.

Сами датчики опрашиваются чаще, если мы хотим за 2 секунды делать 10 замеров то меняем 300 на 200. Если 5 замеров то меняем 300 на 600 и у переменной «const int NumRead» поменяем значение с 10 на 5.

А можно ничего не менять, выбрать свои датчики и пользоваться…. У меня с такими настройками все норм показывает…

Надеюсь понятно описал….

Подготовил новый релиз программы с подключенными датчиками температуры.

Необходимо скачать библиотеку OneWire. Скачать.

Те кто ставит первый раз, не забываем установить шрифты. Там все картинки.

И заменить прошивку контроллера.  TARNET8.RAR (12,6 КБ)
Скачано: 317 (Устарела, см. более свежие версии выше)

Так как дополнил список новыми датчиками, дополню эту статью после получения их по почте. Без практической проверки работоспособности кода публиковать его не буду.

Следующий шаг — «Вентиляторы»

Спасибо за внимание))

Список совместимых с Arduino датчиков температуры

Введение

После мигания светодиодов и управления реле с помощью Arduino каждый любитель, который активно делает проекты своими руками, планирует построить метеостанцию. Он не должен предсказывать осадки или штормы, а просто измеряет основные параметры, такие как температура и влажность.

Датчик температуры

и датчик влажности (часто они поставляются в одном корпусе, но также доступны отдельные компоненты) являются основными компонентами метеостанции Arduino.Поскольку эта статья посвящена датчикам температуры, совместимым с Arduino, давайте сосредоточимся на них.

Измерение температуры объекта или помещения с помощью Arduino — очень полезный проект. Вы можете постоянно отслеживать изменения температуры и регистрировать данные для дальнейшего анализа.

На рынке доступно множество совместимых с Arduino датчиков температуры. Некоторые из них относительно дешевы и просты в использовании, в то время как другие дороги и обладают высокой точностью.

Я составил список некоторых часто встречающихся датчиков температуры для Arduino с некоторыми основными характеристиками, перечисленными для каждого датчика.Эти датчики можно использовать с другими платами для разработки, такими как STM32F103C8T6 Blue Pill Board, Raspberry Pi, ESP8266 или ESP32.

Итак, если вы ищете идеальный датчик температуры Arduino для своего проекта «сделай сам», просмотрите список и примите решение.

ЛМ35

Сегодня существует множество датчиков температуры, которые продаются любителям и любителям. Но несколько лет назад, если говорить о датчике температуры, то LM35 был единственным выбором (по крайней мере, для меня).

Аналоговый датчик температуры LM35 IC

Это один из самых популярных доступных датчиков температуры, который используется даже сегодня. LM35 — это аналоговый датчик температуры, который откалиброван непосредственно в градусах Цельсия. Выходное аналоговое напряжение линейно пропорционально температуре в градусах Цельсия.

Передаточная функция LM35 равна

.

В ВЫХ = 10 мВ/ 0 С x T, где В ВЫХ — выходное напряжение, Т — температура в 0 С.

Передаточная функция означает, что при повышении температуры на каждый градус Цельсия выходное напряжение увеличивается на 10 мВ.

Есть еще два датчика температуры, похожие на LM35. Это LM34, который откалиброван для температуры в градусах Фаренгейта, и LM335, который откалиброван для температуры в Кельвинах.

Важные характеристики LM35:

Диапазон -55 0 С до 150 0 С
Точность ±0.5 0 С на 25 0 С
Диапазон рабочего напряжения от 4 В до 30 В
Протокол связи Аналоговый выход
Приложения Источники питания
Системы вентиляции и кондиционирования
Бытовая техника
Системы управления батареями

DHT11

Одним из часто используемых датчиков температуры в проектах Arduino является датчик DHT11.Это датчик относительной влажности, поэтому он может измерять как температуру, так и влажность.

Датчик температуры и влажности DHT11

Внутренне датчик DHT11 состоит из резистивного датчика влажности, термистора NTC (датчика температуры) и 8-разрядного MCU, который выполняет операцию АЦП для получения цифрового вывода.

Говоря о цифровом выходе, датчик DHT11 обменивается данными по однопроводному протоколу. Показатели диапазона и точности датчика температуры и влажности DHT11 не так впечатляют по сравнению с его старшим братом DHT22.

Для получения дополнительной информации о взаимодействии датчика температуры DHT11 с Arduino. Проверьте этот проект.

Важные характеристики DHT11:

Диапазон температур 0 0 С до 50 0 С
Точность измерения температуры ±2 0 С
Диапазон влажности 20 – 90 % относительной влажности
Точность влажности ±5% относительной влажности
Диапазон рабочего напряжения 3.от 3 В до 5,5 В
Протокол связи Один провод
Приложения Системы домашней автоматизации
Системы вентиляции и кондиционирования
Метеостанции

DHT22

Хотя DHT11 — отличный выбор для простых приложений, его диапазон и точность могут быть ограничивающими факторами. Следовательно, DHT22, который также является датчиком относительной влажности (следовательно, измеряет как влажность, так и температуру), считается лучшей альтернативой.

Датчик температуры и влажности DHT22

Хотя и DHT11, и DHT22 кажутся одинаковыми, между ними есть одно основное различие. DHT11 представляет собой датчик относительной влажности резистивного типа, а DHT22 — датчик относительной влажности емкостного типа.

Часто DHT11 доступен в корпусе синего цвета, а DHT22 доступен в корпусе белого цвета. Распиновка датчика DHT22 такая же, как и у DHT11. Из-за большей дальности и точности DHT22 дороже, чем DHT11.

Важные характеристики DHT22:

Диапазон температур -40 0 С до 80 0 С
Точность измерения температуры ±0.5 0 С
Диапазон влажности 0 – 100 % относительной влажности
Точность влажности ±2 % относительной влажности
Диапазон рабочего напряжения от 3,3 В до 6 В
Протокол связи Один провод
Приложения Системы домашней автоматизации
Системы вентиляции и кондиционирования
Метеостанции

Температурный датчик DHT11 и DHT22 можно подключить кабелем длиной до 20 м для удаленного измерения температуры.

ТМП36

TMP36 — еще один аналоговый датчик температуры, который очень похож на знаменитый датчик температуры LM35. Это низковольтный датчик температуры с диапазоном рабочего напряжения, начиная с 2,7 В, и температурой, откалиброванной в 0 C.

Датчик температуры TMP36 IC

TMP36 имеет масштабный коэффициент 10 мВ/ 0 C, что идентично LM35, но значения диапазона и точности немного меньше, чем у LM35. Тем не менее, это отличная альтернатива LM35, если вы заинтересованы в покупке аналогового датчика температуры.

Важные характеристики TMP36:

Диапазон -40 0 С до 125 0 С
Точность ±2 0 С при 25 0 С
Диапазон рабочего напряжения от 2,7 В до 5,5 В
Протокол связи Аналоговый выход
Приложения Источники питания
Системы тепловой защиты
Пожарная сигнализация
Мониторы энергосистемы
Управление температурой ЦП

БМП180

Датчик атмосферного давления BMP180 от Bosch, по существу, также может измерять температуру.Это делает его лучшим датчиком для интеграции в проекты мониторинга погоды или метеостанции.

Модуль датчиков давления и температуры BMP180

Поскольку BMP180 является датчиком давления, мы также можем измерять высоту над уровнем моря (чем выше высота, тем ниже давление). Благодаря своей точности, стабильности и надежности (относительно электромагнитной совместимости) датчик BMP180 часто используется в мобильных телефонах, системах GPS-навигации и других наружных устройствах.

Внутри BMP180 сочетает в себе пьезорезистивный датчик, АЦП, блок управления с EEPROM и последовательным интерфейсом в форме I 2 C.

По шине I 2 C датчик передает данные как о давлении, так и о температуре.

Важные характеристики BMP180:

Диапазон давления от 300 гПа до 1100 гПа (от 9000 м до -500 м относительно уровня моря)
Точность давления от -4 гПа до 2 гПа
Диапазон температур 0 0 С до 65 0 С
Точность измерения температуры ±2 0 С
Диапазон рабочего напряжения 1.от 8 В до 3,6 В (для датчика)

3,3–5 В (для модуля)

Протокол связи I 2 С
Приложения Мобильные телефоны
Системы GPS-навигации
КПК
Прогноз погоды
Спортивные устройства

DS18B20 — еще один цифровой датчик температуры, и он по-своему уникален.Во-первых, он обменивается данными по шине 1-Wire (разработанной Dallas Semiconductor), что означает, что для связи требуется только одна линия данных (и, конечно же, провод GND).

ИС датчика температуры DS18B20 и водонепроницаемый датчик

Второй уникальной особенностью является то, что датчик DS18B20 может питаться от самой линии передачи данных (так называемое паразитное питание). Это устраняет необходимость в каком-либо внешнем источнике питания. Третьей уникальной особенностью является возможность выбора выходного разрешения от 9 до 12 бит.

Еще одна важная особенность заключается в том, что каждый датчик DS18B20 имеет связанный с ним уникальный 64-битный серийный номер. Используя эту функцию, вы можете подключить несколько датчиков DS18B20 к одной и той же шине 1-Wire и обмениваться данными с одним микроконтроллером.

Важные характеристики DS18B20:

Диапазон -55 0 С до 125 0 С
Точность ±0,5 0 С для -10 0 С до 85 0 С
Диапазон рабочего напряжения 3В на 5.5В
Протокол связи 1-проводной
Приложения Термостатические регуляторы
Промышленные системы
Термометры
Потребительские товары

БМЕ280

Еще один датчик «все в одном» от Bosch — датчик BME280. Он может измерять давление, влажность и температуру с большим диапазоном измерения и точностью.Это датчик с низким энергопотреблением, что делает его пригодным для устройств с батарейным питанием, таких как мобильные телефоны, фитнес-трекеры, навигационные системы и т. д.

Модуль датчиков влажности, давления и температуры BME280

Датчик поддерживает интерфейсы связи I 2 C и SPI. Итак, если вы выбираете модуль, убедитесь, что доступны соответствующие выводы.

Важные характеристики BME280:

Диапазон давления от 300 гПа до 1100 гПа
Точность давления ±1 гПа
Диапазон температур -40 0 С до 85 0 С
Точность измерения температуры ±1 0 С
Диапазон влажности от 0% до 100%
Точность влажности ±3%
Диапазон рабочего напряжения 1.от 8 В до 3,6 В (для датчика)

3,3 В до 5 В (для модуля, если он имеет регулятор напряжения)

Протокол связи I 2 C или SPI (проверьте распиновку)
Приложения Мобильные телефоны
Системы GPS-навигации
КПК
Прогноз погоды
Спортивные устройства (фитнес-трекеры)

МСР9808

MCP9808 — это высокоточный цифровой датчик температуры от Microchip.Это маломощный датчик, который обменивается данными через I 2 C или SMBus. Типичная точность ±0,25 0 C делает его одним из самых точных датчиков температуры в списке.

Модуль датчиков температуры MCP9808

Используя три контакта с регулируемым адресом, вы можете подключить до 8 датчиков температуры MCP9808 к одной и той же шине I 2 C. Такая установка подходит для приложений мониторинга температуры в нескольких зонах.

Важные характеристики MCP9808:

Диапазон -40 0 С до 125 0 С
Точность ±0.25 0 С
Диапазон рабочего напряжения от 2,7 В до 5,5 В
Протокол связи I 2 С/SMBus
Приложения Промышленный морозильник
Пищевая промышленность
Персональные компьютеры
Портативные устройства

Si7021

Si7021 — это интегрированный датчик влажности и температуры от Silicon Labs.ИС объединяет датчик влажности, датчик температуры, АЦП и интерфейс связи I 2 C.

Модуль датчика температуры Si7021

Датчики влажности и температуры откалиброваны на заводе, и нет необходимости в калибровке пользователем. Si7021 представляет собой датчик малой мощности с высокоточным датчиком температуры.

Важные характеристики Si7021:

Диапазон температур -10 0 С до 85 0 С
Точность измерения температуры ±0.4 0 С
Диапазон влажности 0–80 % относительной влажности
Точность влажности ±3% относительной влажности
Диапазон рабочего напряжения от 1,9 В до 3,6 В (для датчика)
Протокол связи I 2 С
Приложения Термостаты
Системы вентиляции и кондиционирования
Метеостанции
Мобильные телефоны
Автомобильный климат-контроль

ТС74

Довольно редко можно увидеть датчики температуры в корпусе ТО-220, но ТС74 является одним из таких устройств.Это последовательный цифровой датчик температуры, используемый в недорогих приложениях. Это не высокоточный датчик температуры, но его низкая стоимость и корпус TO-220 (также доступный в SOT-23) делают TC74 хорошим выбором для широкого круга проектов.

Датчик температуры TC74 IC

Коммуникационный интерфейс TC74 — I 2 C или SMBus со скоростью 100 кГц.

Важные характеристики TC74:

Диапазон 25 0 С до 85 0 С
Точность ±2 0 С
Диапазон рабочего напряжения 2.от 7 В до 5,5 В
Протокол связи I2C/SMBus
Приложения Жесткие диски
Источники питания
Персональные компьютеры
Термостаты

РСТ2075

Отличный цифровой датчик температуры I 2 C от NXP — PCT2075. Если вы знакомы с датчиком температуры LM75, то PCT2075 — очень хорошая альтернатива ему.

Модуль датчика температуры PCT2075

Датчик PCT2075 содержит 11-разрядный сигма-дельта АЦП с разрешением 0,125 0 C. Шина I 2 C модуля PCT2075 поддерживает стандартный режим (100 кГц), быстрый режим (400 кГц) и быстрый режим плюс (1 МГц) частоты.

Важные характеристики PCT2075:

Диапазон -55 0 С до 125 0 С
Точность ±2 0 С
Диапазон рабочего напряжения 2.от 7 В до 5,5 В
Протокол связи I2C/SMBus
Приложения Электронное оборудование
Промышленные контроллеры
Персональные компьютеры
Системы охлаждения

АМТ1001

Еще одним комбинированным датчиком, который может измерять как относительную влажность, так и температуру, является датчик AMT1001.Это датчик с аналоговым выходом емкостного типа с отдельными выходами для влажности и температуры.

Датчик температуры и влажности AMT1001

ВАЖНОЕ ПРИМЕЧАНИЕ. Датчик AM1001 измеряет только относительную влажность, тогда как AMT1001 измеряет как относительную влажность, так и температуру. Будьте осторожны при его покупке.

Важные характеристики AMT1001:

Диапазон влажности От 20 % до 90 % относительной влажности
Точность влажности ±5%
Диапазон температур 0 0 С до 50 0 С
Точность измерения температуры ±1 0 С
Диапазон рабочего напряжения 4В на 5.5В
Протокол связи Аналоговый выход
Приложения ОВКВ
Увлажнители
Осушители

Заключение

Это список некоторых часто используемых датчиков температуры Arduino. Если я найду какие-либо дополнительные датчики по разумной цене и подходящие для применения в домашних условиях, я добавлю их в будущем.Для получения дополнительной информации об отдельных датчиках я предлагаю вам найти лист данных производителя.

Рабочий прототип с датчиком температуры DS18B20 и Arduino для мониторинга состояния здоровья

Предлагаемая система включает: (a) проектирование системы, (b) установку системы и (c) программирование. На рис. 3 показаны различные важные этапы интегрированного прототипа.

Рис. 3

Другая стадия предлагаемого прототипа

Используемые аппаратные компоненты

Различные используемые аппаратные компоненты описаны ниже: среди различных физиологических первичных параметров, наблюдаемых у пациента, есть температура тела.Таким образом, датчик температуры тела необходим для сбора температуры как жизненно важного сигнала, который измеряется с помощью встроенной системы, связанной с датчиком и обрабатывающей жизненно важный сигнал. Здесь используется датчик температуры DS18B20 [26, 28], показанный на рис. 4 [26, 28, 29]. Дополнительные функции используемого датчика температуры: 1-проводной интерфейс, 64-битный последовательный порт, хранящийся во встроенном ПЗУ, не требующий внешнего компонента. Он работает от источника питания 3.0v-5.5v.

Рис. 4

Датчик температуры DS18B20

После сбора данных датчика с помощью датчика температуры, необходимого для подключения к интерфейсу и источнику питания системы, здесь используется Arduino с микроконтроллером ATmega328.Предлагаемая нами система использовала Arduino Nano, показанную на рис. 5 [30]. Основная цель использования Arduino Nano заключается в том, что он встроен в ATmega328. Он имеет много преимуществ перед Arduino Uno. ATmega328 — это 8-разрядный микроконтроллер AVR производства Microchip, соответствующий архитектуре RISC и имеющий программную память флэш-памяти объемом 32 КБ. ATmega328 имеет 28 контактов. ATmega328 имеет 1 КБ электрически стираемой программируемой постоянной памяти (EEPROM) и 2 КБ памяти SRAM.

Рис. 5

Arduino Nano с конфигурацией контактов

Встроенный датчик и микроконтроллер используются для сбора данных с тела пациента и должны быть подключены к отделению интенсивной терапии или компьютеру.Как правило, на рынке доступны различные типы коммуникационных модулей, такие как Bluetooth, Wi-Fi, ZigBee, экранированный кабель USB и т. д. В частности, приложение, подобное предлагаемой нами системе, может быть определено путем изучения нескольких характеристик, таких как энергопотребление, скорость передачи данных и диапазон. Основываясь на приведенных выше характеристиках, ZigBee используется для беспроводной связи, показанной на рис. 6 [25], и для проводного соединения с экранированным кабелем USB, когда пациенты находятся в зоне действия отделения интенсивной терапии или компьютера.В приложениях для здравоохранения ZigBee больше подходит для других видов беспроводной связи. ZigBee имеет следующие особенности, такие как очень низкое энергопотребление, очень большой радиус действия ZigBee (от 300 футов до 40 миль), низкая скорость передачи данных в ZigBee (250 кбит/с), а также низкая стоимость.

Рис. 6

Коммуникационный модуль ZigBee

Используемые программные компоненты

В предлагаемой системе различное аппаратное обеспечение описано выше, теперь необходимо соединить аппаратное обеспечение с программной системой и установить надежную систему связи для здравоохранения.В предлагаемой системе используется различное программное обеспечение и API.

Arduino IDE

Arduino IDE [24, 32], т. е. интегрированная среда разработки Arduino. Он подключается к Arduino и оборудованию для загрузки программ и связи с ними. Программы пишутся в редакторе Arduino IDE. Это открытая и простая среда программирования для модулей Arduino.

Microsoft Visual Basic 6

Программы, созданные с помощью Visual Basic, работают в Windows, в Интернете, в приложениях Office или на мобильных устройствах.С помощью Visual Studio программы создаются совместимыми на всех этих платформах, поэтому их предпочитают все педагоги и начинающие исследователи. Visual Studio.NET предоставляет средства разработки для создания программ на основе платформы .NET, таких как приложения ASP.NET, которые часто развертываются в Интернете.

WAMP Server

WAMP Server [33, 34] позволяет нам разрабатывать динамические приложения на основе Интернета с MySQL, PHP и Apache 2 [35]. WAMP Server автоматически устанавливает все необходимое для интуитивно понятной разработки веб-приложений.Существует множество полезных сервисов MySQL для управления базами данных, переключения онлайн/офлайн для предоставления доступа всем или только для локального хоста и управления серверами.

XCTU

XBee Configuration and Test Utility (XCTU) [20] — это программа, с помощью которой пользователи могут взаимодействовать с устройствами, поддерживающими цифровую радиочастоту (RF), через графический интерфейс. Встроенные инструменты этого приложения упрощают настройку, настройку и тестирование цифровых радиочастотных устройств.

Внедрение рабочего прототипа

Теперь все программное обеспечение, необходимое для предлагаемой системы, установлено, а аппаратная система настроена должным образом.В этой предлагаемой системе используются два типа связи: один — проводная связь для пациента, который находится в статическом положении, с использованием экранированного USB, а другой — беспроводная связь для мобильного пациента, использующая связь ZigBee. Здесь датчик температуры тела используется для считывания жизненно важных показателей тела для анализа и определения состояния лихорадки в соответствии с заранее определенной медицинской научной информацией. Блок-схема обеих систем показана на рис. 7 и 8.

Рис. 7

Использование связи ZigBee

Рис.8

При проводном подключении датчик температуры тела подключается к центральному блоку управления, здесь микроконтроллер Arduino с соответствующими подключениями макетной платы. Затем Arduino подключается к ПК и передает данные в режиме реального времени на ПК. В случае беспроводного соединения CCU или Arduino подключаются к передатчику ZigBee на плате барда при правильном подключении, а приемник ZigBee подключается к ПК. Оба соединения показаны на рис. 9 и 10.

Рис. 9

Проводное подключение реализованной системы

Рис.10

Беспроводное подключение реализованной системы

Теперь необходимо установить все программное обеспечение для создания системы сбора данных в режиме реального времени. Для каждого пользователя создается уникальный идентификатор вместе с несколькими атрибутами, например. возраст, пол, адрес, контакт, электронная почта и т. д. Все эти данные хранятся в базе данных, которая включает в себя атрибут ПК, необходимый для предлагаемой системы, создает систему подключения данных в реальном времени, где пользователь может создать собственный идентификатор, который включает атрибут и серверная база данных, показанные на рис.11, в котором хранятся данные для будущих целей.

Рис. 11

Серверная база данных системы

Теперь предлагаемая система готова к мониторингу пациента по температуре тела. Нормальная температура тела человека изменяется в зависимости от пола, постоянного движения, питания и использования жидкости, времени суток, а у женщин — в течение фазы менструального цикла. Типичная температура тела может варьироваться от 97,8 ° F (36,5 ° C) до 99 ° F (37,2 ° C) у здорового взрослого человека. Температуру тела человека [21–25] можно измерить любым из сопутствующих способов, указанных ниже:

Орально и ректально

Оральная и ректальная температура [21] измеряется врачами с помощью большого стеклянного термометра или компьютеризированных термометров.Обычно ректально измеренная температура находится в диапазоне от 0,5°F до 0,7°F.

Подмышка (подмышечная)

Температуру в подмышечной впадине [21] можно измерить с помощью стеклянного или современного термометра. Как правило, температура должна быть на 0,3–0,4 °F ниже температуры, измеряемой через рот.

На слух и на кожу

Для измерения ушной и кожной температуры можно использовать специальный термометр [21].

Внутривенно

Этот метод [20] используется для людей в критическом состоянии и в отделении интенсивной терапии путем размещения измерительных датчиков в пищеводе, сердце или мочевом пузыре.Температура тела может быть ненормальной из-за лихорадки (высокая температура) или гипотермии (низкая температура). По данным Американской академии семейных врачей, температура на 1° выше нормальной температуры 98,6 °F считается лихорадкой, а гипотермия определяется как падение температуры тела ниже 95 °F.

В приведенной выше системе используется датчик температуры DS18B20 для измерения температуры тела пациента вместо термометра и устанавливается лабораторная среда в нашей лаборатории Интернета вещей. Хотя этот датчик используется для сбора температуры тела из вышеуказанного положения тела.Температура собирается в виде аналогового сигнала и отправляется на ноутбук, который действует как локальный сервер с использованием микроконтроллера Arduino. В ПК VB используется как интерфейсное программное обеспечение, которое отображает и хранит данные в определенном формате. Собраны данные, которые хранятся в базе данных. Здесь, используя программирование VB, полученные данные анализируются относительно. медицинское определение приведено в таблице 2, рис. 12. Отображается температура здоровья пациента и соответствующее состояние здоровья.

Рис. 12

Медицинские данные в программе VB

Таблица 2 Нормальный диапазон температуры тела для взрослых и детей по данным медицины [20–25]

Arduino DS18B20 Монитор температуры воды

Датчики окружающей среды имеют большое значение значение во встроенных приложениях.Многие датчики температуры измеряют температуру окружающей среды или температуру поверхности. Для измерения температуры воды и других жидкостей требуются водонепроницаемые датчики температуры. Одним из таких датчиков температуры является DS18B20. Этот датчик может измерять температуру воздуха, жидкостей, таких как вода, и земли. Датчик поставляется в двух форм-факторах, один из которых представляет собой водонепроницаемый модуль. Его можно использовать для измерения температуры в таких приложениях, как электрические паровые плиты, электрические чайники и резервуары для хранения воды с регулируемой температурой.

В этом проекте мы продемонстрировали работу DS18B20, связав его с Arduino. Датчик не требует каких-либо внешних компонентов для взаимодействия с контроллером/компьютером. Он использует однопроводной интерфейс для двусторонней передачи данных с контроллером, что упрощает взаимодействие. Датчик поставляется в упаковке ТО-92. Он доступен в двух форм-факторах — в одном он поставляется в простом транзисторном корпусе, а в другом — в водонепроницаемом корпусе.

Примеры цифрового термометра DS18B20 1-Wire

Для демонстрации на макетной плате в этом проекте мы используем транзисторный форм-фактор. Показания температуры с датчика считываются Arduino, которые отображаются на OLED-дисплее SSD1306.

Необходимые компоненты

  1. Ардуино УНО x1
  2. DS18B20 1-проводной датчик температуры x1
  3. SSD1306 OLED-дисплей x1
  4. Резистор 4,7 кОм x1
  5. Макет
  6. Соединительные провода/перемычки

DS18B20 1-проводной датчик температуры
DS18B20 — это 1-проводной цифровой термометр от Dallas Semiconductor Corp.Он основан на 1-проводном интерфейсе, который требует только один контакт для подключения цепи. Датчик имеет 64-битный уникальный серийный код для адресации интерфейса 1-wire. Он поддерживает многоточечную связь, что позволяет подключать множество датчиков DS18B20 к одной линии передачи данных в виде распределенной сети. Возможно даже запитать датчик от самой линии передачи данных.

Датчик выводит измерение температуры с разрешением от 9 до 12 бит. Диапазон рабочих температур DS18B20 составляет от -55°C до 125°C с точностью +/-0.5˚С. Разрешение датчика по умолчанию составляет 12 бит, что позволяет ему измерять температуру с точностью до 0,0625°C. Этому датчику температуры требуется менее 750 мс для преобразования показаний. Таким образом, можно легко получать измерения температуры с интервалом в 1 секунду из сети датчиков.

Рабочее напряжение DS18B20 составляет 3,3~5 В, а потребляемый ток составляет около 1 мА. Следовательно, его можно легко подключить к любому микроконтроллеру или микрокомпьютеру, если для этой платформы доступна программная библиотека для интерфейса 1-wire.При таком минимальном потреблении тока и простом интерфейсе 1-wire можно даже подключить DS18B20 к маломощным микрокомпьютерам, таким как Raspberry Pi.

DS18B20 имеет следующую схему контактов:

Схема контактов датчика температуры DS18B20 1-wire

В водонепроницаемой версии датчика контакты обозначены цветовой маркировкой. Линии GND, Data и VDD обозначаются черным, желтым и красным проводами. Следует отметить, что в наличии есть и некоторые китайские модели сенсора.В этих моделях конфигурация контактов обратная, т. е. на виде спереди левый контакт — это VDD, затем Data, а крайний правый — GND.

Соединения цепей
В этом проекте мы соединяем DS18B20 и SSD1306 OLED с Arduino UNO. Для взаимодействия с DS18B20 подключите контакты GND и VDD датчика к контактам заземления и выхода 5V на Arduino соответственно. Контакт данных датчика может быть подключен к любому GPIO. В этом проекте контакт данных подключен к D2 Arduino.Для стабилизации линии данных рекомендуется использовать подтягивающий резистор 4,7 кОм для связи между выводом данных и выводом питания. Встроенных в Arduino подтягивающих резисторов недостаточно для реализации протокола 1-wire. Если внешний резистор не подключен во время взаимодействия с Arduino, плата может неправильно считывать данные с датчика. Также важно обеспечить правильные соединения для подачи напряжения. Обратное напряжение, подаваемое на датчик, может легко нагреть его до необратимого выхода из строя.

OLED-дисплей подключен для отображения показаний температуры. SSD1306 взаимодействует с Arduino через физический SPI-порт Arduino. Для взаимодействия с OLED-дисплеем SSD1306 через физический порт SPI подключите контакты D0/SCK и D1/MOSI OLED-дисплея SSD1306 к контактам D13 и D11 Arduino соответственно. Подключите контакты DC, RESET и CS SSD1306 к контактам D9, D10 и D8 Arduino соответственно.

Принципиальная схема монитора температуры воды DS18B20 на базе Arduino

Библиотеки Arduino для DS18B20

Прежде всего, для работы с DS18B20 требуется одна библиотека проводов.Его можно найти в менеджере библиотек Arduino IDE. Его также можно вручную загрузить в формате ZIP по этой ссылке. Библиотека one-wire предназначена для управления передачей данных по интерфейсу 1-wire. Другая библиотека, необходимая для DS18B20, — это аппаратная библиотека для реализации протокола Dallas 1-wire. Его можно найти в менеджере библиотек как DallasTemperature или загрузить в виде ZIP-файла по этой ссылке.

Эскиз Arduino

}]]>

Как это работает
Датчик имеет аппаратно-зависимый протокол 1-wire, который реализован библиотекой Dallas Temperature.Arduino взаимодействует с DS18B20 по протоколу 1-wire. Протокол может быть реализован на любом GPIO. Arduino считывает температуру с датчика, обнаруживая специфичные для протокола сигналы на выводе данных и сохраняя значение в переменной. Считанное измерение температуры затем отображается на OLED-дисплее SSD1306.

Руководство по программированию
Скетч начинается с импорта библиотек OneWire и DallasTemperature для работы с датчиком температуры DS18B20. Затем импортируются библиотеки SPI, Wire, Adafruit_GFX и Adafruit_SSD1306 для работы с OLED-дисплеем.Определена константа, указывающая линию данных для датчика температуры. Создается экземпляр объекта класса OneWire, и этот же объект используется для создания экземпляра объекта класса DallasTemperature. Определены константы для разрешения экрана и соединения контактов OLED-дисплея. Объект класса Adafruit_SSD1306 создается с использованием SPI, явно указанного в качестве протокола взаимодействия. Объявлена ​​глобальная переменная «temp» для хранения значений температуры. Растровое изображение хранится в PROGMEM для лога сайта, и для него определяется массив.

В функции setup() DS18B20 инициализируется вызовом метода sensor.begin(). Скорость передачи данных составляет 9600 бит/с при вызове метода Serial.begin(). OLED-дисплей инициализируется вызовом метода display.begin(), а логотип сайта отображается на OLED-экране вызовом метода display.drawBitmap().

В функции loop() показания температуры из DS18B20 берутся путем вызова метода sensor.requestTemperatures(), а доступ к полученному значению осуществляется в переменной через датчики.Метод getTempCByIndex(0). Считанное значение температуры передается на последовательный порт и отображается на OLED-дисплее.

Результат

Схема монитора температуры воды DS18B20 на базе Arduino.

 

Демонстрационное видео


Рубрики: Arduino, Электронные проекты
С тегами: Arduino, Arduino DS18B20, проекты Arduino, DS18B20, датчик температуры DS18B20
 

(PDF) Сравнение выбранных датчиков температуры, совместимых с платформой Arduino

E.ШКУЛТЕТИ, Э. ПИВАРЧИОВА, Л. КАРРАХ – Сравнение выбранных датчиков температуры…

171

датчик необходимо периодически калибровать для обеспечения точности

измеренных данных. Работоспособность отдельных частей

технологического оборудования можно оптимизировать путем калибровки

с правильными значениями неопределенности и тем самым сделать его работу более эффективной [9].

Текущая тенденция в области датчиков температуры заключается в более широком использовании

микроэлектронной технологии e.грамм. при реализации полупроводниковых датчиков температуры

на одном кристалле с

аналоговыми и цифровыми схемами, позволяющими подключать датчики

к сигнальным шинам, при разработке новых типов

детекторов теплового излучения, при интеграции температурных датчиков

преобразовать датчики в интеллектуальные датчики для автоматической коррекции изменений, вызванных колебаниями температуры [4].

Практическое применение измерения и регулирования температуры

в технике производства в области

технического обслуживания и технической диагностики.К современной технологии механической обработки

предъявляются высокие требования

по надежности и ранней диагностике неисправностей. Каждый станок с ЧПУ имеет стандартную операционную диагностику

. Типичными величинами, которые отслеживаются

, являются температура обмотки двигателя и температура охлаждающей жидкости

. Измерение температуры имеет важное значение, например, при диагностике электроприводов [15], анализе контактных напряжений [16], при определении остаточных напряжений [17], в вибросигналах машин [18].

БЛАГОДАРНОСТИ

Статья подготовлена ​​в рамках выполнения НИР

проекта КЕГА 003ТУ З-4/2016 «Научно-образовательная лаборатория робототехники

», КЕГА 001ТУ З-4/2016 «Поддержка

5 Учеба по тепломассообмену в техническом образовании» и ВЕГА 1/0086/18 «Исследование температурных

полей в наборе фигурных поверхностей теплообмена».

ССЫЛКИ

[1] M. Kreidl.Měření teploty – Сенсоры и мержи обводы.

Praha: BEN – technická literatura, 2005.

[2] P. Beneš, J. Chlebný, J. Král, J. Langer and M. Mar-

tinásková. Автоматизация и автоматизация техники 3

– Пространство автоматизации техники. Брно: Компьютер

ter Press, 2014.

[3] Л. Хибовски, К. Гавдзиньска и Б. Вишницки. «Качественные меры важности компонентов систем

– новый подход и его приложения».Менеджмент-

Системы управления производством, том. 24, нет.

4, стр. 237-246, 2016.

[4] Й. Штурцель. Снимайте и преводники. Братислава: Vyda-

vateľstvo STU, 2002.

[5] P. Koleda, P. Koleda and S. Grúbel. «Анализ температур в зоне литейной формы в процессе литья головок цилиндров двигателей

». Acta facultatis tech-

nicae, vol. 1, стр. 31-40, 2016.

[6] С. Гирей.«Большие данные в промышленности – обзор избранных вопросов

». Системы управления производством

Машиностроение, вып. 25, нет. 4, стр. 251-254, 2017.

[7] М. Крейдл и Р. Шмид. Техническая диагностика – Датчики

зори, методы, анализ сигналов. Praha: BEN – tech-

nicka literatura, 2006.

[8] P. Beneš, J. Janeček, J. Král, G. Künzel, B. Lacko, J. Se-

merád, P. Souček, Л. Шмейкал, Р. Ворачек, Л. Майкснер

и Б.Шульц. Автоматизация и автоматизация техники

1 – Автоматизация системного программирования. Брно: Компьютер

Press, 2012.

[9] Р. Стрнад. «Měření teploty – porozumění vlastno-

stanměřicího přístroje». Автома, том. 15, нет. 6, стр.

31-38, 2009.

[10] С. Сурья и С. С. Чаухан. «Индикатор уровня воды

с датчиком температуры». Журнал IOSR по электротехнике

и электронике, том. 10, нет. 3, с.65-71,

2015.

[11] П.Д. Патил и Р. Д. Патил. «Проектирование мультисенсорной системы Em-

с подложкой с использованием PSoC». Международный журнал

Current Advanced Research, vol. 8, нет. 4, pp. 271-

274, 2015.

[12] Г. Грициус, Д. Друнгилас, А. Андзиулис, Д. Дземидиене,

М. Вознак, М. Курмис и С. Яковлев. «Расширенный подход

к многоагентной связи с буями —

». Журнал «Научный мир», том.2015, 2015.

[13] Х. Цзин. «Проектирование и разработка системы измерения температуры

». Международный журнал

Управление и автоматизация, том. 8, нет. 2, pp. 409-416,

2015.

[14] №. Нашчак и П. Коледа. «Регулирование теплоты модели

тепловоздушных вспомогательных программ автоматических

том». Acta facultatis technicae, vol. 1, с. 127-133,

2014.

[15] И.В. Абрамов, А.И.Абрамов, З.Р. Никитин, Э. Сосно-

вич, П. Божек и В. Столлманн. «Диагностика электроприводов

», в сб. Международной конференции

Электроприводы и силовая электроника, 2015, стр.

364-367.

[16] П. Франковский, О. Остертаг, Ф. Требуня, Э. Остерта-

гова и М. Келемен. «Методика контактного

анализа напряжений зубчатого колеса с помощью экспериментальной

фотоупругости».Прикладная оптика, т. 1, с. 55, нет.

18, стр. 4856-4864, 2016.

[17] К. Маслакова, Ф. Требуня, П. Франковски и

М. Бинда. «Применение тензорезистора – для определения прекращения остаточных напряжений методом кольцевого стержня

». Procedia Engineering, vol. 48, стр. 396-401,

2012.

[18] Т. Стейскал, Дж. Ковач и С. Валенсик. «Механизм

случайности в вибрационных сигналах машин», в сб.

Сб.Международной конференции по промышленной, сервисной и гуманоидной робототехнике, 2012 г., стр. 257-262.

Инж. Эмиль Шкултети

Доц. Проф. Елена Пиварчиова, PhD.

Инж. Ладислав Каррах

Технический университет в Зволене

Факультет экологических и производственных технологий

Факультет технологии производства и автоматизации

Študentská 26, 960 53 Зволен, Словакия

e-mail: [email protected]

[email protected] (ответственный автор)

[email protected]

Урок Arduino – TMP36 – kookye.com

Бьямбер

Урок Arduino — TMP36

Содержание
  1. Введение
  2. Подготовка
  3. О TMP36
  4. Соединение
  5. Загрузить эскиз
  6. Результат выполнения программы

На самом деле измерять температуру с помощью Arduino не намного проще, чем с датчиком температуры TMP36 от Analog Device! Датчик может измерять довольно широкий диапазон температур (от -50°C до 125°C), достаточно точен (0.разрешение 1°C) и очень низкая стоимость, что делает его популярным выбором. В этом уроке мы рассмотрим основы TMP36 и напишем базовый код для чтения аналогового входа, к которому он подключен.

Оборудование

  • Плата Osoyoo UNO (полностью совместимая с Arduino UNO rev.3) x 1
  • ТМП36
  • Макетная плата x 1
  • Перемычки
  • USB-кабель, 1 шт.
  • шт. x 1

Программное обеспечение

  • Arduino IDE (версия 1.6.4+)

Обзор

TMP36 — низковольтные прецизионные датчики температуры по Цельсию. Они обеспечивают выходное напряжение, линейно пропорциональное температуре в градусах Цельсия. TMP36 не требует какой-либо внешней калибровки для обеспечения типичной точности ±1°C при +25°C и ±2°C в диапазоне температур от -40°C до +125°C.

Особенности и преимущества TMP36

  • Работа при низком напряжении (от 2,7 В до 5,5 В)
  • Откалиброван непосредственно в °C
  • Масштабный коэффициент 10 мВ/°C (20 мВ/°C на TMP37)
  • Точность ±2°C относительно температуры (тип.)
  • ±0.Линейность 5°C (тип.)
  • Устойчивость к большим емкостным нагрузкам
  • Специфицировано от −40°C до +125°C, работа до +150°C
  • Ток покоя менее 50 мкА
  • Ток выключения макс. 0,5 мкА
  • Низкий самонагрев
  • Сертифицировано для применения в автомобилях

Определения контактов

Микросхема имеет всего 3 вывода, 2 для питания и один для аналогового выхода. Выходной контакт обеспечивает выходное напряжение, которое линейно пропорционально температуре по Цельсию (по Цельсию).Чтобы получить температуру в градусах Фаренгейта, мы должны написать код для Arduino, чтобы преобразовать эту температуру по Цельсию в градусы Фаренгейта.

Ниже приведена распиновка микросхемы TMP36:

Контакт 1 получает положительное постоянное напряжение для работы ИС. Это, опять же, напряжение между 2,7-5,5В. Контакт 3 — это земля, поэтому он получает заземление или отрицательную клемму источника питания постоянного тока. А контакт 2 — это выход микросхемы, выдающий аналоговое напряжение пропорционально измеряемой температуре.

Как измерить температуру

Использовать TMP36 легко, просто подключите левый контакт к источнику питания (2,7-5,5 В), а правый контакт к земле. Тогда средний контакт будет иметь аналоговое напряжение, прямо пропорциональное (линейное) температуре. Аналоговое напряжение не зависит от источника питания.

Чтобы преобразовать напряжение в температуру, просто используйте основную формулу:

Температура в °C = [(Vout в мВ) – 500 ] / 10

Так, например, если выходное напряжение равно 1 В, это означает, что температура равна ((1000 мВ – 500) / 10) = 50 °C

Проблемы, с которыми вы можете столкнуться при использовании нескольких датчиков:

Если при добавлении большего количества датчиков вы обнаружите, что температура непостоянна, это указывает на то, что датчики мешают друг другу при переключении цепи аналогового считывания с одного контакта на другой.Вы можете исправить это, сделав два отложенных чтения и выбросив первое.

В отличие от датчиков с фотоэлементами, которые мы рассмотрели, TMP36 и его аналоги не действуют как резистор. Из-за этого на самом деле есть только один способ считать значение температуры с датчика — подключить выходной контакт непосредственно к аналоговому (АЦП) входу.

Цепь датчика температуры, которую мы создадим, показана ниже:

Контакт 1 TMP36 подключается к +5 В Arduino
Контакт 2 TMP36 подключается к аналоговому контакту A0 Arduino
Контакт 3 TMP36 подключается к земле (GND) Arduino

Помните, что вы можете использовать любое значение между 2.7В и 5,5В в качестве источника питания. В этом примере я показываю это с питанием 5 В, но обратите внимание, что вы можете использовать это с питанием 3,3 В так же легко. Независимо от того, какой источник питания вы используете, показания аналогового напряжения будут варьироваться от примерно 0 В (земля) до примерно 1,75 В.

Если вы используете Arduino 5 В и подключаете датчик напрямую к аналоговому выводу, вы можете использовать эти формулы для преобразования 10-битного аналогового показания в температуру:

Напряжение на выводе в милливольтах = ( показания АЦП ) * (5000/1024)
Эта формула преобразует число 0-1023 от АЦП в 0-5000 мВ (= 5 В)

Если вы используете 3.3V Arduino, вы можете использовать это:

Напряжение на выводе в милливольтах = ( показания АЦП ) * (3300/1024)
Эта формула преобразует число 0-1023, полученное от АЦП, в 0-3300 мВ (= 3,3 В)

Затем, чтобы преобразовать милливольты в температуру, используйте эту формулу:

Температура по Цельсию = [(аналоговое напряжение в мВ) – 500] / 10

Код программы

После завершения вышеуказанных операций подключите плату Arduino к компьютеру с помощью USB-кабеля.Зеленый светодиод питания (обозначенный PWR ) должен загореться. Откройте среду разработки Arduino и выберите соответствующий тип платы и тип порта для вашего проекта. Затем загрузите следующий скетч на Arduino.

 // Переменные контактов TMP36
внутренний датчикPin = 0; // аналоговый вывод, к которому подключен вывод Vout (sense) TMP36
                        //разрешение 10 мВ/градус Цельсия с
                        //смещение 500 мВ для учета отрицательных температур
/*
 * setup() — эта функция запускается один раз при включении Arduino
 * Инициализируем последовательное соединение с компьютером
 */
недействительная установка ()
{
    Серийный номер  .начало (9600); //Запускаем последовательное соединение с компьютером
                       //для просмотра результата открываем последовательный монитор
}
 
void loop() // запускаем снова и снова
{
 //получаем показания напряжения с датчика температуры
 чтение int = AnalogRead (SensorPin);
 // преобразование этого показания в напряжение, для 3,3 В Arduino используйте 3,3
 плавающее напряжение = показание * 5,0;
 напряжение /= 1024,0;
 // распечатать напряжение
   Серийный номер  .печать (напряжение);  Серийный номер  .println(" вольт");
 // теперь выводим температуру
 температура поплавка C = (напряжение - 0,5) * 100 ;//преобразование из 10 мВ на градус со смещением 500 мВ
 //в градусах ((напряжение - 500мВ) умножить на 100)
   Серийный номер  .print(температураC);  Серийный номер  .println("градусы C");
 // теперь конвертируем в градусы Фаренгейта
 поплавковая температура F = (температура C * 9,0 / 5,0) + 32,0;
   Серийный номер  .print(температураF);  Серийный номер  .println(" градусов по Фаренгейту");
 задержка(1000); // ждем секунду
}

 

В конце этой программы мы установили задержку в 1000 мс, чтобы измерять температуру каждую секунду. Вы можете настроить это значение в соответствии с вашими личными предпочтениями или потребностями программы.

Результат выполнения

Через несколько секунд после завершения загрузки откройте Serial Monitor, теперь вы должны увидеть показания напряжения и температуры, отображаемые с интервалом в одну секунду.

Примечание. Убедитесь, что вы выбрали правильный порт и правильную скорость передачи для вашего проекта.

Лучшие датчики температуры для Arduino

Пользователи-новички или пользователи, которые только начинают учиться пользоваться электронными досками, часто учатся использовать светодиодные индикаторы и соответствующие программы. После фар, как правило, многие пользователи начинают учиться пользоваться датчиками температуры.

Далее мы поговорим о датчиках температуры, которые существуют для Arduino , их положительных сторонах, их отрицательных сторонах и о том, какие именно проекты мы можем с ними делать.

Что такое датчик температуры?

Датчик температуры — это компонент, который собирает данные о температуре и/или влажности снаружи и преобразует их в цифровой или электронный сигнал, который отправляет на электронную плату, такую ​​как плата Arduino. Есть много типов датчиков и для многих областей. С у нас есть датчик температуры для любителей, который мы можем получить за 2 евро, до профессиональных датчиков температуры, которые стоят около 200 евро за единицу . Разница между дешевым датчиком температуры и дорогим датчиком температуры заключается в характеристиках, которые он предлагает.

Точность между фактической температурой и температурой датчика является одним из основных факторов, влияющих на дифференциацию; Еще один фактор, который меняется, — это максимальная и минимальная температура, которую они допускают, поскольку профессиональный датчик температуры поддерживает большее количество градусов. Время отклика, чувствительность или смещение — это другие элементы, отличающие один датчик температуры от другого . В любом случае, все они доступны для наших проектов и только их стоимость может ограничить покупку того или иного.

Какие варианты у меня есть для моей платы Arduino?

Здесь мы покажем вам некоторые из самых известных и популярных датчиков, которые мы можем найти в любом магазине электроники или в интернет-магазинах по небольшой цене или в упаковках по несколько штук по низкой цене. Они не единственные, но Да, они самые популярные и известные сообществу Arduino , что гарантирует, что у нас будет широкая поддержка каждого датчика температуры.

Датчик температуры MLX

ESF


Несмотря на немного странное название, правда в том, что датчик температуры MLXESF это датчик температуры, который использует инфракрасный свет для измерения температуры.Таким образом, этому датчику необходимо, чтобы имел поле зрения 90º, а средняя температура, которую он принимает, отправит его через 10-битный сигнал на плату Arduino . Сигнал отправляется в цифровом виде по протоколу I2C, или мы также можем использовать протокол PWM. Несмотря на наличие передовых технологий, этот датчик имеет довольно низкую цену, мы можем найти его в магазинах электроники примерно за 13 евро, что является низкой ценой, если принять во внимание возможности, которые они предлагают.

Датчик термопары типа k

Датчик термопары типа K — это профессиональный датчик, поддерживающий высокие температуры.Его состав очень прост, так как это всего лишь пара металлических кабелей, припаянных к преобразователю, который передает сигнал на Arduino. Благодаря этой системе датчик термопары типа K I может измерять температуру от -200ºC до 1350ºC примерно , что не имеет ничего общего с датчиками для любителей, но также делает этот датчик предназначенным для профессиональных проектов, таких как котлы, литейные устройства или другие устройства. которым нужны высокие температуры.

Датчик температуры Arduino DHT22

Датчик температуры Arduino DHT22 es цифровой датчик температуры , который измеряет не только температуру, но и влажность окружающей среды.Сигнал отправляется на Arduino через 16-битный цифровой сигнал. Температуры, которые r окружают этого человека, колеблются между -40°C и 80°C . Цена этого датчика составляет 5,31 евро за единицу. Более высокая цена, чем у других датчиков, но это оправдано качеством датчика, которое выше, чем у других датчиков.

Датчик температуры Arduino TC74

Датчик температуры Arduino TC74 представляет собой датчик, который выводит сигнал в цифровом виде В отличие от других датчиков, которые выдают его в аналоговом виде.Этот датчик передает через 8-битный цифровой сигнал. Цена этого датчика не очень низкая, но и не очень высокая, обычно около 5 евро за штуку. Связь датчика температуры Arduino TC74 осуществляется с использованием протокола I2C. Диапазон температур, который собирает этот датчик, составляет от l o C -40°C до 125°C .

Датчик температуры Arduino LM35

Температурный датчик Arduino LM35 — это очень недорогой датчик, который используется в проектах для любителей. Выход этого датчика является аналоговым, и калибровка выполняется непосредственно в градусах Цельсия .Хотя надо сказать, что этот датчик не поддерживает высокие температуры. Допустимая температура колеблется между 2ºC и 150ºC . Это означает, что он не может излучать отрицательные температуры и поэтому идеально подходит для обучения использованию датчиков температуры. Его цена сопровождает его, так как мы можем найти 10 датчиков за 7 евро (приблизительно).

Какие проекты мы можем создать с датчиком температуры для Arduino?

Есть много проектов, которые мы можем реализовать с датчиком температуры и платой Arduino. Самый простой проект — это создание термометра, который в цифровом виде отображает температуру . Отсюда мы можем создать еще составных проектов, таких как автоматы, которые выполняют определенное действие после достижения определенной температуры , отправляют определенные сигналы с определенной температурой или просто вставляют датчик температуры в качестве механизма безопасности, чтобы выключить плиту или машину в случае достижения определенной внутренней температуры.

Название и количество проектов, которые мы можем сделать с датчиком температуры в Arduino, очень велико, не зря, обычно это один из первых элементов, который обычно осваивает начинающий пользователь.В Instructables мы можем найти несколько примеров того, как их использовать.

Целесообразно ли использовать датчик температуры для нашего Arduino?

Я считаю, что научиться пользоваться датчиком температуры в Arduino важно и нужно. Не только знать и использовать все аксессуары Arduino, но и уметь обрабатывать данные о температуре и применять их к программам, которые работают на Arduino. Но я не рекомендую использовать профессиональные датчики, по крайней мере, в прототипах и зарождающихся разработках.

Думаю будет целесообразно сначала использовать любительские датчики и как только все будет проконтролировано и создан окончательный проект, то если использовать профессиональный датчик .Причиной этого является стоимость. Датчик температуры может быть поврежден при различных обстоятельствах, а любительские датчики можно заменить менее чем за два евро. Вместо этого использование профессионального датчика температуры умножит затраты на 100.

модуль датчика температуры

MLX

бесконтактный для Arduino COM43

Описание

MLXESF-AAA — инфракрасный термометр, предназначенный для бесконтактного измерения температуры.

Особенности

  • Заводская калибровка
  • от -40 до +85°C для датчика температуры
  • от -70 до +380°C для температуры объекта
  • Цифровой интерфейс, совместимый с SMBus
  • Настраиваемый выход PWM для непрерывного считывания
  • Высокая точность 0.5°C в широком диапазоне температур (от 0 до +50°C для Ta и To)
  • Разрешение измерения 0,02°C
  • Источник питания 4,5–5 В

Начало работы с модулем MLX

с Arduino UNO

В этом уроке мы собираемся связать модуль MLX с Arduino UNO, чтобы мы могли распечатать температуру объекта и температуру окружающей среды, поэтому, прежде чем начать, как говорится в описании модуля, этот модуль использует инфракрасную теорию для измерения температуры доска перед ним.что означает, что нет контакта между объектом и модулем, поэтому это также бесконтактный термометр, так что давайте начнем

Шаг 1: требуется аппаратное обеспечение

Шаг 2: подключение оборудования

Вы можете подключить контакт I²C датчика к arduino SCL, SDA или контактам arduino A4, A5, они имеют одинаковую функцию. Убедитесь, что используется 3,3 В для модуля 3,3 В типа . Потому что это повредит при подключении к 5V.

МОДУЛЬ MLX PIN-код ARDUINO UNO
ВКЦ 3.3В
Земля ЗЕМЛЯ
ПДД А4
СКЛ А5

Шаг 3. Настройка библиотеки

Итак, чтобы связать модуль MLX с Arduino, Adafruit сделал библиотеку проще, поэтому, если у вас нет библиотеки, вы можете скачать ее здесь. после загрузки библиотеки установите ее, распаковав в папку с библиотекой arduino.Как показано ниже

Шаг 4. Загрузка образца эскиза

перейдите в Файл>Примеры>Библиотека Adafruit MLX>mixtest. как показано ниже,

после открытия этого скетча подключите Arduino к компьютеру и убедитесь, что плата и порт указаны правильно, перейдя на вкладку «Инструменты».

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

Ваш адрес email не будет опубликован.