- Необходимые материалы
- Датчик дождя
- Работа датчика дождя
- Принципиальная электрическая схема
- Код Пояснение
- Работа системы обнаружения дождя на базе Arduino
Простую систему обнаружения дождя можно легко построить, подключив Arduino к датчику дождя. Датчик обнаружит любой дождь, падающий на него, а плата Arduino обнаружит его и сможет выполнить необходимые действия. Подобная система может использоваться во многих различных областях, таких как сельское хозяйство и автомобильная промышленность. Обнаружение дождя можно использовать для автоматического регулирования процесса орошения. Кроме того, непрерывные данные об осадкахможет помочь фермерам использовать эту интеллектуальную систему для автоматического полива урожая только в случае крайней необходимости. Точно так же в автомобильном секторе дворники можно сделать полностью автоматическими с помощью системы обнаружения дождя. Системы домашней автоматизации также могут использовать обнаружение дождя, чтобы автоматически закрывать окна и регулировать температуру в помещении. В этом уроке мы создадим базовый датчик дождя с помощью Arduino с зуммером. Затем вы можете использовать эту установку, чтобы построить на ней все, что захотите. Кроме того, обратите внимание, что модуль датчика дождя также упоминаются как датчик дождевой капли или датчик дождемера или датчик дождевой воды на основе использования, но все они относятся к одной и тому же датчику, используемому в этом проекте и все они работают по тому же принцип.
Мы также создали простую сигнализацию дождя и автоматический дворник, используя только таймер 555, вы также можете проверить это, если не хотите использовать Arduino. При этом давайте вернемся к этому проекту и начнем создавать наш Arduino Rain Gauge.
Необходимые материалы
- Arduino UNO
- Датчик дождя
- Зуммер
- Макетная плата
- Соединительные провода
Датчик дождя
Модуль Raindrops состоит из двух плат: Rain Board и Control Board.
Модуль платы Rain состоит из двух медных дорожек, спроектированных таким образом, что в сухих условиях они обеспечивают высокое сопротивление питающему напряжению, и это выходное напряжение этого модуля будет 5 В. Сопротивление этого модуля постепенно уменьшается по мере увеличения влажности на плате. По мере уменьшения сопротивления его выходное напряжение также уменьшается в зависимости от влажности модуля. Модуль платы Rain состоит из двух контактов, используемых для подключения к плате управления, как показано ниже.
Модуль Control Board контролирует чувствительность и преобразует аналоговый выход в цифровой. Если аналоговое значение ниже порогового значения платы управления, на выходе будет низкий цифровой уровень, а если аналоговое значение выше порогового значения, на выходе будет высокий цифровой сигнал. Для этого сравнения и преобразования используется компаратор LM393 OP-Amp. Компаратор операционного усилителя - это интересная схема, которую можно использовать для сравнения двух разных значений напряжения, которые мы уже использовали в этой схеме во многих проектах, таких как интеллектуальная электронная свеча, лазерная охранная сигнализация, робот-повторитель линии и многое другое.
Модуль управления Rain, показанный ниже, состоит из 4 контактов для подключения Arduino, а именно VCC, GND, D0, A0 и еще двух контактов для подключения модуля Rain Board. Таким образом, модуль платы управления дождем обнаруживает дождевую воду, а модуль платы управления используется для управления чувствительностью, а также сравнения и преобразования аналоговых значений в цифровые значения.
Работа датчика дождя
Работа в модуле датчика дождя просто понять. В солнечный день из-за сухости модуля дождевой доски он обеспечивает высокое сопротивление напряжению питания. Это напряжение отображается на выходном контакте модуля платы дождя как 5 В. Эти 5 В читаются как 1023, если считываются аналоговым выводом Arduino. Во время дождя дождевая вода вызывает увеличение влажности дождевой доски, что, в свою очередь, приводит к снижению сопротивления, предлагаемого для подачи воды. По мере постепенного уменьшения сопротивления выходное напряжение начинает уменьшаться.
Когда дождевая доска полностью влажная и сопротивление, обеспечиваемое ею, минимально, выходное напряжение будет как можно более низким (примерно 0). Этот 0 В читается как 0, если считывается аналоговым выводом Arduino. Если модуль дождевой доски частично намок, выходной сигнал этого модуля дождевой доски будет соответствовать сопротивлению, которое он предлагает. Если сопротивление, предлагаемое модулем платы дождя, таково, что на выходе получается 3 В, считываемое аналоговое значение будет 613. Формула для поиска АЦП может быть задана следующим образом: ADC = (значение аналогового напряжения X 1023) / 5. Используя эту формулу, вы можете преобразовать любое аналоговое напряжение в значение аналогового чтения Arduino.
Принципиальная электрическая схема
На приведенной ниже принципиальной схеме показаны схемы подключения датчика капель дождя с Arduino. Дизайн выполнен с использованием Proteus, физические модули аналогичны модулям, показанным на принципиальной схеме.
Модуль дождемера, показанный на принципиальной схеме, подключен к плате управления. Вывод VCC платы управления подключен к источнику питания 5 В. Контакт заземления подключен к земле. При необходимости вывод D0 подключается к любому цифровому выводу Arduino, и этот вывод должен быть объявлен в программе как выходной вывод. Проблема, с которой мы сталкиваемся с выводом D0, заключается в том, что мы не можем получить точное значение выходного напряжения. Если выходное напряжение превышает пороговое значение, то модуль управления может определить изменение выходного сигнала. Нам нужно включить зуммер, даже если есть значительное изменение выходного напряжения в модуле дождевой доски. По этим причинам вывод A0 подключен к аналоговому выводу Arduino, что упрощает отслеживание изменения выходного сигнала. Зуммер, который используется как сигнал пользователю,может быть подключен к любому цифровому выводу Arduino. Если для зуммера требуется более 5 В, то попробуйте подключить схему реле или транзистор, а затем подключить к нему нагрузку.
Код Пояснение
Код Arduino для датчика дождя был написан с использованием Arduino IDE. Полный код этого проекта приведен в конце страницы.
#define rainfall A0 #define buzzer 5 int value; int set = 10;
Определение вывода A0 как дождя, а вывода 5 как зуммера, объявление переменных «value» и «set» как целых чисел и установка его переменной set value на 10. Это значение может быть изменено в соответствии с требуемым уровнем работы. Если вы хотите, чтобы зуммер срабатывал даже при небольшом дожде, установите его на минимальное значение.
void setup () {Serial.begin (9600); pinMode (зуммер, ВЫХОД); pinMode (осадки, ВХОД); }
Инициализация последовательной связи и установка зуммера. Установка вывода дождя в качестве вывода и ввода.
void loop () {значение = analogRead (дождь); Serial.println (значение); значение = карта (значение, 0,1023,225,0);
функция analogRead считывает значение датчика дождя. Карта функций отображает значение датчика дождя с выходного контакта и присваивает значение переменной в диапазоне от 0 до 225.
if (value> = set) {Serial.println ("обнаружен дождь"); digitalWrite (зуммер, ВЫСОКИЙ);
Если считываемое значение датчика больше установленного значения, тогда программа входит в цикл, печатает сообщение на последовательном мониторе и включает зуммер
else {digitalWrite (зуммер, НИЗКИЙ);
Программа входит в функцию else только тогда, когда значение меньше установленного значения. Эта функция отключит зуммер, когда установленное значение выше, чем значение датчика, которое сообщает, что дождя нет.
Работа системы обнаружения дождя на базе Arduino
Эта система работает таким образом, что, когда идет дождь, дождевая вода действует как спусковой механизм, который включает зуммер. В коде Arduino датчика капли дождя мы определили, что контакты 5 и A0 - это зуммер и дождь. Сделав это, мы можем изменить контакты в определенной части функции, а оставшаяся часть кода останется нетронутой. Это облегчит программисту редактирование контактов.
В цикле void команда analogRead считывает значение с датчика. В следующей строке команда Serial.println (value) печатает значение на последовательном мониторе. Это будет полезно при отладке. Функция карты отображает входящее значение в диапазоне 0-225. Формат функции для карты - это карта (значение, минимальное значение, максимальное значение, значение, которое должно отображаться для минимального значения, значение, которое должно отображаться для максимального значения). Зуммер будет включаться или выключаться в зависимости от установленного значения и выходного сигнала датчика. Это значение сравнивается в функции if с заданным значением. Если значение больше установленного, включается зуммер. Если значение меньше установленного, зуммер выключится.
Полную работу можно найти в видео по ссылке ниже. Это одно из многих приложений, тот же принцип будет применяться в дворниках, другой домашней автоматизации, сельском хозяйстве и т. Д. Надеюсь, вы поняли проект и получили удовольствие от создания чего-то полезного. Если у вас есть какие-либо вопросы, используйте раздел комментариев ниже или воспользуйтесь нашим форумом, чтобы задать другие технические вопросы.