Цифровой датчик температуры и влажности MTH02 MTH02 digital temperature and humidity sensor
Измеряет относительную влажность воздуха и его температуру. Данные представляются в цифровом виде и передаются последовательно. Относительная влажность воздуха – отношение его текущей абсолютной влажности к максимальной абсолютной влажности при данной температуре. Измеряется в процентах. Относительная влажность воздуха один из важных параметров климата. Слушая прогноз погоды мы узнаем возможную относительная влажность воздуха.
Датчик может использоваться в системах вентиляции и кондиционирования для поддержания влажности в помещении на требуемом уровне. Станет удобным решением для метеонаблюдений. Воспринимающий компонент влажности и температуры –
HIS-06-N изготовлен японской фирмой Hokuriku. Предусмотрена возможность подключения к контактам второго внешнего компонента воспринимающего температуру. На плате установлен микроконтроллер преобразующий данные воспринимающих компонентов в цифровой вид. При использовании MTH02 следует принимать меры для защиты от статического электричества.
Характеристики Напряжение питания 2,2…5,5 В
Диапазон измеряемой влажности 18…98 %
Обычная точность измерения влажности ± 3%
Предельное отклонение измерения влажности ± 5%
Точное измерение влажности в диапазоне температур 0…50 °C
Диапазон измеряемой температуры –40…70 °C
Точность измерения температуры ± 0,5 °C
Размеры платы 10 х 20 мм
Контакты 1 – Напряжение питания
2 – Общий провод
3 – CS
4 – DATA
5 – Внешний датчик температуры
6 – Внешний датчик температуры
К линиям питания должны быть припаяны конденсаторы: керамический 10-100 нФ и танталовый 10 мкФ. Конденсаторы располагаются как можно ближе к датчику. Это позволит снизить влияние электромагнитных помех на цифровой датчик температуры и влажности МНТ02.
Особенности работы После включения питания MHT02 требуется пауза 20 мс для сброса. После сброса датчик будет производить замеры автоматически и если в на контакте CS лог. 0, то будут выводиться измеренные данные.
Последовательный интерфейс MTH02 К входу CS внутри микроконтроллера подключен резистор 50 кОм соединяющий его с линией питания. При установке на входе CS лог. 0 датчик ”проснется” и начнет передачу данных через линию DATA.
Фронт первого импульса на выходе данных DATA появляется спустя 10 мс после установки на входе CS уровня лог 0. Данные кодируются следующим образом: 0 – импульс длительностью 1,5 мс, 1 – длительностью 0,5 мс. После окончания передачи пакета данных цифровой датчик температуры и влажности МНТ02 производит замер, результаты сохраняются в памяти датчика и он переходит в режим пониженного энергопотребления. Результаты сохраненные перед уходом в спящий режим будут переданы без замера при установке на входе CS уровня лог 0. Результат замера текущих параметров поступит по интерфейсу только во втором пакете данных. Такой алгоритм работы возможен так как влажность меняется медленно и часто проводить замеры бессмысленно, в тоже время не следует забывать об экономии потребления тока.
Передача пакета данных начинается со старшего байта данных температуры – T_MSB, всего 2 байта температуры от компонента HIS-06-N: T_MSB::T_LSB. Затем следует один байт влажности – RH. Потом два байта данных внешнего датчика температуры EXT_T_MSB::EXT_T_LSB. Последний байт CRC – контрольная сумма. Вот весь пакет данных выглядит так:
T_MSB::T_LSB::RH::EXT_T_MSB::EXT_T_LSB::CRC
Преобразование принятых данных для получения величин температуры и влажности Так как нижний предел измерения температуры –40, то для упрощения представления данных разработчики отказались от использования отрицательных чисел. К значению температуры перед передачей добавлено смещение. Таким образом, реальная температура может быть получена путем вычитания 0190 (в шестнадцатеричном виде). Например:
Пакет данных: 000000101011001101010001111111111111111110100001
Передаваемое значение температуры: 0x02B3=691
Измеренная температура: 691-400=291=29,1 °C
Влажность 0x51=81%
EXT_T если внешний датчик температуры не подключен, то в байтах 0xFF
Контрольная сумма 0xA1
Контрольная сумма Один из наиболее эффективных способов обнаружения искажений данных при передаче это проверка контрольной суммы. Искажения возникают вследствие сбоев в работе передающего и приемных узлов и воздействия электромагнитных полей на линию передачи. Использую контрольную сумму можно увеличить протяженность линии связывающей цифровой датчик температуры и влажности MHT02 с основным прибором. Для этого в конце пакета данных передается число, вычисленное по определенному закону. При вычислении контрольной суммы используются все биты пакета данных, что гарантирует проверку всех бит. При приеме пакета данных происходит сравнение принятой контрольной суммы и вычисленной. Если они не совпадают, то такой пакет данных игнорируется. В основе метода вычисления примененного здесь лежит полином:
При получении пакета данных принимающий данные от MTH02 прибор производит вычисление контрольной суммы пакета в следующем порядке.
1 Принятый пакет данных сохраняется в памяти микроконтроллера за исключением последнего байта контрольной суммы. В памяти отводим специальный регистр размером 1 байт для формирования контрольной суммы принятого пакета. В результате проведения логических операций в этом регистре будет сформировано число, которое должно совпадать с принятой контрольной суммой. В начале перед вычислениями в регистр результата запишем нули. Будем проводить анализ принятого пакета побитно.
2 Сравниваем каждый принятый бит с битом №7 (последним, записываемым справа в регистре результата). Перед первым шагом там 0. Сравнение заключается в выполнении логической операции между анализируемым битом посылки и битом №7 регистра результата. Логическая операция: сложение по модулю 2 или ее второе название – исключающее ИЛИ (англ. XOR). Операция сложение по модулю 2 заключается в следующем. Если два бита совпадают, то результатом будет 0, если нет то 1. Исключающее ИЛИ обладает важными свойствами. Если одно из чисел 1 то результатом будет инверсия второго числа. Если одно из чисел 0, то результатом будет второе число.
3 Если бит из пакета данных и бит №7 регистра результата совпадают, то произведем сдвиг регистра по направлению к старшим битам, при этом в младший бит записывается бит №7. Если нет, то проинвертируем биты №3 и №4, также сдвинем регистр, а в младший бит №0 запишем результат инверсии бита №7 из результата предыдущего шага.
4 Вернемся к пункту два и повторим пока не будут пройдены все биты посылки.
5 Если все биты пакета проанализированы, то теперь в регистре результата контрольная сумма пакета данных.
Приводим пример вычисления контрольной суммы числа из трех байт 0x05 0x09 0x31. Первый столбец в приведенном примере – последовательность бит числа для которого вычисляется контрольная сумма. Второй – содержимое регистра результата.
Техническое описание