Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Во время наших ежедневных утренних ритуалов часто возникает момент, когда нужно включить кофемашину или чайник, и если не повезет, то можно услышать их молчаливую просьбу: «Пожалуйста, добавьте воды» И Вам приходится искать подходящую емкость, терпеливо ждать, пока она заполнится водой из фильтра, а потом аккуратно переливать воду из емкости в чайник, рискуя при этом разлить ее. Знакомая вам ситуация?
Большинство из нас уже привыкли к этому рутинному процессу, повторяя его каждое утро. Но я решил, что пришло время избавиться от этого безобразия и начал обдумывать безопасные способы автоматического долива воды.
После некоторых размышлений я пришел к выводу, что можно создать надежную и безопасную систему автодолива, используя мембранный электромагнитный клапан и в качестве дублирующей защиты поплавковый запорный механиз.
❯ Видео
Для тех, кто не хочет погружаться в технические подробности, описанные в этой статье, могут посмотреть видео, где показана подробная работа моего устройства.
❯ Водопровод
Наибольшие опасения у меня вызывала необходимость прокладывать водопровод к чайнику. Однако, когда я в очередной раз менял фильтры для воды, я осознал, что нет необходимости прокладывать масивную полипропиленовую трубу. Вместо этого можно использовать тонкую и гибкую трубку, которую можно легко спрятать за кухонной мебелью и которая почти не отличается от обычного электрического провода. Эта трубка надежная легко монтируется и не занимает много места. Для ее соединения я использовал проверенные временем быстросъемные соединители John Guest, которые позволяют соединять трубу без необходимости пайки или сварки. К ним можно подобрать большое количество различных фитингов.
❯ Чайник
Система долива воды без проблем работает с кофемашинами, увлажнителями и аквариумами. Однако, с чайниками с прямым нагревом воды ситуация сложнее. Поплавковый клапан, который будет постоянно подвергаться воздействию кипящей воды, скорее всего, быстро выйдет из строя. Я не проводил экспериментов в этом направлении и не могу, что-то утверждать.
У меня чайник с проточным нагревателем, который нагревает только необходимое количество воды. Такой чайник имеет ряд преимуществ: он экономичен, так как не нужно каждый раз кипятить всю воду и ждать несколько минут, чтобы выпить чашку чая, исключает многократное кипячение одной и той же воды и уменьшает вероятность опрокидывания чайника с кипятком.
Я все еще удивлен, почему его продавцы называют его термопотом? Это определенно не термопот. В термопоте сначала кипятится весь объем воды, а потом весь день поддерживается ее температура, тратя на это электроэнергию 30-70 Ватт в час.
Я бы назвал его чайником с проточным нагревом, но это звучит слишком сложно для среднестатистического человека. Возможно бы ему подошло название «Экочайник», но я не занимаюсь их продажей или производством, так что пусть они сами разбираются, как его правильно называть.
❯ Встроенный датчик уровня воды
Датчик нижнего уровня воды в чайнике, подобно многим бытовым приборам, включает в себя геркон и поплавок с магнитом.
Магнит, интегрированный в поплавок, опускается вместе с уровнем воды. Когда магнитное поле достигает контактов геркона, они замыкаются, отправляя сигнал микроконтроллеру о том, что вода закончилась.
Датчик минимального уровня соединен одним контактом геркона с GND, а другим — с микроконтроллером чайника и подключен через подтягивающий резистор к 5 В. Для соединения с Ардуино требуется лишь два провода. Однако, поскольку я для Arduino использую встроенный в чайник источник питания, я так же подсоединяю еще один провод к 5В.
❯ Поплавковый клапан
Я приобрел поплавковый клапан, предназначенный для поддержания уровня воды в аквариуме. Механизм его работы аналогичен работе клапана в туалетном бачке.
Заполнение емкости продолжается до тех пор, пока поплавок, поднимаемый водой, не перекроет поток воды. Когда уровень воды понижается, устройство автоматически открывается.
❯ Электромагнитный клапан
Электромагнитный клапан должен быть закрытым в неактивном состоянии. Я заказал модель на 12 В, но продавец отправил мне версию на 24 В. Чтобы избежать долгого ожидания нового клапана, я нашел для него у себя в запасах блок питания на 24 В. Так же возможно использование повышающего преобразователя XL6009, но в моем случае он был бы избыточным.
Ток потребления электромагнитного клапана в открытом состоянии составляет 200 мА.
Механизм работы электромагнитного клапана усиливает уверенность в безопасности системы автоматического долива воды. Он почти всегда находится в закрытом положении и открыть его намного труднее, чем закрыть. Электромагнитное поле — единственное, что может открыть клапан, и никакие другие средства не могут этого сделать. Я попытался открыть его с помощью обычного неодимового магнита, но мне это не удалось.
Как это работает? На схеме изображено, что вода, поступающая через маленькое отверстие в диафрагме, оказывает давление на диафрагму сверху, прижимая резиновое кольцо запорного клапана к проходному отверстию. Чем выше давление воды, тем сильнее прижимается клапан. Если давление в водопроводе снижается, то на диафрагму также давит пружина сверху, и нет причин для беспокойства. Однако, если электромагнит поднимет подпружиненный стержень и откроет маленький обратный клапан в центре диафрагмы, то вода начнет вытекать через это отверстие, давление на диафрагму уменьшится, и она поднимется вверх, открывая проходное отверстие для воды.
❯ Источник питания для электроклапана
Поскольку я получил ЭМ-клапан на 24 В, то я нашел в своих запасах блок питания от старого настольного светильника, который подходит мне по напряжению и току. Ток, который он выдает, превышает максимальный ток нагрузки, которая будет подключена к нему, более чем в два раза, что очень благоприятно для надежности и долговечности. Более того, большую часть времени блок питания будет находиться в состоянии покоя, поскольку добавление воды происходит не слишком часто.
❯ Микроконтроллер
Я выбрал для использования Arduino Pro Mini, потому что у меня их много и я доверяю микроконтроллерам больше, чем дискретной логике. В микроконтроллере можно включить режим WDT (Watchdog Timer), который в случае любой непредвиденной ситуации немедленно восстановит его работу и выведет из зависшего состояния.
Конечно для такой простой задачи, можно было бы использовать и Attiny, но, как я уже упоминал, у меня есть много Arduino, и было бы неразумно их не использовать.
Многие новички боятся прошивать Arduino Pro Mini из-за отсутствия в ней USB-UART моста. Но хочу вас успокоить, если использовать USB-TTL мост FTDI FT232, то даже соединительные провода не понадобятся. Просто соедините две платы, как показано на изображении. Чтобы обеспечить надежный контакт, немного придавите их друг к другу и нажмите кнопку «Прошить» в Arduino IDE. Это все, ничего сложного.
❯ Алгоритм работы автодолива
Основные шаги работы можно представить следующим образом:
Вода подключается через тройник к выходу водоочистного фильтра с использованием трубки диаметром 1/4". Эта трубка протягивается к чайнику и подключается к электромагнитному клапану.
Когда штатный датчик минимального уровня воды сигнализирует о необходимости долить воду, электромагнитный клапан открывается. Важно, чтобы он открылся на время, достаточное для долива половины объема емкости чайника. Это предотвращает случайный перелив и исключает необходимость использования датчика максимального уровня воды.
Если электромагнитный клапан не сработал или не закрылся, в системе предусмотрено механическое запирание воды с помощью поплавкового клапана. Это обеспечивает дополнительную защиту от протечек.
Также, чтобы обеспечить безопасность, долив воды осуществляется только в присутствии человека. Для определения наличия человека можно использовать датчик наличия воды. Если в чайнике вода заканчивается, то это происходит из-за того, что кто-то хочет выпить чай, и система будет оповещена о необходимости долить воду.
Для обеспечения дополнительной защиты, можно так же установить датчик протечки воды с управляемым электромеханическим клапаном на водопроводной трубе. В случае обнаружения протечки, датчик отправит сигнал электромагнитному клапану для перекрытия водопровода. Однако, учитывая надежную защиту чайника, использование этого датчика может быть необязательным.
Таким образом, можно использовать 5 степеней защиты:
- Электромагнитный клапан.
- Уменьшенный в 2 раза объем долива воды.
- Механический, поплавковый запорный клапан.
- Присутствие человека при срабатывании долива воды.
- Датчик протечки воды с исполнительным клапаном на стояке.
Если сопоставить безопасность с другими массово производимыми бытовыми устройствами, то я могу привести свой собственный опыт с ПММ. В посудомоечной машине основная защита зависит от единственного электромагнитного клапана. Если он заклинил или не закрылся из-за заедания реле, пробоя симистора или куска ржавчины из водопровода, то риск затопления становится высоким. У меня был эпизод, когда ПММ затопила кухню, так как у нее не сработал датчик уровня воды (прессостат), а затем и аварийный датчик в дренажном поддоне. Пенопластовый поплавок просто прилип к поддону и не смог оторваться от него под воздействием воды. В результате, контакты остались разомкнутыми, и входной клапан продолжал лить воду. К счастью, у меня был установлен датчик протечки воды, который сработал вовремя, иначе было бы невозможно избежать серьезных проблем.
❯ Схема
Я осознаю, что задача достаточно базовая и можно было бы использовать схему одновибратора на микросхеме NE555, модифицировав реле с таймером под эти нужды. Однако, для меня более простым и экономичным вариантом было использование Arduino Pro mini. Во-первых, у меня их достаточно много. Во-вторых, мне не нужно будет ничего сверлить, травить или переделывать.
Так как питание микроконтроллера Arduino будет происходить от встроенного в чайник стандартного линейного стабилизатора, идеи о Wi-Fi отпали сами собой. Впрочем, эти функции не особо нужны, я планирую использовать их в следующем проекте при модернизации кофемашины. Для снижения нагрузки на уже загруженный штатный линейный стабилизатор, я удалил светодиод «Power» с Ардуино и программно перевожу контроллер в спящий режим. В этом режиме он потребляет всего 2 мА и почти не влияет на общее потребление тока заводских плат в чайнике.
Керамический конденсатор 0,22 мкФ защищает не только от дребезга контактов геркона, но и от ложных срабатываний, поскольку помехи от мотора помпы слегка зашумляют линию питания. Конечно, можно было бы установить LC фильтр питания, но, как показывает практика, все работает отлично и без него.
Диод 1N4007 защищает от выбросов ЭДС самоиндукции электромагнитного клапана.
Резистор 10 кОм, подключенный к GND и базе транзистора, блокирует транзистор, на случай, когда в спящем режиме вывод микроконтроллера находится в третьем состоянии и любая мощная электромагнитная помеха может его открыть.
Резистор 1 кОм защищает управляющий выход микроконтроллера.
Транзистор КТ972 работает в режиме ключа и управляет электромагнитным клапаном.
❯ Реализация
Прокладываю трубку в пустых пространствах за кухонной мебелью. Со стороны фильтра для воды подсоединяю тройник: одним концом к фильтру, вторым — к крану для питьевой воды и третьим — к трубке, которая ведет к чайнику. Для большей надежности устанавливаю кран для ручного перекрытия подачи воды.
К чайнику прикрепляю коробку с электроклапаном и подсоединяю к нему вход и выход воды.
Поплавковый клапан устанавливаю в заводское отверстие, предназначенное для перелива излишков воды, которое должно было бы обеспечивать его защиту от залития электроники.
Внутри корпуса чайника достаточно места. Я без труда размещаю в нем источник питания 24В для электромагнитного клапана. Там же находит свое место и микроконтроллер Arduino pro mini.
❯ Код для Ардуино
Я представляю два скетча. Первый является более надежным, так как в нем постоянно активен WDT, но, к сожалению, при этом Arduino потребляет 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)
}
❯ Заключение
На момент создания этого материала, моя семья и я уже более двух месяцев успешно использует этот самодельный девайс. За это время никаких проблем не возникло. Устройство работает безотказно. Даже когда мы уезжаем из дома на пару дней, я не беспокоюсь о перекрытии воды, полностью доверяя надежности системы. Теперь у нас больше нет споров и догадок о том, чья очередь наливать воду в чайник.
Сейчас я переделываю кофемашину так, чтобы проект был легко повторим. Я создал устройство без необходимости подключения к штатным платам аппарата. Это позволит подключить систему долива к кофемашине или чайнику без необходимости их вскрытия.
Благодарю вас за то, что дочитали материал до конца! Я надеюсь, что эта статья была вам интересна и вы сможете применить мою DIY самоделку в своих проектах. Если у вас есть какие-либо вопросы, не стесняйтесь задать их в комментариях. Я с удовольствием на них отвечу.