Меню

Как подключить несколько dht22

Подключение датчика DHT11 или DHT22 к Ардуино

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

Характеристики и подключение датчиков DHT11 и DHT22

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

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

Датчик DHT11

Датчик DHT22

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Как подключить юсб джойстик к ps2

Резюме

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

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

Источник

Arduino.ru

Как подключить два датчика DHT22

Подскажите каким образом можно считывать информацию с двух датчиком DHT22 на Arduini UNO R3. Насколько я понял каждый датчик подключается к своему пину. Вопро в том как прописать это в коде?

Я прописываю каждый датчик на свой пин 2 и 3 и объявляю две переменных dhta и dhtb. Правильно ли будет сделать так?:

Оказываетс явсе раскурено до нас.

подключение двух датчиков DHT22 AM2302

показывают температуру почти одинаковую))) разница в 0.4 градуса

Здравствуйте, столкнулся с такой проблемой делаю вычитку датчиков в основном цикле loop у меня 3 датчика DHT22 время которое затрачиваться на чтения датчиков приблизительно 500мс и того получаться что полторы секунды читается все датчики в то время задержка влияет на отображения на LCD экране (часы rtc ds1302) секунд и чтения нажатия на аналоговые кнопки. Arduino mega 2560 | LCD key shild

Здравствуйте, подскажите новичку.

нахватался везде помаленьку, получился такой скетч

Управление влажностью в гараже включением вытяжного вентилятора

Два датчика DHT22 первый в гараже, второй на улице. Не знаю какой параметр нужно вставить чтобы реле вентилятора включалось когда влажность в гараже выше чем на улице(выделил жирным в скетче), но только если влажность в гараже более 50%. И если не трудно, как добавить таймер работы вентилятора(в случае если он не может сбить влажность до нужного уровня) Температура с датчиков пока носит только информационный характер

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

#include «DHT.h» // Библиотека датчика DHT22 температуры и влажности

#define DHTPINa 2 // Считывающий пин с датчика 1

#define DHTPINb 3 // Считывающий пин с датчика 2

#define DHTTYPE DHT22 // DHT 22 (AM2302)

Читайте также:  Как подключить к телевизору сони бравиа цифровое телевидение ростелеком

#define hPIN 5 // Пин управления реле вентилятора

DHT dhta(DHTPINa, DHTTYPE); // Создаем объект dhta датчик 1

DHT dhtb(DHTPINb, DHTTYPE); // Создаем объект dhtb датчик 2

int hStatus = HIGH; // определяем переменную, отвечающую за состояние реле вентилятора HIGH=выкл, LOW=вкл

void setup() // инициализация основных данных

dhta.begin(); // Инициализируем датчик 1

dhtb.begin(); // Инициализируем датчик 2

lcd.begin(16,2); // устанавливаем размеры экрана

void loop() // зацикливание (код управляющей программы)

float ha = dhta.readHumidity(); // Считываем влажность датчика 1

float hb = dhtb.readHumidity(); // Считываем влажность датчика 2

float ta = dhta.readTemperature(); // Считываем температуру датчика 1

float tb = dhtb.readTemperature(); // Считываем температуру датчика 2

if (ha Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Источник

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

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

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

На датчике есть 3 вывода для подключения его к внешним устройствам.

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

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

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

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

dht.rar (2,9 KiB, 9 889 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 см) с белыми, отражающими свет перфорированными или жалюзийными стенками, а также солнцеводозащитным козырьком (крышка будки должна быть герметичной и иметь наклон для стекания осадков с будки).

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

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

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

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

Здравствуйте! Вкраце плата мега 2560 датчик DHT11 и резистор 10 КоМ показывает влажность 1770 температура 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?
Коль беретесь писать для новичков, так потрудитесь подавайть информацию полностью! Это добавит всего-то пяток «лишних» предложений, а «картина» будет понятной!

Читайте также:  Как подключить wifi на ноутбуке ростелеком видео

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

#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 <

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

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

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

Источник