Рубрики
Схемы на Arduino

Система обнаружения дождя на Arduino и датчике дождя

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

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

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

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

  1. Плата Arduino Uno (купить на AliExpress).
  2. Датчик дождя (Rain sensor) (купить на AliExpress).
  3. Зуммер (Buzzer) (купить на AliExpress).
  4. Макетная плата.
  5. Соединительные провода.

Датчик дождя (Rain sensor)

Модуль датчика дождя состоит из двух плат – плата обнаружения дождя (Rain Board) и плата управления (Control Board).

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

Плата управления регулирует чувствительность датчика дождя и преобразует аналоговый выход платы обнаружения дождя в цифровой выход. Если значение аналогового напряжения на входе платы управления (с выхода платы обнаружения дождя) меньше определенной границы, то на выходе платы будет напряжение низкого уровня (low), а если значение аналогового напряжения на входе платы будет больше этой границы, то на выходе платы будет напряжение высокого уровня (high). Для этой цели в составе платы присутствует компаратор на основе микросхемы операционного усилителя LM393.

Модуль датчика дождя, показанный на рисунке ниже, имеет с одной стороны 4 контакта (VCC, GND, D0, A0), которые мы будем подключать к плате Arduino, и 2 контакта с другой стороны, которые мы будем подключать к плате обнаружения дождя. Таким образом, в нашем проекте плата обнаружения дождя будет обнаруживать наличие дождя, а плата управления будет использоваться для регулировки чувствительности и преобразования аналогового выхода платы обнаружения дождя в цифровой выход.

Принцип работы датчика дождя

Принцип работы датчика дождя достаточно прост. В ясную сухую погоду он имеет большое сопротивление, поэтому на его выходе формируется напряжение высокого уровня (5V), что соответствует значению 1023 на выходе АЦП (аналого-цифрового преобразователя) того аналогового контакта платы Arduino, к которому подключен датчик. Во время влажной погоды (дождя) сопротивление датчика уменьшается, следовательно, уменьшается и напряжение на выходе датчика.

Когда влажность очень сильная, сопротивление датчика будет равно его минимальному значению, поэтому и напряжение на выходе датчика будет приблизительно равно 0. Это значение напряжения 0V будет соответствовать значению 0 на выходе АЦП того аналогового контакта платы Arduino, к которому подключен датчик. Если же, к примеру, на выходе датчика будет напряжение 3V, то это будет соответствовать значению 613 на выходе АЦП контакта платы Arduino. Поэтому формула для расчета значения на выходе АЦП будет выглядеть следующим образом:

ADC = (analog voltage value X 1023)/5,

где analog voltage value – аналоговое значение напряжения на выходе датчика дождя.

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

Схема подключения датчика дождя к плате Arduino Uno представлена на следующем рисунке. Работа данной схемы была смоделирована в симуляторе Proteus.

На представленной схеме плата обнаружения дождя подключена к плате управления. Контакт VCC платы управления подключен к источнику напряжения 5V. Земля платы управления подключена к земле схемы. Выходной контакт датчика можно подключить к любому цифровому контакту платы Arduino, однако в результате наших экспериментов мы выяснили, что более стабильно схема работает если его подключить к аналоговому контакту платы Arduino. Зуммер подключен к контакту D5 платы Arduino.

Примечание: в нарисованной схеме небольшая ошибка, выходной контакт датчика дождя должен быть подключен не к контакту Reset, а к аналоговому контакту A0 платы Arduino.

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

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

Вначале в программе инициализируем необходимые контакты и переменные.

К контакту A0 подключен к датчику дождя, к контакту 5 подключен зуммер. Также объявлены две переменные целого типа “value” и “set”. Переменной “set” присвоено значение 10 – это значение определяет, при каком уровне влажности зуммер будет издавать звуковой сигнал. Измените это значение если хотите изменить порог влажности, при котором будет срабатывать рассматриваемая нами схема.

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

Затем в функции void loop() мы будем считывать значение напряжения с выхода датчика дождя. Далее с помощью функции map мы конвертируем считанное значение напряжения в диапазон от 0 до 255.

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

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

Тестирование работы детектора дождя

Спроектированный нами детектор дождя на основе платы Arduino работает таким образом, что при появлении дождя он включает сигнал зуммера, а при отсутствии дождя он отключает сигнал зуммера. Датчик дождя подключен к контакту A0, а зуммер – к контакту 5 платы Arduino. При желании вы легко можете изменить эти контакты, не трогая остальную часть кода. При появлении дождя зуммер включается, а когда дождь кончается – зуммер выключается. Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

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

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

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

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

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