РадиоКот :: Применение датчика температуры и влажности SHT21.
Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Теги статьи: Добавить тег

Применение датчика температуры и влажности SHT21.

Автор: Михаил
Опубликовано 19.08.2011
Создано при помощи КотоРед.
2011

Как-то раз мне попалась на глаза довольно интересная информация о том, что компания Sensirion выпускает комбинированные датчики температуры и влажности в одном корпусе SHT21 и, кроме того, всем желающим рассылает бесплатно семплы (образцы) этого датчика. Предложение очень заманчивое, такой возможностью глупо было не воспользоваться, поэтому, была быстренько оформлена заявка, и через две недели пришло письмо от компании Sensirion, в котором оказался образец датчика SHT21 и его подробный даташит. Впрочем, даташит, был ещё раньше скачан с сайта производителя. Поэтому определённое представление, что это за датчик у меня имелось. А вот размеры действительно поразили – всего лишь 3х3 мм. Видимо, всё же основное назначение SHT21 – использование в качестве встраиваемого решения в различную аппаратуру. Внешний вид датчика показан на рис. 1.

Рис. 1

Основные технические характеристики датчика SHT21:

Выходной сигнал…………………………………………………...............I2C, ШИМ, SDM 
Потребляемая мощность…………………………...........………………1.5 мкВт 
Диапазон измерений относительной влажности………………. 0 - 100%
Диапазон рабочих температур……………………………............. -40...125°С
Время отклика (измерения отн. влажности)…………………….. 8 сек.
Точность………………………………………………………......................2%
Габаритные размеры……………………………………................…… QFN корпус

Обращаю ваше внимание, что датчики SHT21 в зависимости от модификации, могут иметь различный формат представления выходных данных – шина I2C, ШИМ, и аналоговый выход (SDM). Соответственно, они имеют различное обозначение – SHT21D, SHT21P и SHT21S. В дальнейшем, при ссылке на SHT21 будем считать, что имеется ввиду датчик с управлением по шине I2C - SHT21D. Корпус QFN датчика имеет шесть выводов, два из которых не задействованы (рис.2)

Рис. 2

Использование шины I2C является удобным способом для организации управления датчиком SHT21 от микроконтроллера. Существует два режима взаимодействия между микроконтроллером и датчиком (Hold и No Hold Master Mode). Остановимся более подробно на режиме Hold (рис.3)

Рис. 3

Как и в любом устройстве, работающем по шине I2C с использованием ведущего (в нашем случае – это микроконтроллер) и ведомого (датчик SHT21) вначале ведущий передаёт стартовый импульс (S). Затем передаётся адрес ведомого устройства по шине I2C с режимом записи. Адрес SHT21 определён как 1000000X. Режим запись/чтение определяет бит X (0-запись, 1-чтение). Затем ведущий ожидает подтверждения от ведомого – команду АСК. После получения подтверждения, микроконтроллер выдаёт в линию команду управления или конфигурации – биты 10-17. В показанном на рисунке 3 примере передаётся команда работы измерения влажности в режиме Hold. Полный список команд показан в таблице на рис. 4.

Рис. 4

Далее, согласно стандартным процедурам протокола I2C, передаётся повторный стартовый импульс (S) и адрес датчика с режимом чтения и контролем приёма подтверждения АСК. После приёма подтверждения начинается отсчёт времени измерения выбранного параметра – влажности или температуры (Measurement) . Следовательно, на это время необходимо установить нужные тайм-ауты в процессе считывания информации с датчика.

После измерения начинается непосредственно процесс считывания информации Сначала сохраняется содержимое старшего регистра (MSB) с передачей ведомому (от микроконтроллера к датчику) команды подтверждения АСК. Затем считывается младший байт (LSB) с выдачей подтверждения и контрольная сумма (Checksum). Так как считывание контрольной суммы является завершением процедуры чтения, то ведомому передается команда NACK, что говорит о завершении процесса считывания и стоповый бит (Р). Если контрольная сумма не нужна, то команду NACK необходимо подать вместо команды АСК в позиции 45. При этом считывание Checksum будет игнорировано. Последние два бита младшего разряда (43 и 44, рис.3) как наименее значащие при работе в 14-ти битном режиме используются для передачи статуса работы – если бит 43 равен 0-измерение температуры, если 1 – измерение влажности. Бит 44 не определён и в данном случае не используется.

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

Но вначале нужно уточнить один момент. Полученные результаты измерения представляют собой 16-ти битное число, которое хранится в двух регистрах – MSB и LSB. Однако это значение необходимо подвергнуть преобразованию по определённой формуле, что бы выводимая информация соответствовала градусам в режиме измерения температуры и процентам в режиме измерения влажности.

Для перевода полученного значения в градусы применяется формула:

Для измерения влажности данная формула преобразования будет иметь несколько иной вид:

Теперь перейдём непосредственно к реализации схемы. Для экспериментов с датчиком SHT21 была использована схема с микроконтроллером 16F628A и ЖКИ индикатором WH0802A (рис.5). В принципе, схема абсолютно стандартная, никаких особенностей не имеет. Некоторые вопросы возникли с организацией питания – пришлось использовать питание 5 В для ЖКИ-индикатора и питание 3,3 В для микроконтроллера и датчика. Это обусловлено тем, что максимально допустимое рабочее напряжение SHT21 составляет 3,6В. Датчик SHT21 подключается по шине I2C, которая в микроконтроллере реализована программным способом. В схеме использован кварцевый резонатор на частоту 4 МГц и внешняя RC-цепь сброса.

Рис. 5

Схема собрана на макетной плате, индикатор устанавливается в разъём платы (рис.6).

Рис. 6

Так как датчик SHT21 имеет миниатюрные размеры (3х3 мм), то он для удобства работы он установлен на небольшой печатной плате, которая так же, как и индикатор, подключается к основной плате через разъём. Необходимо добавить, что паять датчик нужно очень аккуратно - QFN корпус имеет не выводы, а контактные площадки. Рядом с датчиком устанавливается блокировочный конденсатор 100 nF. Внешний вид платы датчика в увеличенном виде показан на рис.7.

Рис. 7

После пайки датчик необходимо выдержать при влажности более 75% не менее 12 часов. Это своеобразное «формирование» датчика, которое предназначено для корректности его показаний.

Управляющая программа микроконтроллера работает в циклическом режиме с поочерёдным режимом измерения температуры и влажности, преобразованием полученных значений в градусы и проценты и вывода на дисплей. В верхней строке индикатора показывается температура, а в нижней строке – относительная влажность. Сразу оговорюсь, что эта программа писалась не под завершённое устройство, а под экспериментальный макет, поэтому является неоптимизированной и требующей определенной доработки в плане добавления различных функций. Необходимо ещё дополнительно реализовать индикацию контроля наличия на линии датчика (сейчас, при отсутствии или неработоспособности датчика на дисплей будут выведены значения температуры 25 С и влажности 18%). Кроме того, в этой версии программы используется только работа со старшим битом (MSB), поэтому индицируются целые значения градусов без дробной части, не реализована индикация отрицательных температур. Тем не менее, данная экспериментальная схема позволяет продемонстрировать работу датчика SHT21 в обоих его режимах измерений и впоследствии создать на её основе вполне нормальный термометр-гигрометр, что я впоследствии и планирую сделать. Внешний вид устройства с подключенным датчиком в режиме измерений показан на рис. 8.

Рис. 8

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

Вторая конструкция на основе датчика SHT21 – «термогигростат». Это устройство может найти применение там, где необходимо поддерживать заданные режимы влажности и температуры. Например, для управления вентилятором вытяжки в ванной комнате, нагревателем в погребе или гараже и т.д.

Устройство может работать в режиме измерения влажности и измерения температуры только раздельно. Выполнение определённой функции зависит от прошивки микроконтроллера. Больше никаких изменений вносить не нужно – схема «железа» остаётся неизменной для обоих режимов работы. На данный момент реализована только прошивка «гигростата», для термостата постараюсь написать в ближайшее время.

Основу устройства составляет микроконтроллер 12F675 (или 12F629), подключенный к датчику SHT21 (рис. 9). Питание микроконтроллера и датчика осуществляется от напряжения 3,3В, получаемого на выходе стабилизатора DA2. Реле К1, подключенное через транзисторный ключ VT1, служит для управления исполнительным устройством. Если нагрузка имеет большую мощность, например, нагреватель, то его нужно подключать через мощное реле или пускатель, а реле К1 использовать как промежуточное. Для подавления самоиндукции в момент срабатывания реле его обмотка зашунтирована диодом VD1. Индикация устройства выполнена на двухцветном светодиоде и может отображать три цвета - зелёный, жёлтый и красный. Жёлтое свечение получается за счёт пропорционального смешения зелёного и красного цветов, поэтому резисторы R5 и R6 имеют разное значение.

Рис. 9

Устройство имеет три порога включения исполнительного устройства. При включении устанавливается нижний порог, срабатывает реле и светодиод мигает зелёным светом. Через 30 секунд, если значение влажности меньше нижнего порога, реле выключается и светодиод постоянно горит зелёным светом. Выбор других порогов осуществляется нажатием и удержанием кнопки S1.

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

Прошивка микроконтроллера для измерения влажности имеет следующие значения включения реле: нижний порог – 60%, средний – 75%, верхний – 90%.

Внешний вид платы устройства показан на рис. 10

Рис. 10

В данной статье были рассмотрены некоторые варианты использования датчика SHT21. Конечно, если покупать такие датчики, то это обойдётся очень накладно, но "бесплатная раздача слонов" от компании Sensirion ещё пока продолжается. Так что, не упускайте момент!!!

Заказать образец SHT21


Файлы:
Прошивка измерителя RH/T
Печатная плата гигростата
Даташит SHT21
Прошивка гигростата


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

11 0 0