Arduino управляемая кормушка для котов своими руками. Автоматическая кормушка для аквариума


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

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

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

  • Сделать систему, которая освободит меня от обязанности кормить кота сухим кормом (шаг 1)

  • Оснастить систему датчиком веса под миской и осуществлять кормежку в соответствии с показаниями весов: если миска пустая – подсыпать, иначе – ждать пока миска не станет пустой (шаг 2)

  • Добавить в систему вай-фай модуль и видеокамеру для передачи фотографий с любимым котом, а также обеспечить контроль кормежки удаленно. Кроме того, собирать данные о том сколько кот съел и строить аналитику (шаг 3)
  • На первом шаге не требуется большое количество датчиков и манипуляторов, достаточно одного серводвигателя (например, Micro Servo Towerpro SG90 9 г), поэтому все управление происходит с платы ArdruinoUno, которая идеально подходит для задач такого рода.

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

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

  • Другой вариант - наоборот, конструкция делается своими руками из акрила, а вращающийся дозатор из CD дисков. Довольно понятно о том, как сделать такую кормушку рассказано в этом видео . Если есть под рукой акрил, резак для него, ну и в принципе есть какой-то опыт в сборке такого рода вещей, то это дов

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


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


    • Стеклянная банка

    • ArduinoUno

    • MicroServo (у меня разрешенный угол поворота 180, но это не принципиально)

    • кусок пластика

    • магниты

    • пины для соединении платы с серводигателем

    • Usb зарядка на 5V

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

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

    #include #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кг (мне кажется лучше использовать более мощные). К банке магниты крепятся просто клеем, к стене - винтами.

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

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

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

    http://habrahabr.ru/https:/docs.google.com/drawings/d/sZPzsxkEnz9YKjsg006HPBA/image?w=320&h=311&rev=7&ac=1

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


    • установка датчиков движения, фотографирование кота в тот момент, когда он появляется в зоне видимости. Интеграция датчика веса и датчика движения позволяет определять, когда кот просто прогуливается мимо кормушки, а когда пришел покушать. Соответственно, можно прикрутить аналитику, когда котэ предпочитает кушать и как много.

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

    • Можно добавить возможность кормушки работать на двух котов:

      • Либо это будут две разные кормушки, каждая из которых умеет отпугивать “чужого” кота

      • Либо это одна, но как-то модифицированная


    • Надо подумать как реализовать поилку и синтегрировать ее с кормушкой, добавить систему фильтрации.

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

    Программирование микроконтроллеров

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


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


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

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

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


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




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

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

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


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


    #include #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кг (мне кажется лучше использовать более мощные). К банке магниты крепятся просто клеем, к стене - винтами.


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


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


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


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

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

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

    8 августа 2017 в 09:43

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

    • Программирование микроконтроллеров
    • Tutorial

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


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


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

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

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


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

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

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

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


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


    #include #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кг (мне кажется лучше использовать более мощные). К банке магниты крепятся просто клеем, к стене - винтами.


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


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


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


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

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

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

    • Tutorial

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


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


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

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

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


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

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

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

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


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


    #include #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кг (мне кажется лучше использовать более мощные). К банке магниты крепятся просто клеем, к стене - винтами.


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


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


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


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

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

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

    Как часто вы забывали покормить своих рыбок?

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

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

    Ну, что ж, поехали...

    Шаг 1: Список используемых компонентов

    * Arduino UNO или совместимый микрокомпьютер.
    * Адаптер питания напряжением 9В или 12В.
    * Шаговый двигатель с напряжением питания 5В из старого дисковода гибких дисков.
    * Перегородка от ящика с инструментами, нужна именно гладкая перегородка, которую я установлю сверху подвижной крышки.
    * Рычажный выключатель от стационарного телефона для индикации правильности закрытия крышки.
    * Корпус от жесткого диска в качестве контейнера для корма.
    * Сломанная пластиковая линейка или любая гладкая пластина.
    * Штатив CCTV-камеры.
    * Один резистор номиналом 10 кОм.
    * Механический AC Таймер.

    Шаг 2: Сборка

    Конструкция кормушки, которая сделана из старых материалов, показана на рисунке номер 1. Я вырезал отверстие с одной стороны корпуса от жесткого диска. Может для вас будет легче использовать бутылку от минеральной воды, однако для бутылки нужна опора, которая будет удерживать ее в перевернутом положении.

    Я использовал вот такой штатив CCTV-камеры. Далее мне было нужно всего лишь просверлить отверстие в корпусе. Корпус имеет идеальную высоту, что позволяет установить под него шаговый двигатель (рисунок номер 2 и 3).

    Далее для перемещения крышки я использовал шаговый двигатель напряжением 5В с червячной направляющей вместе с ее подвижным механизмом из дисковода гибких дисков (компонент, используемый для перемещения линз дисковода; рисунки номер 3 и 4). Я поместил небольшую гладкую пластиковую перегородку от ящика с инструментами сверху держателя линз, ниже отверстия корпуса, где предполагается выход гранул корма (рисунок номер 2). Вы также можете использовать поломанную линейку. Оставьте пол или один миллиметр от нижней части корпуса, иначе гранулы корма не смогут пройти через закрытую крышку.

    Шаг 3: Доработка корпуса

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

    После нескольких дней использования я обнаружил дефект на корпусе. Корм не выходил, хотя в контейнере было еще много корма.

    Затем я понял, что гранулы не проходят, как было задумано. Вот почему мне была нужна поломанная линейка или любая гладкая пластина, которая подойдет в контейнер и образует "V"-образную форму. Теперь все гранулы корма будут проходить через отверстие.

    Шаг 4: Электронные компоненты

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

    Подключите четыре провода шагового двигателя к цифровым выводам 8, 9, 10, 11.

    Другую ножку подключите к земле через резистор 10 кОм и также не забудьте подсоединить к цифровому выводу 2.

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

    Я прикрепил изолентой свою плату RedBoard (arduino UNO) сзади корпуса, а таймер с вилкой на его боковой стороне. Таймер с вилкой используется в качестве баланса для корпуса, чтобы он правильно стоял.

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

    Теперь вам не нужно брать аквариум с собой в отпуск. Только не забудьте перед отъездом насыпать корм в контейнер.