Умная автоматическая кормушка для питомца на базе Arduino – ШАГ 1

  • Tutorial

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


Хочу сразу отметить, что на первом шаге речь пойдет только об "автоматической" кормушке, а "умной" она станет на следующих этапах (если повезет, и все пойдет по плану).


Итак, начнем с концепции и целей:


  1. Сделать систему, которая освободит меня от обязанности кормить кота сухим кормом (шаг 1)
  2. Оснастить систему датчиком веса под миской и осуществлять кормежку в соответствии с показаниями весов: если миска пустая – подсыпать, иначе – ждать пока миска не станет пустой (шаг 2)
  3. Добавить в систему вай-фай модуль и видеокамеру для передачи фотографий с любимым котом, а также обеспечить контроль кормежки удаленно. Кроме того, собирать данные о том сколько кот съел и строить аналитику (шаг 3)

На первом шаге не требуется большое количество датчиков и манипуляторов, достаточно одного серводвигателя (например, Micro Servo Towerpro SG90 9 г), поэтому все управление происходит с платы ArdruinoUno, которая идеально подходит для задач такого рода.


Системы кормления так или иначе содержат некоторый контейнер, в котором лежит сухой корм, и вращающийся механизм, дозирующий его количество. Изучив опыт других "изобретателей", я бы выделила три основных механизма:


  1. Используется контейнер и сама система из под диспенсера мюслей (наверняка видели в отелях). Внизу в горлышке контейнера установлен стержень с лопостями. Ось стержня лежит вдоль плоскости горлышка. К нему прикреплен мотор, который прокручивает лопасть на одно деление один раз в заданный промежуток времени

    image
    Такой механизм выглядит довольно аккуратно, его легко собрать (собственно и собирать почти ничего не надо), но, увы, очень уж дорогой. Но тут на вкус и цвет.

  2. Другой вариант — наоборот, конструкция делается своими руками из акрила, а вращающийся дозатор из CD дисков. Довольно понятно о том, как сделать такую кормушку рассказано в этом видео https://www.youtube.com/watch?v=C_ezRywtVg4&t=20s. Если есть под рукой акрил, резак для него, ну и в принципе есть какой-то опыт в сборке такого рода вещей, то это дов
    ольно бюджетный вариант. Но не для таких как я — самостоятельно все спроектировать, вырезать и ровненько соединить требует другого уровня аккуратности.

  3. Для третьего варианта потребуется: обычная банка, которая будет играть роль контейнера, что-то, из чего можно вырезать небольшой сектор (подойдет, например, крышка какой-нибудь пластмассовой икеевской коробки), ну и пара магнитов для крепежа конструкции. Этот вариант мы и разберем подробней, он не требует инженерного образования и большого количества вложений, в общем, как раз то, что нужно.

Все материалы, которые мне были нужны для сборки кормушки на первом этапе:


  • Стеклянная банка
  • ArduinoUno
  • MicroServo (у меня разрешенный угол поворота 180, но это не принципиально)
  • кусок пластика
  • магниты
  • пины для соединении платы с серводигателем
  • Usb зарядка на 5V

Логика работы механизма проста: в крышке банки делается дырка типа сектор (центр крышки не вырезается), такой же сектор вырезается из пластмассы. Внутрь крышки прикрепляется серводвигатель, например, скотчем. На ось двигателя насаживается сначала крышка, а с внешней стороны вырезанный сектор. Так, при повороте оси серводвигателя вырезанный сектор смещается относительно дырки в крышке банки.

image


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


#include <Servo.h>

#define servoPin 9

Servo myservo;
void setup() //процедура setup

{
myservo.attach(servoPin); //привязываем привод к порту 9
}

void loop()

{

myservo.write(0); //ставим вал под 0 градусов
delay(300); //ждем 0.3 секунды
myservo.write(160); //ставим вал под 160 градусов
delay(86400000); //ждем 24 часа

}

Для крепежа банки к стене я использовала вот такие магниты, каждый на 4кг (мне кажется лучше использовать более мощные). К банке магниты крепятся просто клеем, к стене — винтами.

image


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

image


Поскольку у меня единственным внешним модулем является серводвигатель, то дополнительного питания не надо, достаточно запитать плату, ее можно подключить напрямую к сети через usb зарядку на 5V.


Вот как все выглядит в собранном состоянии:

image


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


  • установка датчиков движения, фотографирование кота в тот момент, когда он появляется в зоне видимости. Интеграция датчика веса и датчика движения позволяет определять, когда кот просто прогуливается мимо кормушки, а когда пришел покушать. Соответственно, можно прикрутить аналитику, когда котэ предпочитает кушать и как много.
  • можно добавить датчик веса в сам контейнер с кормом, чтобы кормушка определяла момент, когда становится пустой и присылала предупреждение хозяину, что, мол, пусто, надо пополнить. Потом, как вариант, прикрутить возможность автозаказа корма с любимого сайта с доставкой.
  • Можно добавить возможность кормушки работать на двух котов:
    • Либо это будут две разные кормушки, каждая из которых умеет отпугивать “чужого” кота
    • Либо это одна, но как-то модифицированная
  • Надо подумать как реализовать поилку и синтегрировать ее с кормушкой, добавить систему фильтрации.

Надеюсь кому-то это будет полезно.

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 40

  • UFO just landed and posted this here
      0
      Да, она безусловно важна. Нужно, чтобы у кота не было доступа к корму — да, здесь его нет. С точки зрения воды из тех решений, что мне приходилось видеть, везде постоянная циркуляция воды, предполагаю через фильтр.
      • UFO just landed and posted this here
          +2
          Неужели тут нужен микроконтроллер?
          image
            0
            Не решает задачи обновления воды.
              0
              Более того, не решает проблему с тем что вода за день там уже становится «не свежей» и появляется налёт, хотя курам да, и не такое спаивают
                0
                А как же кулеры в офисах? Там тоже за день вода становится «не свежей»?
                  0
                  Как только оттуда начнут лакать воду коты — да
            0
            Вас кто-то обманул: кот сухого корма не переест. Наоборот, сухой корм всегда должен быть доступен.
            Мои коты не дохнут (даже не жиреют), у знакомых тоже.
            Но сама идея дозатора интересная.
              0
              Меня лично обманул кот. Он симулировал поедание всего доступного корма. Может он потом его отгружал соседским котам :)
              А если серьезно, то мой друг-ветеринар объяснил все достаточно просто. Сухой корм — это неестественная (в смысле, что в природе они с ней не встречаются) еда для кота. Она очень вкусная, по объему маленькая, но по питательности т.д. превышает аналогичный объем, например, мышки. Потому на пачке и пишут дневную норму, исходя из потребностей кошачьего организма.
              Я вас не отговариваю кормить кота как вам нравится, поймите правильно.
            0
            Картинка из гугла не грузится — требует разрешение.

            Вообще, дело хорошее, но я надеюсь, вы не будете пускать систему в автономное плавание. На мой взгляд, процессы автоматизации кормления и поения котов лучше создавать в виде уведомительной, а не полностью автоматической системы. Сам планирую сделать как минимум напоминатор обновления воды, ибо котам её нужно часто обновлять, но руки не доходили, так что с нетерпением подожду шага 2.
              0
              Спасибо про картинки — поправила, должно быть видно.

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

                0
                Я предлагаю скрестить электронику с дрессировкой.
                Почему бы не сделать кнопку, нажимая на которую кот будет получать порцию корма? Думаю что во всем что касается еды, кот разберется быстро.
                Плюс у вас будет реальная статистика когда, и сколько кот ел.
                  +1
                  Кот же лопнет!
                    0
                    Ниже пишут что коты мало склонны к перееданию. Но ничто не мешает ограничить кол-во порций за определенный промежуток времени.
                      0
                      Не согласен. По моим наблюдением коты весьма склонны к перееданию. Пока есть еда -> надо есть
                        0
                        Наверно это все индивидуально. Мой кот не склонен к перееданию, насыпаю ему утром или вечером миску и можно быть уверенным, что на день хватит. Днем, пока никого нет дома, кот судя по всему, больше спит и мало ест, вечером и ночью же у него наступает период активности и тогда уже поедаются запасы и выпивается огромное количество воды ))
                        У коллеги же, наоборот, кот придерживается правила «Пока есть еда -> надо есть»
                          0
                          Сугубо персонально. Давеча оставляли у меня кошку: просто поставил открытый пакет с кормом с безлимитным интернетом доступом, и она когда хотела подходила и ела. За две недели не особо много и убавилось.

                          А вот в детстве была кошка, которая скорее бы лопнула, чем оставила еду.
                      +1
                      Можно, конечно, но я боюсь, что коты сразу разберутся что к чему и надо будет ограничивать количество нажатий в день. А если ограничивать количество нажатий, то осознание «нажал кнопку — получи корм», может и не прийти.

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

                      image
                  0
                  Эм… А что не так с котом? Я понимаю, подсыпать корм, чтобы он в миске не заветривался, но это решается перевёрнутой бутылкой/банкой с довольно широким горлом опущенной в миску. Ещё как-то согласен с сигналом об истощении запаса корма. Но зачем необходимо определять гуляет ли кот вокруг кормушки или пришёл поесть? Да для чего необходима информация о том, когда кот ел. Сколько же он съел можно определить по количеству оставшегося корма.
                  А вообще, на сколько я понял, коты мало склонны к перееданию. Исключением, вроде как, являются кастраты, да и то не все.
                    0
                    Для воды — попробовать датчик из двух электродов опущенных в воду. Как только уровень снижается, и ток перестает проходить — доливаем воду.
                    Обновление воды — добавить два насосика небольших. Один — для наполнения (опционально — через фильтр), второй для слива старой воды. Насосы запускать по таймеру, за наполнением следить по датчику уровня.
                      0
                      да, надо будет попробовать, с датчиком все понятно, с насосами надо поискать, не смотрела, что уже есть для подобного рода проектов.
                      0
                      delay(86400000); //ждем 24 часа
                      на самом деле около 24 секунд.
                      Надо бы написать 86400000L
                        0
                        А кот-хакер не обожрется, если вдруг что-то из внешних проводов посрывает?
                          +1
                          delay(86400000)…
                          вы бы поискали, есть масса библиотек, которые запускают код красивее, по таймеру.
                          TimeAlarm или Simpletimer.
                            +2
                            Ещё рекомендую прикрутить модуль часов реального времени (DS3231). Иначе, после сброса питания (оключили свет и т.п.), у вас цикл рестартанет и котэ получит еду не в положенное время. При серии сбоев, возможно, не получит несколько дней подряд.
                            Цена вопроса 100р.
                              0
                              да, это можно, но в принципе после подключения вай-фай модуля эта проблема должна уйти
                              0
                              А можно еще весы прикрутить, что бы массу кота отслеживать?
                                0

                                так то все можно) но надо решать задачи по порядку.
                                Про весы, которые в гуглодок отправляют свои значения тут https://geektimes.ru/post/258592/ хорошо рассказано

                                +1
                                У меня давным-давно была другая идея — автоматическая брызгалка водой чтобы кот не присаживался куда не надо (в углы, ну вы понимаете). Тут явно пригодится датчик кота и ардуинка, и в каждый угол по девайсу!
                                  0
                                  А я подумываю про радиоуправляемую брызгалку, чтоб он дверь не царапал и не гремел. У него такой способ шантажа — когда ему что-то надо, он идёт к входной двери и лупит по ней лапами что есть силы.
                                    0

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

                                      0
                                      Повесьте его на потолок — и не нужно будет никаких колёс.
                                        0

                                        потолок жалко

                                  0
                                  Это все хорошо, но самая большая проблема — это не еда, а кошачий лоток.
                                  Я свою кошку на сухом корме оставлял на 2 дня, но вот туалет засирается менее чем за сутки (а в грязный — она ходить не будет)
                                    0
                                    На этот случай есть автоматические туалеты, стоимость, правда, совсем не радует. Ну, а вообще, лично мое мнение — кошек лучше не оставлять одних больше чем на сутки. Лучше уж тогда отдать на время отъезда родственникам, друзьям, которые присмотрят, т.к. они хоть и самобытные животные, но все-таки им тоже нужен социум :)
                                    Я проверял на своем коте — уезжал часов на 20, так он меня встретил с подозрением вроде «где это ты был столько времени» и потом еще ходил обиженным (играл с небольшим желанием и не мурлыкал, сколько его не гладь) ))
                                      0
                                      Мой после каждого рабочего дня устраивает истерику, какие уж там 20 часов.
                                        0
                                        Мой тоже. Просто мое отсутствие в течение рабочего дня или чуть дольше он считает нормой и будет, как и всегда, требовать почесать, побегать или просто пойти за ним ))
                                        Если же его оставлять на бОльшее время, в моем случае, на 20 часов (максимум на сколько его оставлял одного), тогда, видимо, он уже начинает сильно скучать и в результате обижаться.

                                        Опять же, не знаю, может это зависит и от степени разбалованности вниманием, но кто-то оставляет своих животных и на несколько дней одних… Но я так не могу, по мне так лучше отдать в надежные руки, зная, что с котом все будет в порядке, всегда будет сыт, лоток будет чист и кот не обделен вниманием :)
                                    0
                                    Как следить за полнотой кормушки — в её потолок встроить УЗ-линейку. Популярный копеечный датчик именно для дуины есть везде, не говоря уже об алишке. Измеряем расстояние от потолка банки до корма, если более Х, шлём алярм. Датчик кота: pir-сенсор с подобранной чувствительностью. Вариант тотального диайвай: фанерка подпружинена над контактом. Наступил — логический 1 получен. Противокотовая фотомина! B-)
                                      0
                                      сейчас добрался-таки до автоматизации кормления кур.
                                      долго мудрил со шнековой подачей, но пока не заладилось
                                      в итоге решил с помощью коробки из-под компактов, как и в этой статье
                                      но не понял, вы как-то отрабатываете ситуацию, если отключили электричество?

                                      Only users with full accounts can post comments. Log in, please.