Оглавление:
- Запасы
- Шаг 1. Обзор дизайна
- Шаг 2: Обзор кода
- Шаг 3: прикрепление Nema 17 к опорной плите и шнеку
- Шаг 4: Подключение L298N и RTC
- Шаг 5. Кодирование с комментариями
- Шаг 6: Проблемы и как их исправить
Видео: Автоматическая кормушка для собак: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Это мой проект автоматической кормушки для домашних животных. Меня зовут Паркер, я учусь в 11 классе, и я сделал этот проект 11 ноября 2020 года в качестве CCA (завершающее задание курса). В этом проекте я покажу вам, как сделать автоматическую кормушку для домашних животных с Arduino UNO. Вы можете выбрать время, которое можете изменить. Корм будет подаваться через шнек и кормить ваших питомцев!
Запасы
Электроника:
- Arduino UNO
- L298N - 10 $ - Управляет Nema 17
- NEMA 17 - 10 $ - Поворачивает шнек для подачи корма
- RTC (DS1307) - 10 $ - дает время
- Блок питания 12 В - 5 $ - Все питает
- Мини-макетная плата - для дополнительного места для проводки
- Провода перемычки - все соединяет
- Женский и мужской провода - соединяет все
Аппаратное обеспечение:
- Нить для 3D-печати - для 3D-принтера
- 2 болта M4 - удерживайте опорную плиту на месте
- 4 болта Nema 17 - удерживайте nema вниз
- ПВХ Т 48мм внутренний размер 66мм внешний размер - 3 $
Инструменты:
- 3д принтер
- Дрель
- Паяльный пистолет
Шаг 1. Обзор дизайна
Конструкция кормушки для домашних животных очень проста. Бункер устанавливается на верхнюю часть ПВХ T. Затем на заднюю часть ПВХ T устанавливается крышка (как показано на рисунке) с прикрепленным к ней Nema 17. Затем Nema 17 будет вставлен в заднюю часть шнека, который можно увидеть выше, и болт войдет в боковую часть, чтобы удерживать его на месте, чтобы он не деформировал отверстие, которое можно увидеть выше!
Тогда шнек просто вытолкнет корм из трубы в миску!
Шаг 2: Обзор кода
RTC & Stepper имеет библиотеку под названием RTClib.h и Stepper.h, которая добавляет упрощенный код для RTC & Stepper. Операторы if очень просты: если часы и минуты равны указанному времени, он будет вращать nema, который будет раздавать еду. Остальной код очень легко понять даже для человека с дневным опытом.
Шаг 3: прикрепление Nema 17 к опорной плите и шнеку
Сначала вам нужно взять базовую пластину и прикрепить ее к Nema 17, используя предварительно сделанные отверстия на опорной пластине. После этого вы хотите прикрепить шнек к Nema через заднее отверстие на нем. Затем соедините опорную пластину со шнеком и прикрепленным Nema, затем вверните болты M2 с каждой стороны.
Шаг 4: Подключение L298N и RTC
Этот шаг расскажет вам, как подключить L298N и RTC.
Мы начнем с контактов 8, 9, 10, 11 на L298N.
- Контакт 8 (белый) к IN1
- Контакт 9 (фиолетовый) к IN2
- Контакт 10 (розовый) к IN3
- КОНТАКТ 11 (желтый) к IN4
Далее мы подключим Nema 17 к L298N.
- OUT1 к 1 по NEMA
- OUT2 - 2 по NEMA
- OUT3 до 3 по NEMA
- OUT4 до 4 по NEMA
Подключение 12 В и Arduino к L298N (не удалось найти 12 В, поэтому представьте батарею 9 В в качестве источника питания)
- Вольт до 12В
- Земля на GND
- От 5 В до 5 В на макетной плате
Подключение RTC к Arduino
- GND к GND
- От 5 В до 5 В на макетной плате
- SDA в A5
- SCL в A4
Перемычки
Все перемычки должны быть на L298N
Шаг 5. Кодирование с комментариями
Код более понятен на изображениях выше
// Имя: Паркер Фредерик
// Название проекта: Auto Pet Feeder // Дата: вторник, 10 ноября 2020 г. // Учитель: М. Бонистил // Описание: Кормите своих питомцев в указанное время!
// Библиотеки для вещей, которые я использовал #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Говорит, какой RTC я использую
// Здесь вы устанавливаете время для еды
// Часы int mornFeedTime = 12; int nightFeedTime = 7; // Минуты int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Секунды int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {«Воскресенье», «Понедельник», «Вторник», «Среда», «Четверг», «Пятница», «Суббота»}; // Превращает обычные дни в дни недели
const int feed = 200; // Это ваши шаги, поэтому сколько раз вы хотите, чтобы он вращался
Stepper myStepper (подача, 8, 9, 10, 11); // Ваши контакты для Nema 17 и большинства других степперов
void setup () {Serial.begin (9600);
в то время как (! серийный); // Если RTC не работает, он отобразит его на последовательном экране if (! Rtc.begin ()) {Serial.println ("Не удалось найти RTC"); в то время как (1); }
// Это сообщит вам, работают ли часы реального времени, и отобразит их на последовательном экране if (! Rtc.isrunning ()) {Serial.println ("RTC is running!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Это займет у вашего компьютера время и будет использовать его в RTC
// Если вы хотите установить время вместо компьютерного, вы можете сделать это здесь //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Год / Месяц / День / Час / Минута / Секунда} myStepper.setSpeed (200); // Скорость, с которой он должен разворачиваться}
недействительный цикл () {DateTime now = rtc.now ();
// Это сделает эту переменную текущим часом и т. Д. Int hr = now.hour (); int mi = now.minute (); int se = now.second ();
// Закодируем так, чтобы в установленное время он выдавал еду и вращался 5 раз, это если для утреннего кормления
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Завтрак!"); myStepper.step (-фид); задержка (700);
myStepper.step (-фид); задержка (700);
myStepper.step (-фид); задержка (700);
myStepper.step (-фид); задержка (700);
myStepper.step (-фид); задержка (700);
myStepper.step (-фид); задержка (700);
myStepper.step (-фид); задержка (700);
}
// Закодируем так, чтобы в установленное время он выдавал еду и вращался 5 раз, это для ночного кормления
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Ужин!"); myStepper.step (-фид); задержка (700);
myStepper.step (-фид); задержка (700);
myStepper.step (-фид); задержка (700);
myStepper.step (-фид); задержка (700);
myStepper.step (-фид); задержка (700);
myStepper.step (-фид); задержка (700);
myStepper.step (-фид); задержка (700); }
// Это отобразит ГОД, МЕСЯЦ, ДЕНЬ, ЧАС, МИНУТУ, СЕКУНДУ в серийном номере
Serial.print (now.year (), DEC); Серийный.принт ('/'); Serial.print (now.month (), DEC); Серийный.принт ('/'); Serial.print (now.day (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serial.print (now.hour (), DEC); Serial.print (':'); Serial.print (now.minute (), DEC); Serial.print (':'); Serial.print (now.second (), DEC); Serial.println (); }
Веб-сайт, который я использовал для RTC, я удалил большинство вещей, кроме операторов if, которые говорят, включен ли RTC или нет. В основном я использовал этот сайт, чтобы научиться программировать RTC
Веб-сайт, который я использовал для шагового двигателя, помог мне понять, как запрограммировать шаговый двигатель для работы, я действительно ничего не скрывал от него. Это просто помогло мне понять, как это кодировать
Шаг 6: Проблемы и как их исправить
У меня было несколько проблем
- Мне нужен был источник питания на 12 В, у меня была только батарея на 9 В, я нашел один, и проблема была быстро решена.
- При подключении L298N к NEMA 17 у меня были неправильные провода на A и A - из-за чего он немного дрожал. Я просто поправил, поменяв провода на другую сторону.
- Пытался сделать код более простым, потому что в операторе if myStepper.step (-feed); снова и снова выглядел беспорядочно. Поэтому мне пришлось вернуть его обратно.
- У меня была опорная пластина неправильного размера, как показано на картинке, поэтому мне пришлось немного распечатать новую, и она идеально подошла!
- У меня проблема в том, что это заедание, так как шнек слишком мал, поэтому он заклинивает, простой способ, который я могу исправить, - это немного увеличить шнек!
Рекомендуемые:
Автоматическая кормушка для собак: 4 шага
Автоматическая кормушка для собакрр !!: Легко, полезно и полезно
Автоматическая кормушка для растений WiFi с резервуаром - Установка для выращивания в помещении / на открытом воздухе - Автоматическая поливка растений с дистанционным мониторингом: 21 шаг
Автоматическая кормушка для растений WiFi с резервуаром - Настройка выращивания в помещении / на открытом воздухе - Автоматическое поливание растений с удаленным мониторингом: в этом руководстве мы продемонстрируем, как настроить индивидуальную систему подачи растений в помещении / на открытом воздухе, которая автоматически поливает растения и может контролироваться удаленно с помощью платформы Adosia
Кормушка для собак, управляемая Alexa: 6 шагов (с изображениями)
Кормушка для собак, управляемая Alexa: это наша собака Бейли. Она наполовину бордер-колли и австралийская пастушья собака, поэтому иногда она умнее, чем сама себе, особенно когда дело доходит до определения времени и знания, когда ей следует обедать. Обычно мы стараемся кормить ее около 18:00
Автоматическая кормушка для собак: 5 шагов
Автоматическая кормушка для собак: это пошаговое руководство о том, как сделать автоматическую кормушку для собак с помощью Arduino. Это идеально, если вы находитесь вне дома большую часть дня. Вместо того, чтобы вашей собаке пришлось весь день ждать еды или заставлять вас уклоняться от дома, чтобы покормить ее, это устройство
Автоматическая кормушка для собак и видеостример Raspberry Pi: 3 шага
Raspberry Pi Automatic Dog Feeder & Live Video Streamer: Это моя автоматическая кормушка для собак с питанием от Raspberry Pi. Раньше я работал с 11 утра до 9 вечера. Моя собака сходит с ума, если я не кормлю ее вовремя. Посмотрел в Google, чтобы купить автоматические кормушки. Они недоступны в Индии и дорогие импортные операции