Датчик протечки воды arduino

В этой статье мы узнаем, как можно использовать датчик протечки ардуино. Такие датчики часто называют по-разному: датчик дождя, влаги, капель, протечки. При этом почти всегда имеется в виду один и тот же датчик, как правило, выполненный в виде готового модуля. Датчик легко подключается к Arduino, скетч для работы с такими датчиками прост, цена не высока. Идеальный вариант для несложных проектов на Arduino Uno, Mega, Nano.

Описание датчика

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

Модуль датчика состоит из двух частей:

  • «Сенсорная» плата обнаружения капель. Она отслеживает количество попавшей на неё влаги. По сути, сенсор представляет собой простой переменный резистор, замыкаемый водой в разных местах, что вызывает изменение сопротивления.
  • Вторая часть датчика – сдвоенный компаратор (как правило, LM393, но возможны варианты LM293 и LM193). Его главная задача – преобразование значения с сенсора в аналоговый сигнал от 0 до 5 вольт.

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

Датчик запитывается от напряжения 5 В, который можно легко завести с любой платы Arduino. Как правило, у модуля датчика доступно два выхода:

  • Аналоговый. Значение, получаемое контроллером, будет варьироваться от 0 до 1023. Где 0 – все затопило или идет ливень, сенсор очень влажный, 1023 – сухая погода, сенсор сухой (в некоторых датчиках встречаются противоположные значения, 1023 – максимальная влажность, 0 – максимальная сухость).
  • Цифровой. Выдает высокое (5В) или низкое напряжение в случае превышения некоторого порога. Уровень порога срабатывания регулируется с помощью подстроечного резистора.

Подключение датчика протечки и дождя к ардуино

Для подключения датчика к ардуино понадобится сама плата (UNO, Mega, Nano или любая другая) и сам датчик. Если вы хотите проверять интенсивность осадков, то рекомендуется расположить датчик не горизонтально, а под некоторым углом, чтобы накапливаемые капли стекали вниз.

Схема подключения модуля датчика протечки к ардуино:

  • VCC (вход питания) – должен совпадать для соединенной схемы ардуино по напряжению и току. То есть в данном случае 5В;
  • GND – заземление;
  • АO – аналоговый выход;
  • DO – цифровой выход.

Аналоговый выход присоединяем к аналоговому пину микроконтроллера, например, A1. Цифровой выход, соответственно подключается к одному из цифровых пинов. Напряжение можно подать с вывода 5В платы ардуино, земля соединяется с землей.

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

Пример скетча

#define PIN_ANALOG_RAIN_SENSOR A1 // Аналоговый вход для сигнала датчика протечки и дождя #define PIN_DIGITAL_RAIN_SENSOR 5 // Цифровой вход для сигнала датчика протечки и дождя void setup(){ Serial.begin(9600); } void loop(){ int sensorValue = analogRead(PIN_ANALOG_RAIN_SENSOR); // Считываем данные с аналогового порта Serial.print(«Analog value: «); Serial.println(sensorValue); // Выводим аналоговое значение в монитр порта sensorValue = digitalRead(PIN_DIGITAL_RAIN_SENSOR); // Считываем данные с цифрового порта Serial.print(«Digital value: «); Serial.println(sensorValue); // Выводим цифровое значение в монитр порта delay(1000); // Задержка между измерениями }

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

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

Рассмотрим пример с использованием звуковой сигнализации в виде подключенного зумера на цифровом выходе D6. При желании можно вместо сигнализации подключить реле и выполнять различные операции с размыканием сети. В скетче полученные данные мы будем передавать в монитор порта по UART-интерфейсу.

Скетч для проекта с сигнализацией

Ниже представлен тестовый код, который активирует звуковой сигнал на уже упомянутом выше цифровом выходе 6, с задержкой времени, для того, чтобы исключить ложные срабатывания при случайном попадании воды на сенсор. Работа реализована через переменную, которая обновляется каждую секунду и выступает порогом – curCounter. Сигнализация приводится в действие тогда, когда значение, передаваемое с сенсора, станет меньше 300. Задержка между обнаружением влаги и срабатыванием звукового сигнала составляет чуть больше 30 секунд.

#define PIN_RAIN_SENSOR A1 // Аналоговый вход для сигнала датчика протечки и дождя #define PIN_ALERT 6 // Цифровой выход для сигнализации #define MAX_COUNTER 30 // Пороговое значение для счетчика #define ALERT_LEVEL 300 // Пороговое значение для счетчика int curCounter= 0; // Счётчик для сбора «статистики», который увеличивается на 1 каждую секунду после срабатывания датчика void setup(){ Serial.begin(9600); pinMode(PIN_ALERT, OUTPUT); pinMode(PIN_RAIN_SENSOR, INPUT); // Можно не указывать, т.к. это значение по умолчанию } void loop(){ int sensorValue = analogRead(PIN_RAIN_SENSOR); Serial.println(sensorValue); // Выводим значение в монитр порта delay(300); // короткая задержка // Если накопили достаточно оснований для включения сигнализации if (curCounter >= MAX_COUNTER){ digitalWrite(PIN_ALERT, HIGH); // Срабатывание сигнализации curCounter = MAX_COUNTER; // Защита от переполнения переменной } // Определяем уровень влажности if (sensorValue < ALERT_LEVEL){ // В очередной раз убедились, что все влажно, увеличиваем счетчик curCounter++; }else { // Интенсивность дождя не превышает порога digitalWrite(PIN_ALERT, LOW); // Выключаем сигнализацию curCounter = 0; // Обнуляем счетчик } delay(1000); // Задержка между измерениями }

Подведение итогов

Датчик дождя и протечки можно использовать в ардуино для создания устройств, реагирующих на появление влажности в виде капель. Среди преимуществ рассмотренного модуля можно отметить его простоту, удобство и дешевизну. Подключается датчик очень легко – с помощью аналогового или цифрового выходов. Для получения значения в скетче используется стандартная функция analogRead (или digitalRead для цифрового пина). Используя полученные значения, можно включать сигнализацию или другие внешние устройства с помощью реле.

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

Принцип работы устройства

За основу для анализа наличия протечек принимаются различные физические свойства воды.

Датчики, измеряющие электропроводимость между контактами наиболее часто используются для контроля наличия протечек. Такая схема, собранная самостоятельно, часто заменяет собой промышленный образец. Сами контакты обычно изготавливаются из покрытой фольгой платы, между которыми прорезается изолирующая дорожка.

Классификация датчиков по характеру работы

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

  • В корпусе устройства сконцентрированы все функциональные возможности, обеспечивающие его автономную работу. Оповещение о протечке обозначается звуковым или световым сигналом. Существуют модели подающие сигнал о наличии отклонений в работе водопровода в виде SMS сообщения на телефон.
  • Информация о протечке через проводную систему посылается на пульт управления. Этот электронный прибор после получения оповещения, обрабатывает данные и дает команду на электромагнитный клапан, который может отключать подачу воды. По такому принципу работает система защиты от протечек воды аквасторож.
  • Беспроводная система защиты от протечек отличается от предыдущей тем, что датчики отправляют сигналы на пульт, используя радиосвязь.

Защита от протечек своими руками

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

Самый простой способ основан на применении транзистора

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

  • источник питания — батарея с напряжением до 3 В, например, CR1632;
  • резистор величиной от 1000 кОм до 2000 кОм, который регулирует чувствительность устройства к реагированию на появление воды;
  • звуковой генератор или сигнальная светодиодная лампочка.

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

Корпус для датчика можно изготовить из горлышка от пластмассовой бутылки.

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

Аквасторож своими руками

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

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

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

Эта схема также может использоваться в качестве датчика для подачи светового или звукового сигналов.

Выход этой схемы может быть соединен с функциональной кнопкой старого сотового телефона, например, через оптрон или реле. Телефон, в свою очередь, может быть настроен на отправку СМС сообщения хозяину квартиры.

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

Видео по теме

В этом проекте рассмотрим, как сделать датчик протечки воды своими руками для Ардуино. Соберем простой датчик из недорогих подручных материалов — пары гвоздей, нескольких проводов, одного резистора и клеммников для соединения проводов. Для проверки правильной работы нашего самодельного датчика будем использовать скетч для датчика протечки воды из занятия кружка по робототехнике для детей.

Данный датчик можно будет использовать при создании проектов «умного» полива грядок или комнатных цветов. Благодаря недорогим компонентам и простоте своей работы датчик воды для Ардуино можно сделать самостоятельно. Чтобы сделать датчик протечки воды своими руками потребуется: два гвоздя, несколько проводов, резистор на 220 Ом, клеммники и небольшой набор инструментов.

Как сделать аналоговый датчик своими руками

Для этого проекта нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • самодельный датчик воды;
  • 1 светодиод и резистор на 220 Ом;
  • провода «папа-папа» и «папа-мама».

Собираем датчик протечки воды своими руками

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

Фото. Схема датчика воды своими руками и подключение к Ардуино

Далее необходимо ослабить контакты, выкрутив винты. Согласно схеме на фото вставьте в крайние контакты гвозди и зачищенные концы проводов. Левый и средний контакт следует соединить резистором с номиналом 220 Ом. В правый контакт также вставляется зачищенный конец провода. Осталось лишь подготовить контакты на всех проводах, для подключения датчика воды к плате Ардуино.

Проверка самодельного датчика на Ардуино

Теперь вы знаете, как сделать датчик воды своими руками для Ардуино, осталось лишь проверить правильность работы и показания прибора. Для этого мы используем скетч из предыдущего занятия «Кружка робототехники на Ардуино» и соберем схему с автоматическим включением и выключением светодиода, подключив самодельный датчик воды к Ардуино (смотри фото сборки схемы выше).

Скетч для самодельного датчика воды Ардуино

int x; // присваиваем имя для значений с аналогового входа A0 void setup() // процедура setup { pinMode(12, OUTPUT); // пин 12 со светодиодом будет выходом (англ. «output») pinMode(A0, INPUT); // к входу A0 подключим датчик (англ. «intput») Serial.begin(9600); // подключаем монитор порта } void loop() // процедура loop { x = analogRead(A0); // переменная «x» находится в интервале от 0 до 1023 if (x > 100) { digitalWrite(12, HIGH); } // больше 100 — включаем светодиод if (x < 100) { digitalWrite(12, LOW); } // меньше 100 — выключаем светодиод Serial.println (x); // выводим значение датчика на монитор delay(1000); // задержка в одну секунду }

В первой строчке скетча мы присвоили имя x для значений c входа A0. С помощью оператора int, мы указали, что значения x могут принимать только целое число. Условный оператор if позволяет нам определить действие при истинном условии. Показания датчиков могут разниться — это зависит от токопроводимости материалов. Добавьте в воду соль и наблюдайте за изменениями показания с датчика.

Для реализации аквасторожа нам понадобится:

Ссылка на кран: http://ali.pub/1wbnn9

Ссылка на Ардуино UNO: http://ali.pub/1th4sk

Ссылка на драйвер двигателей L298N: http://ali.ski/bjZ7p

Ссылка на датчик протечки воды: http://ali.ski/KpFi92

Ссылка на кнопки: http://ali.ski/MZmpq

Ссылка контактные провода: http://ali.pub/1th4xf

Ссылка макетная плата: http://ali.ski/mvDWz2

Принцип работы. Как только попадает вода на датчик протечки воды (датчик дождя) кран начинает закрываться, примерное закрытие крана происходит в течении 5 секунд. После того как кран закрылся и датчик дождя высох, кран сам по себе не откроется. Это сделано для того, чтобы пока Вас не было дома, кран снова не открылся. Чтоб открыть кран, нужно нажать кнопку и держать ее пока кран не откроется до конца.

Для реализации данного проекта, нужно сначала собрать все по данной съеме:

На этом примере я показал как подключить один кран с электроприводом, но к драйверу двигателей L298N можно подключить 2 крана, на горячую и холодную воду, но тогда нужно будет немного изменить скетч.

Программу для этой схеме я делал в FLProg. Схема которая получилась в FLProg:

Скачать проект для FLProg можно скачать по ссылке: https://yadi.sk/d/RY7DyEjU3NevtM

Принцип работы прост. Слушаем Аналоговый пин ардуино A0 к которому подключен датчик дождя. И как только значения падают ниже 350 подаем сигнал на пин L298N IN2 и кран начинает закрываться. Датчик дождя работает по типу изменения значений на аналоговый пин. Чем больше влаги на датчике, тем меньшее значение он показывает. Таким образом мы можем чувствительность изменять путем изменения значения «350”.

А чтоб открыть клапан, кнопка напрямую подключена к пину IN1 и при ее нажании подается сигнал на пин драйвера L298N IN1 и кран начинает открываться.

Схема очень проста и легка к повторению. Если хотите подключить второй двигатель, нужно добавить два пина IN3 и IN4 и по аналогии зделать с ними.

Вот сразу готовый скетч, для заливки в ардуино:

bool _bounseInputD6S = 0; bool _bounseInputD6O = 0; unsigned long _bounseInputD6P = 0UL; void setup() { pinMode(6, INPUT); digitalWrite(6, HIGH); pinMode(7, OUTPUT); pinMode(8, OUTPUT); _bounseInputD6O = digitalRead(6); } void loop() { bool _bounceInputTmpD6 = (digitalRead (6)); if (_bounseInputD6S) { if (millis() >= (_bounseInputD6P + 40)) {_bounseInputD6O= _bounceInputTmpD6; _bounseInputD6S=0;} } else { if (_bounceInputTmpD6 != _bounseInputD6O ) {_bounseInputD6S=1; _bounseInputD6P = millis();} } //Плата:1 digitalWrite(7, !(_bounseInputD6O)); digitalWrite(8, ( (analogRead (0))) <= (350)); }

Оставьте комментарий