• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

Датчик влажности Arduino с использованием DHT22

 

 

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

Наряду с этим мы покажем вам, как использовать библиотеку DHT Adafruit для общения и взаимодействия с датчиком DHT22, чтобы вы могли легко считывать температуру и влажность с датчика на вашем Arduino. В качестве бонуса библиотека DHT также работает с несколькими другими датчиками DHT, такими как DHT22, DHT21 и DHT11, что делает ее отличной библиотекой для использования на вашем Arduino.

 

 

Если вам не нужна влажность, вы также можете рассмотреть возможность использования датчика температуры DS18B20 с Arduino . Это также цифровой датчик, поддерживающий однопроводную связь, в отличие от датчиков DHT. Давайте перейдем к нему и создадим эту схему датчика влажности Arduino и воплотим ее в жизнь с помощью простого кода. Есть несколько причин, по которым мы выбрали датчик DHT22 в этом руководстве, для начала он и небольшой, и очень доступный. DHT22 имеет большое расстояние передачи, при этом длина кабеля может составлять 20 м.  Этот датчик является цифровым, поэтому ему не нужно иметь дело с аналоговыми выводами Arduino. Цифровой также делает DHT22 менее подверженным искажениям из-за электрических шумов на больших расстояниях. Единственным недостатком сенсора является то, что он имеет достаточно низкую частоту опроса. Вы сможете получать данные с датчика влажности только каждые две секунды. Чтобы использовать DHT22 с вашим Arduino, вы захотите использовать резистор 10 кОм, который будет действовать как подтягивающий резистор на линии передачи данных. Одна из самых крутых особенностей этого датчика - то, что он может отслеживать как влажность, так и температуру. Эти два измерения пригодятся для множества разных проектов. Штыри DHT22 Нумерация контактов начинается слева и увеличивается вправо, когда датчик направлен к вам.

 

Контакт 1 - VCC (источник питания)

Контакт 2 - ДАННЫЕ (сигнал данных)

Контакт 3 - ПУСТО (не подключать)

Контакт 4 - GND (земля)

 

Настройка схемы датчика влажности Arduino

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

Поместите резистор 10 кОм между контактом 1 и контактом 2 датчика влажности.

Подключите контакт 1 к контакту 5 В на Arduino.

Подключите контакт 2 к контакту 2 на Arduino.

Не используйте контакт 3 на датчике .

Наконец, подключите контакт 4 к GND на Arduino.

Схема ниже также поможет правильно собрать схему DHT22 с вашим Arduino Uno.

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

 

 

Код датчика влажности Arduino DHT22

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

Мы будем использовать две библиотеки, чтобы оживить наш датчик влажности. Первый - это библиотека датчиков Adafruit DHT, а второй - унифицированная библиотека датчиков Adafruit.

Импорт правильных библиотек

Во-первых, откройте меню библиотеки в среде Arduino IDE, выбрав Sketch (1.) -> Include Library (2.) -> Manage Libraries (3.)

 

 

В этом окне найдите  DHT ( 1. ) и найдите  библиотеку датчиков DHT от  Adafruit ( 2. ). Установите последнюю доступную версию библиотеки, нажав кнопку « Установить » ( 3. ), как показано ниже.

 

 

Теперь в том же окне найдите  Adafruit  Unified Sensor (1.) и найдите библиотеку ( 2. ). После обнаружения нажмите кнопку « Установить » ( 3. ), чтобы продолжить.

 

 

Это все библиотеки, которые нам понадобятся для взаимодействия с DHT22 на Arduino.

Написание кода Благодаря DHT-библиотеке Adafruit код, который нам нужно написать, очень прост, поскольку библиотека выполняет большую часть работы.

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

Если вы предпочитаете получить полный код без объяснения причин, вы можете либо получить его на нашем DHT22 GitHub, либо перейти к концу этого раздела.

#include <DHT.h> Первое, что нам нужно сделать, это импортировать наш заголовок для библиотеки DHT, которую мы получили ранее в этом руководстве. Вы можете ввести его вручную или выбрать в меню « Скетч» -> « Включить библиотеку» -> « Библиотека датчиков DHT».

Эта библиотека содержит весь код, который нам нужен для работы с датчиком DHT22 на Arduino.

#define dataPin 2

#define DHTType DHT22

Теперь нам нужно определить два постоянных значения. Первая - это наша константа dataPin . Эта константа содержит номер контакта, к которому вы подключили DHT22. Значение этой константы должно быть 2, если вы не используете другой цифровой входной вывод на Arduino.

Кроме того, мы определяем модель используемого датчика влажности, она назначается нашей константе DHTType . Библиотека, которую мы используем, поддерживает датчики DHT22 , DHT21 и DHT11 .

DHT dht = DHT(dataPin, DHTType);

Затем мы создаем экземпляр библиотеки DHT, используя константы dataPin и DHTType, которые мы определили в начале скрипта.

Этот код подготовит библиотеку DHT для взаимодействия с нашим датчиком DHT22 и сохранит подготовленный объект в нашей переменной « dht ».

void setup() {

    Serial.begin(9600);

    dht.begin();

}

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

Во-вторых, мы вызываем объект dht, который мы создали ранее, чтобы запустить его функцию begin. Запуск функции начала библиотек DHT позволит ей начать считывание данных с датчика.

void loop() {

    delay(2000);

    float h = dht.readHumidity();

 

    float t = dht.readTemperature();

Здесь мы начинаем с задержки скрипта на 2000 миллисекунд (2 секунды), мы делаем это, поскольку можем опрашивать DHT22 для получения новой информации только каждые 2 секунды.

Затем мы считываем влажность с датчика, используя наш объект « dht ». Полученное значение мы сохраняем в нашей переменной « h ».

Точно так же для температуры мы получаем ее, используя температуру, и сохраняем значение в нашей переменной « t ».

    if (isnan(h) || isnan(t)) {

        Serial.println("Failed to read from the DHT sensor, check wiring.");

        return;

    }

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

Используя функцию isnan () , мы проверяем переменные « h » и « t », чтобы убедиться, что они на самом деле числа. Если одна из переменных не является числом, мы печатаем сообщение через последовательное соединение и возвращаемся к началу цикла.

    Serial.print("Humidity: ");

    Serial.print(h);

    //Print out the Temperature

    Serial.print("% || Temperature: ");

    Serial.print(t);

    Serial.print("°C ");

 

    //Print new line

    Serial.println();

}

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

Используя последовательный монитор, такой как Arduino IDE, вы сможете получить эти значения, выводимые вашим Arduino.

 Тестирование кода датчика Arduino DHT22

1.Чтобы загрузить код в Arduino, нажмите кнопку « Подтвердить » ( 1. ), а затем нажмите кнопку « Загрузить » ( 2. )

 

 

Если у вас возникнут проблемы, проверьте код, чтобы убедиться, что все правильно.

Также убедитесь, что ваш Arduino подключен и он выбран в меню Инструменты -> Порт:

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

Вы можете открыть программное обеспечение монитора последовательного порта Arduino, щелкнув « Инструменты » ( 1. ), затем щелкнув «Монитор последовательного порта» ( 2. )

 

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

 

 

Я надеюсь, что это руководство по датчику влажности Arduino научило вас достаточно, чтобы установить DHT22 или DHT11 с вашей схемой. 

 




Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 373



          

Радио для всех© 2024