Измеряем температуру, влажность и давление датчиками начального уровня.Обратил вот внимание, что данная и весьма распространенная тема еще не освещена на моем сайте. А так как его использую в том числе и я как справочный материал (копаться в папках на хардах и дольше и не всегда они под рукой) - то решил черкануть этот кратенький материал. Существует множество различных датчиков одного и того же типа воздействия, отличаются они как правило не только по исполнению, но также и по диапазону измеряемых значений, точности и соответственно цене. Какой выбрать - решать пользователю. В этом материале рассмотрим наиболее популярные и доступные датчики указанных воздействий из нижнего ценового сегмента - соответственно ожидать от них высокой точности и стабильности не стоит - но картинку в целом они дают. Начнем с влажности. Датчики влажности и температуры DHT11 и DHT22.Оба этих датчика "очень начального" уровня, хотя второй чуть более прогрессивен. В таких сенсорах датчик температуры идет "бонусом". Взаимодействие с ними происходит по цифровому интерфейсу из одной сигнальной линии. Также к датчику подводится питание. Т.е. из четырех ног датчика используется только три. С лева направо (ногами вниз, решеткой к себе) - VCC, DATA, NC, GND. Слева - DHT22; Справа - DHT11; Приведем сравнение параметров обеих датчиков в виде таблицы.
С чтением документации и написанием скетча заморачиваться не придется - товарищи с adafruit уже проделали эту работу, так что можно просто скачать библиотеку с примером. Там нужно лишь в начале раскомментировать используемый сенсор и закомментировать все остальные. Подключение также весьма тривиально (распиновку см. выше). Линию данных вешаем на цифровую ногу указанную в скетче (по умолчанию D2), а также подтягиваем ее резистором 10к к питанию. Питать датчики рекомендуется от 3.3В (хотя и от пяти они вроде не дохнут и работают нормально). Можно встретить в продаже такие датчики напаянные на мини плату-адаптер. толк в ней сомнительный, так как из обвязки датчику нужен только резистор. Из практики тестирования - DHT11 показывает более низкое значение влажности (разница около 5%), температуру же напротив DHT11 завышает на 1°C (что подтверждается и другими термометрами). DHT22 температуру измеряет вполне адекватно. Жаль нет точного эталона для сравнения значений влажности. Датчик давления и температуры BMP085.Сей датчик (производства Bosch) весьма миниатюрен, и распаивать его самому не пожелаешь никому - посему берем его исключительно в составе платы-адаптера, которая к тому же содержит еще и стабилизатор напряжения. Наличие термометра в корпусе сенсора уже не являются просто "бонусом" - его показания необходимы для корректировки значения при расчете точной величины давления. Соответственно точность этого термометра существенно выше чем в датчике влажности. Модуль с сенсором BMP085 - содержит стабилизатор питания и пр. Интерфейс I2C. Взаимодействие с датчиком происходит по двум линям интерфейса I2C, описание последовательности чтения калибровочных констант, переменных текущего состояния, а также алгоритм расчета актуального значения температуры и давления - подробно расписаны в документации на сенсор. Колдовать с формализацией описания алгоритма тоже не приходится - можно воспользоваться готовым примером (что я и сделал). Корпус датчика вполне удачный (в отличии от описанного здесь) - практически "вандалозащищенный" ;-)) При необходимости перевода одних величин (влажности, температуры, давления) в другие можно воспользоваться одним из многочисленных онлайн калькуляторов (например этим) - и прописать уже необходимые коэффициенты для пересчета в свой скетч. MiGeRA (май 2013) | |||||||||||||||||||