domvpavlino.ru

Защита от протечки воды arduino. Как не переплачивать за Умный Дом. Защита от потопа (антипротечка). Пример проекта дождевой сигнализации

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 В).

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

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

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

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

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

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

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


Запустим Arduino IDE. Создадим новый скетч и внесем в него следующие строчки // Датчик уровня воды // http://сайт // контакт подключения аналогового выхода датчика 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 В).

На этапе ремонта была установлена защита от протечек «Аквасторож». Два крана (горячая, холодная вода) и 4 проводных датчика. В Аквастороже предусмотрено реле, которое срабатывает если возникает аварийная ситуация (сработка датчика протечки) и имеется разъем RJ45 через который можно управлять открытием и закрытием кранов, подачей управляющих сигналов на соответствующие контакты. Вполне вероятно есть возможность прочитать данные и напрямую из микроконтроллера по интерфейсу UART, т.к. данный разъем присутствует на плате, но у меня не получилось прочитать какие либо данные, возможно что бы микроконтроллер выдал данные, нужно отправить ему команду запроса.

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

Первоначальная версия интеграции Аквасторожа в умный дом была построена на Arduino Nano и модуля nRF24L01. Такая интеграция была как временное решение, но нет ничего более постоянного, чем временное и на данном этапе я просто заменил модуль nRF24L01 на ESP8266, оставив ардуину. В планах избавиться от ардуины и сделать плату с ESP8266 + расширитель портов MCP23017 совместно с оптопарами.



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

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

Ардуина считывает состояния светодиодов и каждые 2 секунды передает их по UART в ESP8266, которая считывает эти данные и передает по MQTT на сервер умного дома.


Пищалку заклеил изолентой так как она очень громкая.

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

Систему «Аквасторож» можно подключить практически к любой GSM-сигнализации.
Схема подключения предельно проста и состоит всего из 3х цепей:
Цепь «In4» – «GRD»: получение GSM-сигнализацией информации о срабатывании системы Аквасторож на «Залив»
Цепи «R1-1» – «R1-2» / «R2-1» – «R2-2»: передача от GSM-сигнализации команды на «закрытие» / «открытие» кранов системы «Аквасторож»

Для дистанционного «Открытия» кранов необходимо замкнуть
цепь «R2-1» – «R2-2» в течение не более 2 секунд.
Для дистанционного «Закрытия» кранов необходимо замкнуть
цепь «R1-1» – «R1-2» в течение не более 2 секунд.

Подключение системы «Аквасторож» к Умному дому по инструкции производителя

Класический блок управления:

При «Заливе» система «Аквасторож» на 2 секунды замкнет/разомкнёт контакты 1-2 / 2-3 низковольтного реле, а затем вернёт их в исходное состояние.
Для дистанционного «Открытия» кранов необходимо замкнуть контакты 1-6 разъёма RJ-45 в течение не более 2 секунд.
Для дистанционного «Закрытия» кранов необходимо замкнуть контакты 1-5 разъёма RJ-45 в течение не более 2 секунд.

Блок управления«Аквасторож ЭКСПЕРТ» PRO*:

*Данный вариант исполнения контроллера «Аквасторож Эксперт» позволяет получать информацию о положении кранов
«Аквасторож».

При «Заливе» система «Аквасторож» замкнет/разомкнёт контакты 1-2 / 2-3 бистабильного реле и останется в этом состоянии, сигнализируя о «Закрытии» кранов «Аквасторож».
Если будет подан сигнал на «Открытие» кранов, то система «Аквасторож» разомкнёт/замкнёт контакты 1-2 / 2-3 бистабильного реле, сигнализируя об «Открытии» кранов
«Аквасторож».

Джампер #4 на плате контроллера «Эксперт PRO» в данном варианте должен быть надет!

Пример визуализации панели управления Аквасторожом на домашней веб странице.

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

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

Для реализации проекта по защите от потопа в квартире я заказа у китайцев два электрических крана под резьбу 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 из архива.

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

    Главные отличия от ранее представленных на хабре решений данной задачи – простота реализации, относительно дешево + для повторения не надо быть программистом. Правда паять все равно придется, но всего 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.

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