Автоматический увлажнитель воздуха на Arduino

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

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

Внешний вид автоматического увлажнителя воздуха на Arduino

Измерять уровень относительной влажности мы будем с помощью датчика DHT11, который ранее уже применялся во многих проектах на нашем сайте. Если измеренный уровень влажности будет ниже требуемой границы, то увлажнитель будет автоматически включаться, и наоборот. Выводить уровень относительной влажности (relative humidity, RH) в процентах мы будем на экран OLED дисплея.

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. OLED дисплей (купить на AliExpress).
  3. Ультразвуковой увлажнитель (купить на AliExpress).
  4. Модуль реле 5V (купить на AliExpress).
  5. Регулятор напряжения 7805 (купить на AliExpress).
  6. Электролитический конденсатор 25V, 1000 мкФ (купить на AliExpress).
  7. Адаптер AC-DC, 12V, 2 AMP.
  8. Датчик температуры и влажности DHT11 (купить на AliExpress).
  9. USB Female socket (разъем типа "мама").
  10. Вентилятор.
  11. Перфорированная плата.
  12. Соединительные провода.

Принцип работы увлажнителя

Внешний вид портативного ультразвукового увлажнителя

Портативный увлажнитель (portable humidifier) способен производить теплый/прохладный туман при помощи металлической диафрагмы, вибрирующей с высокой частотой. Вибрации звука выталкивают влагу в воздух. Водяной туман, производимый увлажнителем, практически мгновенно абсорбируется (поглощается) в воздухе. Чтобы увлажнитель мог производить водяной туман он должен плавать на поверхности воды.

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

Структурная схема работы автоматического увлажнителя воздуха на Arduino

Как показано на приведенной структурной схеме, ультразвуковой увлажнитель помещается на поверхность воды в контейнере. Для измерения влажности окружающего воздуха к плате Arduino Nano подключен датчик DHT11. Для вывода информации используется OLED. В зависимости от измеренного значения влажности нам необходимо будет включать/выключать реле, которое, в свое очередь, будет включать/выключать ультразвуковой увлажнитель.

Основные технические характеристики используемого нами ультразвукового увлажнителя:

  • тип: плавающий/ультразвуковой;
  • питание: USB, 5V DC;
  • рабочий ток: 500 Ma;
  • уровень шума: ≤36 дБ.

Схема проекта

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

Схема автоматического увлажнителя воздуха на основе платы Arduino

Напряжение питания 12V DC от внешнего источника преобразуется в напряжение питания 5V DC с помощью регулятора напряжения 7805 и емкостного фильтра (конденсатора). Это напряжение питания подается на плату Arduino Nano, OLED дисплей, датчик DHT11 и модуль реле. OLED дисплей подключен к контактам интерфейса I2C (A4, A5) платы Arduino.

Внешний вид собранной на перфорированной плате конструкции проекта показан на следующем рисунке.

Внешний вид собранной на перфорированной плате конструкции проекта

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Первым делом в программе мы подключим используемые библиотеки: “SoftwareSerial.h”, “wire.h”, “Adafruit_SH1106.h” и “DHT.h”. Библиотеки “SoftwareSerial.h” и “wire.h” встроены в Arduino IDE, библиотеку “Adafruit_SH1106.h” можно скачать по этой ссылке, а библиотеку “DHT.h” – по этой.

Далее определим адрес I2C OLED дисплея, он может быть OX3C (чаще всего для дисплея 1,3 дюйма) или OX3D. В нашем случае он оказался равным OX3C. Также определим контакт сброса (Reset pin) OLED дисплея. В нашем случае он равен -1 поскольку он является общим с контактом сброса платы Arduino.

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

Внутри функции мы инициализируем последовательную связь со скоростью 9600 бод и зададим режимы работы используемых контактов. Также инициализируем OLED дисплей с помощью функции display.begin. Параметр SH1106_SWITCHCAPVCC внутри данной функции используется для указания того, чтобы дисплей запитывался от внутреннего источника 3.3V.

Для считывания данных с датчика DHT11 используется функция getHumidity() – считываемые с него данные сохраняются в переменной humidity. Отображение данных на экране OLED дисплея производится с помощью функции display.print, установка размера текста и позиции курсора осуществляется с помощью функций display.setTextSize и display.setCursor.

Для включения/выключения увлажнителя значение влажности сравнивается с заранее определенным значением (88). Если значение влажности менее 88, то происходит включение вентилятора и увлажнителя.

Тестирование работы портативного увлажнителя воздуха

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

- наполните контейнер свежей водой до уровня ¾ от максимальной отметки и опустите ультразвуковой увлажнитель сверху на поверхность воды (чтобы он в ней плавал) как показано на следующем рисунке:

Установка ультразвукового увлажнителя сверху на поверхность воды

- подайте питание на конструкцию проекта, после этого вы должны увидеть на экране OLED измеренное значение влажности;

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

Портативный увлажнитель в действии

Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

Источник статьи

(Проголосуй первым!)
Загрузка...
143 просмотров

Добавить комментарий

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