Интернет вещей: кормушка для кота
Если у вас есть кот или кошка, вам, наверное, знакома ситуация, когда вас будят рано утром и настоятельно просят покормить. Или же вы не всегда можете вовремя прийти домой, и любимцу приходится оставаться голодным. У нас это случалось, и не раз, поэтому нам пришла в голову мысль сконструировать автоматическую кормушку для домашних животных, которой можно управлять через интернет.
Шаг 1: Проект и чертеж
Мне нужно было спроектировать такое устройство, которое можно было бы распечатать на 3D-принтере, и которое, разумеется, могло бы кормить моего кота. Устройство также должно управляться через интернет, так чтобы и моя мама смогла покормить голодное животное, где бы она ни находилась. Поэтому возникла идея задействовать для этого проекта WIFI Arduino с сервоприводом.
Для проектирования был выбран Fusion 360; вы же можете работать, например, в Auto CAD, 123D Sketch или OpenSCAD
Впрочем, если вы небольшой специалист в CAD, вы можете просто скачать чертежи по следующей ссылке:
http://www.thingiverse.com/thing:1855459
Обратите, пожалуйста, внимание, что картинки даны в последовательности, соответствующей описанным ниже шагам.
Основание 1
Начертите внешний и внутренний круговые контуры, а также держатель лотка – сервопривода в соответствии с требуемыми в вашем случае размерами и габаритами сервомотора. Вы можете выбрать любой диаметр.
Основание 2
По отдельности экструдируйте круговую часть и держатель лотка, т.е. создайте трехмерные объекты.
Лоток 1
Лоток должен держать корм внутри устройства.
Здесь нам, как показано на рисунке, понадобится два чертежа – для верхней и нижней части. Размеры должны соответствовать размерам основания.
ХИТРОСТЬ. Создавайте чертеж на базе чертежа основания.
Лоток 2
Теперь экструдируйте верхнюю часть, через которую будет доступ в нижнюю. Сделайте края гладкими, воспользовавшись жидким пластиком.
Крышка 1
Начертите крышку в соответствии с предыдущими размерами. Также нам понадобится нарисовать на крышке две линии, чтобы разделить ее на четверти, три из которых будут закрывать лотки. Теперь добавим две окружности под звездочку сервопривода.
Крышка 2
Экструдируйте по отдельности внешний и внутренний контуры, соберите крышку. Одна четвертушка должна быть открыта.
Крышка 3
Сделайте гладкими круговой контур, соединяющий поверхность крышки (самая большая, верхняя поверхность) и поверхность, на которой будет находиться звездочка привода (самая маленькая, на самом верху). Добейтесь достаточно гладкой поверхности, воспользуйтесь жидким пластиком.
Шаг 2: Инструменты и материалы
Детали 3D-печати
Все детали нарисованы в Fusion 360. Вы можете скачать их с Thingiverse.
http://www.thingiverse.com/thing:1855459
Электроника
Adafruit Feather HUZZAH и ESP8266 WiFi будут управлять устройством, а Continuous Rotation Micro Servo - FS90R будет приводить механизм в движение. Нам также понадобится кабель micro USB, лучше плоский.
Инструменты
Вот список инструментов, которые вам понадобятся:
Крестовая отвертка
Пассатижи
Кусачки
Щипцы
Клеевой термопистолет
Компьютер
Файл
Паяльник
Инструмент для зачистки проводов
Шаг 3: Сборка
Подача электропитания
Прорежьте в пластике отверстие, чтобы пропустить USB. Сгладьте углы.
Крышка
С помощью клеевого пистолета аккуратно закрепите звездочку на крышке, убедившись, что она встала точно по центру.
Шаг 4: Электроника
Режем провода
Установите предварительно мотор и плату, чтобы определить нужную длину кабелей; обрежьте провода.
Пайка
Припаяйте на плату три провода. Перед пайкой провода обязательно залудите.
КРАСНЫЙ = USB
КОРИЧНЕВЫЙ = GND (земля)
ОРАНЖЕВЫЙ = 5
Шаг 5: Дальнейшая сборка
Монтаж электроники
Установите сервопривод и печатную плату на основание.
ХИТРОСТЬ. Для крепления платы воспользуйтесь двусторонним скотчем.
Крышка
Закройте сервомеханизм крышкой.
Шаг 6: Программирование
Скачайте Arduino IDE 1.6.8 или более новый
Скачайте Arduino IDE (1.6.8 или старше) с Arduino.cc
Установите ESP8266 Board Package
Введите
http://arduino.esp8266.com/stable/package_esp8266com_index.json
в поле для ссылки в Additional Board Manager в настройках Arduino v1.6.4+.
Arduino > Preferences
Установите ESP8266 Package
Перейдите в Tools > Board > Board manager и добавьте ESP8266 package. Перезагрузите компьютер.
Выбор платы
Перейдите в Tools > Board и выберите Adafruit HUZZAH ESP8266.
Скорость процессора
Установите частоту процессора в 80 МГц: Tools > CPU Frequency.
Скорость выгрузки
Установите Upload Speed в 115 200 бод.
Выбор порта
Выберите порт под ваш FTDI или USB-Serial кабель.
Код
Зайдите на GitHub и скачайте код.
https://github.com/ntrobot2/IOT-Pet-Feeder-ino/blob/master/v1.ino
Введите SSID и пароль вашего Wi-Fi, но сначала не отправляйте их на плату.
Настройка приложения 1
Как вы, возможно, догадались, для связи с Arduino мы воспользуемся Blynk. В таком случае нам не придется писать приложение с нуля.
Скачать Blynk на телефон: http://www.blynk.cc/
Настройка приложения 2
Создайте проект внутри приложения Blynk.
Настройка приложения 3
Отправьте себе на почту AUTH TOKEN и скопируйте его в код:
char auth[] = "AUTH TOKEN";
Теперь закачайте его на плату.
Настройка приложения 4
Нажмите, чтобы создать иконку виджета.
Настройка приложения 5
Нажмите на кнопку L.
Настройка приложения 6
Настройте параметры кнопки.
OUTPUT = V1 (виртуальный выход)
Mode = PUSH
Поименуйте метку, дайте имя кнопке.
Тестирование
В приложении Blynk нажмите на кнопку запуска и убедитесь, что код загрузился на плату.
Не забудьте заполнить:
char auth[] = "AUTH TOKEN";
char ssid[] = "SSID";
char pass[] = "PASSWORD";
Усовершенствуем (по желанию)
Если вы хотите выйти на следующий уровень, вы можете сделать так, чтобы каждый раз, когда кот поел, вы получали письмо (как на последней картинке). Для этого просто добавьте соответствующий виджет.