Этот проект сделан на плате WIFI ESP8266 и заточен на управление и мониторинг через приложение BLYNK на вашем смартфоне.
Порционность дозировки можно настраивать, а так же визуально отображать заполнение в приложении BLYNK . И еще присутсвует куча настроек, в самом приложении о которых я расскажу ближе к концу поста и продемонстрирую в видео на моем канале в Ютубе Youtube - DenisGeek
Приложения в плеймаркете для смартфона:
Схематика данного устройства весьма простая. Состоит из платы ЕСП8266 - которая служит мозгами, а так же средством связи с вашим вай-фай роутером,передавая данные через спец. API ключ на сервера приложения BLYNK . Наши "мозги" управляют драйвером шагового двигателя, а он в свое время задает движение шаговику NEMA17 . Плата понижайка LM2596 служит понижающим модулем для питания платы ESP8266 .
Так же есть выносная кнопка на корпус, которая добавлена через подтягивающий резистор на 10Ком на землю - реализует функцию для запуска "кормления" в ручном режиме.
После всех манипуляций загружаем скетч, первым делом подключаем питание к нашей системе, ждем 20 секунд и для теста нажимаем кнопку провернуть шнек.Если есть реакция - значит собрано верно. Далее запускаем приложение BLYNK .Первым делом смотрим на статус проект - если все верно то ваша кормушка должна появится в сети. После чего нужно установить часовой пояс, кликнув на иконку часов, а так же можно сразу настроить нужные таймеры. Для синхронизации настроек - нажать кнопку "Таймер " в режим включено. Если после перезагрузки (пропадания питания) таймеры не срабатывают, нужно зайти в приложение и нажат кнопку "Таймер" выключить-включить.
В данном цикле статей я буду рассказывать о моем опыте сборки «умной» автоматической системы для кормления домашнего питомца, в моем случае – кота.
Хочу сразу отметить, что на первом шаге речь пойдет только об "автоматической" кормушке, а "умной" она станет на следующих этапах (если повезет, и все пойдет по плану).
Итак, начнем с концепции и целей:
На первом шаге не требуется большое количество датчиков и манипуляторов, достаточно одного серводвигателя (например, Micro Servo Towerpro SG90 9 г), поэтому все управление происходит с платы ArdruinoUno, которая идеально подходит для задач такого рода.
Системы кормления так или иначе содержат некоторый контейнер, в котором лежит сухой корм, и вращающийся механизм, дозирующий его количество. Изучив опыт других "изобретателей", я бы выделила три основных механизма:
Все материалы, которые мне были нужны для сборки кормушки на первом этапе:
Логика работы механизма проста: в крышке банки делается дырка типа сектор (центр крышки не вырезается), такой же сектор вырезается из пластмассы. Внутрь крышки прикрепляется серводвигатель, например, скотчем. На ось двигателя насаживается сначала крышка, а с внешней стороны вырезанный сектор. Так, при повороте оси серводвигателя вырезанный сектор смещается относительно дырки в крышке банки.
Также надо не забыть сделать дырочку под вывод провода серводвигателя наружу для подключения к плате. На шаге 1 кормежка происходит по таймеру, кот у меня не обжора, поэтому открытие сектора происходит раз в день на короткое время, ниже код для Arduino:
Для крепежа банки к стене я использовала вот такие магниты, каждый на 4кг (мне кажется лучше использовать более мощные). К банке магниты крепятся просто клеем, к стене - винтами.
Плата прикреплена к банке при помощи такой липучки, ее удобно снимать и крепить обратно. Липучка такая продается в любом хозяйственном, используется для крепежа картин.
Поскольку у меня единственным внешним модулем является серводвигатель, то дополнительного питания не надо, достаточно запитать плату, ее можно подключить напрямую к сети через usb зарядку на 5V.
Вот как все выглядит в собранном состоянии:
Ниже я набросала несколько идей дальнейшего развития кормушки, их много и пока непонятно, что именно будет делаться дальше, эта часть для обсуждения.
Надеюсь кому-то это будет полезно.
28 июля 2015 в 14:28Лето - сезон отпусков. Побоялся что три недели на море приведут к голодной смерти обитателей аквариума, а поскольку тёща поехала со мной, то доверить дело кормёжки рыб оказалось некому.
Немного подумав над проблемой решил с помощью Arduino UNO, которая оказалась под рукой, сделать автоматическую кормушку. Благо небольшой опыт автоматизации уже был. А поскольку впрок был закуплен Ethernet Shield, то возникла мысль о жутком извращении: управлении кормёжкой через компьютерную сеть. Дело в том, что дома у меня стоит постоянно включенный компьютер исполняющий обязанности домашнего сервера. Он подключен к бесперебойнику и потому высоки шансы что даже при кратковременных переключениях питающей сети, компьютер встретит нас жужжанием своих вентиляторов, а за одно и снизойдёт до управления этой самой кормушкой.
Дело в том, что в примерах из среды разработки Arduino IDE для Ethernet Shield был найден вэб-сервер, некоторая переделка которого позволила выдавать состояние всех аналоговых контактов в формате JSON.
Небольшие эксперименты со строкой запроса в этом вэб-сервере позволили сделать распознавание URL"ов типа:
Два последних я приспособил для включения и выключения света в аквариуме, а первый - для непосредственно кормления.
Включение-выключение света делается посредством релейного модуля. Эту самую релюху я прямо встроил в заранее купленную розетку. Из всего этого впоследствии сделал небольшой управляемый удлинитель.
Самое сложное было сделать саму установку по кормлению. Стало очевидно, что на время отпуска рыба садится на диету из которой исключается мороженый мотыль, а кушает только гранулы.
Перерыл рунет в поисках приемлемой конструкции для собственноручного изготовления. Наиболее приемлемой счёл вращающийся барабан с кормом внутри. При этом барабан имеет щель, через которую высыпаются гранулы проходя нижнюю точку. Самое главное при этом, чтобы этот самый барабан случайно не остановился в положении «щелью вниз», тогда у рыб может случиться «праздник живота», а через некоторое время ощущение, что они живут в сартире вместо аквариума. Короче, возникли проблемы:
На этом две из трёх проблемы ушли, и я начал всерьёз задумываться о решении задачи точной остановки. Механический выключатель, который бы сигнализировал о прохождении оборота мне показался не очень хорошим решением. Смутила дополнительная механическая нагрузка на редуктор, возникающая только в одном положении барабана. Потому я решил использовать систему: светодиод + чёрная метка на барабане + фоторезистор. Взял фоторезистор, собрал с ним делитель напряжения, а с помощью одного из аналоговых входов Arduino UNO стал мерить напряжение для определения наличия или отсутствия метки. Самой меткой выступил небольшой фрагмент изоленты, а подсветка была организована посредством светодиода запитанного через резистор (для ограничения тока). Затем была скучная наработка статистики, при разных степенях освещённости барабана (свет в комнате). Определил какие значения снимаются с аналогового входа, и задал пороговые значения для вариантов «есть метка» - «нет метки». Так была решена последняя проблема.
Затем попробовал кормушку вместе с гранулами и прорезью, но, дабы не обкормить заранее рыб все тесты проводил над листом бумаги, где я не только определял размер щели (заклеивая её фрагментами скотча) но и выяснил, что часть гранул просыпается мимо предназначенного для этого расстояния между двух реек. пришлось в нагрузку раскурочить пластиковую упаковку для какого-то кабеля и сделать из них нечто напоминающее щётки в электродвигателе, дабы при подъёме щели корм «затыкался» этими трущимися о барабан прозрачными пластинами.
Как вы уже поняли, цель этого устройства - вовсе не сытая рыбья жизнь, а некоторая проба себя. И я решил пойти дальше. В плане разработки софта. В железе у меня оказался только исполнитель трёх команд, а вот на домашнем сервере - я решил вести некоторую статистику. Поскольку я вэб-программист, взял по привычке базу данных MySQL завёл в ней две таблички. В одну складывал - URL"ы и даты запросов к устройству, в другую писал ответы, в результате я получил статистику успешно ли покормлены были рыбы и во сколько включился и выключился свет в аквариуме. (Дело в том, что ответ устройство выдаёт только после выполнения команды. И не выдаёт если что-то пошло не так.) Вспомнив свои некоторые навыки в Java взял класс URL и с его помощью сделал все эти три http-запроса к ардуинке. JSON-ответ парсил, библиотекой скачанной с json.org. Отпуск приблизился стремительно потому на оставшиеся извращения времени не хватило и саму управляющую java-софтину я решил запускать с помощью старого доброго cron"а.
Вот в таком виде и застал и нас и рыб отъезд на море. Спустя три недели мы вернулись загорелые и увидели всех наших весело плавающих по аквариуму рыбёшек, причём изрядно отъевшихся.
Как часто вы забывали покормить своих рыбок?
Ну, что касается меня, то это происходит довольно редко. Я не могу просто уехать из города на пару дней и затем думать на кого оставить свой аквариум.
После того, как я приобрел Sparkfun RedBoard, было принято решение создать автоматическое устройство для подачи корма в аквариум.
Ну, что ж, поехали...
Шаг 1: Список используемых компонентов
* Arduino UNO или совместимый микрокомпьютер.
* Адаптер питания напряжением 9В или 12В.
* Шаговый двигатель с напряжением питания 5В из старого дисковода гибких дисков.
* Перегородка от ящика с инструментами, нужна именно гладкая перегородка, которую я установлю сверху подвижной крышки.
* Рычажный выключатель от стационарного телефона для индикации правильности закрытия крышки.
* Корпус от жесткого диска в качестве контейнера для корма.
* Сломанная пластиковая линейка или любая гладкая пластина.
* Штатив CCTV-камеры.
* Один резистор номиналом 10 кОм.
* Механический AC Таймер.
Конструкция кормушки, которая сделана из старых материалов, показана на рисунке номер 1. Я вырезал отверстие с одной стороны корпуса от жесткого диска. Может для вас будет легче использовать бутылку от минеральной воды, однако для бутылки нужна опора, которая будет удерживать ее в перевернутом положении.
Я использовал вот такой штатив CCTV-камеры. Далее мне было нужно всего лишь просверлить отверстие в корпусе. Корпус имеет идеальную высоту, что позволяет установить под него шаговый двигатель (рисунок номер 2 и 3).
Далее для перемещения крышки я использовал шаговый двигатель напряжением 5В с червячной направляющей вместе с ее подвижным механизмом из дисковода гибких дисков (компонент, используемый для перемещения линз дисковода; рисунки номер 3 и 4). Я поместил небольшую гладкую пластиковую перегородку от ящика с инструментами сверху держателя линз, ниже отверстия корпуса, где предполагается выход гранул корма (рисунок номер 2). Вы также можете использовать поломанную линейку. Оставьте пол или один миллиметр от нижней части корпуса, иначе гранулы корма не смогут пройти через закрытую крышку.
Контроль прохождения потока гранул корма через отверстие, большие гранулы не задерживаются в левой и правой части корпуса.
После нескольких дней использования я обнаружил дефект на корпусе. Корм не выходил, хотя в контейнере было еще много корма.
Затем я понял, что гранулы не проходят, как было задумано. Вот почему мне была нужна поломанная линейка или любая гладкая пластина, которая подойдет в контейнер и образует "V"-образную форму. Теперь все гранулы корма будут проходить через отверстие.
Установите шаговый двигатель, выключатель, резистор 10 кОм, как показано на рисунке выше. Использование макетной платы облегчит тестирование и понимание работы схемы. Макетную плату можно будет использовать для другого проекта (смотрите последний рисунок выше, без макетной платы).
Подключите четыре провода шагового двигателя к цифровым выводам 8, 9, 10, 11.
Другую ножку подключите к земле через резистор 10 кОм и также не забудьте подсоединить к цифровому выводу 2.
Поместите выключатель спереди подвижной крышки, и согните металлическую часть, сделав стопор (оранжевый и красный кабели на третьем рисунке). Когда выключатель перемещается вперед и нажимает на стопор, микроконтроллер arduino регистрирует значение HIGH на выводе выключателя и останавливает двигатель.
Я прикрепил изолентой свою плату RedBoard (arduino UNO) сзади корпуса, а таймер с вилкой на его боковой стороне. Таймер с вилкой используется в качестве баланса для корпуса, чтобы он правильно стоял.
Теперь вам не нужно брать аквариум с собой в отпуск. Только не забудьте перед отъездом насыпать корм в контейнер.
В данном цикле статей я буду рассказывать о моем опыте сборки «умной» автоматической системы для кормления домашнего питомца, в моем случае – кота.
Хочу сразу отметить, что на первом шаге речь пойдет только об "автоматической" кормушке, а "умной" она станет на следующих этапах (если повезет, и все пойдет по плану).
Итак, начнем с концепции и целей:
На первом шаге не требуется большое количество датчиков и манипуляторов, достаточно одного серводвигателя (например, Micro Servo Towerpro SG90 9 г), поэтому все управление происходит с платы ArdruinoUno, которая идеально подходит для задач такого рода.
Системы кормления так или иначе содержат некоторый контейнер, в котором лежит сухой корм, и вращающийся механизм, дозирующий его количество. Изучив опыт других "изобретателей", я бы выделила три основных механизма:
Все материалы, которые мне были нужны для сборки кормушки на первом этапе:
Логика работы механизма проста: в крышке банки делается дырка типа сектор (центр крышки не вырезается), такой же сектор вырезается из пластмассы. Внутрь крышки прикрепляется серводвигатель, например, скотчем. На ось двигателя насаживается сначала крышка, а с внешней стороны вырезанный сектор. Так, при повороте оси серводвигателя вырезанный сектор смещается относительно дырки в крышке банки.
Также надо не забыть сделать дырочку под вывод провода серводвигателя наружу для подключения к плате. На шаге 1 кормежка происходит по таймеру, кот у меня не обжора, поэтому открытие сектора происходит раз в день на короткое время, ниже код для Arduino:
Для крепежа банки к стене я использовала вот такие магниты, каждый на 4кг (мне кажется лучше использовать более мощные). К банке магниты крепятся просто клеем, к стене - винтами.
Плата прикреплена к банке при помощи такой липучки, ее удобно снимать и крепить обратно. Липучка такая продается в любом хозяйственном, используется для крепежа картин.
Поскольку у меня единственным внешним модулем является серводвигатель, то дополнительного питания не надо, достаточно запитать плату, ее можно подключить напрямую к сети через usb зарядку на 5V.
Вот как все выглядит в собранном состоянии:
Ниже я набросала несколько идей дальнейшего развития кормушки, их много и пока непонятно, что именно будет делаться дальше, эта часть для обсуждения.
Надеюсь кому-то это будет полезно.