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

У меня есть мейнкун, который весит более 10 килограмм. Его зовут Дюк. Кот любит греться на солнце, смотреть на птиц и… будить меня в 5 утра для того, чтобы я дал ему позавтракать.

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

Итак, ответ кроется в том, что это очень скучно и просто. Вместо этого я захотел сделать автоматическую кормушку для кошек своими руками. В качестве студента, учащегося на инженера, я завершил немало поектов и был готов принять вызов, но получится ли у меня собрать электронную автокормушку, которая будет стоит меньше $100?

Шаг 1: Части для сборки кормилки

Главной идеей проекта будет уложиться в $100 и посмотреть, что можно использовать, чтобы сделать кормушку для кота простой.

Вот список наших частей:

  • Дозатор / раздаточное устройство для зерна (я использовал Home Basics — $17.75 на Ибэй)
  • Устройство непрерывного вращения (я использовал SPRING SM-S4303R JR — $8.90 на Ибэй)
  • Доска для проектов (фанерка) 30*30*0,5 см
  • Ардуино Уно R3, 16 Hz — ($3.50 на Ибэй)
  • Правосторонние уголки 10 * 1 см (стоили в районе $1.97)
  • Упаковка гаек, винтов, болтов длиной ~ 1.3 см (стоили в районе $1.18)
  • Прямоугольный «локоть» из ПВХ ~ 5 см (стоил около $.98)

Шаг 2: Начнём собирать

Изначально я думал собрать всё на коленке, но чем больше я думал о проекте, тем сложнее он становился. И тогда я подумал: «Есть ли уже что-либо, предназначенное для дозирования, что стоило бы дешево и что легко можно было бы модифицировать?» И вуаля — в продаже есть готовые дозаторы зерна, их можно легко модифицировать и подключать к приводу.

Шаг 3: Сборка сервопривода / кривошипа




Первым, что я сделал, была модификация кривошипа, который шел в дозаторе зерна. Я обрезал все выступы, так, чтобы остался только центральный цилиндр. После небольшой шлифовки мне удалось закрепить на него винтами малый диск вращения сервопривода. После этого всё, что оставалось сделать — прикрепить диск к сервоприводу.

Шаг 4: Передняя панель



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

Шаг 5: Дозировочная воронка




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

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

Шаг 6: Закрепляем сервопривод

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

Шаг 7: Программируем Ардуино




Теперь наступает самая весёлая часть. Нам нужно запрограммировать Ардуино так, чтобы он выдавал еду в определенное время суток. Я постарался сделать код максимально простым. Основываясь на возрасте, весе и породе, я посмотрел, как много и как часто Дюку нужно есть в течение дня, чтобы быть сытым. Автоматическая кормилка была настроена на 0.65 чашки каждые 8 часов. Время и количество еды можно легко модифицировать в зависимости от потребности вашего домашнего животного. Распиновка останется прежней.

Шаг 8: Соединяем и тестируем





Теперь, когда код готов, мы можем соединить Ардуино и сервопривод. Соединение выглядит следующим образом:

  • Чёрный провод сервопривода идёт на GND Ардуино
  • Красный провод сервопривода идёт на 5V Ардуино
  • Белый провод сервопривода идёт на пин 13 Ардуино

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

Финальным улучшением было добавление ножек к кормилке, чтобы она возвышалась над миской. В качестве ножек были использованы 5 сантиметровые деревянные дощечки. К их нижней части я приклеил пену — она защитила пол от царапин. Всё что осталось сделать – приклеить сами ножки к кормилке.

Шаг 9: Готовая кормилка

На фотографии вы видите готовый результат. Проект обошелся в $39.18 (примерно в 2300 рублей). И я надеюсь, что он вдохновит вас собрать свою автоматизированную кормилку для домашних животных.

  • 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.


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


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

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

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

Этот проект сделан на плате WIFI ESP8266 и заточен на управление и мониторинг через приложение BLYNK на вашем смартфоне.

Так же в проект можно добавить IP-камеру (или использовать старый смартфон с камерой в виде сервера) для мониторинга в реальном времени через IP Webcam Pro через виджет в приложении BLYNK .

Для подачи корма используется шаговый двигатель NEMA17 c шагом в 1.8 градуса - 200 шагов на полный оборот. Двигатель вращает шнек в сантехническом переходнике, в который из бункера попадает корм.

Порционность дозировки можно настраивать, а так же визуально отображать заполнение в приложении BLYNK . И еще присутсвует куча настроек, в самом приложении о которых я расскажу ближе к концу поста и продемонстрирую в видео на моем канале в Ютубе Youtube - DenisGeek

Приложения в плеймаркете для смартфона:

Электронная часть и компоненты:

Схематика данного устройства весьма простая. Состоит из платы ЕСП8266 - которая служит мозгами, а так же средством связи с вашим вай-фай роутером,передавая данные через спец. API ключ на сервера приложения BLYNK . Наши "мозги" управляют драйвером шагового двигателя, а он в свое время задает движение шаговику NEMA17 . Плата понижайка LM2596 служит понижающим модулем для питания платы ESP8266 .
Так же есть выносная кнопка на корпус, которая добавлена через подтягивающий резистор на 10Ком на землю - реализует функцию для запуска "кормления" в ручном режиме.


Комплектующие для проекта заказывал на Aliexpress:

Плата ЕСП 8266 NODEmcu LUA http://ali.pub/2k460i \ http://ali.pub/2k4622

Блок питания 12 в 2 А http://ali.pub/2k464e

Драйвер шагового двигателя L289N http://ali.pub/2k4674

Шаговый двигатель Nema17 http://ali.pub/2k46a8

Понижающий преобразователь LM2596 http://ali.pub/2k46jk

Если не охота распаивать плату ЕСП, можно соединить все макетными проводами http://ali.pub/2k46un

Вспомогательный инструмент:

Паяльник http://ali.pub/2k2wz8

Припой http://ali.pub/2k471g

Кусачки http://ali.pub/2k4730


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



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



После чего закинул все в пластиковый бокс купленный в строительном магазине.

Размеры каркаса под кормушку:


Каркас выглядит следующим образом. Все очень просто и универсально, собрано с бруса,фанеры и саморезов.



Скачать файлы под печать можно здесь: https://goo.gl/EwqCC1

Механизм подачи был напечатан на 3д принтере - шнек, склеен из 2х частей клеем Дисмокол.



Печать прошла успешно.



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


За основу для бака была использована бутылка от кваса "тарас" , а так же соединитель для пластиковых труб.



Дальше общий вид собранного устройства:



После сборки, достаточно подать питание на наш блок, а так же спустя секунд 20 , нажать на кнопку для проверки и запуска "покормки" и проверки дозировки.

А дальше переходим к приложению BLYNK . Скачиваем его на смартфон с плеймаркета или с сайта https://www.blynk.cc/

После скачивания приложения логинимс / регистрируемся и получаем 2000 балов энергии для создания своего приложения.

Дальше сканируем QR код и автоматически подтягиваем шаблон уже моего настроенного виджета:


После чего в приложении нужно будет указать ваш токен авторизации (который вам пришел на почту после создания нового проекта - так же его указываем в коде программы)



Так же если у вас аккаунт зарегистрирован был давно, то энергии у вас может быть больше,либо же можно докупить в приложении - 1000 за 1 доллар.

У меня получился вот такой виджет, но стоит он 3200-3600 (в зависимости от визуальных модулей)


И последний вариант с 6ю таймерами - очень удобно.



Так же добавляю таблицу привязок виртуальных пинов к виджетам BLYNK



Допустим для добавления еще одного таймера в приложении блинк, нужно добавить пункт Timer , и в настройках выставить VIRTUAL OUTPUT V6 или V7 .




Прошивку с комментариями можно скачать здесь: https://goo.gl/xuaZm9

Так же как добавить плату ESP8266 nodemcu в среду ARDUINO IDE и прошивать её подробно расписано здесь



После всех манипуляций загружаем скетч, первым делом подключаем питание к нашей системе, ждем 20 секунд и для теста нажимаем кнопку провернуть шнек.Если есть реакция - значит собрано верно. Далее запускаем приложение BLYNK .Первым делом смотрим на статус проект - если все верно то ваша кормушка должна появится в сети. После чего нужно установить часовой пояс, кликнув на иконку часов, а так же можно сразу настроить нужные таймеры. Для синхронизации настроек - нажать кнопку "Таймер " в режим включено. Если после перезагрузки (пропадания питания) таймеры не срабатывают, нужно зайти в приложение и нажат кнопку "Таймер" выключить-включить.



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.


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


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

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

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