Рубрики
Схемы на Arduino

Автоматическая кормушка для животных на Arduino

В этой статье мы рассмотрим создание автоматической кормушки для животных на основе платы Arduino, которая автоматически будет выдавать еду вашим домашним питомцам по расписанию. В составе этого устройства присутствует микросхема часов реального времени DS3231 RTC (Real Time Clock), с помощью которой устанавливаются дата и время для нашей кормушки. Таким образом, с помощью микросхемы часов реального времени и платы Arduino можно составить расписание, по которому вашим домашним животным будет автоматически выдаваться пища.

Для отображения времени и других статусных сообщений устройства используется ЖК дисплей 16х2. Для привода в действие механизма кормушки используется сервомотор. Клавиатура (клавишная панель) 4х4 используется для выставления времени, в которое нужно кормить животных. Количество выдаваемой кормушкой пищи можно регулировать с помощью угла поворота сервомотора, поэтому ее можно использовать для кормления различных домашних животных – собаки, кошки, птицы и т.д.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Клавиатура (клавишная панель) 4х4 (купить на AliExpress).
  3. Модуль часов реального времени DS3231 (RTC DS3231 module) (купить на AliExpress).
  4. ЖК дисплей 16х2 (купить на AliExpress).
  5. Кнопка.
  6. Сервомотор (купить на AliExpress).
  7. Резисторы (купить на AliExpress).
  8. Соединительные провода.
  9. Макетная плата

Работа схемы

Схема автоматической кормушки для животных на основе платы Arduino представлена на следующем рисунке.

Для получения информации о времени и дате в схеме используется микросхема часов реального времени (RTC Module). Клавиатура 4х4 вместе с ЖК дисплеем используются для установки времени кормления. Также ЖК дисплей используется для отображения времени и даты.

Внешний вид собранного устройства на макетной плате у нас получился следующий:

3D модель механических частей кормушки

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

А если у вас есть 3D принтер, то скачать дизайн механических частей нашей кормушки вы можете по этой ссылке. Материал, использованный для изготовления кормушки, называется PLA. Все 4 части кормушки показаны на следующем рисунке:

Соберите все 4 части в единое целое и подсоедините к ним сервомотор как показано на следующем рисунке.

Также вы можете скачать STL файлы для печати этих частей кормушки на 3D принтере.

Модуль часов реального времени (RTC Module) DS3231

Модуль часов реального времени DS3231 используется в большом числе различных радиоэлектронных проектов для хранения информации о времени и дате. Модуль имеет свою собственную небольшую батарейку (на фото ниже) поэтому может хранить информацию о времени и дате даже когда питание основного устройства отключено. Достаточно один раз в модуле установить дату и время и они будут храниться в нем до тер пока не исчерпается заряд батарейки.

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

Примечание: перед началом использования модуля DS3231 вам необходимо установить в нем правильные дату и время. Более подробно о работе с данным модулем вы можете прочитать в статье про часы реального времени на основе Arduino.

Объяснение кода программы для Arduino

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

Для работы с сервомотором и ЖК дисплеем в Arduino IDE есть встроенные библиотеки, но для взаимодействия с модулем DS3231 и клавиатурой 4х4 необходимо скачать дополнительные библиотеки. Их можно скачать по следующим ссылкам:

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

В следующем фрагменте мы зададим карту клавиш нашей клавиатуры и сообщим плате Arduino к каким ее контактам подключены контакты клавиатуры.

Далее создадим объект клавиатуры чтобы потом дальше работать с ней в программе. Более подробно о работе с подобной клавиатурой можно прочитать в статье про подключение клавиатуры 4х4 к плате Arduino.

Инициализируем контакты A4 и A5 платы Arduino – к ним подключены контакты SCL и SDA модуля DS3231. Также инициализируем контакты для подключения ЖК дисплея и сервомотора.

В следующем фрагменте кода мы объявим переменные с t1 по t6, массив r[6], а также логическую переменную feed.

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

Далее в функции loop() мы должны непрерывно проверять состояние контактов и в зависимости от этого выполнять необходимые действия. При нажатии кнопки необходимо начать процедуру установки времени. Затем сравнивается реальное время со временем кормления, введенным пользователем. Если они совпадают, то дается команда сервомотору повернуть ось на 100 градусов чтобы открыть кормушку и затем через 0,4 секунды снова ее закрыть.

В функции void setFeedingTime() производится установка времени кормления, чтобы после этого сохранить введенное время необходимо нажать ‘D’. Когда реальное время будет соответствовать сохраненному дается команда сервомотору на открытие кормушки.

Тестирование работы кормушки

После загрузки кода программы в плату Arduino Uno текущее время и дата начнут показываться на экране ЖК дисплея 16х2. При нажатии кнопки система попросит ввести вас время кормления – вы можете сделать это с помощью клавиатуры 4х4. Введенное время отобразится на дисплее, после этого вы должны нажать клавишу ‘D’ на клавиатуре чтобы сохранить его. Когда текущее и сохранённое время будут совпадать, дается команда сервомотору на поворот с его начальной позиции 55⁰ в позицию 100⁰ и после небольшой задержки возврат в начальную позицию – поскольку ось сервомотора соединена с задвижкой контейнера, то вследствие этого происходит открытие кормушки и последующее ее закрытие. Более подробно все эти процессы показаны на видео, приведенном в конце статьи.

Исходный код программы

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

Видео, демонстрирующее работу автоматической кормушки для животных

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *