Датчик абсолютной влажности воздуха на ардуино. Как подключить DHT11 к "Ардуино" и вывести данные на дисплей

Тарас Каленюк

Время на чтение: 4 минуты

А А

Для самых разнообразных процессов может быть необходимо поддержание определенных условий, микроклимата. Существуют различные приборы и установки, помогающие сохранению нужной среды в определенном месте.

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

Такие устройства могут применяться в птицеводстве (в инкубаторах), в растениеводстве, для измерения влажности почвы, воздуха, древесины и многого другого. В быту подобные приборы, как правило, применяются в Умных Домах, в банях, теплицах и т. д.

Это плата размером чуть больше спичечного коробка, которая может применяться для создания огромного количества самых разнообразных приборов и устройств, начиная от простейших лампочек-сигнализаторов, заканчивая целыми сложными системами, наподобие Умного Дома.

Благодаря огромному количеству разнообразных гнезд и контактов, а также возможности соединять несколько плат в одну систему, возможности Ардуино становятся практический неограниченными. Плата, позволяющая расширить количество возможностей, называется шилд (shield)

Годами не стихающий интерес к Ардуино можно объяснить многими причинами, среди которых простота и доступность. Программы для устройств пишутся на С++, а загружаются они при помощи приложения Arduino IDE, которое доступно к бесплатному скачиванию для любого ПО.

А что особенно приятно - для того, чтобы собрать действующий прибор, не нужно ничего паять - все в Ардуино подключается при помощи перемычек и макетных досок.

Для начала работы с такой системой есть возможность приобретения готового набора, дабы не ломать голову - что купить, где найти и с чего начать.

Для измерения же уровня влажности применяется гигрометр - конденсатор в корпусе из токопроводящего материала, который изменяет свою проницаемость в зависимости от количества попадающей на него влаги.

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

Сравнительные характеристики DHT11 и DHT22 (если нет уточнений, значит данный параметр подходит для обоих типов):

  1. питание 3-5 В;
  2. потребляемый ток 2,5 мА;
  3. габариты 15,1/12/5,5 миллиметров;
  4. четыре коннектора, расположенных на расстоянии 0,1“ друг о друга;
  5. диапазон измерения влажности 20-80% с погрешностью 5% у 11 модели; от нуля до ста процентов с погрешностью 2-5%, в зависимости от уровня влаги, у DHT22;
  6. температурный диапазон у DHT11 составляет 0-50 градусов Цельсия, а у его конкурента он значительно шире – -40/+125, причем погрешности измерения во втором случае практически равны нулю;
  7. частота DHT11 равна 1 Гц; у DHT22 – 0,5 Гц.

Исходя из перечисленных выше характеристик, можно сделать вывод, что датчик температуры и влажности Ардуино DHT22 является более точным прибором, способным работать с бОльшим диапазоном измеряемых величин, но, естественно, это скажется и на его цене.

Стоит отметить, что оба этих прибора выпускаются в двух вариантах:

  • как отдельный датчик;
  • как готовый модуль.

Если пользователь решает собрать прибор с нуля, имея на руках только «голый» датчик, необходимо будет дополнительно иметь плату, макетную доску, светодиоды, резистор с показателем 10 К.

Если же посчастливилось приобрести уже модуль, то все предельно упрощается простым подключением его к Ардуино.

В обоих случаях необходимо строго следовать инструкции и соблюдать полярность.

После сбора устройства подключаются к ПК, на них загружается необходимое ПО, после чего можно приступить к диагностике. Для проверки термистора нужно помещать его в места с разным температурным показателем и следить за получаемыми данными, а для диагностики гигрометра достаточно будет на него просто подышать.

Датчик температуры DS18B20

Данный прибор направлен на измерение уровня температуры заданного объекта или среды. Температура, с которой может работать термодатчик составляет от -55 до +125 градусов Цельсия.

Датчик температуры DS18B20 преобразует полученные данные в числовой код (9-12 бит) и передает их в головную систему с помощью протокола 1-Wire.

Существует возможность подключения к одной шине сразу нескольких датчиков, что позволяет увеличить охват измеряемой области. А уникальное имя каждого датчика позволит не перепутать их и вовремя определить точное место сигнала.

Время сбора данных при максимальном разрешении составляет 750 мс.

Терморезистор NTC

Как было сказано выше, термистор - это температурный детектор, который преобразует тепловые показания в уровень сопротивления.

Существует два типа таких датчиков:

  • PTC – positive temperature coefficient – измеритель, в котором уровень сопротивления повышается вместе с ростом температурных показателей;
  • NTC – negative temperature coefficient – датчик, снижающий показатель сопротивления при повышении уровня тепла.

В случае с Arduino датчик температуры подобного типа, который можно было бы привести в качестве примера - это NTC MF 58 100K.

В статье рассмотрены основы работы с недорогими датчиками температуры и влажности серии DHT.

Эти сенсоры простые и медленные, но при этом отлично подходят для хобби-проектов на Arduino. Датчики DHT состоят из двух основных частей: ёмкостный датчик влажности и термистор. Также в корпусе установлен простенький чип для преобразования аналогового сигнала в цифровой. Считывать цифровой сигнал на выходе достаточно просто, можно использовать любой контроллер, не обязательно Arduino.

Технические характеристики DHT11 и DHT22

Существуют две версии сенсоров DHT. Выглядят они почти одинаково. Распиновка тоже одинаковая. Основные отличия - в технических характеристиках:

  • Очень дешевый.
  • Питание от 3 до 5В.
  • Рассчитан на измерение уровня влажности в диапазоне от 20% до 80%. При этом точность измерений находится в диапазоне 5%.
  • Измеряет температуру в диапазоне от 0 до 50 градусов с точностью плюс-минус 2%.
  • Частота измерений не более 1 Гц (одно измерение в секунду).
  • Размер корпуса: 15.5 мм x 12 мм x 5.5 мм.
  • Дешевый.
  • Питание от 3 до 5В.
  • Максимально потребляемый ток - 2.5мА при преобразовании (при запросе данных).
  • Рассчитан на измерение уровня влажности в диапазоне от 0% до 100%. При этом точность измерений находится в диапазоне 2%-5%.
  • Измеряет температуру в диапазоне от -40 до 125 градусов с точностью плюс-минус 0.5 градусов по Цельсию.
  • Частота измерений до 0.5 Гц (одно измерение за 2 секунды).
  • Размер корпуса: 15.1 мм x 25 мм x 7.7 мм.
  • 4 коннектора. Расстояние между соседними - 0.1".

Как видите, DHT22 более точный и имеет больший диапазон измеряемых значений. Оба датчика имеют по одному цифровому выходу. Запросы к ним можно отправлять не чаще чем один в секунду или две.

Подключение датчиков DHT к Arduino

Подключаются датчики легко. Так как у них достаточно длинные коннекторы 0.1", можно устанавливать их непосредственно на макетную или монтажную плату (смотрите на рисунке ниже).


Непосредственное подключение к Arduino тоже простое. На сенсоре 4 коннектора:

  • Питание (VCC) - от 3 до 5 В.
  • Вывод данных.
  • Не подключается.
  • Земля.

Коннектор 3 просто игнорируйте, он не подключается. Желательно подключить подтягивающий резистор на 10 кОм между питанием и сигналом. На Arduino есть встроенные резисторы, но их номинал 100кОм нам не подойдет.

На рисунке ниже приведена схема подключения DHT11 к Arduino. Подключите сигнал с датчика к пину 2, чтобы схема соответствовала примеру скетча, который приведен ниже. Этот пин можно изменить с соответствующими правками в коде.


Считывание данных с датчиков DHTxx

Для проверки скетча мы используем Arduino. Можно использовать любой другой микроконтроллер, который поддерживает тайминг в микросекундах.

Датчики DHT11 и DHT22 – очень популярны в среде Ардуино и часто используются в проектах метеостанций и . В этой статье мы с вами узнаем, как можно использоватьэти сенсоры, как правильно подключать к платам Arduino Uno, Mega или Nano, какие библиотеки использовать для написания скетча. Данные датчики не выделяются особенным быстродействием и точностью, но они просты в использовании, их можно смело использовать в своих первых проектах в ввиду доступности и невысокой цены.

Датчик состоит из двух частей – емкостного датчика температуры и гигрометра. Первый используется для измерения температуры, второй – для влажности воздуха. Находящийся внутри чип может выполнять аналого-цифровые преобразования и выдавать цифровой сигнал, который считывается посредством микроконтроллера.

В большинстве случаев DHT11 или DHT22 доступен в двух вариантах: как отдельный датчик в виде пластикового корпуса с металлическими контактами или как готовый модуль с датчиком и припаянными элементами обвязки. Второй вариант гораздо проще использовать в реальных проектах и крайне рекомендуется для начинающих.

Датчик DHT11

  • Потребляемый ток – 2,5 мА (максимальное значение при преобразовании данных);
  • Измеряет влажность в диапазоне от 20% до 80%. Погрешность может составлять до 5%;
  • Применяется при измерении температуры в интервале от 0 до 50 градусов (точность – 2%)
  • Габаритные размеры: 15,5 мм длина; 12 мм широта; 5,5 мм высота;
  • Питание – от 3 до 5 Вольт;
  • Одно измерение в единицу времени (секунду). То есть, частота составляет 1 Гц;
  • 4 коннектора. Между соседними расстояние в 0,1 ”.

  • Питание – от 3 до 5 Вольт;
  • Максимальный ток при преобразовании – 2,5 мА;
  • Способен измерять влажность в интервале от 0% до 100%. Точность измерений колеблется от 2% до 5%;
  • Минимальная измеряемая температура – минус 40, максимальная – 125 градусов по Цельсию (точность измерений – 0,5);
  • Устройство способно совершать одно измерение за 2 секунд. Частота – до 0,5 ГЦ;
  • Габаритные размеры: 15,1 мм длина; 25 мм широта; 5,5 мм высота;
  • Присутствует 4 коннектора. Расстояние между соседними – 0,1 ‘;

Очевидно, что при использовании в ардуино датчика температуры и влажности DHT11 устройство выдаст менее точные значения, чем DHT22. У аналога больший диапазон измеряемых значений, но и цена соответствующая. Датчик температуры и влажности DHT22 , как и его аналог, имеет один цифровой выход, соответственно снимать показания можно не чаще, чем один раз в 1-2 секунды.

Где купить датчики по низким ценам

Традиционно самые низкие цены предлагают продавцы Aliexpress. Вот наиболее интересные варианты:

Цифровые датчики температуры и влажности DHT11 DHT22 DHT22 в виде модуля, совместимого с Arduino Uno R3 Беспроводной DHT22 для метеостанций на основеWeMos – собирается как бутерброд
Модуль беспроводного датчика DHT22 (с ESP8266) Недорогой вариант датчика температуры и влажности DHT11 дешевле 70 рублей! Качественно исполненный датчик DHT11 от RobotDyn

Подключение DHT11 к Arduino Uno

Если у вас на руках только сам датчик (синяя “решетчатая” пластиковая коробочка с 4-я металлическими контактами), то для подключения DHT11 вам понадобятся следующие детали:

    • Плата Arduino (или другой микроконтроллер, поддерживающий тайминг в микросекундах);
    • Монтажная (макетная плата);
    • Подтягивающий резистор номиналом в 10 кОм;
    • Светодиоды.

    Описание контактов DHT11:

    • Питание;
    • Вывод данных;
    • Не используется;
    • Земля (GND).

    Контакты нумеруются слева на право, если корпус датчика находится перед вами со стороны решетки, и «ноги» расположены внизу. Для правильной работы датчика нужно впаять резистор на 10 кОм между выходами сигнала и питанием.

    Если у вас в руках готовый модуль датчика, то подключение его к Arduino предельно упрощается: подключаете VCC к +5В, GND – к земле, третий контакт – к любому свободному пину на плате Arduino. Номер пина нужно будет затем указать скетче. Таким образом можно подключить датчика к разным платам Arduino: Uno, Arduino Mega, Arduino Nano, и другим.
    Подключение модуля датчика производится по следующей схеме:

    Датчик DHT22 /DHT11 Arduino
    + +5V
    out например, 2
    GND

    Внимание! Обязательно соблюдайте полярность подключения. В случае неправильного подключения датчик почти неминуемо выйдет из строя. Кроме того, при неправильном подключении пластиковый корпус датчик очень сильно нагреется и может обжечь вам руки. Будьте внимательны, не торопитесь!

    Для соответствия схемы примеру скетча, приведенному ниже, рекомендуется подключить сигнал с датчика влажности DHT11/DHT22 ко второму пину. Если у вас иной скетч, можно внести соответствующие правки в коде и изменить пин (пример ниже). Также подключаются дополнительные резисторы (этот шаг можно опустить, так как в плате уже установлен резистор).

    Скетч для работы с датчиками DHT11 и DHT22 в Arduino

    Перед написанием скетча давайте убедимся, что у нас установлена библиотека для работы с датчиками влажности и температуры . Скачать ее можно по ссылке https://github.com/adafruit/DHT-sensor-library . Загрузится папка под названием «DHT-sensor-library-master». Ее необходимо переименовать в DHT и переместить в папку libraries, что находится в корневой папке Arduino IDE. Далее необходимо загрузить готовый скетч или написать его самостоятельно, используя примеры. Типичный arduino скетч для работы с DHT11 и DHT22 выглядит следующим образом:

    #include "DHT.h" #define DHTPIN 2 // Тот самый номер пина, о котором упоминалось выше // Одна из следующих строк закоментирована. Снимите комментарий, если подключаете датчик DHT11 к arduino DHT dht(DHTPIN, DHT22); //Инициация датчика //DHT dht(DHTPIN, DHT11); void setup() { Serial.begin(9600); dht.begin(); } void loop() { delay(2000); // 2 секунды задержки float h = dht.readHumidity(); //Измеряем влажность float t = dht.readTemperature(); //Измеряем температуру if (isnan(h) || isnan(t)) { // Проверка. Если не удается считать показания, выводится «Ошибка считывания», и программа завершает работу Serial.println("Ошибка считывания"); return; } Serial.print("Влажность: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Температура: "); Serial.print(t); Serial.println(" *C "); //Вывод показателей на экран }

    После загрузки скетча и подключения датчика, результат измерений можно посмотреть в окне монитора порта. Там будут выводиться значения температуры и влажности. Если что-то пошло не так, проверьте правильность подключения датчика, соответствие номера порта на плате Arduino и в скетче, надежность контактов.
    Если все работает и датчик дает показания, можете провести эксперименты. Например, поместить датчик в более холодное место или подышать на него, отслеживая при этом изменения. Если при запотевании уровень влажности увеличивается, значит датчик работает исправно. Подуйте на него тонкой струйкой – влажность уменьшится и температура вернется в норму.

    На этом этапе вы сможете заметить разницу между реальным значением температуры и показаниями датчика с ардуино. Точность DHT11 гораздо хуже точности DHT22, о чем мы уже говорили в этой статье. Если у вас есть оба датчика, подключите их к плате Arduino и сравните результаты. По моему опыту, в среднем расхождение составляет больше градуса. Учитывайте это, используя эти датчики в своих проектах.

    Резюме

    Давайте подведем итог. В статье рассмотрены вопросы подключения ардуино датчиков температуры и влажности DHT11 и DHT22 к плате . Датчики лучше приобретать в виде готовых модулей. Для работы с датчиками можно использовать библиотеку DHT для Arduino, которую легко скачать по указанной в статье ссылке. В скетче мы просто инициализируем объект для работы с датчиком и пользуемся его методами для получения температуры и влажности. Все полученные результаты мы можем посмотреть в окне монитора порта, сохранить и вывести на , послать через или .

    Используя DHT11 или DHT22 в проектах ардуино, можно строить элементы и умные теплицы. С помощью этих датчиков можно создавать исследовательские комплексы для климатических измерений и мониторинга окружающей среды. Варианты сфер применения датчиков практически неисчерпаемы, можно найти множество примеров на просторах интернета, в том числе на этом сайте. Надеюсь, с помощью нашей статьи проблем с подключением DHT11 и DHT22 к Arduino у вас не останется.

В первой части статьи рассмотрим характеристики датчика температуры и влажности DHT11, научимся выводить значения в последовательный порт компьютера, во второй части усложним задачу и выведем показания на дисплей используя .

Компоненты для повторения (купить в Китае):

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

Напряжение питания: 3 - 5В
. Определяемая влажность: 20 - 80% ± 5%
. Определяемая температура: 0 - 50º ± 2%
. Частота опроса: ≤ 1Гц
. Размеры: 30 x 14 x 6мм

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

Подключение к Arduino

Модуль оборудован трех пиновым разъемом стандарта 2.54мм

G - Подключается к выводу GND

V - Подключается к выводу +5V

S - Подключается к цифровому выводу (в примере D4)

Подключив датчик к Arduino остается только залить скетч для работы. В приведенном ниже скетче мы будем измерять и отсылать данные о состоянии температуры и влажности последовательный в порт компьютера.

Библиотека необходимая для работы с модулем dht11

Её необходимо распаковать и добавить в папку "libraries" в папке с Arduino IDE. Не забывайте перезагрузить среду, если на момент добавления IDEшка была открыта.

Пример программного кода

#include // Добавляем библиотеку DHT11 dht11 DHT; #define DHT11_PIN 4 void setup (){ Serial .begin (9600); // Скорость работы порта Serial .println ("DHT TEST PROGRAM " ); // Выводим текст Serial .print ("LIBRARY VERSION: " ); // Выводим текст Serial .println (DHT11LIB_VERSION); Serial .println (); // Пустая строка } void loop (){ int chk; ; // Мониторинг ошибок chk = DHT.read (DHT11_PIN); // Чтение данных switch (chk){ case DHTLIB_OK: break ; case DHTLIB_ERROR_CHECKSUM: Serial .println ("Checksum error, \t" ); break ; case DHTLIB_ERROR_TIMEOUT: Serial .println ("Time out error, \t" ); break ; default : Serial .println ("Unknown error, \t" ); break ; } Serial .print ("Humidity = " ); Serial .print (DHT.humidity, 1); Serial .print (", Temp = " ); Serial .println (DHT.temperature,1); delay (1000); }

Открываем монитор порта. В него будут выводиться значения влажности и температуры.


Вывод значений на LCD I2C модуль

Выводить значения на компьютер это конечно отлично, однако в автономном устройстве не всегда позволительно. Как было написано вначале, во второй части статьи приведем пример вывода данных на ЖК дисплей, который в свою очередь управляется по интерфейсу I2C. Для подключения данного LCD модуля требуется всего 4 линии: + питания, земля, последовательная линия данных SDA (Serial DAta) и последовательная линия тактирования SCL (Serial CLock). Более подробно об основах работы с LCD I2C модулем вы сможете прочесть здесь.

Схема подключения будет выглядеть следующим образом.

В приведенном ниже скетче мы будем измерять и отсылать данные о состоянии температуры и влажности на ЖК дисплей.

Пример программного кода

//Тестировалось на Arduino IDE 1.0.5 #include // Добавляем необходимые библиотеки #include #include dht11 DHT; // Объявление переменной класса dht11 #define DHT11_PIN 4 // Датчик DHT11 подключен к цифровому пину номер 4 byte degree = // Битовая маска символа градуса { B00111, B00101, B00111, B00000, B00000, B00000, B00000, }; LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размерность дисплея void setup () { lcd.init(); // Инициализация lcd lcd.backlight(); // Включаем подсветку lcd.createChar (1, degree); // Создаем символ под номером 1 } void loop () { // Выводим показания влажности и температуры lcd.setCursor (0, 0); // Устанавливаем курсор в начало 1 строки lcd.print ("Humidity = % " ); // Выводим текст lcd.setCursor (11, 0); lcd.print (DHT.humidity, 1); lcd.setCursor (0, 1); // Устанавливаем курсор в начало 2 строки lcd.print ("Temp = \1C " ); // Выводим текст, \1 - значок градуса lcd.setCursor (11, 1); lcd.print (DHT.temperature,1); int chk; ; // Мониторинг ошибок chk = DHT.read (DHT11_PIN); // Чтение данных switch (chk){ case DHTLIB_OK: break ; case DHTLIB_ERROR_CHECKSUM: lcd.clear (); lcd.print ("Checksum error" ); break ; case DHTLIB_ERROR_TIMEOUT: lcd.clear (); lcd.print ("Time out error" ); break ; default : lcd.clear (); lcd.print ("Unknown error" ); break ; } delay (1000); }

Купить в России

DHT11 – датчик влажности и температуры, который генерирует откалиброванный цифровой выход и может быть интерфейсом для любого микроконтроллера, такого как Arduino и Raspberry Pi, и получать мгновенные результаты. DHT11 – это недорогой прибор, который обеспечивает высокую надежность и долговременную стабильность.

В этом проекте построена небольшая схема для интерфейса с датчиком температуры на Arduino. Одним из основных применений подключения данного сенсора к Arduino является мониторинг погоды.

Сегодня производитель Arduino проявил большую силу в сообществе разработчиков электронных приложений и распространил различные модули, которые позволяют проектам Arduino датчиков быть более гибкими.

Рассмотрим основные виды приборов, построенных на рассматриваемой платформе:

  1. Вращательный: в основном, резистор, подключенный к потенциометру и трехконтактному разъему, который позволяет подключать аналоговый выход и подавать его VCC и GND. Часто используется для определения положения двигателя, как сервомотора, так и шагового, постоянного тока и других. По-другому можно назвать – Ардуино датчик тока или Аrduino датчик движения.
  2. Звуковой: оснащен микрофоном, операционным усилителем LM386 и потенциометром, позволяющим захватывать любой звук вокруг него и превращать его в аналоговый сигнал с 0V до VCC, который может быть преобразован в сигнал Аrduino от 0 до 1024 в резолюции ADC. Существуют различные приложения для такого типа, которые относятся к аудиозахвату. Также существует ультразвуковой датчик Ардуино.
  3. Обнаружитель дыма: используется в системах обнаружения пожара, является прибором, который выявляет дым и газ, может быть откалиброван с помощью потенциометра, а выходной сигнал подключается к аналоговому входному модулю. Эти Ардуино-датчики имеют, помимо прочего, варианты MQ-2, MQ-3, MQ4 и дифференцируются по типу обнаруженного вещества, метана, спирта, пропана и другие.
  4. Детонация: предназначен для обнаружения сбоев или известен, как перкуссионный. Передает цифровой сигнал, когда обнаруживает изменение. Может быть подключен к цифровому входу на плате разработки Arduino и обнаруживать сигнал, который генерируется при наличии какого-либо удара.
  5. Ардуино-датчик температуры: предназначается для измерения состояния окружающей среды. К таким можно отнести Аrduino dsl8b20.

Распиновка и принципиальная схема подключения

Распиновка у датчиков данного типа довольно простая. Независимо от того сколько выводов у вашего сенсора - рабочих выводов всего 3:


Принципиальная схема при подключении к микроконтроллеру может выглядеть таким образом:

Устройство датчиков и схема подключения к Ардуино

DHT11 входит в состав приборов отслеживания влажности DHTXX. Другим датчиком в этой серии является DHT22. В результате они будут измерять как влажность, так и температуру. Хотя DHT11 дешевы и медленны, они очень популярны среди любителей и начинающих.

DHT11 состоит из 3 основных компонентов. Датчик влажности резистивного типа, термистор NTC и 8-разрядный микроконтроллер, который преобразует аналоговые сигналы и отправляет одиночный цифровой сигнал.


Этот цифровой сигнал может быть прочитан любым микроконтроллером или микропроцессором для дальнейшего анализа.

DHT11 состоит из 4 контактов: VCC, Data Out, Not Connected (NC) и GND. Диапазон напряжения для вывода VCC составляет от 3,5 до 5,5 В. Питание 5 В будет достаточно. Данные на выводе Data Out являются последовательными цифровыми данными.

DHT11 может измерять значение влажности в диапазоне 20-90 % относительной влажности (RH) и температуру в диапазоне 0-50 0 С. Период выборки составляет 1 секунду.

Все DHT11 точно калибруются в лаборатории, а результаты хранятся в памяти. Между любыми микроконтроллерами, такими как Arduino и DHT11 Sensor, может быть установлена ​​однопроводная связь.

Кроме того, длина кабеля может достигать 20 метров. Данные состоят из целочисленных и десятичных частей, как для относительной влажности (RH), так и для температуры.

Данные от DHT11 и Ардуино датчиков движения состоят из 40 бит, и формат выглядит следующим образом:

8 бит данных для интегрального значения RH, 8 бит данных для десятичного значения RH, 8 бит данных для интегральных значений, 8 бит данных для интегрального значения температуры и 8 бит данных для контрольной суммы.

Скетч для работы с датчиком

Давайте посмотрим теперь на код благодаря которому сенсор будет взаимодействовать с нашей платой (схема подключения выше):

#include "DHT.h" #define dht_apin A0 // Аналоговый контакт к которому подключен датчик dht DHT; void setup(){ Serial.begin(9600); delay(500);//Задержка для загрузки системы Serial.println("DHT11 сенсор влажности и температуры\n\n"); delay(1000);//Подождите, прежде чем обращаться к датчику }//end "setup()" void loop(){ //Начало программы DHT.read11(dht_apin); Serial.print("Текущая влажность = "); Serial.print(DHT.humidity); Serial.print("% "); Serial.print("температура = "); Serial.print(DHT.temperature); Serial.println("C "); delay(5000);//Подождите 5 секунд, прежде чем снова обратиться к датчику //Самый быстрый должен быть раз в две секунды }// окончание цикла loop()

Код получился таким небольшим, т.к. мы в самом начале задействовали библиотеку для сенсора. Скачать библиотеку можно по или на в разделе " ".

Arduino DHT11 – относительно дешевый прибор для измерения температуры и влажности. DHT22 похож на DHT11 и имеет большую точность. Однако эта библиотека не подходит для DHT21 или DHT22, поскольку они имеют другой формат данных.

Проверьте DHTlib на поддержку этих датчиков. Эта библиотека протестирована на MEGA2560 и подтверждена работой на Arduino 2009. Niesteszeck создал библиотеку DHT11, управляемую прерываниями. Энди Дальтон сделал модифицированную версию. Разница в том, что DATAPIN определен в конструкторе, в результате чего полагается один выделенный объект на приспособление.

С помощью одножильного приспособления DS18B20 мы можем измерять температуру от -55 ℃ до 125 ℃ с точностью ± 5.

В итоге мы должны на выходе увидеть вот такие данные:

Получение данных

Рассмотрим данные, полученные от DHT11.

00100101 00000000 00011001 00000000 00111110.

Эти данные можно разделить на основе указанной выше структуры следующим образом:

Чтобы проверить правильность полученных данных, нам нужно выполнить небольшой расчет. Добавьте все значения интегральных и десятичных значений RH и температуры и проверьте, равна ли сумма величине контрольной суммы, т. е. последним 8-битным данным:

00100101 + 00000000 + 00011001 + 00000000 = 00111110

Это значение совпадает с контрольной суммой и, следовательно, полученные данные действительны. Теперь, чтобы получить значения RH и температуры, просто преобразуйте двоичные данные в десятичные данные:

RH = Десятичное значение 00100101 = 37 %

Температура = Десятичное значение 00011001 = 25 0 C

Датчик влажности и температуры DHT11 позволяет легко добавлять данные в ваши проекты электроники DIY. Он идеально подходит для удаленных метеорологических станций, домашних систем управления окружающей средой и систем мониторинга фермы или сада.

Дополнительные сенсоры

Кроме сенсоров, которые мы рассмотрели выше можно присмотреться и к другим датчикам для Ардуино:

  1. Датчик температуры + влажности. Вы можете использовать этот совместимый с Arduino гаджет для контроля температуры окружающей среды или влажности. В качестве основного проекта вы можете подключить ЖК-дисплей к Arduino и отображать температуру в помещении/влажность.
  2. Датчик инфракрасного излучения, также называемый «инфракрасным излучающим диодом». Он работает с 38KHz модулирующим сигналом. Можно использовать для отправки кода в другой Arduino или для управления телевизором.
  3. Фоторезистор. Сопротивление компонента будет варьироваться в зависимости от интенсивности света, которому он подвергается. Является резистором, сопротивление которого падает, когда свет попадает на него.
  4. Ультразвуковой прибор расстояния автоматически отправляет аудиосигнал 40 кГц и определяет, есть ли импульсный сигнал назад. Он посылает сигнал, и если он получает обратно, то вычисляет пройденное расстояние, таким образом, расстояние от приспособления до объекта перед ним. Он может ощущать объект в диапазоне: 2 см ~ 500 см.
  5. Датчик детонации. Проще говоря, это переключатель, который включается, когда он обнаруживает стук. Существует светодиод, который также дает визуальный сигнал состояния, высокий или низкий.
  6. Звуковой будет обнаруживать окружающий звук. Это лучше всего использовать для таких проектов, как голосовые чейнджеры.
  7. Обнаружение напряжения (выше/ниже). Определяет уровень напряжения любого поставщика постоянного тока, до 25 вольт. Критические точки перенапряжения/пониженного напряжения могут быть отрегулированы.
  8. Определитель влажности и температуры. Arduino датчик влажности почвы помогает определить условия для комфортного существования комнатных и тепличных растений.

В целом, для каждого радиолюбителя есть огромный выбор для создания устройств разного назначения. О многих мы писали ранее, но о многих нам еще предстоит поговорить.