Оглавление:

Умный мусорный бак от Magicbit: 5 шагов
Умный мусорный бак от Magicbit: 5 шагов

Видео: Умный мусорный бак от Magicbit: 5 шагов

Видео: Умный мусорный бак от Magicbit: 5 шагов
Видео: XIAOMI УМНОЕ МУСОРНОЕ ВЕДРО НОВОГО ПОКОЛЕНИЯ! ТЕПЕРЬ и ВЕДРО ЗАРЯЖАТЬ 2024, Ноябрь
Anonim
Image
Image

В этом уроке мы узнаем, как сделать умную мусорную корзину с помощью Magicbit dev. плата с Arduino IDE. Приступим.

Запасы

  • Magicbit
  • Кабель USB-A - Micro-USB
  • Ультразвуковой датчик - HC-SR04 (универсальный)
  • Микро-серводвигатель SG90

Шаг 1: история

Настройка оборудования
Настройка оборудования

Перед тем, как перейти к проекту, давайте посмотрим, что такое «умная мусорная корзина». В каждом доме есть одна или несколько урн. Вы много раз покрывали это. Потому что от этого в вашем доме будет пахнуть. Поэтому, когда вы хотите выбросить мусор в мусорное ведро, вам нужно открыть его. Но если, когда вы подходите к мусорному ведру, чтобы положить мусор, крышка автоматически открывается, то как это выглядит? Сумасшедший ааа…. так что это умная помойка.

Шаг 2: теория и методология

Теория очень проста. Когда вы подойдете к мусорному ведру, он вас обнаружит. Если расстояние между вами и мусорным баком меньше определенного расстояния, крышка мусорного контейнера откроется автоматически. Для завершения обоих этих объектов мы используем ультразвуковой датчик HC-SRO4 и небольшие серводвигатели. Вы можете приобрести любой тип серводвигателя с цифровым управлением.

Шаг 3: Настройка оборудования

Настройка оборудования
Настройка оборудования
Настройка оборудования
Настройка оборудования

В этом проекте мы использовали в основном три аппаратных компонента. Это Magicbit, серводвигатель и ультразвуковой датчик. Связь между всеми этими частями показана на рисунке выше.

Ультразвуковой датчик использовал 3,3 В. для включения. Поэтому мы использовали правый нижний порт платы Magicbit для подключения ультразвукового датчика к Magicbit. Но для правильной работы серводвигателя используется напряжение 5 В, поэтому мы использовали левый нижний порт для подключения серводвигателя к Magicbit. В данном случае мы используем модуль сервоконнектора Magic bit. Но если у вас нет этого модуля, вы можете использовать три перемычки для подключения 5V к 5V, Gnd к Gnd и сигнальный контакт к 26 pin на magicbit.

Теперь давайте посмотрим на механическую сторону нашего проекта. Для открытия крышки используется очень простой рычажный механизм. Мы подключили один боковой зажим для сервопривода к сервоприводу. Затем мы соединили угловое отверстие в зажиме и крышку мусорного бака прочной металлической проволокой. Металлический провод может вращаться относительно зажима сервопривода и крышки пылесборника. Изучая верхнее изображение и видео, вы можете очень легко это построить.

Шаг 4: установка программного обеспечения

Настройка программного обеспечения
Настройка программного обеспечения

Программная часть также очень проста. Давайте посмотрим на код Arduino IDE и то, как этот код работает.

Для управления сервоприводом мы используем библиотеку сервоприводов ESP32. Эта библиотека почти включена в волшебный менеджер битовых плат в Arduino IDE. Для работы с ультразвуковым датчиком мы используем библиотеку newPing. Его можно скачать по следующей ссылке.

bitbucket.org/teckel12/arduino-new-ping/d…

Загрузите zip-файл и выберите инструменты> включить библиотеку> добавить библиотеку Zip в Arduino. теперь выберите загруженный zip-файл с новой библиотекой контактов. в коде мы сначала объявляем библиотеки сервоприводов и ультразвуковых датчиков. В функции цикла мы всегда проверяем расстояние от мусорного бака до ближайшего переднего объекта. Если эта терка больше 200, то выходное расстояние библиотеки равно 0. Когда расстояние меньше 60 см, выполняется цикл for для открытия крышки путем вращения сервопривода. Если расстояние больше 60 см, крышка снимается. Используя логическую переменную, мы всегда проверяем состояние обложки. Если крышка опущена, открывается только она. Тоже наоборот. Теперь выберите правильный COM-порт и плату как magcibit, затем загрузите код. Теперь ваша умная корзина для мусора готова к использованию.

Шаг 5: Код Arduino

#включают

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 Эхолот NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // включить библиотеку сервоприводов int distance; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Определяет, к какому выводу прикреплен серводвигатель delay (3000); } void loop () {// вращает серводвигатель от 15 до 165 градусов for (int i = 0; i <= 180; i ++) {RadarServo.write (i); задержка (50); distance = sonar.ping_cm (); // Вызывает функцию для расчета расстояния, измеренного ультразвуковым датчиком для каждого градуса for (int j = 0; j0) {break; } Serial.print (i); // Отправляет текущий градус в последовательный порт Serial.print (","); // Посылает дополнительный символ сразу после предыдущего значения, которое понадобится позже в Processing IDE для индексации Serial.print (j); // Отправляет текущий градус в последовательный порт Serial.print ("*"); Серийный принт (1); // Отправляет значение расстояния в последовательный порт Serial.print ("/"); // Посылает дополнительный символ сразу после предыдущего значения, которое понадобится позже в Processing IDE для индексации Serial.print (distance); // Отправляет значение расстояния в последовательный порт Serial.print ("."); // Отправляет символ добавления рядом с предыдущим значением, которое понадобится позже в среде Processing для индексации}} // Повторяет предыдущие строки от 165 до 15 градусов для (int i = 180; i> = 0; i -) {RadarServo.write (я); задержка (50); расстояние = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {продолжить; } Serial.print (i); // Отправляет текущий градус в последовательный порт Serial.print (","); // Посылает дополнительный символ сразу после предыдущего значения, которое понадобится позже в Processing IDE для индексации Serial.print (j); // Отправляет текущий градус в последовательный порт Serial.print ("*"); Serial.print (-1); // Отправляет значение расстояния в последовательный порт Serial.print ("/"); // Посылает дополнительный символ сразу после предыдущего значения, которое понадобится позже в Processing IDE для индексации Serial.print (distance); // Отправляет значение расстояния в последовательный порт Serial.print ("."); // Отправляет символ добавления сразу после предыдущего значения, необходимого позже в среде Processing для индексации}}}

Рекомендуемые: