Автоматический долив воды в чайник, кофемашину, аквариум, увлажнитель своими руками

16 ноября 2023

Я думаю, многие сталкивались с такой ситуацией: когда вы торопитесь на работу, заходите на кухню, включаете кофеварку или чайник, а они вам в ответ говорят: "Долейте воды". Вы начинаете судорожно искать подходящую емкость, ждете, пока она наполнится медленной струйкой воды из под фильтра, и еще переливая воду из емкости в чайник, вы случайно можете пролить часть воды мимо. Придется еще убрать эту воду. Знакомая ситуация? Конечно, мы уже привыкли к этому обыденному делу, так как мы, как роботы, повторяем эти манипуляции почти каждый день. Я решил, что пора упростить этот процесс, и стал обдумывать и прокручивать в голове все возможные безопасные варианты реализации автоматического долива воды.

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

Водопровод

В реализации этой системы меня больше всего пугала прокладка водопровода к чайнику. Но когда я в очередной раз менял картриджи фильтра воды, я осознал, что не обязательно тянуть 1/2-дюймовую жесткую и толстую ПП-трубу. Достаточно проложить в пустой полости за кухонной мебелью мягкую, податливую и совсем визуально не отличающуюся от обычного сетевого (220В) провода трубку диаметром 1/4 дюйма. Как показало время, она надежна, легко монтируется и не занимает много места. Для соединения используется надежное, цанговое, быстросъемное соединение John Guest. Цанговые соединители такой трубки позволяют соединять ее без какой-либо пайки или сварки. Трубку можно гнуть в больших пределах. К ней есть большой выбор фитингов.

Чайник

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

Честно говоря, я даже не знаю, почему его продавцы называют термопотом? Но это точно не термопот. В термопоте сначала кипятится весь объем воды, а потом круглыми сутками поддерживается ее температура, тратя на это электроэнергию 30-70 Ватт в час. Я бы назвал это чайником с проточным нагревом, но как-то слишком длинно и сложно получается. Возможно, что название "Экочайник" ему подошло бы больше, но я их не продаю и не произвожу, поэтому пусть они сами разбираются, как все-таки его правильно называть.

Встроенный датчик уровня воды

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

Магнит встроенный в поплавок опускается вместе с водой вниз. И когда магнитное поле пересечет контакты геркона, то они замыкаются и тем самым дают сигнал микроконтроллеру, что вода закончилась.

 

Датчик минимального уровня подключен одним выводом геркона к GND, а вторым к микроконтроллеру чайника и подтянут через резистор на +5 В. Для подключения к нему Ардуино достаточно 2-х проводов. Но так как я питаю ардуино от штатного источника, то я еще подключаю провод к +5В.

Поплавковый клапан

Я приобрел поплавковый клапан, который предназначен для поддержания уровня воды в аквариуме. Принцип его работы примерно такой же как и у клапана в унитазе.

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

Электромагнитный клапан

ЭМ клапан должен быть нормально закрытым. Он достался мне бесплатно, так как я заказал клапан на 12 В, а продавец прислал мне на 24 В. То я открыл спор, и мне вернули за него деньги. Чтобы не ждать новый электроклапан еще 1 месяц, я нашел у себя в хламе блок питания на 24 В. Также можно было бы использовать повышающий преобразователь XL6009, но в моем случае эта плата была бы лишней.

Потребление тока электромагнитного клапана в режиме "Открыт" составляет 200 мА.

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

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

Источник питания для электроклапана

Так как ЭМ клапан мне достался на 24В, то я нашел у себя БП от старого настольного светильника на нужное мне напряжение и ток. Ток получается с запасом в два с небольшим раза превышает максимальный ток подключаемой к нему нагрузки. Что очень хорошо для надежности и долговечности. К тому же большее время БП будет отдыхать, так как вода доливается на так часто.

Микроконтроллер

Я использую Ардуино pro mini по тому, как они у меня есть и я испытываю к микроконтроллерам больше доверия чем к дискретной логике. Потому, что в микроконтроллере можно использовать режим WDT. Который при какой либо непредвиденной ситуации сразу выведет его из повисшего состояния и он продолжит свою работу. Конечно же можно было использовать и Attiny, но как я сказал выше у меня валяется пара десятков Адуинок и было бы глупо их не использовать.

Многих новичков пугает прошивка Ардуино pro mini, из-за отсутствия в ней USB-UART моста. Но если использовать мост USB-TTL FTDI FT232 то даже соединительные провода не потребуются. Соединяем две платы как показано на фотографии. Для обеспечения хорошего контакта немного придавим их и жмем в Arduino-IDE кнопку прошить. Вот и все, ничего сложного.

Алгоритм работы автодолива

Как это должно работать? Вода будет подключена через тройник к выходу водоочистного фильтра, через трубку 1,4". Которая будет протянута к чайнику и подключена к электромагнитному клапану. Который будет открываться по сигналу от штатного датчика минимального уровня воды, ровно на столько времени, сколько понадобится для долива половины объема емкости чайника. Это исключает случайный перелив и установку сенсора максимального уровня воды. Если не сработал или не закрылся электромагнитный клапан, то на этот случай есть резервное механическое запирание воды, в виде поплавкового клапана. Также для безопасности, долив воды будет осуществляться только в присутствии человека. Регистрировать нахождение человека каким-либо датчиком не обязательно, достаточно будет того же датчика наличия воды. Так как вода сама по себе без человека не будет заканчиваться в емкости чайника, то сигнал с датчика о том, что закончилась вода происходит только по причине того, что кто-то захотел выпить очередную чашку чая. Следующая ступень защиты - это датчик протечки воды с управляемым электромеханическим клапаном на водопроводной трубе. Датчик протечки воды должен отправить сигнал облачному сервису о наличии воды, а тот в свою очередь отправит сигнал электромагнитному клапану о том, что нужно перекрыть водопровод. Но по моим прикидкам, последняя функция не обязательная. Так как чайник и без датчика протечек надежно защищен.

Получится 5 степеней защиты

  • Электронный клапан.
  • Уменьшенный в 2 раза объем долива воды.
  • Механический, поплавковый запорный клапан. 
  • Присутствие человека при срабатывании долива воды. 
  • Датчик протечки воды с исполнительным клапаном на стояке.

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

Схема

Я понимаю, что задача примитивная и можно было бы обойтись схемой одновибратора на микросхеме NE555. Переделав реле с таймером под эти нужны, но мне проще и дешевле применить Arduino Pro mini. Во первых у меня их много. А во вторых мне не нужно, что то сверлить, травить или переделывать.

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

Конденсатор 0,22 мкФ защищает не только от дребезга контактов геркона, а еще от ложных срабатываний, так как помехи от моторчика помпы немного, но все таки зашумляют линию питания. Конечно можно было бы еще поставить LC фильтр питания. Но как показала практика все прекрасно работает и без него. 

Диод 1N4007 защищает от выбросов ЭДС самоиндукции ЭМ клапана.

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

Резистор 1 кОм защищает управляющий выход микроконтроллера.

Транзистор КТ972 работает в ключевом режиме и управляет ЭМ клапаном.

Реализация

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

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

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

В корпусе чайника много свободного места. Я с легкостью разместил в нем источник питания 24В для ЭМ клапана. Там же хватило место и микроконтроллеру Arduini pro mini.

Код для Ардуино

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

Нажмите, чтобы посмотреть
#include <avr/wdt.h>

#define valve 3                             // выход управления электроклапаном
#define INT0_PIN 2                          // вход прерывания INT0
#define interval 10000                      // Интервал времени долива в ms (рассчитывается опытным путем)

void setup() 
{
  wdt_enable(WDTO_4S);                      // включаем WDT 
  pinMode (valve, INPUT);                   // На всякий случай для безопасности отключаем управление электроклапаном.
  pinMode (INT0_PIN, INPUT_PULLUP);         // Подтягиваем вход INT0 внутренним резистором
  attachInterrupt(INT0, myISR, FALLING);    // Настраиваем прерывание на срабатывание при смене значения с HIGH на LOW (FALLING)
}

void loop() 
{
  wdt_reset();                              // кормим собаку
}  
   
void myISR()                                // Обработчик внешнего прерывания INT0
{
  detachInterrupt(INT0);                    // запрещаем обработку внешнего прерывания INT0
    //*****************************
    pinMode (valve, OUTPUT);                // назначаем выход для управление электроклапаном
    digitalWrite(valve, HIGH);              // открываем клапан для долива воды
      for(uint16_t i=0; i<interval; i++)    // выдерживаем заданный интервал, для требуемого объема долива
      {
        delayMicroseconds(500);             // примерно 1 ms
        wdt_reset();                        // кормим собаку
      }
    pinMode (valve, INPUT);                 // отключаем управление электроклапаном и переводим выход в 3-е состояние на всякий случай
    //*****************************
  attachInterrupt(INT0, myISR, FALLING);    // Настраиваем прерывание на срабатывание при смене значения с HIGH на LOW (FALLING)
}  

Второй скетч гибридный. Он использует два режима WDT и Sleep. В коде перед засыпанием микроконтроллера, выключается ражим Watchdog Timer (WDT), а контроллер при этом можно вывести из сна только по изменению сигнала от встроенного магнитного датчика "Закончилась вода". После просыпания контроллера в коде сразу же запускается WDT. Такой режим не несет ни какой опасности при подвисании от невозможности проснуться, так как управляющий выход каждый раз после отработки клапана, перепрограммируется на вход исключая его случайное включение от пролетающих сквозь него высокоэнергетических частиц прилетевших из космоса.

Нажмите, чтобы посмотреть


#include <avr/sleep.h>
#include <avr/wdt.h>

#define valve 3                          // выход управления электроклапаном
#define interval 10000                   // Интервал времени долива в 1:10ms. Интервал рассчитывается опытным путем
#define int0_pin 2                       // вход внешнего прерывания INT0

void setup() 
{
  wdt_enable(WDTO_4S);                    // включаем WDT с интервалом 4 сек
  pinMode (valve, INPUT);                 // Для безопасности отключаем управление электроклапаном. 
  pinMode (int0_pin, INPUT_PULLUP);       // Подтягиваем вход INT0 внутренним резистором
  attachInterrupt(INT0, myISR, FALLING);  // Настраиваем прерывание. Сработает при изменении сигнала на входе D2 с HIGH на LOW
}

void loop() 
{                
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);  // SLEEP_MODE_PWR_DOWN - самый экономичный режим 
  sleep_enable();                       // разрешить режим сна
  wdt_disable();                        // отключаем WDT перед сном     
  sleep_mode();                         // Переводим МК в сон и ждем когда в чайнике закончится вода 
}  
   
void myISR()                              // Обработчик внешнего прерывания INT0
{
  detachInterrupt(INT0);                  // запрещаем обработку внешнего прерывания
    wdt_enable(WDTO_4S);                  // включаем WDT с интервалом 4 сек
   //*****************************
    pinMode (valve, OUTPUT);              // Активируем вывод для управление электроклапаном
    digitalWrite(valve, HIGH);            // открывем клапан для долива воды
    for(uint16_t i=0; i<interval; i++)    // выдерживаем заданный интервал, для требемого объема долива
    {
      delayMicroseconds(5000);            // примерно 10 ms
      wdt_reset();                        // кормим собаку
    }
    pinMode (valve, INPUT);               // отключаем управление электроклапаном (переводим пин в 3-е состояние)
    //*****************************
  attachInterrupt(INT0, myISR, FALLING);  // Настраиваем прерывание 0 на срабатывание при смене значения с HIGH на LOW (FALLING)
}

Заключение

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

Спасибо, что дочитали до конца! Надеюсь, что эта статья вам понравилась и вы сможете воспользоваться моей DIY самоделкой в своих проектах.
Если у Вас остались вопросы и замечания, то можете задать их в комментариях. Я с удовольствием на них отвечу.

Рекомендации по теме:

Алиса включи свет

Алиса открой окна

Алиса открой дверь

Домофон говорящий голосом Алисы