Оглавление:

Источник проекта: 14 шагов
Источник проекта: 14 шагов

Видео: Источник проекта: 14 шагов

Видео: Источник проекта: 14 шагов
Видео: Kak жuвeт Рaмиль Шамсутдинов koтopый B 20 лeт yбuл 8 cocлужuвцeв нa cpoчнou cлyжбe? 2024, Ноябрь
Anonim
Источник проекта
Источник проекта

Вы когда-нибудь хотели покормить своих питомцев, находясь вдали от дома или просто не вставая с дивана? Если да, то этот проект для вас! Project Feeder - это проект с открытым исходным кодом, который позволяет кормить домашних животных автоматически или вручную с телефона или компьютера. Вы также можете следить за прямой трансляцией и отслеживать пищевое поведение вашего питомца.

Прежде чем ты начнешь!

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

Для начала мы рассмотрим требования для создания этого проекта. Вам действительно понадобятся навыки и инструменты, перечисленные ниже.

Мастерские навыки:

  • 3D-печать или доступ к услуге печати
  • Пайка
  • Базовые знания электроники

Инструменты:

  • 3д принтер
  • Паяльник
  • Пистолет для горячего клея или другой клей, который подходит для изготовления нитей для 3D-принтера.
  • Отвертки

Запасы

Общая стоимость строительства этого проекта составляет около 120 евро, в зависимости от того, где вы покупаете деталь и какие скидки получаете.

Важный:

Некоторые детали помечены как «Уникальные», это означает, что они специфичны для конструктивного исполнения сборки, и вам нужна точная копия этой детали.

Raspberry Pi 4 Model B / 2 ГБ + 16 ГБ (минимальное требование) Карта Micro SD

На данный момент запасы Rasberry Pi очень ограничены, поэтому нужно немного осмотреться.

Адаптер питания 12 В 60 Вт

www.banggood.com/AC-100-240V-to-DC-12V-5A-…

Гнездо для источника питания постоянного тока 5,5 мм X 2,1 мм (уникальное)

www.banggood.com/10pcs-5_5-x-2_1mm-DC-Powe…

DC-DC 12V - 5V 3A понижающий понижающий модуль питания (уникальный)

www.banggood.com/LM2596-DC-DC-Voltage-Regu…

Двухфазный шаговый двигатель Nema 17, 42 мм, 12 В

www.banggood.com/42mm-12V-Nema-17-Two-Phas…

L298N Двойной H-мостовой модуль

www.banggood.com/Wholesale-L298N-Dual-H-Br…

GY6180 VL6180X Датчик времени полета

www.banggood.com/GY6180-VL6180X-Time-Of-Fl…

Инфракрасный датчик избегания препятствий (x3)

www.banggood.com/3Pcs-Infrared-Obstacle-Av…

USB камера

www.banggood.com/Electronic-Camera-Module-…

Подсветка 16 × 2 LCD, микроконтроллер 8051 I2C

www.hobbyelectronica.nl/product/1602-lcd-d…

Двунаправленный переключатель уровня

www.banggood.com/nl/Two-Channel-IIC-I2C-Lo…

Резисторы общего номинала (10к, 220R, 470R)

www.banggood.com/Wholesale-Geekcreit-600pc…

Светодиоды (x2)

Диоды (x2)

Переключатель ВКЛ / ВЫКЛ 12 В (уникальный)

www.banggood.com/5pcs-12V-Round-Rocker-Tog…

Гайки: 3x8 мм, 3x10 мм, 3x12 мм

Шаг 1. Прошивка SD-карты

Прошивка SD-карты
Прошивка SD-карты

Для этого шага вам нужно будет прошить SD-карту с предоставленным изображением:

thomy.stackstorage.com/s/KbCfVgoU0t8gU3C

Изображение поставляется с предварительно созданным веб-сервером apache, базой данных и кодом для взаимодействия с фидером. Таким образом, вам не нужно делать ничего, что связано с настройкой программного обеспечения.

Если вы хотите взглянуть на код, вы можете получить весь требуемый код из:

github.com/VanIseghemThomas/ProjectFeeder

Убедитесь, что вы знаете, как правильно прошить SD-карту, или не прерывайте процесс, потому что это может привести к повреждению карты. Для прошивки карты я использовал программу Win32DiskManager. Другая программа, которую я знаю, работает и немного более удобна для пользователя, называется Ethcer. Оба работают одинаково хорошо.

Шаг 2: SSH в Pi

SSH в Pi
SSH в Pi

Когда перепрошивка будет завершена, вы можете вставить SD-карту в пианино и включить ее. Убедитесь, что вы подключены к своему пи с помощью кабеля Ethernet. Теперь вы сможете подключиться к нему по SSH с ip 169.254.10.1. Я использую программу под названием PuTTY, но если вы не хотите устанавливать программное обеспечение, вы всегда можете ввести следующую команду в командной строке:

[email protected]

Теперь откройте сеанс. При первом подключении вы увидите предупреждение, игнорируйте его и просто продолжайте. Вам будет предложено войти в систему как пользователь и после этого ввести пароль, для этого образа используйте следующие учетные данные:

  • Пользователь: feederpi
  • Пароль: Redeef1

Пользователь pi также активен, но вы не сможете войти под ним. Это потому, что он настроен на автоматический вход в систему при включении питания и запуск программы. Вот почему при входе в систему вы столкнетесь со следующим:

[sudo] пароль для фидерпи:

Просто нажмите crtl + c, и теперь у вас должна быть оболочка.

Теперь введите следующее:

судо -i

Теперь вы вошли в систему как root.

Шаг 3. Настройка Wi-Fi

Настройка Wi-Fi
Настройка Wi-Fi

Теперь вы вошли в систему как root и можете ввести:

wpa_passphrase "Ваш SSID" "Ваш пароль" >> /etc/wpa_supplicant/wpa_supplicant.conf

Чтобы проверить, правильно ли была добавлена ваша конфигурация, введите следующее. Вы также можете удалить обычный текстовый пароль для безопасности, если хотите, но не забудьте сохранить изменения при выходе.

нано /etc/wpa_supplicant/wpa_supplicant.conf

Теперь вы можете перезагрузить свой пи, набрав:

перезагрузить сейчас

Теперь дайте Pi некоторое время для загрузки и снова войдите в систему с помощью SSH, как и раньше, чтобы проверить, есть ли у вас подключение к Wi-Fi, которое вы вводите:

ip a

Под wlan0 interace вы должны увидеть что-то похожее с IP-адресом, это означает, что вы успешно подключились к своему Wi-Fi. Позже, когда все будет подключено, программное обеспечение отобразит это на ЖК-дисплее.

Шаг 4: Печать деталей

Детали, которые вам понадобятся для этого проекта, находятся здесь:

www.thingiverse.com/thing:4459996

Печать всех этих частей займет некоторое время, поэтому вам понадобится немного терпения.

Это настройки, которые я использовал (PLA):

  • Высота слоя: 0,3 мм
  • Скорость печати: 50-60 мм / с
  • Температура сопла: 200 ° C
  • Температура кровати: 60 ° C

Об этом особо и нечего сказать, кроме веселой печати.

Шаг 5: Сборка деталей (введение)

Сборка деталей (введение)
Сборка деталей (введение)
Сборка деталей (введение)
Сборка деталей (введение)

Хорошо, приступим к сборке всего. Прежде чем я все объясню, я рассмотрю некоторые вещи, которые нужно иметь в виду, и это поможет вам в этом.

СОВЕТ 1:

Решил сделать все отверстия 2,5мм кроме 3мм как под болты. Это позволяет нарезать резьбу, ввинчивая болты, и избавляет от необходимости в гайках. Вставить болт довольно сложно, используйте паяльник, чтобы расширить верхнюю часть, это позволит легко вставить болт и начать завинчивание.

СОВЕТ 2:

Если, как и я, у вас заканчиваются болты, просто ввинчивайте их только диагональными парами. Это спасает многие из них и отлично работает.

Шаг 6: Сборка верхней части (дозатора)

Сборка верха (дозатор)
Сборка верха (дозатор)
Сборка верха (дозатор)
Сборка верха (дозатор)
Сборка верха (дозатор)
Сборка верха (дозатор)

Детали раскладываются как на картинке.

Они удерживаются вместе так называемыми «пластинами». Одна из пластин собирается на шаговый двигатель.

Убедитесь, что верхняя часть болтов находится на одном уровне с поверхностью, иначе подача будет заблокирована. Для этого вы должны использовать болты 3x8 мм и модель «Stepper_offset» между шаговым двигателем и внешней стороной пластины.

Теперь наденьте мельницу на шаговый двигатель, это должно идти довольно легко. Если нет, можно использовать вазелин.

Остальное довольно просто, просто возьмите винт там, где найдете отверстие.

Шаг 7: Сборка верха (контейнера)

Сборка верха (контейнера)
Сборка верха (контейнера)
Сборка верха (контейнера)
Сборка верха (контейнера)
Сборка верха (контейнера)
Сборка верха (контейнера)

Здесь вы видите, как я сделал свой контейнер. Канистра изначально использовалась для засохших кусочков штуцера.

Вверху вы хотите прикрепить TOF-датчик, он будет использоваться для измерения количества еды, оставшейся в контейнере. На фотографиях видно, как я его прикрепил. Сначала я расплавил отверстия для контактов с помощью паяльника, затем приклеил датчик на место горячим клеем, пока кабели подключены.

Для закрытия контейнера сделал паяльником 2 отверстия и вкрутил 2 болта. Для этого можно использовать резинку, стяжку или проволоку.

Шаг 8: сборка дна

Сборка дна
Сборка дна
Сборка дна
Сборка дна
Сборка дна
Сборка дна

Для размещения различных модулей обратитесь к изображениям, они довольно понятны. В части этих изображений уже есть проводка, пока вам стоит не обращать на это внимания. Фотографии сделаны в процессе разработки этого проекта. Изначально планировалось установить датчик нагрузки и взвесить еду, но из-за того, что усилитель датчика нагрузки сломался в последний момент, мне пришлось отказаться от этой функции и заменить ее на видеопоток в реальном времени, который тоже довольно изящный. Всегда есть возможность добавить датчик нагрузки, но вам придется покопаться в коде и отредактировать некоторые вещи.

Шаг 9: Электроника, датчики и исполнительные механизмы

Электроника, датчики и исполнительные механизмы
Электроника, датчики и исполнительные механизмы
Электроника, датчики и исполнительные механизмы
Электроника, датчики и исполнительные механизмы
Электроника, датчики и исполнительные механизмы
Электроника, датчики и исполнительные механизмы
Электроника, датчики и исполнительные механизмы
Электроника, датчики и исполнительные механизмы

Пришло время надеть паяльник. Я предоставил 2 представления того, что вам нужно сделать, одну стандартную электрическую схему, одно визуальное представление. Я настоятельно рекомендую вам использовать электрическую схему, потому что она дает гораздо больше понимания того, как все работает и, на мой взгляд, связано друг с другом. Единственная причина, по которой здесь находится другой, - это то, что он был обязательным. Причина, по которой я говорю это, заключается в том, что для кабелей не так много места, поэтому вам придется эффективно подключать заземление, + 5 В и т. Д., Что зависит от того, как вы хотите прокладывать кабели. Так что не подключайте все точно друг к другу, как на схеме, это будет работать, но не подойдет.

Что касается переключателя, вы можете видеть, что я подключил все 3 провода, это связано с тем, что коммутатор оснащен встроенным светодиодом, который указывает, включено ли питание. 2 неокрашенных провода действуют как переключатель, цветной вывод подключается к GND.

В общем такой порядок, в котором я все разводил:

  1. Силовая часть: разъем питания, h-мост, повышающий понижающий преобразователь, переключатель
  2. Raspberry Pi (см. Следующий шаг для получения дополнительной информации)
  3. ИК-датчики
  4. Светодиоды
  5. Шаговые входы
  6. Часть I2C: 3,3 В, SDA, SCL

Это не обязательно, но полезно иметь прототипную печатную плату, лежащую вокруг, чтобы припаять ее, как это сделал я.

Также не забудьте подключить камеру к USB-порту пи.

Важный:

Обязательно отрегулируйте повышающий понижающий преобразователь на 5 В перед подключением 5-вольтовой части схемы. Иначе вы рискуете все поджарить. Чтобы отрегулировать это, вы поворачиваете потенциометр и смотрите на показания напряжения на экране.

Шаг 10: Электроника, Raspberry Pi

Электроника, Raspberry Pi
Электроника, Raspberry Pi

Из-за ограничений программного обеспечения для рисования схемы я не смог понять, как подключить Raspberry Pi.

Для + 5V вы можете просто подключить 5V к контакту пи, но это обойдёт безопасность, такую как предохранитель. Если вы посмотрите на нижнюю часть, вы увидите несколько контактных площадок, помеченных как TPxx, в нашем случае мы ищем TP1 или TP2. Припаяйте вывод +5 В к одному из них, но будьте осторожны, чтобы не перекрыть другие следы. Это, скорее всего, приведет к аннулированию гарантии. Я лично пробовал подключить его к обоим тестовым площадкам и пришел к выводу, что это, вероятно, самый простой и безопасный в использовании TP2, поскольку он находится вдали от других открытых площадок и не имеет большого количества следов вокруг него.

Для GND просто возьмите один из контактов сверху, как показано на схеме, теперь это прекрасно.

Шаг 11: Тестирование электроники

Когда все подключено правильно, рекомендуется сначала все протестировать, прежде чем собирать все полностью.

Вот контрольный список:

  • IPV4-адрес отображается на ЖК-дисплее
  • Возможность подключения к IP через браузер
  • Можно повернуть шаговый двигатель путем «кормления» и увидеть, как загораются светодиоды.
  • Читает и обновляет статус контейнера
  • Прямая трансляция с камеры
  • Обнаружение событий, связанных с приемом пищи

Исправление проблем:

Здесь я перечисляю некоторые проблемы, с которыми я столкнулся, и способы их решения.

- Мой ЖК-дисплей светится, но ничего не отображает:

1) На момент написания этой статьи Pi требуется около 2 минут для полной загрузки, поэтому вам нужно дать ему дополнительное время.

2) Вы неправильно подключили ЖК-дисплей. Вы можете проверить, правильно ли вы подключили его, набрав в оболочке следующую команду:

sudo i2cdetect -y 1

Это должно вернуть 2 адреса: 0x27 (= ЖК-дисплей) и 0x29 (= датчик TOF). Если 0x27 не появляется, вам необходимо проверить подключение ЖК-дисплея. Если оба не появляются, вам необходимо проверить проводку контактов SDA и SCL. Например. проверьте, не поменяли ли вы их местами случайно. В худшем случае вы сделали что-то не так с двумя отдельными компонентами или что-то сломалось.

- Мой ЖК-дисплей застревает на «Подключение к Wi-Fi».

Это означает, что ваш пи застрял при попытке подключиться к одной из сетей, к которой вы настроили подключение. Это означает, что либо вы не находитесь в зоне действия точки доступа, либо вы сделали что-то не так при настройке, например. опечатка. В этом случае вернитесь к разделу «Настройка Wi-Fi» и просмотрите его еще раз.

Программное обеспечение также настроено для подключения к домашним сетям с IP-адресом, который начинается с «192.168». Если ваша сеть настроена с другим частным диапазоном, таким как «10.0» или «172.16», вам нужно будет перейти в /home/pi/project/main.py и в функции get_ips () изменить: если «192.168» в ip, если "Ваш частный диапазон здесь" в ip.

- На моем ЖК-дисплее отображается IP, но я не могу подключиться:

1) Убедитесь, что вы подключаетесь к IP-адресу 192.168. X. X, другой IP-адрес 169.254.10.1 всегда настроен для подключения через Ethernet прямо к вашему компьютеру. Это не сработает, если вы не подключены к сети.

2) Убедитесь, что вы находитесь в той же сети, или вы включили переадресацию портов в своей сети, если хотите получить доступ к фидеру извне.

- Шаговый двигатель трясется и не крутится:

Это означает, что вы неправильно подключили входы или выходы двойного H-моста. Попробуйте поменять их местами, пока он не заработает.

Шаг 12: Завершение

Завершение
Завершение
Завершение
Завершение
Завершение
Завершение
Завершение
Завершение

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

Когда вы заходите на веб-сайт, вас должна приветствовать панель управления, на которой вы можете выполнять такие действия, как ручная подача, проверка статуса, просмотр данных и добавление предустановок.

Шаг 13: Дополнительно: расширение Chrome

Дополнительно: расширение Chrome
Дополнительно: расширение Chrome
Дополнительно: расширение Chrome
Дополнительно: расширение Chrome
Дополнительно: расширение Chrome
Дополнительно: расширение Chrome

Если вам не хочется переходить на панель управления и вы просто хотите быстро проверить статус или ленту, вы можете использовать расширение Chrome. Поскольку его нет в официальном интернет-магазине Chrome, вам придется загрузить его, как если бы вы разрабатывали такой пакет.

Сначала убедитесь, что вы загрузили папку Feeder Extension из каталога github:

github.com/VanIseghemThomas/ProjectFeeder

Перейдите по следующему URL-адресу:

хром: // расширения /

Оказавшись там, включите режим разработчика и загрузите папку расширения. Теперь оно должно появиться как расширение.

Если его нет на панели Chrome, вы можете найти его в меню Chrome.

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

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

Если вам нравится возиться с программным обеспечением или по какой-то причине вам нужна новая копия файла, все нужные вам файлы можно найти в репозитории GitHub, который я создал:

Я также предоставил схему EER для базы данных на случай, если вы захотите добавить функции в API. Дамп базы данных также можно найти в репозитории GitHub. Весь внутренний код написан на Python. Flask используется для маршрутизации, а Socket.io - для веб-сокетов.

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