Как обмануть родителей и не идти в школу? Есть простой рецепт. Берем градусник, нагреваем его при помощи фена или обогревателя до требуемой температуры 38 °C, имитируем хриплый голос и сопли, демонстрируем все обозначенное взрослым. Но получится ли провернуть такую операцию, если градусник цифровой? К счастью, да, проверено на медицинском термометре WT-03 BASE фирмы B.Well. Проверено теоретически, конечно, я же уже взрослый.

Ртутный градусник имеет интересное свойство запоминать максимальную температуру. В электронном термометре эту функцию заменяет программа. Есть некоторый начальный порог, что-то около 30 °C и если затем положить прибор в холодильник, то он покажет последнее максимальное значение. Нет необходимости удерживать требуемую для обмана температуру продолжительное время. Отлично.

В этой части продолжен обзор датчиков температуры, в фокусе внимания STLM75, DS18B20, AHT20 и BME280. Аналоговые датчики были рассмотрены в статье «Сравнение датчиков температуры. Часть 1, аналоговые», а измерения собраны в статье «Сравнение датчиков температуры. Часть 3, практика».

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

Полезнейший бытовой прибор, электрический чайник, в большинстве случаев измеряет только одно пороговое значение – температуру кипения воды. И таких задач, когда нужно отключить нагревательный элемент, много. Тут на помощь приходит микросхема с функцией теплового сторожевого таймера, STLM75. Она может работать как термостат без использования цифрового интерфейса, пороговое значение после перезагрузки составляет 80°C. Сигнал выдается на выход nOS с открытым коллектором. Имеется возможность настроить прерывание от микросхемы, гистерезис и защиту от шума.

Рисунок 1 - Блок-диаграмма микросхемы STLM75, источник изображения [1]
Рисунок 1 - Блок-диаграмма микросхемы STLM75, источник изображения [1]

Микросхема достаточно просто настраивается, содержит всего четыре регистра для конфигурации и хранения данных. Поскольку адрес задается внешними выводами, имеется возможность объединить несколько ведомых на шине I2C. 

Выводы по микросхеме STLM75:

  1. Простой датчик температуры с интерфейсом I2C, выпускается в двух разных корпусах, легко конфигурируется;

  2. Может применяться без контроллера как термостат, однако памяти в микросхеме нет, а значит настройки не сохраняются. Остается довольствоваться порогом в 80 °C по умолчанию.

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

Аппаратная поддержка шины 1-Wire практически не встречается в микроконтроллерах, а датчик температуры DS18B20 с данным протоколом встречается повсеместно. Протокол разработан корпорацией Dallas Semiconductor (сейчас Maxim Integrated) и является зарегистрированной торговой маркой. Хотите аппаратный 1-wire – покупайте контроллеры MAX32620/MAX32621. К счастью, есть альтернативные сценарии, например GPIO + таймер или UART + резистор с диодом.

Рисунок 2 - Схема для подключения 1-Wire датчика к UART
Рисунок 2 - Схема для подключения 1-Wire датчика к UART

Узнать о том, как реализовать 1-Wire при помощи UART можно на сайте, поэтому приведу лишь краткие сведения. UART требуется сконфигурировать в полнодуплексном режиме, так как необходимо слышать свои передачи. Приём данных ведущим устройством организован как передача, в которую вмешивается ведомое устройство. Чтобы формируемые импульсы по временным характеристикам соответствовали требованиям 1-Wire, хорошо подходят скорости передачи: 9600 бит/с для формирования сигнала сброса и 115200 бит/с для передачи данных.

Используя разные скорости передачи и разные данные удается сымитировать слоты записи или чтения. Так, для формирования слота записи 0 следует передать байт 0x00 на скорости 115200 бит/с, а для формирования слота записи 1, передаём на скорости 115200 бит/с байт 0xFF. Для формирования слота чтения следует отправить байт 0xFF на скорости 115200 бит/с. То же самое мы делали для формирования слота записи 1. Но, в дополнение к этому, здесь необходимо проанализировать принятый байт, и если он не отличается от отправленного, значит получен слот чтения 1, иначе – слот чтения 0. Вероятно, более запутанно выглядит только уравнение Стейнхарта-Харта (см. раздел «Термистор MF52» части 1), в остальном датчик температуры DS18B20 великолепен.

Устройство имеет заявленную точность 0,5 °C, при этом разрешение настраивается программно, т.е. можно получить температуру с минимальным шагом в 0,0625 °C. Каждый датчик имеет уникальный серийный номер, а значит на одну линию можно повесить много устройств. Датчик может питаться как через отдельный провод, так и от линии связи. И даже имеется возможность настроить «тревожный» порог температуры, с сохранением настроек в память.

Рисунок 3 - Блок-диаграмма микросхемы DS18B20, источник изображения [2]
Рисунок 3 - Блок-диаграмма микросхемы DS18B20, источник изображения [2]

Точность показаний датчика меняется в рабочем диапазоне, наилучшая достигается в его середине. Метод повышения точности основан на методике, изложенной в «Application Note 208: Curve Fitting the Error of a Bandgap-Based Digital Temperature Sensor», дополнительную информацию можно найти на сайте.

Выводы по датчику температуры DS18B20:

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

  2. Интерфейс 1-Wire позволяет сэкономить ножки управляющего контроллера (если использовать GPIO), но требует некоторой сноровки при реализации;

  3. Скорость измерения температуры зависит от настроенного разрешения, при 12-и битах может достигать 750 мс.

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

AHT20 – лидер среди испытуемых по заявленной точности измерений, ±0,3 °C в диапазон температур от 20 до 60 °C. Датчик отличается простотой команд управления, их всего три: инициализация, измерение, сброс. При запросе температуры и влажности возвращается байт статуса и контрольная сумма. Наличие CRC – большое преимущество многих цифровых датчиков, раз сумма сошлась, данные достоверны. Датчик AHT20 подключается к шине I2C.

Рисунок 4 - Типовая схема подключения ATH20, источник изображения [3]
Рисунок 4 - Типовая схема подключения ATH20, источник изображения [3]

Соотношения для расчета влажности и температуры для AHT20 также достаточно просты. К слову, это цифровой датчик, который сразу заработал, практически не пришлось разбираться с регистрами, адресами, таймингами. Жалко, что датчик засбоил при измерении отрицательных температур, свидетельства чего будут представлены в ходе экспериментов.

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

Выводы по датчику AHT20:

  1. Микросхема имеет хорошие характеристики при достаточно низкой цене;

  2. Датчик имеет простую логическую модель и простые формулы пересчета показаний в температуру и влажность.

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

Еще один интересный датчик температуры с выдающимися характеристиками - SHT4x. Корпус датчика всего 1,5 x 1,5 мм. В силу крайне малого размера его не удалось смонтировать на макетной плате. Но датчик был успешно применен в одной из задач и показал себя достойно. Заявленная точность измерений ±0,1 °C в диапазон температур от 20 до 60 °C.

Рисунок 5 - Блок-диаграмма микросхемы SHT4x, источник изображения [4]
Рисунок 5 - Блок-диаграмма микросхемы SHT4x, источник изображения [4]

За покупку микросхемы производитель наградит вас готовой программной библиотекой и необходимыми CAD моделями. Применять такой датчик уместно в микропотребляющих устройствах, SHT4x потребляет всего 0,4 мкА при частоте измерений 1 Гц.

Выводы по датчику SHT4x

  1. Хорошее соотношение цена/характеристики;

  2. Нацелен на микропотребляющие устройства;

  3. Имеется качественная программная библиотека от производителя.

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

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

Рисунок 6 - Блок-диаграмма микросхемы BME280, источник изображения [5]
Рисунок 6 - Блок-диаграмма микросхемы BME280, источник изображения [5]

Устройство имеет функционал конечного автомата с тремя состояниями: Sleep mode, Forced mode, Normal mode. Режимы отличаются временем в активном состоянии и соответственно энергопотреблением. Для фильтрации показаний давления в микросхеме реализован БИХ-фильтр (IIR - infinite impulse response), т.к. показания датчика давления существенно меняются при незначительных изменениях окружающих факторов. Например, закрытие двери или окна может привести к кратковременному росту показаний.

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

Отдаю должное производителю, в документации содержится исчерпывающая информация по алгоритму вычисления P, H, T и даже приводится число машинных тактов, которые займет расчет на Cortex-M3. Тем не менее с этим датчиком пришлось немного повозиться. Как оказалось, проблема крылась в том, что после инициализации датчик переходит в режим Sleep. Ох уж эти микропотребляющие устройства…

Выводы по датчику BME280:

  1. Уникальный функционал – измерение давление, влажности и температуры одной микросхемой;

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

  3. Самый дорогостоящий датчик среди испытуемых.

Цифровые датчики незаменимы

Там, где с аналоговыми датчиками начинаются трудности, в игру вступают датчики цифровые. До магазина вы дойдете пешком, до почты доберетесь на велосипеде, а до соседнего города на машине. Аналогично и с передачей сигнала, аналоговые линии связи подвержены воздействию шумов, провода содержат омическое сопротивление, на каждый датчик нужна отдельная линия связи. Не лучше ли протянуть один провод 1-Wire и не беспокоиться о помехозащищенности при передаче показаний?

В отличии от 1-Wire (~300 м), шина I2C (~1 м @ 100 кбит/с) не спроектирована для передачи данных на большие расстояния, но и рассмотренные датчики не спроектированы только для измерения температуры. Либо это функция термореле, либо измерение температуры и влажности, а в случае с BME280 ещё и давления. В следующей части представлено сравнение цифровых, а также аналоговых датчиков друг с другом. Наконец мы узнаем, кто хорош только на словах, а кто в деле.

"Сравнение датчиков температуры. Часть 1, аналоговые";

"Сравнение датчиков температуры. Часть 3, практика".

Ресурсы

  1. Документация на микросхему STLM75;

  2. Документация на микросхему DS18B20;

  3. Документация на микросхему AHT20;

  4. Документация на микросхему SHT4x;

  5. Документация на микросхему BME280;

  6. Проверка аналога датчика DS18B20.

Комментарии (17)


  1. Arhammon
    09.09.2023 06:07

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

    Аж полез смотреть даташит - и правда, калибровочные константы само не считает. Правда там же в документации написано, что вероятно на 8 бит МК придется пойти лесом... видимо по этому и не запомнилось.


    1. Evgeny_E Автор
      09.09.2023 06:07

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


  1. vau
    09.09.2023 06:07
    +2

    Сегодня очень сложно встретить оригинальный датчик DS18B20. Все, что встречается в продаже с очень большой вероятностью будет подделкой. Отличить подделку можно по методикам, описанным например здесь https://github.com/cpetrich/counterfeit_DS18B20


    1. sav13
      09.09.2023 06:07

      Ну почему же сразу подделка. Просто аналоги. С те же 7qtek и UMW вполне можно работать. Там есть свои даташиты. Просто должно быть понимание, что это другие датчики, совместимые по протоколу и большинству функций с MAXIM

      Оригинальные DS18B20 можно купить в том же ЧиД

      https://www.chipdip.ru/product/ds18b20


      1. mlnw
        09.09.2023 06:07

        Справедливости ради, DS18B20 чаще используют тогда, когда датчики "на плату" использовать не выходит (нужно погружение в воду, в агрессивную среду, высокие 100+°С или, наоборот, минусовые температуры, расстояние больше метра до платы управления и т.п.). И в этом случае никто их не покупает в ТО-92, а покупают в исполнении уже запаянными в гильзу на термостойком кабеле. Такие изделия обычно идут уже не от Dallas/Maxim/Analog Devices (или как их там счас называть), а от мелких производителей, осуществляющих запайку. И тут возможен контрафакт, особенно если брать на Али и подобных платформах.


      1. mlnw
        09.09.2023 06:07

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


  1. vk6677
    09.09.2023 06:07

    В электрочайнике, как правило, простой термостат, срабатывающий от пара, а не микросхема.


  1. sav13
    09.09.2023 06:07

    Там, где с аналоговыми датчиками начинаются трудности, в игру вступают датчики цифровые. До магазина вы дойдете пешком, до почты доберетесь на велосипеде, а до соседнего города на машине. Аналогично и с передачей сигнала, аналоговые линии связи подвержены воздействию шумов, провода содержат омическое сопротивление, на каждый датчик нужна отдельная линия связи. Не лучше ли протянуть один провод 1-Wire и не беспокоиться о помехозащищенности при передаче показаний?

    Тут все зависит от целей и задач

    Если нужны быстрые "показометры" в домашних поделках, то цифровой датчик типа SHT20 вполне устроит.

    Если нужен серьезные измерительные прибор, то лучше взять PT100 или PT1000, и подключить его по 3/4-х схеме. Или термопару с использованием специализированных проводов к АЦП . Но зато гарантированно получить заявленную точность 5%, 1%, 0.5%

    p.s. Кстати шина OneWire очень любит ловить внешние помехи


    1. Traveller0968
      09.09.2023 06:07

      К этому можно еще добавить что по цифровой линии по коим цифровые датчики передают свою битовую последовательность не предашь более чем на несколько метров особенно в промышленных условиях, для этого PT100-1000 или термопары подключают к так называемым нормирующим преобразователям и предают это в аналоговой форме ввиде токовой петли 4-20 mA, по ней же можно предать и цифру по протоколу HART, ну или банально по RS-485, со всеми вытекающими, т.е. отдельно от силовых линий...


      1. Vassam
        09.09.2023 06:07

        Тем временем от контроллера до 18b20 в теплице метров 50 неправильно повитой пары работает, а по дому разведены HTU да SCD, и тоже работают. А на работе замечательные и дорогие PT100 на метре врут, и я, по сути, один-одинёшенек, кто пытается из заставить работать, ВСЕ остальные их просто отключают программно, либо резистором на контроллер.


        1. Traveller0968
          09.09.2023 06:07

          Ну давайте по пунктам:

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

          2. На работе замечательные и дорогие PT100, которые врут на метре, я допускаю что подключены просто не правильно, скорее всего по 2-х проводной схеме и стоят дальше 1-10 метров от принимаеющего их "сигнал" контроллера, здесь для способа лечения, есть два варианта или подключать их по 3х-4х проводной схеме и то это не панацея, слишком далеко их не расположишь, либо подключать их через нормирующий преобразователь и передавать их показания по петле 4-20 мА можно задействовать HART или RS-485, но это будет значительно дороже


          1. Vassam
            09.09.2023 06:07

            Что за мощные индустриальные помехи? В индустрии обычно три фазы, идущие на асинхронник с околоидеальным балансом по жилам, да ещё с экранированными жилами. В итоге на 500 метрах кабеля аналоговой связи (экранированного), проложенного параллельно трёхфазным кабелям, качающим мегаватт мощности с нулевым зазором между кабелями (по другому в балконы забойного конвейера не проложишь), что-то там слышимое появляется уже на километрах. Разве что частотники подкидывают помех. В квартире экранов обычно просто нет, как и трёх фаз, а потребители нынче все на импульсных бп.

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

            Всё-таки будущее за цифровыми датчиками, просто да, I2C-шина не рассчитана на помехоустойчивость и дальность передачи данных.


            1. Traveller0968
              09.09.2023 06:07

              1. Это где к асихроникам идут экранированные кабеля!? Не знаю может такое и есть, но это преобладание разума над здравым смыслом... :) а так я например видел что RS485 уже не работает на расстоянии 50 метров в параллельно проложенной ТППшке с сигнальным кабелем по которому всего лишь навсего идет примерно 40 ватт мощности на светодиодный светофор, там при строительстве на проколе сэкономили, потому и не взлетело... :)

              2. Проблема с PT100, как вы пишите может быть в плохом контакте, допускаю это,, но разве в этом PT100 виноват?, может это просто давно с 80-х не подвергали обслуживанию или банально делали рукожопы, я склоняюсь к этому, потому как знакомо очень :)

              3. Будущее само определит что будет главенствовать в промышленности или в быту, пока что у цифровых технологий есть больше недостатков чем достоинств, для промышленного применения, и первый из них кратно большая стоимость решения, я не говорю про всякую помехозащищенность и сложность реализации, хотя это и есть компонент цены... :)
                Ну например:
                Датчик температуры с интерфейсом 4-20 мА, стоимость от 4 тыс. руб., при этом может работать по двухпроводной линии выполненной хоть проводом ПВС
                Датчик температуры с интерфейсом RS485, стоимостью от 20 тыс. руб., это только за датчик и да, к нему нужна отдельная 4х проводная при этом экранированная линия, со всеми вытекающими...
                И да, если я все таки решу, 8 датчиков температуры с петлей 4-20 мА и даже просто PT100 загнать в RS485, это все равно в разы будет дешевле, чем 8 датчиков на одном шлейфе RS485...


              1. Vassam
                09.09.2023 06:07

                Гхм, везде? Каждая жила в токопроводящем экране, соединённом с землёй, чтобы при повреждении оболочки не через человека киловольты шли, а через экран.

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

                Будущее уже определилось. Пришли контакторы "вещь в себе", внутри и токоизмерение, и контроль утечки, и тепловая, наружу только кан-шина.

                Кратно большая стоимость решения? Чипы нонче как грязь под ногами стоят, сколько тот дс18б20 стоит? Доллар в розницу? Автопроизводители просто так в каждую дверь авто по микроконтроллеру пихают?


                1. Traveller0968
                  09.09.2023 06:07

                  Вы в на какой то другой планете живете, где каждая жила силового кабеля в экране... я про такое первый раз не то что вижу, я читаю про такое первый раз, а видел я в этой жизни не так что бы мало... :)
                  И да, вы какой то сильный оптимист, что везде и CAN шины и 1820 стоят, ну я конечно не знаю, может и так, но например я не давно узнал, что в современейшем Boeing 737 с ЖК панелями и суперсовременной авионикой в качестве индикаторов стоят лампочки накаливания вместо светодиодов, чему был не мало удивлен, ибо по вине такой лампочки уже случались катастрофа унесшая сотню жизней (катастрофа Lockheed L-1011 29.12.1972)... Посему рекомендую вам снять розовые очки и смотреть на жизнь более "трезвым взглядом".... :)


                  1. Vassam
                    09.09.2023 06:07

                    А вы электрик, электрослесарь, электромонтажник? Может вы видите уже разделанные концы со снятым экраном и думаете, что его нет? У меня 100% используемых кабелей экранированные, от слаботочки до высоковольтных.

                    Если вы не знаете насчёт кан-шины в автомобилях - почему бы не глянуть схему какого-нибудь современного Фольксвагена? Там плафон в салоне загорается от блока с умными ключами, управляемого от блока комфорта, который получает сигнал от водительской двери, которая, в свою очередь, собирает инфу со всех остальных дверей, и всё по Кан-шине.


                    1. Traveller0968
                      09.09.2023 06:07

                      Какая разница кто я, я так погулять вышел :)
                      Мы с вами говорим о разных вещах, вы мне о CAN шинах и цифровой передачи данных до 10 метров, а я вам про завод, где нужно передать значение температуры на несколько сотен, что касаемо каждой жилы в экране, ну не могу сказать что я такого не видел, сплошь и рядом, но это знаете ли не силовое оборудование, это как раз передача "данных", хотя допускаю, что может быть есть на территории РФ несколько свежих заводиков, где как гриться "Деньги не проблема" и выполнено таким образом, но в 90% старый "добрый медь с алюминием в бронированном или даже без брони кабеле
                      А что касается современных автомобилей, так я вам так скажу, там не только CAN шины по меди, там даже оптика бывает (на каком то мерседесе, лет 15 тому назад видел :) ), по которой тоже кое что передается, но опять таки, давайте сопоставлять расстояния, возраст, помехи и стоимость таких решений... :)