domvpavlino.ru

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

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

Для реализации проекта по защите от потопа в квартире я заказа у китайцев два электрических крана под резьбу 1/2 "" (DN15) схемой подключения DC3 и питанием 5 вольт.
Можно было заказать и на 12 вольт (они почему-то дешевле), но у меня не было подходящего блока питания. Для 5-и вольт подойдет любая зарядка от старого телефона.


Электрический кран

Кран имеет 3 провода:

  • Красный - плюс 5 вольт
  • Зеленый - минус
  • Желтый - управляющий (плюс - закрыт, разрыв - открыт)

Электрическая схема

Управлять этими кранами будет ESP8266-01. Это очень удобное и дешевое решение, но требующее подключения стабилизатора на 3.3 вольта. Управление мы будем осуществлять по протоколу MQTT с мобильного телефона на android.
Подробно о том как подготовить ESP к прошивке скетчем из Arduino IDE и настройке брокер-сервера cloudmqtt.com для обмена данными между устройствами я описывал в статье "ESP + MQTT как основа умного дома " и по тому повторяться не буду.

Управлять нашими электрическими кранами будет микроконтроллер ESP8266. Порт RxD будет управлять открытием/закрытием крана. Порт GPIO0 будет измерять сопротивление между ним и землей - датчик воды. Краны подключены не напрямую, а через транзистор КТ316. Ток для этих кранов не большой и этого маломощного транзистора хватает. Принципиальная схема устройства:


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

Принцип работы

При включении устройства оно проверяет сопротивление на датчике. Если оно мало - включает тревогу и отключает подачу воды, если в норме - работает в следящем режиме.
Параллельно с этим устройство соединяется к домашнему роутеру и через интернет находит подключение к брокер серверу. Подписывается на топики "valve/1", "valve/alarm". Если на брокер сервер с мобильного клиента приходит топик "valve/alarm" = true - кран открывается, false - закрывается. Топик "valve/alarm" = true искусственно вызывает срабатывание тревоги и краны закрываются. "valve/alarm" = false отключает тревогу, если датчик не касается воды.

Скетч программы для Arduino IDE

#include #include Const char *ssid = "xxxxxx"; // Имя роутера const char *pass = "xxxxxx"; // Пароль роутера const char *mqtt_server = "m13.cloudmqtt.com"; // Имя сервера MQTT const int mqtt_port = 14483; // Порт для подключения к серверу MQTT const char *mqtt_user = "xxxxxx"; // Логи для подключения к серверу MQTT const char *mqtt_pass = "xxxxxx"; // Пароль для подключения к серверу MQTT const int sensor = 0; // датчик воды const int drive1 = 3; // кран const int led = 5; // диод на плате #define BUFFER_SIZE 100 int tm = 300; float temp = 0; bool sensor_is_alarm = false; bool drive1_is_close = false; WiFiClient wclient; PubSubClient client(wclient); // Функция получения данных от сервера void callback(char* topic, byte* bpayload, unsigned int length) { // конвертируем byte в sting String payload = ""; for (int i = 0; i < length; i++) { payload = payload + (char)bpayload[i]; } Serial.print(topic); // выводим в сериал порт название топика Serial.print(" => "); Serial.println(payload); // выводим в сериал порт значение полученных данных // проверяем из нужного ли нам топика пришли данные if(topic == "valve/1" && sensor_is_alarm == false) { int value = payload.toInt(); if (value == 0) drive1_is_close = true; else drive1_is_close = false; } if(topic == "valve/alarm") { int value = payload.toInt(); if (value == 0) { sensor_is_alarm = false; } else { sensor_is_alarm = true; drive1_is_close = true; } } } void setup() { Serial.begin(115200); client.setServer(mqtt_server, mqtt_port); client.setCallback(callback); delay(10); Serial.println(); Serial.println(); pinMode(led, OUTPUT); pinMode(sensor, INPUT_PULLUP); pinMode(drive1, OUTPUT); digitalWrite(drive1, LOW); } // Функция проверка датчика воды void readSensor() { int sensorValue = analogRead(sensor); if (sensorValue < 1023 && sensor_is_alarm == false) { // сработал датчик потопа sensor_is_alarm = true; drive1_is_close = true; Serial.println("Alarm on"); } if (drive1_is_close == true) digitalWrite(drive1, HIGH); else digitalWrite(drive1, LOW); digitalWrite(led, sensor_is_alarm); } // Функция отправки показаний void sendCurrentValue() { if (tm == 0) { // отсылаем текущий статус //client.publish("valve/alarm", String(sensor_is_alarm)); //client.publish("valve/1", String(!drive1_is_close)); tm = 3000; // пауза меду отправками 3 секунды } tm--; } void loop() { // подключаемся к wi-fi if (WiFi.status() != WL_CONNECTED) { Serial.print("Connecting to "); Serial.print(ssid); Serial.println("..."); WiFi.begin(ssid, pass); if (WiFi.waitForConnectResult() != WL_CONNECTED) return; Serial.println("WiFi connected"); } // подключаемся к MQTT серверу if (WiFi.status() == WL_CONNECTED) { if (!client.connected()) { Serial.print("Connecting to MQTT server "); Serial.print(mqtt_server); Serial.println("..."); if (client.connect("arduinoClient", mqtt_user, mqtt_pass)) { Serial.println("Connected to MQTT server"); // подписываемся по топики client.subscribe("valve/1"); client.subscribe("valve/alarm"); } else { Serial.println("Could not connect to MQTT server"); } } readSensor(); if (client.connected()){ client.loop(); sendCurrentValue(); delay(1); } } }

Управление на телефона

Скачал на свой Android программу - IoT MQTT Dashboard. В ней настроил отображение значения топиков "valve/1", "valve/alarm", которые присылаются раз в 3 секунды. Для управления кранами создал два переключателя "valve/1" и "valve/alarm", которые отсылают строки "true" и "false" при переключении.
Теперь остается спаять схемку и подключить. Тратить время на печатную плату было лень и сделал все по простому.


Устройство закрепил в техническом шкафу санузла. Подвел питание 5 вольт от блока питания, что бы лишний раз не светить фазой возле водяных труб.


Модернизация

В планах на доработку системы - отказ от проводных датчиков и использовать радио модули 433 МГц датчиков охраны двери с герконом. Геркон выпаивается и подпаивается самопальный сенсор воды (Контакты на плате уже есть. Такой же датчик для воды стоит вдвое дороже но практически ничем не отличается.)


На плату нужно будет добавить приемник 433 МГц и доработать код.


Библиотека pubsubclient.h в приложении. Она используются в скетче. Если выйдет более свежая версия библиотеки - может потеряться обратная совместимость с кодом и тогда можно использовать pubsubclient.h из архива.

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

Главные отличия от ранее представленных на хабре решений данной задачи – простота реализации, относительно дешево + для повторения не надо быть программистом. Правда паять все равно придется, но всего 2 раза.

Введение

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

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

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

Итак, по моей «пирамиде потребностей Маслоу для Умного Дома» (с) – важность сигнализации и предотвращения потопа находится на том же уровне, что и важность сигнализации о вторжении или появлении дыма.

Пирамида потребностей Маслоу для Умного Дома

Ибо масштаб трагедии может быть ужасающим:

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

Проблема

Итак, захотелось в случае обнаружения протечки воды – получать оповещение (смс и/или email) и, чтобы автоматически перекрывалась подача воды в квартиру. А также иметь возможность открывать и перекрывать воду «вручную», в том числе удаленно через интернет.

Решение

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

Текущая структура моей системы Умный Дом. Красным выделены компоненты непосредственно участвующие в системе Антипротечки.

Настольный макет прикладной части системы антипротечки выглядел так:

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

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

Датчик протечки

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

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

Данный подход имеет ряд недостатков: одним из главных является окисление не позолоченных контактов со временем.

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

За основу был взят китайский беспроводной магнитоконтактный (герконовый) датчик MD-209R. В моем случае был выбран относительно дешевый датчик-клон, совместимый с протоколом передачи PowerCode (фирмы Visonic), так как это один из беспроводных протоколов, поддерживаемых моим контроллером.

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

Итак, после нехитрых манипуляций с паяльником получилось это:

Клапан с электроприводом


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

Свой макет я испытывал на китайском клапане с электроприводом под трубу на 1/2 дюйма .

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

Радиореле

Для подачи питания на привод я закупил на ebay вот такое двухканальное радиореле из списка совместимых с контроллером. Тип YKT-02XX-433

Внутри установлена так любимая китайскими производителями микросхема-кодер 1527.

В нем стоят 10-амперные реле, поэтому, в принципе, ими можно коммутировать почти любую бытовую нагрузку до 250В. Ограничение 2 кВт.

Для управления электроприводом этого более чем достаточно, так как привод клапана питается от 12 В и по паспорту потребляет всего 4 Вт, причем только во время изменения состояния клапана.

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

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

Управление


В качестве «мозгов» системы я применил Наносервер NS1000 - универсальный контроллер отечественного производителя 1-М Умным Домом .

Возможности контроллера, которые так или иначе используются в данном проекте:
Поддержка сверхбюджетных беспроводных датчиков и радиореле.
Выполнение сценариев оффлайн (даже без интернет).
Оповещение о событиях через смс и по электронной почте.
Элементарное составление «сценариев» работы системы без написания кода.
Возможность управление устройствами со смартфона (Android).
Управление через WEB.
Ведение «логов».

Сценарии

В процессе настройки контроллера нужно учесть следующий нюанс:
Герконовый датчик посылает сообщение о срабатывании когда размыкается, а нам надо чтобы при замыкании. Соответственно, в условии запуска сценария нужно указать не включение датчика, а выключение. И не по состоянию, а по изменению. Чтобы оповещения не повторялись циклически.
Условие запуска сценария 1: Если Канал «Датчик протечки» выключился.
Шаги сценария:
. Оповещение «Хозяин, у нас потоп!»
. Включить канал «Клапан воды закрыть»

И сценарий на открытие клапана по команде с брелка или со смартфона:
Условие запуска сценария 2: Если Канал «Можно открыть клапан воды» включился.
Шаги сценария:
. Включить канал «Клапан воды открыть»

В WEB-интерфейсе облачного сервиса это выглядит так:

Для ручного управления устройствами ничего «программировать» не надо – после добавления в систему, управление каждым устройством автоматически становится доступно из Личного кабинета через WEB-интерфейс и с Android-приложения.

Вид панели WEB-управления Умным Домом через интернет:

Внешний вид Android-приложения

Что в результате?

Цель достигнута. При срабатывании датчика протечки, я получаю смс-оповещение вида «Хозяин, у нас потоп!» и клапан автоматически перекрывается в течение менее 30 секунд.
Так же, я имею возможность не автоматически открывать и закрывать клапан, путем нажатия на кнопки брелка, со смартфона или с браузера через интернет.
Срабатывание каждого датчика и устройства регистрируется в журнале логов.

При этом, не пришлось писать код и самостоятельное повторение данного решения вполне доступно для большинства (конечно, не считая установки клапанов на трубы).

Настройка системы, зная, что ты хочешь, занимает от силы 10 минут. Включая активацию датчика и радиореле, создание всех сценариев.

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

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

Другими словами - аппетит приходит во время еды.

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

Немного о ценах:

Наносервер NS-1000 - 44$
Датчик магнитоконтактный MD-209R - 13$
Радиореле - 10$
Клапан- 15$

Итого (без учета доставки) = 82$

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

P.S.

В процессе реализации, уже купив клапан, я обнаружил, что существуют

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

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

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

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

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

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

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

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

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

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

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

  • VCC (вход питания) – должен совпадать для соединенной схемы Arduino по напряжению и току. То есть в данном случае 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); // Задержка между измерениями }

#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: " ) ;

// Выводим аналоговое значение в монитр порта

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); // Задержка между измерениями }

#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 ) ; // короткая задержка

Салют мусковчане!

Хочу кратко рассказать Вам о своем 2-х летнем опыте использования системы защиты от протечки (Water leakage detector), ведь часть информации о ней я почерпнул с этого сайта и, пожалуй, из кучи купленного мною хлама в интернете, эта покупка стоящая. Если кратко - то все хорошо, если хотите подробностей, то прошу подкат.

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

Итак, система была куплена (2500р. + 1700р. за доставку) и установлена в конце лета 2014 года и с тех пор исправно бережет мой домашний покой.

Информация о заказе



Предыстория банальна – как то среди ночи прохудилась соединительная втулка на аквафоровском питьевом кране и вода веселыми весенними ручьями защебетала по неровностям кухонного пола. Несмотря на малый диаметр подводящий к крану трубки, буквально за пять минут воды набежало порядочно. Чуткий сон супруги позволил избежать серьезного подтопления. Это событие и наличие последнего 9-го этажа навеяли тяжкие думы.

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

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








Трудностей с монтажом не возникло. Датчики равномерно раскидал по кухне-ване-туалету в местах вероятных протечек, а блок разместил на кухне под мойкой возле розетки.


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


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

Привод со снятой крышкой






За все время систему никак не обслуживал, краны проворачиваю с пульта раз в месяц, когда лезу списывать показания счетчиков.
В целом, как писал в начале, покупкой я вполне доволен и могу рекомендовать данную систему, тем более продавец все еще присутствует с ней на рынке. Так же отдельно можно купить кран с приводом (~2000 с доставкой) и иные компоненты системы.
Из недостатков отметил бы конструкцию датчиков, в них нет никакой защиты от ложных срабатываний при незначительных бытовых проливах воды на пол.
При отъездах семьей на день два и более, воду перекрываю ручными – китайцам доверяй да сам не оплошай!

Небольшое видео о работе системы:

На этом все, надеюсь, информация будет кому-то полезна. Мир Вашему дому.

Планирую купить +106 Добавить в избранное Обзор понравился +74 +147

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

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

  • + – питание датчика;
  • - – земля;
  • S - аналоговое значение.
На вывод S подается аналоговое значение, которое можно передавать в контроллер для дальнейшей обработки, анализа и принятия решений. Датчик имеет красный светодиод, сигнализирующих о наличие поступающего на датчик питания.

Технические характеристики модуля

  • Напряжение питания: 3.3-5 В;
  • Ток потребления 20 мА;
  • Выход: аналоговый;
  • Зона обнаружения: 16×30 мм;
  • Размеры: 62×20×8 мм;
  • Рабочая температура: 10 – 30 °С.

Пример использования

Рассмотрим подключение датчика уровня воды к Arduino. Создадим проект звуковой сигнализации затопления помещения. При погружении датчика в воду, сигнализация издает три вида звуковых сигналов (небольшое затопление, средний уровень, критический уровень), соответствуюший трем уровням воды. Для воспроизведения звуковых можно к цифровому выводу подключить пьезоизлучатель - электроакустическое устройства воспроизведения звука. Но при этом звук получается очень тихий. Чтобы получить громкость более приличного уровня, к цифровому выводу Arduino динамик, но не напрямую, а через транзистор. Для проекта нам понадобятся следующие детали: Соберем схему, показанную на рисунке.


Запустим Arduino IDE. Создадим новый скетч и внесем в него следующие строчки // Датчик уровня воды // http://3d-diy.ru // контакт подключения аналогового выхода датчика int aPin=A0; // контакт подключения вывода реле int soundPin=11; // частота звукового сигнала int freq={587,466,293}; // переменная для сохранения значения датчика int avalue=0; // значение уровней int levels={600,500,400}; // текущий уровень int level=0; void setup() { // инициализация последовательного порта Serial.begin(9600); // настройка выводов индикации светодиодов // в режим OUTPUT pinMode(soundPin,OUTPUT); } void loop() { // получение значения с аналогового вывода датчика avalue=analogRead(aPin); // вывод значения в монитор последовательного порта Arduino Serial.print("avalue=");Serial.println(avalue); // вывод звука различной частоты для разных уровней погружения if(avalue>levels) tone(soundPin,freq,2000); else if(avalue>levels) tone(soundPin,freq,2000); else if(avalue>levels) tone(soundPin,freq,2000); else noTone(soundPin); // пауза перед следующим получением значения 1000 мс delay(1000); } Аналоговый вывод датчика подключен к аналоговому входу Arduino, который представляет собой аналого-цифровой преобразователь (АЦП) с разрешением 10 бит, что позволяет на выходе получать значения от 0 до 1023. Значение аналоговых сигналов на аналоговом входе Arduino для трех уровней погружения были определены экспериментальным путем: > 400 – минимальное погружение; > 500 – средний уровень погружения; > 600 – большое погружение. Соответственно для каждого уровня погружения на динамике воспроизводится звуковой сигнал разной частоты: минимальное погружение – 293 Гц (нота ре 1 октавы); средний уровень погружения – 466 Гц (нота си-бимоль 1 октавы); большое погружение – 587 Гц (нота ре 2 октавы). При отсутствии погружения звуковой сигнал на динамике не воспроизводится.

Часто задаваемые вопросы FAQ

1. Не горит светодиод питания 2. При погружении в воду не изменяется значение выходного аналогового сигнала
  • Проверьте соединение датчика с входом Arduino.
  • Проверьте наличие и полярность подаваемого на датчик питания (3,3 – 5 В).
Загрузка...