Оглавление:

Диспенсер для лакомства IoT для домашних животных: 7 шагов (с изображениями)
Диспенсер для лакомства IoT для домашних животных: 7 шагов (с изображениями)

Видео: Диспенсер для лакомства IoT для домашних животных: 7 шагов (с изображениями)

Видео: Диспенсер для лакомства IoT для домашних животных: 7 шагов (с изображениями)
Видео: 8 ЛАЙФХАКОВ ДЛЯ КОТА! 2024, Ноябрь
Anonim
Image
Image
Диспенсер для лакомства IoT для домашних животных
Диспенсер для лакомства IoT для домашних животных

У меня есть две кошки, и необходимость кормить их угощениями примерно 3 раза в день стала довольно неприятной. Они смотрели на меня своими милыми лицами и пристальными взглядами, затем бежали к коробке, полной кошачьей зелени, мяукали и умоляли о них. Я решил, что этого достаточно. Больше не нужно вставать, чтобы угостить кошку парочкой угощений. Пришло время для автомата для раздачи лакомств, потому что, как говорится: «Программисты существуют для того, чтобы делать сложные вещи меньше, чтобы делать простые вещи».

DFRobot спонсировала этот проект.

Список деталей:

  • DFRobot Raspberry Pi 3
  • Модуль камеры DFRobot Raspberry Pi
  • Шаговый двигатель DFRobot с планетарной передачей
  • I2C ЖК-дисплей 16x2
  • Бочка Джек к Терминалу
  • Драйвер шагового двигателя DRV8825
  • Конденсатор 100 мкФ
  • Arduino UNO и Genuino UNO
  • Перемычки (общие)

Шаг 1: Создание дизайна

Создание дизайна
Создание дизайна

Сначала был выбор, как управлять моей новой задуманной машиной. Радиус действия Bluetooth был бы слишком мал - всего 30 футов без препятствий. Имея эту информацию, я решил использовать Wi-Fi. Но как теперь использовать Wi-Fi для управления машиной? Raspberry Pi 3 имеет встроенные возможности Wi-Fi, что позволяет мне использовать Flask для размещения веб-страницы. Затем была тема вольера и того, как распределять угощения. Я выбрал конструкцию с вращающимся колесом, в которой лакомства будут распадаться на маленькие части, вращаться вокруг них, а затем лакомства падают на рампу и перемещаются к передней части машины.

Шаг 2: Создание модели Fusion 360

Создание модели Fusion 360
Создание модели Fusion 360
Создание модели Fusion 360
Создание модели Fusion 360
Создание модели Fusion 360
Создание модели Fusion 360

Я начал с создания базовой модели сосуда для угощения. Лакомства попадают в мини-бункер, откуда они попадают во вращающееся колесо.

Затем я добавил Raspberry Pi 3 в дизайн Fusion вместе с другой электроникой, включая ЖК-дисплей и модуль камеры Raspberry Pi. Еще я сделал бункер, в который можно было хранить дополнительные угощения.

Стенки для дозатора угощений должны быть вырезаны из фанеры толщиной 1/4 дюйма на фрезерном станке с ЧПУ. Он состоит из 7 частей, 4 стенок, пола, а также верхней части и крышки, которые можно открывать и закрывать, чтобы обнажить угощения.

Наконец, я создал "причудливую" ручку для открывания крышки.

Шаг 3: настройка Pi

DFRobot обратился ко мне и прислал свой модуль камеры Raspberry Pi 3 и Raspberry Pi. Итак, открыв коробки, я сразу приступил к установке SD-карты. Сначала я зашел на страницу загрузок Raspberry Pi и загрузил самую последнюю версию Raspbian. Затем я извлек файл и поместил его в удобный каталог. Вы не можете просто скопировать / вставить файл.img на SD-карту, вы должны «записать его» на карту. Вы можете загрузить утилиту записи, например Etcher.io, чтобы легко перенести образ ОС. После того, как файл.img был на моей SD-карте, я вставил его в Raspberry Pi и подал питание. Примерно через 50 секунд я отключил шнур и вынул SD-карту. Затем я вставил SD-карту обратно в свой компьютер и перешел в «загрузочную» директорию. Я открыл Блокнот и сохранил его как пустой файл с именем «ssh» без расширения. Я также добавил файл под названием "wpa_supplicant.conf" и поместил в него этот текст: network = {ssid = psk =} Затем я сохранил, извлек карту и вставил ее обратно в Raspberry Pi 3. Теперь это должно позволить использование SSH и подключение к WiFi.

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

Существует несколько различных программ, которые могут передавать видео, например VLC и движение, но я решил использовать mjpeg-streamer из-за его низкой задержки и простой установки. В соответствии с инструкциями на сайте выполните: git clone https://github.com/jacksonliam/mjpg-streamer.git В папку введите: sudo apt-get install cmake libjpeg8-dev Чтобы установить необходимые библиотеки. Измените свой каталог на папку, которую вы скачали, а затем введите: make Далее следует: sudo make install Для компиляции программного обеспечения. Наконец введите: export LD_LIBRARY_PATH =. И для его запуска введите:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Вы можете получить доступ к потоку, перейдя по адресу: https:// Локальный IP-адрес пи: 8080 / stream. html Для просмотра потока.

Шаг 5: Настройка веб-сервера

Для внешнего управления машиной через Wi-Fi мне понадобился веб-сервер. Веб-сервер в основном обслуживает веб-страницы по запросу, обычно через браузер. Мне нужно было что-то быстрое и простое в установке и использовании, снимающее с стола Apache. Я также хотел связать веб-сервер с Python, чтобы я мог управлять Arduino Uno с помощью PySerial. Этот квест в конечном итоге привел меня к Flask, красивой библиотеке Python, которая позволяет пользователям быстро создавать веб-сервер. Полный код прилагается к этой странице проекта. Сценарий python в основном устанавливает 2 веб-страницы, одну из которых размещают в корневом каталоге «/», а другую - в «/ dispense». Индексная страница имеет HTML-форму, которая при отправке отправляет почтовый запрос на страницу выдачи. Затем страница выдачи проверяет, является ли значение сообщения правильным, и если это сообщение, «D / n» отправляется через последовательный порт на Arduino Uno.

Шаг 6: Управление вводом-выводом

Управление вводом-выводом
Управление вводом-выводом
Управление вводом-выводом
Управление вводом-выводом
Управление вводом-выводом
Управление вводом-выводом
Управление вводом-выводом
Управление вводом-выводом

Я решил использовать DRV8825 для привода моего шагового двигателя, в основном из-за того, что ему нужны только 2 контакта ввода-вывода вместе с регулируемым ограничением тока. Я попытался использовать L293D, но он не выдержал нагрузки шагового двигателя. DRV8825 управляется путем подачи импульсов на вывод STEP через ШИМ, а направление регулируется путем подтягивания вывода DIR к высокому или низкому уровню. Шаговый двигатель, который я использую, потребляет 1,2 А, поэтому я установил напряжение VREF на 0,6 В. Следующим был ЖК-дисплей. Я хотел использовать I2C, чтобы уменьшить количество необходимых операций ввода-вывода и упростить код. Чтобы установить библиотеку, просто найдите «LiquidCrystal_I2C» и установите ее. Наконец, Arduino Uno проверяет наличие новой информации в последовательном буфере и ее соответствие «D». Если это так, Uno заставляет шаговый двигатель перемещаться на 180 градусов, а затем на -72 градуса, чтобы лакомства не застревали.

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