Подключение dht22 к ардуино схема

DHT22 подключение к Arduino

Пошаговая инструкция по подключению датчик температуры и влажности DHT22 к Arduino и получению данных с этого датчика.

Для начала ознакомимся с параметрами датчика:

    Диапазон измерения влажности: 0

100% RH ± 2%
Диапазон измерения температуры: -40

125’C ± 0,5 ‘C

  • Напряжение питания: 3,3 — 6 В.
  • На датчике есть 3 вывода для подключения его к внешним устройствам.

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

    • Вывод 1 на DHT22 к +5V на Arduino
    • Вывод 2 на DHT22 к 2 пину на Arduino
    • Вывод 3 на DHT22 к GND на Arduino
    • Между 1 и 2 выводами необходимо подключить резистор на 10 кОм

    Если у вас датчик без переходной платы, то выводы маркируются так:

    • Вывод 1 — +5V
    • Вывод 2 — данные
    • Вывод 3 — не используется
    • Вывод 4 — GND
    • Между 1 и 2 выводами необходимо подключить резистор на 10 кОм

    В результате должно получиться что-то подобное:

    Для работы с датчиком в среде Arduino необходимо установить дополнительную библиотеку DHT.

    dht.rar (2,9 KiB, 11 022 hits)

    Скачайте архив и распакуйте его содержимое в \arduino-1.xx\libraries\

    Проверочный скетч для работы с DHT22

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

    #define DHTPIN 2
    #define DHTTYPE DHT22

    DHT dht(DHTPIN, DHTTYPE);

    void setup() <
    Serial.begin(9600);
    Serial.println(«DHTxx test!»);

    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(» %\t»);
    Serial.print(«Temperature: «);
    Serial.print(t);
    Serial.println(» *C»);
    >
    >

    Результат нашей работы:

    Установка датчика температуры и влажности

    Датчики температуры и влажности устанавливаются на высоте 2 м над землёй в метеобудке : это небольшой деревянный ящик (размером приблизительно 40*40*40 см) с белыми, отражающими свет перфорированными или жалюзийными стенками, а также солнцеводозащитным козырьком (крышка будки должна быть герметичной и иметь наклон для стекания осадков с будки).

    • Автор: source
    • Миниатюра:
    • Рубрика: Arduino от А до ЯArduino, DHT22, влажность, температура —>
    • Опубликовано: 31.01.2018
    • Обновлено: 31.01.2018
    • Комментариев: 31
    • Просмотров: 82 580 searchПоисковые боты

    Похожие записи

    Комментариев: 31

    как изменить код программы чтобы к Ардуине подключить 2 или 3 датчика DHT22 ?
    к отдельным цифровым входам ? Если не сложно выложите скетч с комментарием. Спасибо

    нужно контролировать температуру и влажность в двух местах с помощью одной Mega2560

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

    Я разобрался ! там все просто!) можно хоть 10 прицепить

    ну и выложи скетч и объясни как..

    Здравствуйте! Вкраце плата мега 2560 датчик DHT11 и резистор 10 КоМ показывает влажность 1770 температура 742, скетч ваш. Подскажите куда копать или это датчик бракованный.

    Если у вас датчик без переходной платы, то выводы маркируются так:
    Вывод 1 — +5V
    Вывод 2 — данные
    Вывод 3 — не используется
    Вывод 4 — GND

    Исходя из ваших данных могу предположить, что 1770 — это все-таки температура 17,7
    742 — атмосферное давление
    Правда если скетч действительно не меняли, то не знаю почему так вышло.

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

    Датчик не паял, он с переходной платой с 3 выводами, пишет humidity 1770.00 %, делал все через монтажную плату.

    DHT11 выдаёт только целые значения влажности и температуры. Вариант 17,70 отпадает. Обратите внимание что объявить надо DHT11 а не DHT22.

    Не удержался.
    Получил посылку из Китая с датчиками DHT11. Встала задача быстро проверить. В наличие есть Arduino Mega2560. Задал поисковый запрос Яндексу. Попал на ваш сайт. Прочитал статью.
    Извините за прямоту, но очередная дебильная статья. Не потому, что неправильная, а потому, что недоделанная! Увы, таких авторов большинство. Вы для кого пишите? Новичков или профи?
    Если для новичков, то здорово, что есть фотки. НО!
    1)Ардуин есть куча. Ваша статья только для Mega2560 или для других тоже подходит?
    2)»необходимо установить дополнительную библиотеку DHT.» Вы думаете новички понимают вашу умную терминологию? Я написал бы так: Что бы «рассказать» Ардуино как общаться с датчиком DHT11 надо установить «объяснялку» (называется «библиотека»). И далее как у вас.
    3)Ну почему надо везде лепить слово «скетч»? Где Вы даете определение этого понятия?
    4)»Теперь загрузим тестовый скетч». Загрузим КУДА? В блокнот, ворд? Я написал бы: Скопируем приведенную ниже текст программы для Ардуино (скетч) в предварительно запущенную на компьютере специальную программу для работы с Ардуино (Arduino IDE).
    5) Где вы указываете на необходимость компиляции?
    6) Где вы указываете на необходимость заливки в Ардуино?
    7)А где должен отобразиться результат работы программы вообще не указываете! Я предполагаю, что у вас картинка гипертерминала?
    8)А почему используется вывод 2 Ардуино? А не 3,4,5.
    9)Почему +5вольт, а не +3.3? Теперь в интернете много «граматеев», которые пишут просто бред. Стрёмно подавать повышеное питание, когда есть рядом пониженное.
    10)Если мои предположения верны, что на картинке гипертерминал виндовс, то его надо настраивать! Где настройки?
    11)Почему COM36?
    Коль беретесь писать для новичков, так потрудитесь подавайть информацию полностью! Это добавит всего-то пяток «лишних» предложений, а «картина» будет понятной!

    Не буду с вами спорить — всем не угодишь.
    Рекомендую просмотреть видеоуроки по Arduino на русском https://geekelectronics.org/arduino/videouroki-po-arduino-na-russkom.html
    После просмотра у вас появится кое-какой багаж знаний и закроется много вопросов.
    Если что-то не будет получаться — пишите. Попробую помочь.

    Человек, который начал работать с датчиком температуры и влажности (я купил за 345 рублей) наверное имеет понятие о портах, скетч и т.д. Новички обычно проводят эксперименты со светодиодами за 20 рублей. Немного помучиться тоже не мешает. Когда разжёванное в рот кладут — тоже не айс. Статья классная, у меня всё получилось. Спасибо.

    Никогда не понимал, таких. Люди делятся знаниями, подсказывают.. Хорошо ли это делают, плохо-ли — но делают. А такие «умники» как ты, не способные понять, почему 5В, и пин 2, а не 3,4,5 лепят целую статью левой критики, вместо того чтобы дельное что-нить написать. Или ты профи и решил над человеком постебаться? Так на кой тебе тогда этот убогий DHT11 и Arduino?
    Не нравится — не читай. Написал что-то дельное? Выкладывай ссылки — почитаем, обсудим. Нет, не написал? Так и тусуйся со своим больным самолюбием!

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

    #include «DHT.h»
    #include
    #include
    #include

    #define DHTPIN 2 //пин для датчика DNT22
    #define DHTTYPE DHT22

    BMP085 dps = BMP085();
    LiquidCrystal lcd(11, 10, 9, 8, 7, 6);//распиновка экрана
    long Temperature = 0, Pressure = 0;
    DHT dht(DHTPIN, DHTTYPE);
    float h;
    float t;

    void setup() <
    Serial.begin(9600);
    Serial.println(«DHT22 test!»);
    dht.begin();
    lcd.begin(16, 2);
    lcd.clear();
    Wire.begin();
    dps.init(MODE_STANDARD, 0, true);
    //dps.init();
    delay(1000);
    >
    void pr () <
    lcd.setCursor(0, 0);
    lcd.print(Pressure/133.3);
    lcd.print(«mm»);
    lcd.setCursor(10, 0);
    lcd.print(Temperature*0.1);
    lcd.print(«C «);

    lcd.setCursor(0, 1);
    lcd.print(h);
    lcd.print(«%»);
    lcd.setCursor(10, 1);
    lcd.print(t);
    lcd.print(«C «);
    >

    h = dht.readHumidity(); // Назначаем переменную для датчика DNT22
    t = dht.readTemperature();// Назначаем переменную для датчика DNT22

    // if (isnan(t) || isnan(h)) <
    // Serial.println(«Failed to read from DHT»);
    // >
    // else <

    // >
    >
    Экран LCD1602.
    Сборка высоту не показывает.Для калибровки давления нужно поправит строчку Место нуля задать высоту в миллиметрах, если не ошибаюсь. Датчик BMP85 подключается на PIN A4,A5 .
    dps.init(MODE_STANDARD, 0, true);

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

    Очень грубо, дорогой. Статья норм. Да, не всё пояснено.
    Но ты неправ 123ksn. Ардуино это не конструктор для детей. Не понял? Сиди, ищи, разбирайся, изучай. А не гони на других.

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

    Источник

    Как работают датчики температуры и влажности DHT11 и DHT22, и их взаимодействие с Arduino

    Датчики температуры и влажности DHT11 и DHT22/AM2302 от AOSONG довольно просты в использовании, недорогие и отлично подходят для любителей! Эти датчики предварительно откалиброваны и не требуют дополнительных компонентов, поэтому вы можете сразу начать измерение температуры и относительной влажности.

    Рисунок 1 – Как работают датчики температуры и влажности DHT11 и DHT22, и их взаимодействие с Arduino

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

    DHT11 против DHT22/AM2302

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

    DHT22 является более дорогой версией, которая, очевидно, имеет лучшие характеристики. Диапазон измерения температуры составляет от -40°C до +80°C с точностью ±0,5 градуса, а диапазон температур DHT11 составляет от 0°C до 50°C с точностью ±2 градуса. Также датчик DHT22 имеет более широкий диапазон измерения влажности, от 0 до 100% с точностью 2-5%, в то время как диапазон измерения влажности DHT11 составляет от 20 до 80% с точностью 5%.

    Сравнение спецификаций DHT11 и DHT22/AM2302

    DHT11 DHT22
    Рабочее напряжение от 3 до 5 В от 3 до 5 В
    Максимальный рабочий ток 2,5 мА макс 2,5 мА макс
    Диапазон измерения влажности 20-80% / 5% 0-100% / 2-5%
    Диапазон измерения температуры 0-50°C / ± 2°C от -40 до 80°C / ± 0,5°C
    Частота выборки 1 Гц (чтение каждую секунду) 0,5 Гц (чтение каждые 2 секунды)
    Размер корпуса 15,5 мм х 12 мм х 5,5 мм 15,1 мм х 25 мм х 7,7 мм
    Преимущество Ультра низкая стоимость Более точный

    Хотя DHT22/AM2302 более точен и работает в большем диапазоне температур и влажности; есть три вещи, в которых DHT11 сильно превосходит DHT22. Он более дешевый, меньше по размеру и имеет более высокую частоту выборки. Частота выборки DHT11 составляет 1 Гц, то есть одно чтение каждую секунду, в то время как частота выборки DHT22 составляет 0,5 Гц, то есть одно чтение каждые две секунды.

    Рабочее напряжение обоих датчиков составляет от 3 до 5 вольт, в то время как максимальный ток, используемый во время преобразования (при запросе данных), составляет 2,5 мА. И самое приятное, что датчики DHT11 и DHT22/AM2302 являются «взаимозаменяемыми», то есть, если вы создаете свой проект с одним датчиком, вы можете просто отключить его и использовать другой датчик. Ваш код, возможно, придется немного изменить, но, по крайней мере, схема не изменится!

    Для получения более подробной информации обратитесь к техническим описаниям датчиков DHT11 и DHT22/AM2302.

    Обзор аппаратного обеспечения

    Теперь давайте перейдем к более интересным вещам. Давайте разберем оба датчика DHT11 и DHT22/AM2302 и посмотрим, что внутри.

    Корпус состоит из двух частей, поэтому для его вскрытия достаточно просто достать острый нож и разделить корпус на части. Внутри корпуса на стороне датчиков находятся датчик влажности и датчик температуры NTC (термистор).

    Рисунок 2 – Внутренности датчиков температуры и влажности DHT11 DHT22/AM2302

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

    Рисунок 3 – Внутренняя структура датчика влажности в DHT11 и DHT22

    Кроме того, в этих датчиках для измерения температуры имеется датчик температуры NTC (термистор). Термистор – это терморезистор – резистор, который меняет свое сопротивление в зависимости от температуры. Технически все резисторы являются термисторами – их сопротивление слегка изменяется в зависимости от температуры, но обычно это изменение очень мало и его трудно измерить.

    Термисторы сделаны так, чтобы их сопротивление резко изменялось при изменении температуры, и изменение на один градус может составлять 100 Ом или более! Термин «NTC» означает «Negative Temperature Coefficient» (отрицательный температурный коэффициент), что означает, что с ростом температуры сопротивление уменьшается.

    Рисунок 4 – График зависимости сопротивления NTC термистора от температуры

    С другой стороны имеется небольшая печатная плата с 8-разрядной микросхемой в корпусе SOIC-14. Эта микросхема измеряет и обрабатывает аналоговый сигнал с сохраненными калибровочными коэффициентами, выполняет аналого-цифровое преобразование и выдает цифровой сигнал с данными о температуре и влажности.

    Распиновка DHT11 и DHT22/AM2302

    Датчики DHT11 и DHT22/AM2302 довольно легко подключаются. У них есть четыре вывода:

    Рисунок 5 – Распиновка датчиков температуры и влажности DHT11 и DHT22/AM2302

    • Вывод VCC обеспечивает питание датчика. Хотя допускается напряжение питания в диапазоне от 3,3 до 5,5 В, рекомендуется питание 5 В. В случае источника питания 5 В, вы можете держать датчик на расстоянии до 20 метров от источника питания. Однако при напряжении питания 3,3 В длина кабеля не должна превышать 1 метра. В противном случае падение напряжения в линии приведет к ошибкам измерения.
    • Вывод Data используется для связи между датчиком и микроконтроллером.
    • NC не подключен
    • GND должен быть подключен к земле Arduino.

    Подключение DHT11 и DHT22/AM2302 к Arduino UNO

    Теперь, когда у нас есть полное понимание того, как работает датчик DHT, мы можем начать подключать его к нашей плате Arduino!

    К счастью, подключение датчиков DHT11, DHT22/AM2302 к Arduino довольно тривиально. У них довольно длинные выводы с шагом 0,1 дюйма (2,54 м), поэтому вы можете легко вставить их в любую макетную плату. Подайте на датчик питание 5 В и подключите землю. Наконец, подключите вывод данных к цифровому выводу 2 на Arduino.

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

    Рисунок 6 – Подключение DHT11 к Arduino UNO Рисунок 7 – Подключение DHT22/AM2302 к Arduino UNO

    Теперь вы готовы загрузить в Arduino код и заставить ее работать.

    Код Arduino. Вывод значений на монитор последовательного порта

    Как обсуждалось ранее, датчики DHT11 и DHT22/AM2302 имеют собственный однопроводный протокол, используемый для передачи данных. Этот протокол требует точной синхронизации. К счастью, нам не нужно беспокоиться об этом, потому что мы собираемся использовать библиотеку DHT, которая позаботится почти обо всем.

    Сначала скачайте библиотеку, посетив репозиторий на GitHub, или просто нажмите эту кнопку, чтобы скачать архив:

    Чтобы установить библиотеку, откройте Arduino IDE, перейдите в «Скетч» → «Подключить библиотеку» → «Добавить .ZIP библиотеку» и выберите только что загруженный zip-архив DHTlib.

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

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

    В функции setup() нам нужно инициировать интерфейс последовательной связи, так как для вывода результатов мы будем использовать монитор последовательного порта.

    В функции loop() мы будем использовать функцию read22() , которая считывает данные с DHT22/AM2302. В качестве параметра она принимает номер вывода данных датчика. Если вы работаете с DHT11, вам нужно использовать функцию read11() . Вы можете сделать это, раскомментировав вторую строку.

    После расчета значений влажности и температуры мы можем получить к ним доступ:

    Объект DHT возвращает значение температуры в градусах Цельсия (°C). Его можно преобразовать в градусы Фаренгейта (°F) по простой формуле:

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

    Рисунок 8 – Вывод в мониторе последовательного порта показаний датчика DHT11 или DHT22/AM2302

    Код 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 дисплее

    Источник

    Adblock
    detector