Оглавление:

Умная кормушка для домашних животных: 9 шагов
Умная кормушка для домашних животных: 9 шагов

Видео: Умная кормушка для домашних животных: 9 шагов

Видео: Умная кормушка для домашних животных: 9 шагов
Видео: 🔥ТОП-5: Лучшие автоматические кормушки для кошек и собак | Рейтинг автокормушек в 2023 году 2024, Ноябрь
Anonim
Image
Image
Умная кормушка для домашних животных
Умная кормушка для домашних животных

У тебя есть домашнее животное?

  • Нет: усыновить! (и вернемся к этому наставлению).
  • Да, молодец!

Разве не было бы замечательно, если бы вы могли покормить и поить любимого человека, не отменяя планов, чтобы добраться домой вовремя? Мы говорим, не беспокойтесь больше.

В этом проекте мы создали диспенсеры для еды и воды с дистанционным управлением (через Интернет).

Через онлайн-панель вы можете просматривать данные и управлять дозаторами:

  • Наблюдайте за уровнями пищи и воды в резервуарах.
  • Следите за уровнем еды и воды в мисках.
  • Ест или пьет животное в этот момент?
  • Составьте расписание кормлений (устройство не выдаст еду, если в миске достаточно еды).
  • Автоматическая подача воды, когда чаша опустеет.
  • Выдайте еду / воду нажатием кнопки.
  • Получайте push-уведомления на свой телефон (через приложение Telegram).

Кто мы?

Создано Томом Кауфманом и Катей Фичман, студентами факультета информатики в IDC Herzliya.

Этот проект был разработан для курса IOT.

Запасы

Электроника

  • 2 X ESP8266 (Wemos d1 mini).
  • Провода перемычки.
  • 2 X Макет.
  • 4 X ультразвуковой датчик.
  • 2 X тензодатчика.
  • 2 усилителя тензодатчика (HX711).
  • Сервопривод (180 °).
  • Сервопривод (непрерывное вращение).
  • Источник питания 2 X 6 В.

Запчасти

  • Дозатор кукурузных хлопьев (ссылка на Amazon).
  • Напечатанная на 3D-принтере воронка для раздаточного устройства для еды (https://www.thingiverse.com/thing:3998805).
  • Насадка сервомотора, напечатанная на 3D-принтере (https://www.thingiverse.com/thing:3269637).
  • Стенд для раздачи еды, напечатанный на 3D-принтере (разработан для этого проекта:
  • Основание и пластина тензодатчика, напечатанные на 3D-принтере (разработаны для этого проекта:
  • Диспенсер для воды (ссылка Amazon на нечто подобное).
  • Провод (для соединения ручки дозатора воды с сервоприводом).
  • 3 X подставка для ультразвукового датчика.

Шаг 1. Как это работает?

Как это работает?
Как это работает?

Платы ESP8266 отправляют показания датчиков в Node-RED через Mosquitto (брокер MQTT).

Node-RED обрабатывает данные, выполняя соответствующие действия (также отправляя команды дозирования на платы ESP8266 через Mosquitto) и отображая информацию на приборной панели.

Все вычисления выполняются в Node-RED, поэтому было бы легко воспроизвести этот проект и изменить обработку данных в соответствии с вашими настройками и предпочтениями, не запачкая руки кодированием.

Шаг 2: Программное обеспечение

Программное обеспечение
Программное обеспечение

IDE Arduino

Загрузите и установите (ссылка:

Москитто

Скачайте и установите (ссылка:

Node.js

Скачайте и установите (ссылка:

Узел-КРАСНЫЙ

Следуйте инструкциям:

нгрок

Скачать:

Телеграмма

Установите приложение на свой смартфон.

Шаг 3: Схема схемы

Схема схемы
Схема схемы

* Оба устройства имеют идентичные схемы

Рукомойник

  • Ультразвуковой датчик (для резервуара с водой)

    • GND - G
    • VCC - 5 В
    • ЭХО - D5
    • ТРИГГЕР - D0
  • Ультразвуковой датчик (для определения расстояния питомца от миски)

    • GND - G
    • VCC - 5 В
    • ЭХО - D6
    • ТРИГГЕР - D7
  • Весоизмерительная ячейка

    • ЗЕЛЕНЫЙ - A + (HX711)
    • БЕЛЫЙ - A- (HX711)
    • ЧЕРНЫЙ - E- (HX711)
    • КРАСНЫЙ - E + (HX711)
  • HX711 (усилитель тензодатчика)

    • GND - G
    • VCC - 5 В
    • DT - D4
    • SCK - D3
  • Сервопривод (180 °)

    • GND - G
    • VCC - 5 В

Диспенсер для еды

  • Ультразвуковой датчик (для емкости для пищевых продуктов)

    • GND - G
    • VCC - 5 В
    • ЭХО - D5
    • ТРИГГЕР - D0
  • Ультразвуковой датчик (для определения расстояния питомца от миски)

    • GND - G
    • VCC - 5 В
    • ЭХО - D6
    • ТРИГГЕР - D7
  • Весоизмерительная ячейка

    • ЗЕЛЕНЫЙ - A + (HX711)
    • БЕЛЫЙ - A- (HX711)
    • ЧЕРНЫЙ - E- (HX711)
    • КРАСНЫЙ - E + (HX711)
  • HX711 (усилитель тензодатчика)

    • GND - G
    • VCC - 5 В
    • DT - D4
    • SCK - D3
  • Сервопривод (непрерывное вращение)

    • GND - G
    • VCC - 5 В
    • КОНТРОЛЬ - D8

Шаг 4: крафтить

Ремесло
Ремесло
Ремесло
Ремесло
Ремесло
Ремесло

Рукомойник

  1. Приклейте сервопривод к верхней части нижней части дозатора (как показано на фото).
  2. Просверлите небольшое отверстие в ручке дозатора воды.
  3. Подключите сервоголовку к ручке с помощью провода (убедитесь, что сервоголовка находится в положении 0, и убедитесь, что провод затянут).
  4. Приклейте один ультразвуковой датчик к внутренней стороне резервуара рядом с его верхом (датчик направлен вниз).
  5. Приклейте один ультразвуковой датчик под ручкой подачи воды к внешней стороне (убедитесь, что он достаточно высок, чтобы емкость для воды не влияла на его показания).

Диспенсер для еды

  1. Прикрутите сервопривод к держателю (деталь, напечатанная на 3D-принтере).
  2. Приклейте воронку (деталь, напечатанная на 3D-принтере) к держателю резервуара (деталь, напечатанная на 3D-принтере).
  3. Подсоедините держатель резервуара к стойке дозатора (деталь, напечатанная на 3D-принтере) и установите резервуар на место.
  4. Вставьте вращающуюся часть (напечатанную на 3D-принтере) на место и через вращающуюся резиновую часть дозатора.
  5. Прикрутите часть держателя сервопривода к стойке дозатора.
  6. Приклейте один ультразвуковой датчик к внутренней стороне крышки резервуара (датчик направлен вниз).
  7. Приклейте один ультразвуковой датчик к стороне держателя резервуара, обращенной к месту, где будет есть ваш питомец.

Тензодатчики

Приклейте каждый датчик нагрузки к основанию и пластине, напечатанным на 3D-принтере (стрелка датчика нагрузки направлена вниз)

Шаг 5: Москитто

Москитто
Москитто

Откройте Mosquitto (пользователи Windows: перейдите в папку Mosquitto, откройте cmd и введите: "mosquitto -v").

* Чтобы получить внутренний IP-адрес компьютера, запустите cmd и введите «ipconfig».

Шаг 6: IDE Arduino

IDE Arduino
IDE Arduino
IDE Arduino
IDE Arduino

Откройте Arduino IDE и следуйте разделу «Установка надстройки ESP8266 в Arduino IDE» этого руководства:

Перейдите в Инструменты-> Доска и выберите «LOLIN (WEMOS) D1 R2 & mini».

Перейдите в Sketch-> Include Library-> Add. ZIP Library… и добавьте 3 библиотеки в файл «Libraries.rar».

Откройте скетч «HX711Calibration», загрузите его в оба ESP8266, запустите его и следуйте инструкциям (в начале кода и в последовательном мониторе), чтобы откалибровать датчики веса (убедитесь, что скорость передачи последовательного монитора установлена на 115200 бод).

* Запишите калибровочный коэффициент и смещение нуля (для дальнейшего использования).

Откройте эскизы "FoodDispenser" и "WaterDispenser" в среде IDE и измените следующие переменные своими настройками (в файле "Settings.h"):

  • WIFI_SSID
  • WIFI_PASSWORD
  • MQTT_SERVER
  • LOAD_CELL_CALIBRATION_FACTOR
  • LOAD_CELL_ZERO_OFFSET

* В MQTT_SERVER введите внутренний IP-адрес из шага «Mosquitto».

Загрузите эскизы на свои два ESP8266 (по одному коду на каждую плату).

* Обратите внимание, что мы использовали библиотеку «AsyncMqttClient», а не более распространенную библиотеку «pubsubclient», поскольку esp8266 дает сбой при объединении с библиотекой «HX711».

* Если вы решите внести изменения в код, убедитесь, что не используете функции «delay» и «yield» внутри функций обратного вызова, так как это вызовет сбои.

Шаг 7: Нгрок

Нгрок
Нгрок
Нгрок
Нгрок

Разархивируйте загруженный файл (по ссылке в шаге «Программное обеспечение»).

Откройте «ngrok.exe» и выполните команду «ngrok http 1880».

* Вы можете выбрать ближайший к вам регион (au, eu, ap, us, jp, in, sa). По умолчанию мы.

Например, запустите команду: «ngrok http --region = eu 1880» (укажите регион в Европе).

Теперь вы увидите свой веб-адрес для внешнего использования (мы будем называть этот адрес YOUR_NGROK_ADDRESS).

Шаг 8: Node-RED

Узел-КРАСНЫЙ
Узел-КРАСНЫЙ
Узел-КРАСНЫЙ
Узел-КРАСНЫЙ
Узел-КРАСНЫЙ
Узел-КРАСНЫЙ

Откройте Node-RED (пользователи Windows: откройте cmd и введите "node-red") и перейдите по адресу https:// localhost: 1880 (если это не сработает, найдите адрес в окне cmd, где написано "Сервер сейчас работает на ").

Откройте меню (в правом верхнем углу) и нажмите «Управление палитрой».

Перейдите на вкладку «Установить», найдите и установите следующие модули:

  • узел-красный-вклад-персист.
  • узел-красный-вклад-крон-плюс.
  • узел-красный-вклад-пользовательский интерфейс.
  • узел-красный-приборная панель.
  • узел-красный-вклад-телеграмбот.

Перейдите в меню-> Импорт и загрузите файл потока (извлеките прикрепленный файл RAR и загрузите файл json).

См. Приложенные изображения для объяснения потока.

Вам нужно будет изменить эти узлы с вашими настройками:

  • Обновите профиль узла «Отправитель Telegram», указав имя пользователя и токен вашего бота (используйте это руководство:
  • Внизу потока измените полезные данные узлов «Ngrok Address» и «Telegram Chat Id» (получите свой идентификатор чата, используя руководство Telegram по ссылке выше).
  • В нижней части потока находятся узлы настроек - измените их под свои нужды:

    • Активировать оповещения о еде / питье питомца.
    • Определите, на каком расстоянии активируется оповещение о еде / питье.
    • Определите обработку данных чаш и резервуаров.
    • Измените время выдачи (как долго происходит выдача - автоматический режим и нажатие кнопки).
    • Определите процентное значение порога переполнения чаши для еды (отмените автоматическую раздачу еды, если в чаше достаточно еды).

Разверните поток (вверху справа).

* Только при первом развертывании вы увидите предупреждение в окне отладки об отсутствии файла persistance.json. Не беспокойтесь об этом, поскольку в тот момент, когда вы установите время кормления или измените автоматический переключатель подачи воды, он инициализирует этот файл, и у вас больше не будет этого предупреждения.

Вы можете просмотреть свою панель управления на https:// NODE-RED_PC'S_INTERNAL_IP_ADDRESS: 1880 / ui (если вы подключены к той же локальной сети, что и сервер) или YOUR_NGROK_ADDRESS / ui (отовсюду).

Шаг 9: Заключение

Заворачивать
Заворачивать

Мы надеемся, что это руководство было информативным и легким для чтения, понимания и реализации.

Не стесняйтесь спрашивать нас о чем угодно.

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