Авто-смыв унитаза для кота
Почему надо смывать унитаз?
Придумать устройство способное смывать унитаз после кота хорошо с эстетической точки зрения, но есть и практическая необходимость. Раньше, когда я уезжал из квартиры на сутки и более, я ставил рядом с унитазом дополнительный лоток с наполнителем, так как мой кот — чистоплотное животное и грязный унитаз снова использовать не будет. Автоматизация смыва унитаза дала возможность полностью избавиться от лотка и наполнителя. Теперь, если коту насыпать побольше корма, он может жить в квартире один в течении длительного срока без какой-либо помощи со стороны человека (это очень удобно, но все же я считаю, что больше чем на 2 суток кошек в одиночестве оставлять не следует, так как несмотря на показную независимость, они животные достаточно социальные и через пару дней одиночества впадают в депрессию).
Техническое задание
Что нужно для устройств авто-смыва? В общих словах, автоматика как-то должна обнаружить присутствие кота на унитазе и, после этого, как-то дернуть клапан слива воды унитаза. Первый пункт значительно сложнее осуществить — существующие датчики не могут различать размер и форму движущихся предметов — как тогда можно отличить кота о человека? Единственный возможный способ — по поведению — кот обычно долго готовится, делает свои дела, потом еще долго скребет топчак лапой и, в результате, проводит на унитазе несколько минут и, главное, никогда сам не дергает ручку смыва унитаза.
Поэтому, логика работы системы предполагалась следующая — она отслеживает нахождение кота на унитазе, ждет около 2х минут, отмечает уход кота и дальше ждет еще 3 минуты, отслеживая движение ручки унитаза (сделать это не сложно, например используя геркон и магнит, наклеенный на клапан смыва). Если за это время спуск воды никто не дернул — автоматика с помощью сервопривода поднимает сливной клапан на 5 секунд инициируюя спуск воды.
Такой алгоритм работы отличает кота от человека и достаточно хорошо защищен от случайных срабатываний — авто-смыв не сработает, если человек кратковременно зашел в туалет (например за шваброй).
Общий дизайн и механическая часть
У меня в туалете стоит совершенно обычный фаянсовый унитаз с ручкой на крышке. Старую советскую механику я давно заменил, установив немецкий кран и клапан смыва.
Унитаз без автоматизации
Как видно, свободного места в бачке относительно много, поэтому я решил разместить всю систему автоматизации внутри сливного бачка, главным образом потому, чтобы оно не привлекало внимания. Я не хочу объяснять каждому гостю, зачем нужно это устройство и что оно делает.
Для раскройки механических деталей и крепежа я использовал самодельный домашний CNC станок. Детали я изготовил из мягких листовых материалов, которые у меня тогда были под рукой — раму вырезал из полиэтиленовой кухонной разделочной доски, а клапан унитаза дополнил горизонтальной платформой, вырезанной из листового углепластика. Эта платформа передает клапану усилие тяги сервопривода и предотвращает вращение клапана вокруг своей оси. Подъем клапана сервоприводом и ручкой независимы друг от друга — унитазом можно пользоваться, как и раньше, дергая за ручку смыва, а сервопривод поднимает клапан, также не поднимая ручку.
Унитаз с размещенной автоматизацией смыва.
Я не буду здесь детально описывать детали механической конструкции. Унитазы бывают разные, у некоторых есть ручка, у других кнопка, у каждого домашнего мастера есть свои материалы и возможности изготовить механические компоненты, поэтому вряд-ли имеет смысл копировать геометрию моего устройства. Главное, чего надо здесь добиваться — механика должна быть надежной и долговечной, иначе вся эта затея не имеет никакого смысла.
Электроника
Как обнаружить кота на унитазе? Я экспериментировал с разными датчиками движения. Доплеровский СВЧ радар (этот прибор открывает раздвижные двери в торговых центрах) показал себя сложным в настройке и нестабильным, поэтому я использовал инфракрасный пироэлектрический сенсор (часто используется для автоматического включения света в подъездах). Хотя этот прибор достаточно сложен и на самом деле является тепловизором, совмещенным с анализатором изображения, но такие пироэлектрические датчики давно уже вошли в быт, все более-менее однотипные и, обычно, стоят несколько долларов штука. Я использовал миниатюрный Grove mini motion sensor на основе S16-L221D. Он не имеет элементов настройки, но их можно добавить, следуя инструкции. Для регулировки чувствительности я припаял к нему подстроечный резистор и, так же немного повысил его быстродействие, замкнув резистор на плате. Этот датчик без потери функциональности можно заменить на более крупный и дешевый аналог ZRD09, он уже имеет подстроечные потенциометры для настройки чувствительности и быстродействия. Инфракрасный датчик я расположил снаружи бачка, разместив его сбоку унитаза на расстоянии около 30 см. Сам датчик я поместил в маленькую коробочку, а провода датчика закрыл пластмассовым коробом.
Размещение инфракрасного датчика
Для подъема клапана унитаза я использовал судомоделный сервопривод JMT 20, которой, по утверждению производителя, имеет некоторую степень влагозащищенности. Этот сервопривод относительно мощный и комплектуется металлической «рукой» с дополнительным отверстиями.
«Мозгом» устройства является популярный контроллер Arduino Micro. Его я разместил в пластмассовой коробочке. Внешние устройства — датчик, геркон, блок питания, сервопривод, светодиоды подключены к коробочке через 3-х контактные JST разъемы — каждый элемент может быть отсоединен от общей системы.
В качестве источника питания я использовал импульсный 12 В 2А блок питания, воткнутый в розетку на кухне — напряжения 12 вольт передается в туалет по 3-х метровому проводу. 12 вольт, прямо внутри коробочки, конвертируются стабилизатором КРЕН5 в 5 вольт. Это напряжение питает Arduino, инфракрасный датчик и сервопривод. Такое решение не случайно, провод питания имеет относительно большое сопротивление и, если не принять меры, наводки от мощного сервопривода будут мешать работе контроллера. Кроме того, КРЕН5 нагревает коробочку и тем самым борется с влажностью внутри нее.
Электрическая схема устройства
Программирование
Скетч для Arduino можно скачать здесь. Программа реализует следующую диаграмму состояний:
Следует заметить, что система отслеживает оба фронта импульса с инфракрасного датчика. Передний фронт переводит систему в некоторое промежуточное состояние (PREWAIT, PREDETECT), а фактический переход в состояние (WAIT, DETECT) происходит в момент заднего фронта импульса.
Состояние FLUSH_GERCON добавлено из-за того, что поднятие клапана сервоприводом вызывает срабатывание геркона. Вызывающий срабатывание геркона магнит прикреплен не к рукоятке слива, а непосредственно к платформе, расположенной на клапане. Такое решение добавляет в систему обратную связь — с помощью геркона система определяет положение клапана — если по какой-то причине сервопривод будет стоять в неправильном положении и клапан будет открыт — геркон сработает, сервопривод опустит руку, и клапан перейдет в закрытое положение.
При использовании унитаза человеком, после поднятия клапана рукой система переходит в состояние IDLE и перестает чувствовать сигналы с инфракрасного датчика в течении 30 сек. Это дает человеку возможность уйти из туалета, не вызывая повторного срабатывание системы.
Сервопривод, кроме состояний ON и OFF имеет еще одно «нейтральное» состояние, когда управляющий импульс на него не подается. В этом состоянии сервопривод просто сохраняет свое состояние. Сервопривод проводит в «нейтральном» состояние практически все время, это позволяет избежать его износа от мелких колебаний, которые могут иметь место во время подачи на него управляющего импульса.
Настройка механики
Механическая настройка системы достаточно проста — необходимо выполнить следующие действия:
Правильно закрепить «руку» сервопривода и протестировать что ее перемещения хватает, чтобы открыть и закрыть клапан унитаза.(Для этого очень хорошо подходит «тестер сервоприводов»)
Правильно подобрать длину тяги, соединяющей платформу клапана и сервопривод.
Найти правильное взаимное положение магнита и геркона.
Таблица состояний системы
Cветодиоды
Чтобы контролиовать работу программы я добавил в электрическую схему 2 светодиода — красный и зеленый. Чтобы не привлекать к ним большого внимания, я разместил их сбоку сливного бочка, но мне они сообщают информацию о текущем состоянии системы.
Фаза | Время | Красный LED | Зеленый LED |
INIT | 2 сек | Включен | |
READY | - | ||
PREWAIT | ~ 3 сек | ||
WAIT | 30 сек | Мигает | |
DETECT | 120 cек | Включен | |
PREARMED | ~ 3 сек | Включен кратковременно | Включен кратковременно |
ARMED | 180 сек | Включен | |
FLUSH | < 1 сек | ||
FLUSH_GERCON | 5 сек | Включен | Включен |
AFTERFLUSH | 2 сек | ||
GERCON | - | Мигает | Мигает |
IDLE | 15 сек | Мигает |
Результат
Какие можно сделать выводы? Устройство отработало уже более 4-х месяцев. Механическая поломка была одна — согнутая из скрепки тяга клапана через 2 месяца разогнулась. Я просто ее заменил на сделанную из скрепки большего размера. Электроника и программное обеспечение, практически, не дали ни одного сбоя. Коту тоже система очень понравилась, и он теперь пользуется унитазом сам в любое время суток, не требуя моего внимания. В общем — рекомендую к изготовлению.