Подключение датчика температуры dht11
Содержание:
- Виды датчиков
- Сравнение датчиков DHT11, DHT22 и DHT21
- Использование датчиков в системах умного дома
- Характеристики DHT11 к Arduino
- Получение данных
- Станция с датчиком давления
- 4Временная диаграмма информационного обмена датчика температуры и влажности DHT11 с микроконтроллером
- Установка библиотеки датчиков DHT
- Общие принципы работы датчика температуры DS18B20
- Код Arduino. Использование DHT11 и DHT22/AM2302 с LCD дисплеем
- Датчик на Arduino Uno и плате расширения Troyka Shield
- Подключение датчика температуры и влажности DHT11 к Ардуино
- Программное обеспечение
- Термометр через последовательный монитор
- How the DHT11 Measures Humidity and Temperature
- Общий принцип работы
Виды датчиков
Сегодня производитель Arduino проявил большую силу в сообществе разработчиков электронных приложений и распространил различные модули, которые позволяют проектам Arduino датчиков быть более гибкими.
Рассмотрим основные виды приборов, построенных на рассматриваемой платформе:
- Вращательный: в основном, резистор, подключенный к потенциометру и трехконтактному разъему, который позволяет подключать аналоговый выход и подавать его VCC и GND. Часто используется для определения положения двигателя, как сервомотора, так и шагового, постоянного тока и других. По-другому можно назвать – Ардуино датчик тока или Аrduino датчик движения.
- Звуковой: оснащен микрофоном, операционным усилителем LM386 и потенциометром, позволяющим захватывать любой звук вокруг него и превращать его в аналоговый сигнал с 0V до VCC, который может быть преобразован в сигнал Аrduino от 0 до 1024 в резолюции ADC. Существуют различные приложения для такого типа, которые относятся к аудиозахвату. Также существует ультразвуковой датчик Ардуино.
- Обнаружитель дыма: используется в системах обнаружения пожара, является прибором, который выявляет дым и газ, может быть откалиброван с помощью потенциометра, а выходной сигнал подключается к аналоговому входному модулю. Эти Ардуино-датчики имеют, помимо прочего, варианты MQ-2, MQ-3, MQ4 и дифференцируются по типу обнаруженного вещества, метана, спирта, пропана и другие.
- Детонация: предназначен для обнаружения сбоев или известен, как перкуссионный. Передает цифровой сигнал, когда обнаруживает изменение. Может быть подключен к цифровому входу на плате разработки Arduino и обнаруживать сигнал, который генерируется при наличии какого-либо удара.
- Ардуино-датчик температуры: предназначается для измерения состояния окружающей среды. К таким можно отнести Аrduino dsl8b20.
Сравнение датчиков DHT11, DHT22 и DHT21
На сегодняшний день существует множество датчиков и модулей, которые можно использовать для измерения температуры и прочих показателей, связанных с поддержанием оптимальной жизнедеятельности человека, а также других вещей и организмов.
Их можно использовать в самых простых метеостанциях, в различных системах контроля за климатом и в умном доме, для поддержания необходимой температуры в помещениях, на производстве и во многих других случаях.
Датчики семейства DHT являются самыми популярными в кругу ардуинщиков. Важными критериями здесь являются простота в использовании и написании программного кода, да и относительно недорогая стоимость.
В семействе DHT выделяют три самых распространенных датчика: DHT11, DHT22 и DHT21.
Состоят они из термистора и емкостного датчика влажности. Цифровой сигнал, исходящий от чипа, находящегося внутри датчика, позволяет считывать температуру и влажность воздуха, а уже затем мы можем выводить эти значения в монитор порта или на дисплей, обрабатывать их и т.д.
Подключаются данные модули очень просто – с помощью трех контактов (два из которых отвечают за питание, а третий подключается к цифровому выходу на плате).
Сразу возникает вопрос: а какой датчик лучше применять? Ведь они различаются по своим характеристикам и ценам. Как выбрать необходимый модуль именно для вашего проекта и с правильным соотношением “цена-качество”? Давайте разбираться. Начнем с небольшого обзора.
DHT21 имеет несколько другой вид.
Отличие этого модуля от первых двух заключается в том, что он имеет защитный корпус, что позволяет использовать его на улице, где этот корпус защитит его от пыли, грязи и дождя.
Теперь сравним модули по основным показателям.
Датчик DHT11:
- определение влажности в диапозоне 20-80% с точностью ±5% RH
- определение температуры от 0°C до +50°C с точностью ±2 °C
- частота опроса 1 раз в секунду
Датчик DHT22:
- определение влажности в диапазоне 0-100% с точностью ±2% RH
- определение температуры от -40°C до +125°C с точностью ±0.5℃
- частота опроса 1 раз в 2 секунды
Датчик DHT21:
- определение влажности в диапазоне 0-100% с точностью ±2% RH
- определение температуры от -40°C до +80°C с точностью ±0.5°C
Сравнивая цены на данные модули, можно сразу выделить низкую цену на датчик DHT11. Стоит он, как правило, в районе 100-200 рублей – это связано с высоким спросом на данные модули и с их простым устройством.
DHT21 и DHT22 на фоне первого легко можно отнести к более дорогим: цена на них обычно колеблется в районе 300-400 рублей (то есть в 2-3 раза дороже).
Связано это с большей точностью показаний, большим диапазоном в измерении температур, к тому же у датчика DHT22 есть защитный корпус, который предохраняет его от загрязнения и влаги, что тоже играет весомую роль в составлении цены.
В связи с этим стоит подумать, а так ли вам надо переплачивать за защитный корпус, если применение вашего датчика ограничивается, к примеру, лишь комнатой?
Наиболее оптимальным датчиком для домашней метеостанции будет DHT11, поскольку он дешевле, занимает меньше места, надежен и прост в эксплуатации и не требует от создателя измерять рекордно низкие или высокие температуры, поддерживая стабильность на протяжении долгого времени.
Если же вам необходимо измерять отрицательную температуру или повысить точность и частоту результатов, то воспользуйтесь датчиком DHT22.
Надеемся, что статья была полезной и помогла вам в выборе необходимого модуля в управлении климатом. Удачной всем компиляции и следите за нашим блогом!
DHT22 и Arduino – схема подключенияПодключение кнопки к Arduino
Использование датчиков в системах умного дома
Конструктор Arduino предоставляет возможность любому человеку создать собственную систему умного дома, под конкретные задачи. Универсальная плата с микроконтроллером Arduino UNO позволяет подключать различные модули и взаимодействовать с ними. Пример этого показан в статье. Модуль влажности и температуры, которым можно измерять концентрацию пара в воздухе, теперь подключен к дисплею и выводит соответствующую информацию. Можно задействовать и другие сценарии работы:
- Информацию выводить на удаленный сервер и считывать ее через приложение со своего смартфона.
- Задействовать в схеме реле, которое будет включать вентилятор в вытяжке, если концентрация пара в ванной достигнет 85%. И отключать, когда замеры покажут норму.
- Или использовать в схеме умную розетку, которая включит кондиционер, чтобы привести влажность в квартире в нормальное состояние.
- Можно использовать и более сложные моторы, например электроприводы для окон, чтобы автоматически оно открывалось на проветривание, если концентрация влаги не в норме.
- Использование сенсора в фермерстве, и на той же птицефабрике – неотъемлемая часть автоматизации. С помощью несложной системы можно с легкостью контролировать процессы в инкубаторе и корректировать их, в случае отхождения от нормы.
Характеристики DHT11 к Arduino
Прибор DHT11 обладает следующими техническими характеристиками:
- максимальное значение силы тока 2.5 мА;
- напряжение от 3 до 5 В;
- для подключения к Ардуино нуждается в резисторе;
- точность ± 2 градуса;
- размеры 15.5×12×5.5 мм;
- частота 1 Гц;
- однопроводный протокол обмена;
- не работает в «паразитном» режиме;
- использует один цифровой пин;
- библиотека DHT.h.
Датчик DHT22 и одиннадцатая версия часто применяются в проектировании систем «умного» дома и при создании метеостанций. Внутренний чип устройств выполняет преобразование данных, поступающих с датчиков, и передает сигнал микроконтроллеру.
Данные представляют собой сорок бит информации, где:
- восемь бит отводится на интегральное значение RH;
- восемь — на десятичное значение RH;
- восемь для интегрального значения показателя температуры;
- и оставшиеся восемь для создания контрольной суммы.
Устройство предлагается в двух вариантах — отдельно в пластиковом корпусе с выходом контактов или собранным модулем, к которому припаяны элементы обвязки. Эта версия больше подходит для реализации проектов начинающими.
Среди преимуществ одиннадцатой версии часто называют простоту и небольшую стоимость — двадцать вторая версия оказывается обычно в два или даже в три раза дороже. Чаще всего одиннадцатая применяется в процессе обучения или при создании систем, где точностью легко пренебречь.
Важным моментом является и то, что одиннадцатая версия превосходит более старшую по частоте выборки и отличается меньшими габаритными размерами. Однако оба устройства могут заменять друг друга, не потребуется даже проводить перепрограммирование системы или вносить коррективы в схему подключения.
Получение данных
Рассмотрим данные, полученные от DHT11.
00100101 00000000 00011001 00000000 00111110.
Эти данные можно разделить на основе указанной выше структуры следующим образом:
Чтобы проверить правильность полученных данных, нам нужно выполнить небольшой расчет. Добавьте все значения интегральных и десятичных значений RH и температуры и проверьте, равна ли сумма величине контрольной суммы, т. е. последним 8-битным данным:
00100101 + 00000000 + 00011001 + 00000000 = 00111110
Это значение совпадает с контрольной суммой и, следовательно, полученные данные действительны. Теперь, чтобы получить значения RH и температуры, просто преобразуйте двоичные данные в десятичные данные:
- RH = Десятичное значение 00100101 = 37%
- Температура = Десятичное значение 00011001 = 25C
Датчик влажности и температуры DHT11 позволяет легко добавлять данные в ваши проекты электроники DIY. Он идеально подходит для удаленных метеорологических станций, домашних систем управления окружающей средой и систем мониторинга фермы или сада.
Станция с датчиком давления
Следующая модель будет уметь определять:
- влажность и температуру;
- уровень высоты;
- атмосферное давление.
Компоненты
Для сборки потребуются:
- сенсор DHT22;
- датчик давления BMP180;
- плата Ардуино Нано;
- lcd-экран с блоком I2C;
- резистор 10 кОм;
- плата макетная;
- припой;
- 40-контактный однорядный разъем;
- соединительные провода.
Придется паять и работать с контактами, поэтому также необходим паяльник и плоскогубцы.
Сенсор давления
Таковым послужит барометрический датчик с интерфейсом I2C BMP180. Он станет контролировать абсолютное значение параметра вокруг себя. Падение обычно сигнализирует о приближении грозы и наступлении дождя (поскольку им сопутствует область низкого давления), а увеличение, наоборот, говорит о прохождении области низкого давления и наступлении ясной сухой погоды.
Давление всегда зависит от высоты над уровнем моря и погодных условий в зоне измерения. Но в нашем случае измеряется относительное — как если бы метеостанция находилась на уровне моря.
Кроме того, монитор погоды должен быть защищен и от нагрева — воздействие источников тепла исказит показания температуры. Попадание воды также внесет помехи, в конструкции это нужно учесть и предусмотреть защиту.
Еще один важный момент — светочувствительность. Благодаря силикону в конструктиве BMP180 он способен улавливать попадающий через отверстие в корпусе микрочипа свет и нагреваться. Максимально точные измерения потребуют изоляции от окружающего света.
BMP180 соединяется через шину I2C по следующей схеме:
A4 — SDA;
A5 — SCL;
3.3V — VCC;
GND — GND.
Сборка
Процесс сборки начинается с монтажа однорядных разъемов для DHT22 и Arduino:
От вывода DATA к GND припаян резистор на 10 кОм.
Далее монтируется разъем для BMP180 (питаться датчик будет от линии 3.3 В). Компоненты соединяются шиной I2C.
На последнем этапе та же шина соединяется с дисплеем.
Так выглядит домашняя метеостанция в сборе:
Пример вывода информации об атмосферном давлении:
Программный код
Для работы понадобятся скетч Ардуино и библиотеки датчиков. Все они доступны в приложениях к статье.
Текст скетча можно скачать здесь: https://cloud.mail.ru/public/piwT/gew8pPv7M
4Временная диаграмма информационного обмена датчика температуры и влажности DHT11 с микроконтроллером
С помощью временной диаграммы, полученной с логического анализатора, разберёмся, как осуществляется информационный обмен.
Для связи с микроконтроллером датчик температуры и влажности DHT11 использует однопроводный последовательный пакетный интерфейс. Один информационный пакет длительностью около 4 мс содержит: 1 бит запроса от микроконтроллера, 1 бит ответа датчика и 40 битов данных от датчика (16 битов информации о влажности, 16 битов информации о температуре и 8 проверочных битов).
Давайте подробнее рассмотрим временную диаграмму информационного обмена Arduino с датчиком DHT11.
Временная диаграмма информационного обмена сенсора DHT11 с микроконтроллером
Из рисунка видно, что есть два типа импульсов: короткие и длинные. Короткие в данном протоколе обмена обозначают нули, длинные импульсы – единицы.
Итак, первые два импульса – это запрос Arduino к DHT11 и, соответственно, ответ датчика. Далее идут 16 бит влажности. Причём они разделены на байты, старший и младший, старший слева. То есть на нашем рисунке данные о влажности такие: 0001000000000000 = 00000000_00010000 = 0x10 = 16% относительной влажности.
Данные о температуре, аналогично: 0001011100000000 = 00000000_00010111 = 0x17 = 23 градуса Цельсия.
Контрольная сумма – это всего-навсего арифметическое суммирование 4-х полученных байтов данных:
00000000 +
00010000 +
00000000 +
00010111 =
00100111 в двоичной системе или 0 + 16 + 0 + 23 = 39 в десятичной.
Установка библиотеки датчиков DHT
Связь с датчиками DHT11, с датчиками DHT22/AM2302 – это сложная задача, поскольку для передачи данных они используют собственный однопроводный протокол. Этот протокол требует точной синхронизации. К счастью, нам не нужно беспокоиться об этом, потому что мы собираемся использовать библиотеку DHT от Adafruit, которая позаботится почти обо всем. Эта библиотека настолько мощна, что работает как на архитектуре Arduino, так и на архитектуре ESP.
Чтобы установить библиотеку, перейдите в меню Скетч (Sketch) → Подключить библиотеку (Include Library) → Управлять библиотеками… (Manage Libraries…). Подождите, пока менеджер библиотек загрузит индекс библиотек и обновит список установленных библиотек.
Рисунок 3 – Установка библиотеки Arduino – выбор управления библиотеками в Arduino IDE
Отфильтруйте результаты поиска, введя «DHT sensor». Должна остаться пара записей. Найдите DHT sensor library by Adafruit. Нажмите на эту запись, а затем выберите Установить (Install).
Рисунок 4 – Установка библиотеки Adafruit DHT
Библиотека датчиков DHT использует Adafruit Sensor support backend. Поэтому поищите в менеджере библиотек Adafruit Unified Sensor и установите его тоже (возможно, придется немного прокрутить).
Общие принципы работы датчика температуры DS18B20
DS18B20 представляет собой однопроводный цифровой датчик температуры от компании Maxim IC. Выдает значение температуры в градусах Цельсия, способен измерять температуру с 9-12 битной точностью в диапазоне от -55 до 125 градусов Цельсия с точностью +/-0.5 градуса. Каждый датчик DS18B20 имеет 64-битный уникальный номер (Serial number), вытравленный на корпусе датчика, что позволяет подключать огромное число подобных датчиков к одной шине данных. С помощью данного датчика можно измерять температуру воздуха, жидкостей и земли. В некоторых магазинах датчик продается в комплекте с резистором сопротивлением 4,7 кОм.
Особенности датчика DS18B20:
- однопроводный интерфейс (1-Wire interface), что позволяет использовать для подключения датчика только один контакт микроконтроллера (в нашем случае платы Arduino Uno);
- каждый датчик имеет 64-битный уникальный последовательный код (номер), хранящийся в ПЗУ (ROM) датчика;
- способность подключения к одной шине множества датчиков позволяет создавать на его основе приложения для распределенного (в пространстве) измерения температуры;
- не требует никаких внешних компонентов;
- может быть запитан от линии данных;
- поддерживает напряжение питания от 3.0V до 5.5V;
- способен измерять температуру в диапазоне от –55°C до +125°C (–67°F до +257°F) с точностью ±0.5°C (в диапазоне от –10°C до +85°C);
- можно выбрать разрешающую способность (разрешение) датчика: от 9 до 12 бит;
- преобразует значение температуры в 12-битное цифровое слово длительностью 750 мс (max.);
- можно настраивать энергонезависимую (nonvolatile, NV) сигнализацию (сигнал тревоги);
- опции сигнала тревоги позволяют идентифицировать и определить адрес датчика, чья температура не соответствует запрограммированным границам;
- может применяться в устройствах термоконтроля, промышленных системах, потребительских продуктах, термометрах и в любых других системах, где требуется измерение температуры.
Более подробную информацию о принципах работы датчика DS18B20 вы можете посмотреть в следующей статье на нашем сайте.
Код Arduino. Использование DHT11 и DHT22/AM2302 с LCD дисплеем
Иногда может возникнуть идея, контролировать температуру и влажность в инкубаторе. Тогда для отображения условий в инкубаторе вам, вероятно, понадобится символьный LCD дисплей 16×2 вместо монитора последовательного порта. Итак, в этом примере вместе с датчиком DHT11 или DHT22/AM2302 мы подключим к Arduino LCD дисплей.
Если вы не знакомы с LCD дисплеями на 16×2 символов, взгляните на статью «Взаимодействие Arduino с символьным LCD дисплеем».
Далее нам нужно подключиться к LCD дисплею, как показано ниже.
Рисунок 9 – Подключение к Arduino символьного LCD дисплея 16×2 и DHT11Рисунок 10 – Подключение к Arduino символьного LCD дисплея 16×2 и DHT22
Следующий скетч будет выводить значения температуры и относительной влажности на символьном LCD дисплее 16×2. Он использует тот же код, за исключением того, что мы печатаем значения на LCD дисплее.
Рисунок 11 – Показания температуры и влажности на LCD дисплее
Датчик на Arduino Uno и плате расширения Troyka Shield
Рассмотрим еще одну погодную станцию. Ее особенности:
- использование цифрового метеосенсора troyka;
- термометр DS18B20;
- барометр Troyka V2.
- хранение данных на карточке MicroSD — для удобства их последующего анализа на любом устройстве.
Компоненты
Для проекта требуются:
- контроллер Arduino Uno;
- плата расширения Troyka Shield;
- метеодатчик;
- четырехразрядный цифровой дисплей-индикатор;
- барометр с troyka-блоком подтяжки;
- картридер и карточка micro-SD.
Порядок сборки
Система собирается по шагам.
- Установить плату расширения на Ардуино.
- Подключить к пинам шины I2C метеодатчик.
- Подсоединить дисплей в разъемы e-f на схеме. Пин CS идет на пин 10 микрокомпьютера Ардуино.
- Барометр вставляется в слот B, пины шины I2C.
- Термометр подключается в слот C, пин 4. Для его работы потребуется дополнительный модуль подтяжки.
- И, наконец, к слоту D и на пин 8 подключается картридер.
Подключение датчика температуры и влажности DHT11 к Ардуино
Относительная влажность
- Разрешение: 16Bit
- Повторяемость: ± 1% относительной влажности
- Точность: На 25 ℃ ± 5% относительной влажности
- Взаимозаменяемость: полностью взаимозаменяемы
- Время отклика: 1 / е (63%) из 25 ℃ 6s 1 м / с воздуха 6s
- Гистерезис:
Модернизация датчика DHT11
Существует модернизация датчика, но она обладает аналогичными характеристиками и скетч для него будет такой же, разве что подключение датчиков к Arduino будет слегка отличаться
Для начала работы нам понадобятся такие компоненты
- Любая Arduino (в нашем случае Arduino UNO)
- Датчик DHT11 в любой модернизации
- Breadboard (макетная плата)
- Соединительные провода
- Резистор на 10 кОм (для определенной модернизации)
- Питание.
- Вывод данных.
- GND (земля).
- Питание.
- Вывод данных.
- Не используется.
- GND (земля).
Рассмотрим подключение стандартного датчика DHT11
Для такого датчика потребуется резистор на 10кОм .
Приведена схема подключения .
DHT11 подключен и готов к работе. Осталось написать программу для Arduino.
Программирование
Для работы датчика на Arduino нужно скачать и установить библиотеку DHT11 .
Скачать библиотеку можно здесь .
После того, как мы скачали нужную библиотеку, ее нужно правильно установить. скачанные файлы нужно переместить по следующему пути :
Диск CProgtam FilesArduinoLibraries
После того, как мы все сделали перейдем к самой важной ступеньке, а именно к программированию. #include “DHT.h”#define DHTPIN 2 // номер пина, к которому подсоединен датчик // Инициируем датчик DHT dht(DHTPIN, DHT11); void setup() { Serial.begin(9600); dht.begin(); Serial.println(“DHTxx test!”); } void loop() { delay(2000); // Задержка 2 секунды между измерениями float h = dht.readHumidity(); //Считываем влажность float t = dht.readTemperature(); // Считываем температуру if (isnan(t) || isnan(h)) { Serial.println(“Failed to read from DHT”); } else {Serial.print(“Humidity: “);Serial.print(h);Serial.print(” % “);Serial.print(“Temperature: “); Serial.print(t);Serial.println(” *C”);}}
#include “DHT.h”#define DHTPIN 2 // номер пина, к которому подсоединен датчик // Инициируем датчик DHT dht(DHTPIN, DHT11); void setup() { Serial.begin(9600); dht.begin(); Serial.println(“DHTxx test!”); } void loop() { delay(2000); // Задержка 2 секунды между измерениями float h = dht.readHumidity(); //Считываем влажность float t = dht.readTemperature(); // Считываем температуру if (isnan(t) || isnan(h)) { Serial.println(“Failed to read from DHT”); } else {Serial.print(“Humidity: “);Serial.print(h);Serial.print(” % “);Serial.print(“Temperature: “); Serial.print(t);Serial.println(” *C”);}}
Потом загружаем скетч в нашу плату arduino и открываем монитор порта для просмотра полученных данных, открыть монитор порта можно открыть нажав ((текст))
Программное обеспечение
Составить программное обеспечение для датчика DHT11 является немного более сложным, чем сама аппаратная часть, из-за условий синхронизации для «1» и «0». Подпрограмма для инициализации датчика DHT11 и чтения 40-бит данных в определенной последовательности написана в mikroC Pro для PIC.
Для отслеживания ширины принятого импульса данных, а именно, чтобы определить, является ли принятый бит «1» или «0» использован модуль Timer0. Когда обнаруживается переход сигнала с низкого уровня на высокий в начале любого бита данных, TMR0 очищается и запускается.
Поскольку тактовая частота составляет 4,0 МГц, приращения TMR2 на 1 происходит каждую 1мксек. TMR0 останавливается всякий раз, когда пульс данных снова становится низким. Значение регистра TMR0 дает ширину импульса данных в мксек.
Возьмем 40мксек как порог для определения «0» и «1». Если TMR0 больше 40, это означает, что получен бит «1», иначе «0». Ссылка на скачивание полного исходного кода находится в конце статьи. Полный исходный код написан на mikroC Pro для PIC . Он может быть легко адаптирована к любой другой платформе, но помните, что если вы используете другую тактовую частоту, вы должны изменить работу таймера TMR0.
Точность DHT11 не так хороша, как у датчиков серии SHT1X/7X SENSIRION, но зато он позволяет радиолюбителю просто и недорого определить, в рамках одного устройства, относительную влажность и температуру.
Скачать прошивку (27,9 KiB, скачано: 499)
http://embedded-lab.com/blog
Термометр через последовательный монитор
Чтобы отобразить данные на последовательном мониторе, подключите датчик DS18B20 к Arduino, используя перемычки и макет, и не забудьте подключить или припаять резистор 4.7k между контактом 2 и 3 датчика.
Затем скачайте, откройте и загрузите файл .ino, который называется — DS18B20_Serial, ниже.
Если все в порядке, вы должны увидеть измеренную температуру на серийном мониторе Arduino IDE.
#include <OneWire.h> #include <DallasTemperature.h> // Провод данных подключен к контакту 2 на Arduino #define ONE_WIRE_BUS 2 // Настройка oneWire для связи с любыми устройствами OneWire // (не только Maxim/Dallas температурные IC) OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); void setup(void) { // Старт серийного порта Serial.begin(9600); Serial.println("Dallas Temperature IC демо"); // Запуск библиотеки sensors.begin(); } void loop(void) { // запрашиваем sensor.requestTemperatures() для получения глобальной температуры // запрос всех устройств на шине Serial.print(" Запрашиваем температуру..."); sensors.requestTemperatures(); // Отправляем команды для получения температуры Serial.println("DONE"); Serial.print("Температура: "); Serial.print(sensors.getTempCByIndex(0)); // Почему "byIndex"? // У вас может быть несколько IC на одной шине. // 0 относится к первой IC delay(1000); }
How the DHT11 Measures Humidity and Temperature
The DHT11 detects water vapor by measuring the electrical resistance between two electrodes. The humidity sensing component is a moisture holding substrate with electrodes applied to the surface. When water vapor is absorbed by the substrate, ions are released by the substrate which increases the conductivity between the electrodes. The change in resistance between the two electrodes is proportional to the relative humidity. Higher relative humidity decreases the resistance between the electrodes, while lower relative humidity increases the resistance between the electrodes.
The DHT11 measures temperature with a surface mounted NTC temperature sensor (thermistor) built into the unit. To learn more about how thermistors work and how to use them on the Arduino, check out our Arduino Thermistor Temperature Sensor Tutorial.
With the plastic housing removed, you can see the electrodes applied to the substrate:
An IC mounted on the back of the unit converts the resistance measurement to relative humidity. It also stores the calibration coefficients, and controls the data signal transmission between the DHT11 and the Arduino:
The DHT11 uses just one signal wire to transmit data to the Arduino. Power comes from separate 5V and ground wires. A 10K Ohm pull-up resistor is needed between the signal line and 5V line to make sure the signal level stays high by default (see the datasheet for more info).
There are two different versions of the DHT11 you might come across. One type has four pins, and the other type has three pins and is mounted to a small PCB. The PCB mounted version is nice because it includes a surface mounted 10K Ohm pull up resistor for the signal line. Here are the pin outs for both versions:
Общий принцип работы
Измеряющая данные окружающей среды метеостанция на Ардуино состоит из нескольких основных компонентов:
- собственно плата управления Arduino (например, Uno). На нее поступает информация со внешних датчиков, контроллер выполняет вычисления и выводит информацию на экран;
- электронный дисплей — служит для отображения поступивших с контроллера данных в понятной человекочитаемой форме;
- сенсор влажности температуры. В подобных схемах популярны датчики DHT11 и DHT22. Они регистрируют данные среды и отдают их контроллеру;
- макетная плата — основа для сборки всех компонентов. На ней фиксируются все элементы метеостанции, по ней же прокладываются электрические соединения;
- соединительные провода — с «оголенными» концами под пайку или оснащенные штекерами.
Кроме того, в плату понадобится залить соответствующее программное обеспечение — скетч. Его содержимое зависит от набора элементов и выполняемых задач, примеры скетчей мы также рассмотрим ниже.