Слева - DHT22; Справа - DHT11;
Приведем сравнение параметров обеих датчиков в виде таблицы.
DHT11 | DHT22 | |
Диапазон измерения влажности | 20-80% | 0-100% |
Точность при измерении влажности | 5% | 2-5% |
Диапазон измерения температуры | 0-50°C | -40 to 125°C |
Точность при измерении температуры | ±2°C | ±0.5°C |
Максимальная частота измерений | 1 Hz | 0.5 Hz |
С чтением документации и написанием скетча заморачиваться не придется - товарищи с adafruit уже проделали эту работу, так что можно просто скачать библиотеку с примером. Там нужно лишь в начале раскомментировать используемый сенсор и закомментировать все остальные. Подключение также весьма тривиально (распиновку см. выше). Линию данных вешаем на цифровую ногу указанную в скетче (по умолчанию D2), а также подтягиваем ее резистором 10к к питанию. Питать датчики рекомендуется от 3.3В (хотя и от пяти они вроде не дохнут и работают нормально).
Можно встретить в продаже такие датчики напаянные на мини плату-адаптер. толк в ней сомнительный, так как из обвязки датчику нужен только резистор.
Из практики тестирования - DHT11 показывает более низкое значение влажности (разница около 5%), температуру же напротив DHT11 завышает на 1°C (что подтверждается и другими термометрами). DHT22 температуру измеряет вполне адекватно. Жаль нет точного эталона для сравнения значений влажности.
Сей датчик (производства Bosch) весьма миниатюрен, и распаивать его самому не пожелаешь никому - посему берем его исключительно в составе платы-адаптера, которая к тому же содержит еще и стабилизатор напряжения. Наличие термометра в корпусе сенсора уже не являются просто "бонусом" - его показания необходимы для корректировки значения при расчете точной величины давления. Соответственно точность этого термометра существенно выше чем в датчике влажности.
Модуль с сенсором BMP085 - содержит стабилизатор питания и пр. Интерфейс I2C.
Взаимодействие с датчиком происходит по двум линям интерфейса I2C, описание последовательности чтения калибровочных констант, переменных текущего состояния, а также алгоритм расчета актуального значения температуры и давления - подробно расписаны в документации на сенсор. Колдовать с формализацией описания алгоритма тоже не приходится - можно воспользоваться готовым примером (что я и сделал). Корпус датчика вполне удачный (в отличии от описанного здесь) - практически "вандалозащищенный" ;-))
При необходимости перевода одних величин (влажности, температуры, давления) в другие можно воспользоваться одним из многочисленных онлайн калькуляторов (например этим) - и прописать уже необходимые коэффициенты для пересчета в свой скетч.
MiGeRA (май 2013)