Розумна автоматична годівниця для вихованця на базі Arduino - КРОК 1

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

Хочу відразу зазначити, що на першому етапі мова піде тільки про "автоматичної" годівниці, а "розумної" вона стане на наступних етапах (якщо пощастить, і все піде за планом).


Отже, почнемо з концепції і цілей:


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

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


Системи годування так чи інакше містять деякий контейнер, в якому лежить сухий корм, і обертається механізм, дозуючий його кількість. Вивчивши досвід інших "винахідників", я б виділила три основні механізми:


  1. Використовується контейнер і сама система з під диспенсера мюслів (напевно бачили в готелях). Внизу в шийці контейнера встановлений стрижень з лопостями. Ось стрижня лежить уздовж площини горлечка. До нього прикріплений мотор, який прокручує лопать на одну поділку один раз в заданий проміжок часу
    В даному циклі статей я буду розповідати про мій досвід збірки «розумної» автоматичної системи для годування домашнього вихованця, в моєму випадку - кота
    Такий механізм виглядає досить акуратно, його легко зібрати (власне і збирати майже нічого не треба), але, на жаль, дуже вже дорогий. Але тут на смак і колір.
  2. Інший варіант - навпаки, конструкція робиться своїми руками з акрилу, а обертовий дозатор з CD дисків. Досить зрозуміло про те, як зробити таку годівницю розказано в цьому відео https://www.youtube.com/watch?v=C_ezRywtVg4&t=20s . Якщо є під рукою акрил, різак для нього, ну і в принципі є якийсь досвід в збірці такого роду речей, то це дов
    Ольне бюджетний варіант. Але не для таких як я - самостійно все спроектувати, вирізати і рівненько з'єднати вимагає іншого рівня акуратності.
  3. Для третього варіанту потрібно: звичайна банку, яка буде грати роль контейнера, щось, з чого можна вирізати невеликий сектор (підійде, наприклад, кришка який-небудь пластмасовою ікеевскій коробки), ну і пара магнітів для кріплення конструкції. Цей варіант ми і розберемо детальніше, він не вимагає інженерної освіти і великої кількості вкладень, в загальному, як раз те, що потрібно.

Всі матеріали, які мені були потрібні для збірки годівниці на першому етапі:


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

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


Також треба не забути зробити дірочку під висновок дроти серводвігателя назовні для підключення до плати. На кроці 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кг (мені здається краще використовувати більш потужні). До банку магніти кріпляться просто клеєм, до стіни - гвинтами.
Для кріплення банки до стіни я використовувала ось такі магніти, кожен на 4кг (мені здається краще використовувати більш потужні)


Плата прикріплена до банку за допомогою такої липучки, її зручно знімати і кріпити назад. Липучка така продається в будь-якому господарському, використовується для кріплення картин.
Плата прикріплена до банку за допомогою такої липучки, її зручно знімати і кріпити назад


Оскільки у мене єдиним зовнішнім модулем є серводвигун, то додаткового харчування не треба, достатньо живити плату, її можна підключити безпосередньо до мережі через usb зарядку на 5V.


Ось як все виглядає в зібраному стані:
Ось як все виглядає в зібраному стані:


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


  • установка датчиків руху, фотографування кота в той момент, коли він з'являється в зоні видимості. Інтеграція датчика ваги і датчика руху дозволяє визначати, коли кіт просто прогулюється мимо годівниці, а коли прийшов поїсти. Відповідно, можна прикрутити аналітику, коли коте воліє їсти і як багато.
  • можна додати датчик ваги в сам контейнер з кормом, щоб годівниця визначала момент, коли стає порожній і надсилала попередження господареві, що, мовляв, порожньо, треба поповнити. Потім, як варіант, прикрутити можливість Автозамовлення корми з улюбленого сайту з доставкою.
  • Можна додати можливість годівниці працювати на двох котів:
    • Або це будуть дві різні годівниці, кожна з яких вміє відлякувати "чужого" кота
    • Або це одна, але якось модифікована
  • Треба подумати як реалізувати поїлку і сінтегріровать її з годівницею, додати систему фільтрації.

Сподіваюся комусь це буде корисно.

Com/watch?