1 - Это моя первая поделка на Ардуино. До конца 24-го года я вообще не знал, про их существование.
2 - Многое можно сделать по другому, это касается и самой конструкции кормушки и программы.
3 - Пост будет периодически дополняться/редактироваться (все сразу не вспомнить), но в комментариях, так как я выбрал лимит на количество знаков в сообщении.
Дано: кормушка для птиц на даче, в которую зимой надо подсыпать корм.
Проблема: Когда на даче никого нет, кормушка пустует — птицы страдают. Оставлять много запасов в кормушке (применять бункерную кормушку) нельзя, так как птицы бесконтрольно все растащат и, по мнению орнитологов, это неправильно, так как они разучатся искать корм самостоятельно. То есть корм надо подсыпать дозировано раз в сутки, а в остальное время птицы добывают корм сами, не теряя навыки.
Сначала я хотел сделать кормушку на дискретных элементах (мне это привычней), но схема получалась слишком сложная. Поэтому я обратил внимание на Ардуино (ну как обратил, мне на Озоне он стал подсовываться, когда я стал искать всякие реле времени и т.п.).
Посмотрев что это такое и сколько к нему идет плат расширения, датчиков и модулей я охренел от этих возможностей и решил, что управлять кормушкой будет этот микроконтроллер.
Первой же моей ошибкой было то, что я не прогуглил уже готовые решения - не правильно ввел запрос, как я позже понял, надо было гуглить кормушку для котов, а не для птиц. Так что я заново изобрел велосипед, а мог бы взять уже готовый проект, но зато немного погрузился в тему.
Итак, что было приобретено для кормушки:
1. Arduino Nano CH340G Type-C
2. Терминальная плата к ней
3. Модуль часов реального времени DS 3231
4. Сервомотор SG90 0 - 180
5. LCD1602 I2C
6. Матричная клавиатура 4x4
7. Пассивный звуковой модуль зуммер KY-006
8. Щиток для автоматов (в качестве корпуса)
9. Мастерок (в качестве дозатора)
10. Разные сантех переходники на 50 и 110 мм
11.Герметичный разъем для подключения дозатора к блоку управления
Корм, а это будут семечки я решил насыпать в девятнадцатилитровую емкость для воды от кулера.
Выбор серво был обусловлен тем, что в сервоприводе организована обратная связь, то есть - подали команду на закрытие и дальше он сам будет пытаться закрыть дозатор до конца, даже если ему будет что-то мешать.
Сначала я сделал дозатор - из мастерка вырезал лепесток, просверлил в нем два отверстия
И закрепил на нем серво.
В пластиковом сантех-переходнике прорезал щель и с помощью хомута из подвеса закрепил дозатор. Колено взял изогнутое, подумал, что так легче будет открываться дозатору, да и вода, если попадет на него, будет стекать вниз.
Важный момент! Полностью перекрывать дозатором трубу нельзя, надо обязательно оставить зазор, чтобы при закрытии дозатор в зазор смог сместить всякий мусор (палочки, сухую траву).
Чтобы переходник (50 мм) с дозатором закрепить на бутылке надо у бутылки срезать ободок на конце горлышка.
Снизу (а так сверху) бутыли я вырезал большое отверстие для трубы 110 мм, верх которой используется для засыпки семечек. Трубу в отверстие вклеил каучуковым клеем, он отлично подошел для склейки таких пластиков. Я пробовал и термоклей и другие клеи, но этот держится неплохо, только воняет и сохнет очень долго. Из трубы я достал уплотнительную резинку, чтобы заглушка-крышка (я купил заглушку с вентиляцией) легко вынималась из трубы.
Испытания показали хорошую работы дозатора, и, даже несмотря на применения самого слабого сервопривода, дозатор при закрытии иногда разрезал семечки пополам. А всякий мусор сдвигался в зазор, откуда потом благополучно вываливался. А в идеале можно было дозатор и заточить. Видео работы дозатора.
(что-то я забыл подключить просмотр видео к блогам, так что пока для просмотра надо скачать видео, просмотр прикручу позже)
Сначала схему собрал на макетной плате:
После отладки разместил в корпусе от щитка. По краям экрана залил герметик, клавиатура самоклеющаяся герметичная. На синюю кнопку слева не обращайте внимание, в последней версии программы она не используется.
Внутри на термоклей приклеил все элементы платы, блок питания 5В. Максимальный ток кормушки это включение серво, ток в пике достигает одного ампера, поэтому блок питания взял с запасом - 2А.
Важное замечание - из модуля часов реального времени DS 3231 надо выпаять smd диод, который находится около батарейки (он там один), через этот диод протекает ток подзарядки, но вместо аккумулятора китайцы поставляют этот модель с литиевое батареей, поэтому батарейку раздувает от протекающего тока и она может взорваться. А если блок DS 3231 с акб или ионистором, то диод, конечно нужен.
И еще такой момент, так как кормушка у меня будет висеть на улице и крыши над ней не будет, то надо закрыть сервопривод от осадков и птиц, чтобы его не расклевали.
Я взял сантехпереход с 50 на 100, вырезал в нем сегмент и приклеил на суперклей над серво. Единственно, полностью закрыть весь дозатор не получилось и поэтому один раз кормушка не сработала.
Общий вид кормушки:
В итоге сам механизм, да и кормушка в целом показала неплохую надежность, правда я раз сто частично переписывал программу, чтобы она нормально работала.
К написанию программы привлек ChatGPT, без него, как без рук, кстати, чтобы им пользоваться можно в браузере вбить в настройках DNS такой адрес - https://dns.comss.one/dns-query и можно пользоваться этим чат-ботом без vpn.
Кормушка спокойно работает под дождем, снегом, работала в мороз в минус 10 (больше пока не было), я смотрел через видеонаблюдение каждый день, все четко. Но один раз, я как раз был на месте, был очень сильный ветер, лил дождь и потом резко похолодало. Кормушка покрылась ледяной коркой, щель дозатора залило водой и он не смог сдвинуться с места. Но повторное (ручное) включение прошло нормально.
Тут ясно, что надо полностью закрыть дозатор, так что это проблема недостаточной защиты конструкции.
Или можно программно перед основным срабатываем пару раз дергать серво, а затем открывать. В общем, думаю, это не проблема.
Кормушка не боится отключения электричества, так как время и продолжительность срабатывания записывается в eeprom. Часы также не сбиваются, так как питаются от батарейки, потребляют от нее микроамперы.
Видео, как срабатывает кормушка в сборе:
Теперь про программу. Как я писал выше, она срабатывает раз в сутки. После включения кормушки надо нажать кнопку B, осуществляется переход к настройкам времени срабатывания и дозы порции.
Ввод данных осуществляется кнопкой D, на экране будут подсказки. Ошибочно введенное время можно сбросить кнопкой C. Программа не дает ввести, например 34 часа и 87 минут, стоит проверка на корректное время.
Порцию (включение дозатора) регулируется с шагом 0.1 секунды, максимальное значение 9.9 секунд (это все легко изменить в программе). Я провел кучу тестов, этот диапазон времени оптимален для семечек.
Чтобы кормушку выключить, можно ввести время кормления как 0.0, тогда срабатывания не будет.
Чтобы покормить вручную (особенно полезно при настройке) надо нажать кнопку A.
Точное время (и дата) устанавливается при компиляции программы, поэтому, как таковой настройки времени с помощью клавиатуры нет, так как модуль DS 3231 считает время с точностью +- 2 секунды за год, такой точности для кормушки (и не только) хватит за глаза. Но установку времени вручную, конечно, надо сделать, особенно, если потом кто закажет такую кормушку. Так что этот момент в процессе.
Модуль DS 3231 еще интересен тем, что в нем стоит датчик температуры (хотя и в самой Ардуине он тоже стоит, но неточный), так вот, как опять таки советуют орнитологи, в морозы птиц надо кормить чаще, поэтому этот датчик температуры можно задействовать в алгоритме кормушки, например:
Если температура опуститься ниже -10-15 градусов, то сделать или два срабатывания в сутки или увеличивать количество корма в порции, причем можно сделать зависимость объема порции от температуры поградусно. А если температура будет в плюсе, то можно автоматом отключать кормушку на весну-лето.
Также с помощью датчика температуры можно отслеживать резкий переход температуры от плюса к минусу и периодически в этот момент дергать серво, чтобы его не прихватило ледяным дождем.
Но пока это нереализовано, я не знаю, какой алгоритм выбрать (если есть мысли, напишите в комментарии), в этом огромный плюс микропроцессоров, что можно позже скорректировать работы изделия без его переделки, что мне потребовалось при разработке кормушки для котов.
Сама программа. Я постарался максимально прокомментировать код. (Из-за большого объема сообщения программа в самой записи не размещается, поэтому я размещу ее в комментарии, как и схему.)
А при чем тут коты? Спросите вы. Я как-то раз показал кормушку приятелю (не по даче, так что кормушка поедет в другое место) и он попросил ему сделать такую же, но для его пяти котов, которых он прикормил летом, а зимой их кормить каждый день возможности не имеет. Я согласился сделать ее бесплатно (не могу же брать деньги за неизвестно что), но сказал, что кормушку ему не отдам насовсем, а дам лишь попользоваться. Правда может потом кто и закажет такую же у меня за деньги:) Но сначала надо все хорошо отладить.
Задача была посложнее, чем кормушка для птиц, так как надо было сделать питание кормушки от батареек или АКБ, то есть проработать режим энергосбережения, переделать дозатор, чтобы полностью убрать его в трубу, чтобы его не разгрызли коты, изменить алгоритм срабатывания серво, а сам блок разместить в меньшем корпусе.
Как итог, получилась вот такая кормушка, я скрестил банку с табуреткой:)
Она уже на этих выходных начнет работу, также в комментариях я выложу и программу и все остальное, как дойдут руки.