Содержание:
- Как настроить устройство и автоматизировать его с помощью Arduino?
- Шаг 1: Необходимые компоненты (аппаратное обеспечение)
- Шаг 2: Необходимые компоненты (программное обеспечение)
- Шаг 3: Принцип работы автономной системы откачки воды
- Шаг 4: Моделирование схемы
- Шаг 5: Создание макета печатной платы
- Шаг 6: Принципиальная схема
- Шаг 7: Принцип работы автономной системы подачи еды
- Шаг 8: Моделирование схемы
- Шаг 9: Принципиальная схема
- Шаг 10: Начало работы с Arduino
- Шаг 11: Понимание кода
- Шаг 12: Проектирование аппаратной части системы перекачки воды
- Шаг 13: Аппаратная конструкция автоматической системы подачи продуктов питания
Домашних животных необходимо своевременно кормить, чтобы они могли поддерживать хорошее здоровье. Владельцы домашних животных не могут находиться дома 24 часа в сутки 7 дней в неделю, иногда они уезжают на деловые встречи в другой город или в чужой дом, поэтому питомцы страдают в их отсутствие из-за отсутствия корма. Гравитационные кормушки доступны на рынке, которые могут кормить домашних животных автоматически, но они немного дороговаты и требуют большой площади для размещения. Сегодня я разработаю автоматическую систему кормления домашних животных, которая в значительной степени минимизирует человеческие усилия по кормлению питомцев. Человек будет помещать корм в контейнер, и он будет автоматически пополняться, как только его уровень упадет ниже определенного. Поэтому следуйте этому руководству и будьте готовы реализовать эту инновационную идею у себя дома.
Как настроить устройство и автоматизировать его с помощью Arduino?
Цель этой методики — сделать систему, более эффективную из имеющихся на рынке систем, таких как гравитационные кормушки, при сравнительно низкой стоимости. Наша система будет отвечать за поддержание постоянной подачи пищи и воды для домашних животных. Во-первых, мы разработаем автоматическую систему подачи воды, а во-вторых, мы разработаем автоматическую кормушку для наших домашних животных.
Шаг 1: Необходимые компоненты (аппаратное обеспечение)
- Arduino UNO
- Контейнер для воды 5 галлонов
- Модуль LCD 1602
- Провода для перемычек
- Натуральные бамбуковые палочки
- Хлебная плата
- Тактильный кнопочный переключатель
- Транзисторы BC547 (x4)
- Не найдено ни одного товара.
- Модуль DS3231 RTC
- Мембрана для матричной клавиатуры 4×4
- Резистор 470 кОм (x8)
- Резистор 33 Ом (x8)
- Печатная плата
- Паяльник
- Горячий клеевой пистолет
- Цифровой мультиметр
- FeCl3
Шаг 2: Необходимые компоненты (программное обеспечение)
Перед сборкой схемы на аппаратном обеспечении ее необходимо смоделировать. После моделирования мы узнаем, будет ли наша схема работать точно или нет. Поэтому ниже я привел программные симуляции, для которых требуется программа Proteus Professional.
- Proteus 8 Professional (можно скачать с сайта Здесь)
Шаг 3: Принцип работы автономной системы откачки воды
Среди всех компонентов наиболее важными являются транзисторы BC 547. Всего 7 транзисторов, и они будут определять уровень воды. Светодиоды будут следить за уровнем воды в контейнере. По мере подъема воды датчики начинают контактировать с водой, активируются транзисторы, и в транзисторах возникает ток, заставляющий светодиоды загораться. Между транзистором и светодиодом включен токоограничивающий резистор, который не позволяет более высокому напряжению поступать на светодиод. Резиновая трубка будет подключена к верхнему резервуару и будет отвечать за наполнение контейнера при снижении уровня воды ниже определенного порога. Когда вода опускается ниже порога, включается водяной насос, и контейнер начинает наполняться. Таким образом, отпадает необходимость доливать воду в контейнер вручную, и домашние животные получают постоянный запас воды. Для вашего удобства я подробно расскажу о функциональности светодиодов. Светодиоды, установленные в схеме, имеют четыре типа цветов. Красный, желтый, зеленый и синий. Красный означает, что в контейнере нет воды и ни один из датчиков не контактирует с водой, поэтому контейнер необходимо наполнить. Желтый светодиод показывает 1/4 воды в контейнере. Зеленый светодиод указывает на то, что контейнер наполовину заполнен водой, а синий светодиод — на то, что контейнер заполнен водой.
Шаг 4: Моделирование схемы
- После загрузки и установки программы Proteus откройте ее. Откройте новую схему, нажав кнопку ISIS значок в меню.
- Когда появится новая схема, нажмите на кнопку P значок в боковом меню. Откроется окно, в котором вы можете выбрать все компоненты, которые будут использоваться.
- Теперь введите названия компонентов, которые будут использоваться для создания схемы. Компоненты появятся в списке справа.
- Таким же образом, как и выше, найдите все компоненты, как указано выше. Они появятся в окне Устройства Список.
Шаг 5: Создание макета печатной платы
Поскольку мы собираемся сделать аппаратная схема на печатной плате, нам нужно сначала сделать разводку печатной платы для этой схемы.
- Чтобы сделать макет печатной платы в Proteus, нам сначала нужно назначить пакеты для каждого компонента на схеме. чтобы назначить пакеты, щелкните правой кнопкой мыши на компоненте, которому вы хотите назначить пакет, и выберите Инструмент «Упаковка.
- Нажмите на опцию ARIES в верхнем меню, чтобы открыть схему печатной платы.
- В списке компонентов разместите все компоненты на экране в таком виде, в каком вы хотите видеть вашу схему.
- Нажмите на режим дорожки и соедините все контакты, которые программа указывает вам соединить, указывая стрелкой.
Шаг 6: Принципиальная схема
После сборки компонентов и их подключения схема должна выглядеть следующим образом:
Шаг 7: Принцип работы автономной системы подачи еды
Принцип работы системы подачи пищи очень прост, и самым важным компонентом в этой схеме является Модуль часов реального времени (DS3231) Благодаря этому мы можем установить дату и время, когда корм будет подаваться нашим питомцам. На ЖК-модуле отображается дата и время, а также серводвигатель будет вращать чаши, в которых будет находиться еда. Я включил 4×4 клавиатуру, чтобы вручную установить время кормления домашних животных. Я использовал серводвигатель, чтобы миска с кормом могла вращаться и опускаться в нижнюю миску, откуда питомцы смогут его съесть. Корм будет сбрасываться в нижнюю чашу через определенные промежутки времени, которые будут заданы вами в коде. Количество корма можно задать самостоятельно, учитывая привычки собаки, кошки, попугая и т.д.
Шаг 8: Моделирование схемы
Смоделируйте схему, выполнив вышеописанные действия, чтобы проверить, работает она или нет. Остальная часть процедуры такая же, за исключением компонентов и их размещения. Компоненты, которые будут использоваться в схеме, показаны ниже:
- Компоненты появятся в окне Устройства Список.
Теперь, когда мы убедились, что схема работает нормально, мы продолжим и напишем код для Arduino.
Шаг 9: Принципиальная схема
Принципиальная схема Proteus должна выглядеть следующим образом:
Шаг 10: Начало работы с Arduino
Если вы не знакомы с Arduino IDE, не волнуйтесь, потому что ниже вы можете увидеть четкие шаги по записи кода на плату микроконтроллера с помощью Arduino IDE. Вы можете скачать последнюю версию Arduino IDE с сайта здесь и выполните следующие действия:
- Когда плата Arduino подключена к компьютеру, откройте “Панель управления” и нажмите на “Оборудование и звук”;. Затем нажмите на “Устройства и принтеры”. Найдите название порта, к которому подключена ваша плата Arduino. В моем случае это “COM14” но на вашем компьютере она может быть другой.
- Теперь откройте Arduino IDE. В меню Tools установите для платы Arduino значение Arduino / Genuino UNO.
- В том же меню Tool установите номер порта, который вы видели на панели управления.
- Загрузите код, прикрепленный ниже, и скопируйте его в вашу IDE. Чтобы загрузить код, нажмите на кнопку загрузки.
Вы можете загрузить код с сайта Здесь.
Шаг 11: Понимание кода
Код, используемый в этом проекте, очень прост и хорошо прокомментирован. Хотя эта процедура не требует пояснений, она кратко описана ниже, так что если вы используете другую плату Arduino, например nano, mega и т.д., вы можете изменить код должным образом, а затем записать его на свою плату.
- Сверху находятся различные библиотеки, чтобы клавиатура, ЖК-дисплей, RTC IC и сервомотор могли управляться микроконтроллером.
#include <DS3231.h> #include <Сервопривод.h> #include <LiquidCrystal.h> #include <Клавиатура.h>
2. Затем в строках и столбцах клавиатуры инициализируются пины Arduino, к которым они будут подключены, после чего создается вся клавиатура.
const byte ROWS = 4; // Четыре строки const byte COLS = 4; // Три колонки // Определяем карту клавиш char keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = { 2, 3, 4, 5 }; // Подключаем клавиатуру ROW0, ROW1, ROW2 и ROW3 к этим контактам Arduino. byte colPins[COLS] = { 6, 7, 8, 9 }; // Подключите клавиатуру COL0, COL1 и COL2 к этим контактам Arduino. Клавиатура kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); // Создание клавиатуры
3. Затем инициализируются микросхема RTC, сервомотор и жидкокристаллический дисплей, а также объявляются некоторые переменные, которые будут использоваться для вычислений во время работы.
DS3231 rtc(A4, A5); Servo servo_test; //инициализация объекта сервопривода для подключенного сервопривода LiquidCrystal lcd(A0, A1, A2, 11, 12, 13); // Создает объект LC. Параметры: (rs, enable, d4, d5, d6, d7) //int angle = 0; // int potentio = A0; // инициализация аналогового вывода A0 для потенциометра int t1, t2, t3, t4, t5, t6; boolean feed = true; // условие для подачи сигнала тревоги char key; int r[6];
4. void setup() функция, которая выполняется только один раз в коде при подаче питания на микроконтроллер или нажатии кнопки разрешения. В этой функции устанавливается скорость передачи данных в битах в секунду, с помощью которой микроконтроллер обменивается данными с устройством периферийные устройства. В этой функции также запускаются RTC и сервопривод, а пины инициализируются для использования в качестве входа или выхода.
void setup() { сервотест.attach(10); // подключаем сигнальный пин сервопривода к пину 9 arduino rtc.begin(); lcd.begin(16,2); сервотест.write(55); Serial.begin(9600); pinMode(A0, OUTPUT); pinMode(A1, OUTPUT); pinMode(A2, OUTPUT); }
5. void loop() функция, которая выполняется снова и снова в цикле. Здесь, в этой функции, написан код для отслеживания времени и вывода его на ЖК-дисплей. затем подается команда на поворот сервопривода на заданный угол.
void loop() { lcd.setCursor(0,0); int buttonPress; buttonPress = digitalRead(A3); if (buttonPress==1) setFeedingTime(); //Серийный.println(buttonPress;) lcd.print("Время: "); String t = ""; t = rtc.getTimeStr(); t1 = t.charAt(0)-48; t2 = t.charAt(1)-48; t3 = t.charAt(3)-48; t4 = t.charAt(4)-48; t5 = t.charAt(6)-48; t6 = t.charAt(7)-48; lcd.print(rtc.getTimeStr()); lcd.setCursor(0,1); lcd.print("Дата: "); lcd.print(rtc.getDateStr()); if (t1==r[0] && t2==r[1] && t3==r[2] && t4==r[3]&& t5<1 && t6<3 && feed==true) { сервотест.write(100); //команда поворота сервопривода на указанный угол delay(400); сервотест.write(55); feed=false; } }
6. void setFeedingTime() это функция, которая принимает входные данные с клавиатуры и сопоставляет их для установки времени подачи в микроконтроллере. Это время позже будет использовано для вращения мотора, чтобы накормить питомцев.
void setFeedingTime() { подача = true; int i=0; lcd.clear(); lcd.setCursor(0,0); lcd.print("Установить время кормления"); lcd.clear(); lcd.print("HH:MM"); lcd.setCursor(0,1); while(1){ ключ = kpd.getKey(); char j; если(ключ!=NO_KEY){ lcd.setCursor(j,1); lcd.print(key); r[i] = key-48; i++; j++; if (j==2) { lcd.print(":"); j++; } delay(500); } if (key == 'D') {key=0; break; } } }
Шаг 12: Проектирование аппаратной части системы перекачки воды
Поскольку мы выполнили все программные задачи, перейдем к проектированию аппаратной части проекта. Сначала мы соберем компоненты системы откачки воды, а затем спроектируем аппаратную часть автоматической системы подачи пищи. После изготовления макета печатной платы припаяйте компоненты на плату в соответствии со схемой, показанной выше. Поместите схему в небольшую коробку и сделайте в ней соответствующие отверстия, чтобы светодиоды могли легко выходить из коробки. Возьмите печатную плату и припаяйте на нее светодиоды в соответствии с уровнями, определенными выше. Проанализировав схему, мы пришли к выводу, что от главной печатной платы к датчику нужно провести пять питающих проводов. Четыре линии предназначены для датчиков и одна — для Общий положительный вывод.
Возможно, нам понадобится сделать два канала, чтобы при контакте с водой они срабатывали как выключатель, ведь вода — хороший проводник электричества. Мы можем использовать трубу ПВХ и сделать в ней отверстия. Для начала измерьте высоту контейнера, а затем через равные промежутки отметьте на нем 4 точки. Проделайте отверстия в этих точках, а затем сделайте петлю из провода, по которому будет протекать ток. Закрепите петлю провода с помощью гаек и болтов в ПВХ трубе, а затем добавьте общий провод к корпусу. Отверстие для оголенного провода и болта должно быть минимальным, и в случае необходимости вы можете припаять немного провода к общему проводу рядом с гайкой и болтом, поскольку срабатывание будет происходить в тот момент, когда вода взаимодействует с обычным проводом и болтом, происходит передача тока от оголенного провода к болту, и, следовательно, срабатывание датчика завершено. Как только вода опускается ниже определенного уровня, включается двигатель НА и резервуар начнет наполняться. Когда резервуар начнет наполняться, контейнер также начнет наполняться благодаря водопроводной трубе, так как вода передается из резервуара в контейнер через трубу. Таким образом, больше не нужно вручную наполнять контейнер.
Шаг 13: Аппаратная конструкция автоматической системы подачи продуктов питания
Теперь мы соберем оборудование системы подачи еды. Мы можем установить временные интервалы по своему усмотрению с помощью кнопки Часы реального времени DS3231 Модуль и, следовательно, учитывая график питания наших питомцев, мы будем регулировать график. Когда таймер достигнет установленной даты и времени, серводвигатель придет в движение, и еда будет сброшена в миску, расположенную ниже. Соберите схему, как показано выше, на макетной плате. Возьмите деревянную палочку и прикрепите к ней серводвигатель. Закрепите его вертикально на стене и с помощью шурупов прикрепите миску с едой к палке. Чаша может представлять собой открытую с обоих концов полую трубу в форме бамбука, на дно которой будет положена круглая деревянная деталь. Сервомотор будет прикреплен к деревянной части, и как только мотор сдвинется под определенным углом, еда упадет в чашу, расположенную ниже.
На сегодня это все. Не забудьте поделиться своим опытом после завершения этого проекта, и если у вас возникли какие-либо вопросы при его создании, не стесняйтесь спрашивать в разделе комментариев.