Электронный модуль датчик влаги представляет собой печатную плату с микросхемой-компаратором LM393, общим размером 31 х 14 мм и массой 2,5 г. К плате при помощи штатного двух проводного кабеля длиной 200 мм крепится чувствительный элемент – двухстороннюю печатную плату размером 55 х 40 мм и массой 7,1 г.
Фото и описание модуля
Модуль детектора воды был приобретен за 30 рублей на популярном китайском торговом сайте Aliexpress.com
FC 37 МОДУЛЬ ДАТЧИК ВЛАЖНОСТИ И ДОЖДЯ
Подключение к Ардуино
Устройство имеет 4-х контактный штырьковый разъем. Одна пара проводников – это питание и общий провод, а вторая пара цифровой и аналоговый выходы.
На плате имеется два светодиода, один из которых – индикатор питания, а другой отображает состояние цифрового выхода датчика.
По умолчанию на цифровом выходе датчика присутствует сигнал логической единицы, при срабатывании он сменяется на уровень логического нуля. Порог срабатывания можно устанавливать подстроечным резистором.
Полезное: 10BASE-T1L: новый стандарт передачи данных
Схема принципиальная детектора
На аналоговом выходе уровень напряжения меняется в зависимости от количества жидкости на поверхности чувствительного элемента датчика. Модуль потребляет ток 4 мА при напряжении 5 В и 2,2 мА при 3,3 В.
Детектор влаги отлично сопрягается с платформой Arduino, например, можно взять программу, которая опрашивает второй цифровой порт и нулевой аналоговый порт платы Arduino UNO, а затем пересылает данные через последовательный порт. Вот архив с программой.
Датчик дождя ДДА 25.02 универсальный установка.
Следует иметь в виду, что настройка датчика на определенный порог срабатывания сбивается при изменении напряжения питания. Данное устройство может стать частью систем умного дома реагирующей на протекание водопровода или дождь, также такой датчик можно использовать для измерения влажности почвы. Своих денег стоит. Обзор подготовлен для сайта 2 Схемы – автор Denev.
Источники
- http://elwo.ru/publ/datchik_protechki_vody/1-1-0-632
- http://www.radio-magic.ru/arduino-projects/306-arduino-i-datchik-dozhdya
- http://alielectronics.net/2016/03/23/datchik-snega-dozhdya-dlya-arduino/
- http://radioded.ru/proekty-na-arduino/datchik-dozhdya-na-arduino
- http://digitrode.ru/computing-devices/mcu_cpu/293-arduino-i-datchik-kapel-dozhdya.html
НАЖМИТЕ ТУТ И ОТКРОЙТЕ КОММЕНТАРИИ
Источник: 2shemi.ru
Система обнаружения дождя на Arduino и датчике дождя
Простую систему обнаружения дождя можно спроектировать, подключив датчик дождя к плате Arduino. Этот датчик будет обнаруживать любые осадки, которые падают на его поверхность и передавать сигнал об этом на плату Arduino, которая будет выполнять необходимые операции. Подобная система обнаружения дождя может быть использована в различных приложениях:
- в сельском хозяйстве для автоматического регулирования уровня полива растений;
- в автомобилях для автоматического включения стеклоочистителей;
- в системах автоматизации дома для автоматического закрытия окон и регулирования температуры в доме.
В данной статье мы рассмотрим создание простейшей системы обнаружения дождя на основе платы Arduino, датчике дождя и зуммера. При обнаружении дождя в нашей системе плата Arduino будет подавать сигнал на включение зуммера, который будет издавать звуковой сигнал. В дальнейшем вы на основе этого проекта сможете при обнаружении дождя с помощью платы Arduino управлять любыми необходимыми вам исполнительными механизмами, то есть построить именно ту систему обнаружения дождя, которая вам нужна.
Необходимые компоненты
- Плата Arduino Uno (купить на Aliexpress).
- Датчик дождя (Rain sensor) (купить на Aliexpress).
- Зуммер (Buzzer) (купить на Aliexpress).
- Макетная плата.
- Соединительные провода.
Датчик дождя (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
Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.
Вначале в программе инициализируем необходимые контакты и переменные.
Источник: microkontroller.ru
Как работает датчик дождя и его взаимодействие с Arduino
Сенсорная панель с рядом открытых медных дорожек действует как переменный резистор (потенциометр), сопротивление которого изменяется в зависимости от количества воды на его поверхности.
Это сопротивление обратно пропорционально количеству воды:
- Чем больше воды на поверхности, тем лучше проводимость и ниже сопротивление.
- Меньшее количество воды на поверхности означает плохую проводимость и приводит к более высокому сопротивлению.
Датчик выдает выходное напряжение в соответствии с сопротивлением сенсорной панели; и, измеряя это напряжение, мы можем определить, идет ли дождь или нет.
Обзор аппаратного обеспечения
Типовой датчик дождя состоит из двух компонентов.
Сенсорная панель
Датчик включает в себя сенсорную панель с рядом открытых медных дорожек, которая размещается на открытом месте, например, на крыше или там, где на нее могут воздействовать осадки.
Обычно эти дорожки электрически не связаны друг с другом, но вода образует между ними электрический контакт.
Модуль
Датчик также содержит электронный модуль, который соединяет сенсорную панель с Arduino.
Модуль выдает выходное напряжение в соответствии с сопротивлением сенсорной панели, которое доступно на выводе аналогового выхода (AO).
Тот же сигнал подается на прецизионный компаратор LM393 для его оцифровки, сигнал с выхода компаратора подается на вывод цифрового выхода модуля (DO).
Для регулировки чувствительности цифрового выхода (DO) модуль имеет встроенный потенциометр. С помощью этого потенциометра вы можете установить порог срабатывания; таким образом, когда количество воды превышает пороговое значение, модуль выдаст низкий логический уровень, в противном случае он будет выдавать высокий логический уровень.
Поверните движок потенциометра по часовой стрелке, чтобы увеличить чувствительность, или против часовой стрелки, чтобы уменьшить ее.
Помимо этого, модуль имеет два светодиода. Индикатор питания загорится, когда на модуль подано напряжение питания. Светодиод состояния загорится, когда на цифровом выходе будет установлен низкий логический уровень.
Распиновка датчика дождя
Датчик дождя очень прост в использовании и для подключения содержит только 4 вывода.
AO (аналоговый выход) выдает нам аналоговый сигнал в диапазоне от 0 В до напряжения питания (5 В).
Вывод DO (цифровой выход) выдает цифровой выходной сигнал со схемы внутреннего компаратора. Вы можете подключить его к любому цифровому выводу Arduino или напрямую к реле 5В или любому другому подобному устройству.
Вывод VCC используется для подачи питания на датчик. Рекомендуется питать датчик напряжением от 3,3 до 5 В. Обратите внимание, что напряжение на аналоговом выходе будет зависеть от того, какое напряжение питания подается на датчик.
Подключение датчика дождя к Arduino
Сначала вам нужно подать питание на датчик. Для этого вы можете подключить вывод VCC на модуле к выводу 5V на Arduino.
Однако, одна из широко известных проблем с этими датчиками – это их короткий срок службы при воздействии влажной среды. Постоянная подача питания на сенсорную панель значительно ускоряет процесс коррозии.
Чтобы решить эту проблему, мы рекомендуем не держать датчик включенным постоянно, а подавать на него питание только тогда, когда снимаете показания.
Самый простой способ сделать это – подключить вывод VCC к цифровому выводу Arduino и устанавливать на нем либо высокий, либо низкий логический уровень.
Кроме того, общая мощность, потребляемая модулем (оба светодиода горят), составляет около 8 мА, поэтому питать модуль от цифрового вывода Arduino можно.
Итак, давайте подключим вывод VCC на модуле к цифровому выводу 7 Arduino и соединим земли (выводы GND) на модуле и Arduinio.
И, наконец, подключим вывод DO на модуле к цифровому выводу 8 Arduino.
На следующем рисунке показана схема соединений.
Калибровка датчика дождя
Чтобы получить точные показания с датчика дождя, рекомендуется сначала его откалибровать.
Модуль имеет встроенный потенциометр для калибровки цифрового выхода (DO).
Поворачивая ручку потенциометра, вы можете установить порог срабатывания. Таким образом, когда количество воды превышает пороговое значение, светодиод состояния загорается, а на цифровой выход (DO) подается низкий логический уровень.
Теперь, чтобы откалибровать датчик, брызните немного воды на сенсорную панель и поверните потенциометр по часовой стрелке, чтобы светодиод состояния зажегся, а затем поворачивайте потенциометр против часовой стрелки до тех пор, пока светодиод не погаснет.
Теперь ваш датчик откалиброван и готов к использованию.
Обнаружение дождя. Код для Arduino
Как только схема будет собрана, загрузите следующий скетч в вашу плату Arduino.
Теперь поместите датчик дождя в такое место, чтобы осадки могли попадать прямо в датчик, возможно, на крышу. Чтобы облегчить сток воды, слегка его наклоните (~20°).
Обратите внимание, что электронный модуль не обеспечивает водонепроницаемость, поэтому при установке соблюдайте осторожность, чтобы с водой контактировала только сенсорная панель.
// выводы, подключенные к датчику #define sensorPower 7 #define sensorPin 8 void setup() < pinMode(sensorPower, OUTPUT); // изначально держим датчик выключенным digitalWrite(sensorPower, LOW); Serial.begin(9600); >void loop() < // получить показания из функции ниже и вывести их в печать int val = readSensor(); Serial.print(«Digital Output: «); Serial.println(val); // определить состояние дождя if (val) < // дождя нет Serial.println(«Status: Clear»); >else < // идет дождь Serial.println(«Status: It’s raining»); >// брать показания каждую секунду delay(1000); Serial.println(); > // эта функция возвращает значение на выходе датчика int readSensor() < digitalWrite(sensorPower, HIGH); // включить датчик delay(10); // дать время питанию установиться int val = digitalRead(sensorPin); // прочитать выходной сигнал датчика digitalWrite(sensorPower, LOW); // выключить датчик return val; // вернуть значение >
Как только скетч будет загружен, откройте окно монитора последовательного порта, чтобы увидеть выходные данные Arduino. При ясной погоде вы должны увидеть высокий логический уровень на цифровом выходе. Чтобы увидеть, как определяется вода, можно брызнуть немного воды на сенсорную панель.
Объяснение кода
Скетч начинается с объявления выводов Arduino, к которым подключены выводы VCC и DO датчика.
#define sensorPower 7 #define sensorPin 8
Теперь, в функции setup() , мы сначала объявляем вывод подключения питания к датчику как выход, а затем устанавливаем на нем низкий логический уровень, чтобы изначально питание на датчик не подавалось. Также настраиваем последовательный порт.
pinMode(sensorPower, OUTPUT); digitalWrite(sensorPower, LOW); Serial.begin(9600);
В функции цикла мы периодически (с интервалом в одну секунду) вызываем функцию readSensor() и выводим возвращаемое значение вместе со статусом.
int val = readSensor(); Serial.print(«Digital Output: «); Serial.println(val); if (val) < Serial.println(«Status: Clear»); >else < Serial.println(«Status: It’s raining»); >delay(1000);
Функция readSensor() используется для получения текущего состояния цифрового выхода датчика. Она включает датчик, ждет 10 миллисекунд, считывает цифровое значение с датчика, выключает датчик и затем возвращает результат.
int readSensor()
Источник: radioprog.ru