Оглавление:
- Запасы
- Шаг 1: Настройка Pi
- Шаг 2: светодиод и датчик освещенности
- Шаг 3: серводвигатель
- Шаг 4: RFID-считыватель RC522
- Шаг 5: тензодатчик HX711
- Шаг 6: ЖК-дисплей (16 * 2)
- Шаг 7: Полный контур
- Шаг 8: начало дела
- Шаг 9: Собираем все вместе
- Шаг 10: Веб-сайт
Видео: Автоматический дозатор для собак: 10 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
В моем проекте я убеждаюсь, что когда вы оставляете свою собаку дома одну, она никогда не останется без еды.
Автоподатчик будет «взломан» из дозатора кукурузных хлопьев. Диспенсер - это резервуар для собачьего корма, колесо внизу будет подключено к серводвигателю, который автоматически сбрасывает корм, когда кроватка почти пуста и собака находится достаточно близко. Внизу диспенсера будет прикреплена трубка из ПВХ, которая будет аккуратно опускать корм для собак в кроватку. Таким образом, в этом проекте будет 3 датчика, 2 из которых не относятся к классу, а 1 - исполнительный механизм.
Первый датчик - это считыватель RFID. Этот датчик проверяет, когда собака приближается к кроватке. RFID будет встроен в ошейник собаки. Если этот датчик замечает, что собака достаточно близко, он передает сигнал второму датчику. Второй датчик - это датчик веса (не входит в класс), который измеряет продукты в кроватке. Если этот датчик обнаруживает, что вес слишком мал, он отправляет сигнал на серводвигатель, который бросает пищу в кроватку (с подтверждением RFID и датчика веса). Короче говоря, собака получает дополнительную пищу только тогда, когда она находится достаточно близко к кроватке и когда кроватка почти пуста. Конечно, есть также набор ограничений, который вы можете установить самостоятельно через веб-сервер; чтобы собака не получала слишком много еды в день. Третий датчик - это датчик освещенности, который включает светодиодный прожектор, когда вокруг кроватки слишком темно. Таким образом, исполнительным механизмом будет серводвигатель, соединенный с колесом дозатора.
Этот проект предназначен для собак, вы также можете использовать его для других мелких домашних животных.
Запасы
Малина Pi 3
Весоизмерительная ячейка (1 кг)
Усилитель тензодатчика HX711
Миска для еды
Диспенсер для зерновых
Дерево (+ шурупы и отвертка)
Световой датчик
Вел
Считыватель RFID rc522
Провода перемычки
ЖК-дисплей 16 * 2 (дисплей)
Серводвигатель
Адаптер питания 5В
Резистор 470 Ом
ПВХ трубка
Breadbord
Потенциометр
Пила
Наждачная бумага
Кремниевый пистолет
Шаг 1: Настройка Pi
Настраивать
Для начала нам нужно настроить ваш Pi.
Вам понадобятся две вещи:
- Win32 Disk Imager с
- Образ ОС Raspbian с
Загрузите ZIP-файл и извлеките его куда хотите.
Установка
1. Выберите изображение с помощью значка папки.
2. Выберите SD-карту в раскрывающемся списке.
3. Нажмите "написать"
Теперь нам нужно немного поработать с некоторыми настройками, чтобы мы могли получить доступ к Pi.
1. Перейдите в загрузочный каталог SD-карты.
2. Откройте файл «cmdline.txt».
3. Добавьте ip = 169.254.10.1 в конец длинной строки текста, разделенной пробелом (в той же строке).
4. Сохраните файл.
5. Создайте файл с именем ssh без расширения в том же каталоге.
Теперь вы можете извлечь SD-карту и вставить ее в свой Pi.
Подключение
Теперь нам нужно будет настроить программное обеспечение.
Сначала подключите кабель LAN, один конец к настольному компьютеру / ноутбуку, а другой к Pi.
Теперь загрузите Raspberry Pi.
1. Установите Putty с
2. Введите 169.254.10.1 в поле IP.
3. Убедитесь, что выбран SSH и заполнен порт 22.
4. Нажмите "Открыть".
5. Введите имя пользователя: pi.
6. Введите пароль: raspberry
Распи-конфиг
Откройте утилиту Raspi-config, используя:
sudo raspi-config
Включите следующие параметры в категории интерфейсов
- 1-проводной
- SPI
Отключите следующие параметры в категории параметров загрузки
- Заставка
Наконец, установите параметр Desktop / CLI в категории параметров загрузки на Desktop Autologin.
Вай фай
Для кормушки для собак нам необходимо подключение к Wi-Fi, поэтому убедитесь, что у вас есть свои учетные данные Wi-Fi.
1. Войдите в корневой режим
судо -i
2. Вставьте эту строку, но убедитесь, что указаны SSID и пароль.
wpa_passphrase "SSID" "ПАРОЛЬ" >> /etc/wpa_supplicant/wpa_supplicant.conf
3. Войдите в клиент WPA.
Wpa_cli
4. Выберите интерфейс.
Интерфейс wlan0
5. Перезагрузите конфиг.
Переконфигурировать
Убедитесь, что вы подключены правильно, набрав ip a и проверив, есть ли у вас IP на интерфейсах WLAN0.
Пакеты
Теперь, когда мы подключены к Интернету, нам нужно установить несколько пакетов.
Сначала нам нужно обновить списки пакетов до последней версии.
sudo apt update
Python
Мы заставим Raspbian использовать Python 3
альтернативы обновления --install / usr / bin / python python /usr/bin/python2.7 1
альтернативы обновления --install / usr / bin / python python / usr / bin / python3 2
MariaDB
Вставьте следующую строку, чтобы установить базу данных.
sudo apt установить mariadb-server
Тогда нам нужно будет защитить нашу установку.
mysql_secure_installation
Он запросит у нас текущий пароль root, так как у нас его нет, просто нажмите Enter.
Затем он спрашивает, хотим ли мы ввести пароль root в y, поскольку он нам нужен.
Для следующих вопросов просто введите Y.
Далее мы создадим пользователя, которого сможем использовать для зеркала.
Войдите в оболочку mysql, выполнив:
- Возвышаемся до корней
Судо -и
- Войдите в оболочку mysql
MySQL
- Замените на свое собственное имя пользователя и то же самое на
предоставить все привилегии для *. * '' @ '%', идентифицированному '';
- предоставить все привилегии на *. * '' @ '%', идентифицированному '';
Далее мы добавим нашу базу данных.
Веб-сервер Apache
Чтобы установить веб-сервер, выполните следующую строку.
sudo apt install apache2 -y
Пакеты Python
Мы собираемся установить эти пакеты
- Фляга
- Фляга-Корс
- Flask-MySQL
- Flask-SocketIO
- PyMySQL
- Гевент
- Gevent-websocket
-
- Python-socketio
- Запросы
- Wsaccel
- Уйсон
При выполнении
pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL gevent gevent-websocket httplib2 python-socketio запросы wsaccel ujson mfrc522 hx711 Adafruit-CharLCD
Шаг 2: светодиод и датчик освещенности
Подключение светодиода
- S -> GPIO15 (rxd0)
- + -> 5 В
- G -> Резистор 470 Ом и GND
Подключение светового датчика
- ВЫХОД -> GPIO17
- VCC -> 3,3 В
- GND -> GND
Теперь мы можем проверить, работает ли наш светодиод и датчик света с помощью этого небольшого скрипта
импортировать RPi. GPIO как GPIO GPIO.setmode (GPIO. BCM)
GPIO.setup (15, GPIO. OUT)
GPIO.setup (17, GPIO. IN)
попробуйте: в то время как True:
если GPIO.input (17) == 0:
GPIO.output (15, GPIO. HIGH)
если GPIO.input (17) == 1:
GPIO.output (15, GPIO. LOW)
кроме KeyboardInterrupt: GPIO.cleanup ()
Шаг 3: серводвигатель
Подключение серводвигателя
- ВЫХОД -> GPIO18
- VCC -> 5 В
- GND -> GND
Теперь мы можем проверить, работает ли наш светодиод и датчик света с помощью этого небольшого скрипта.
импортировать RPi. GPIO как GPIO импортировать время
GPIO.setmode (GPIO. BCM)
GPIO.setup (18, GPIO. OUT)
р = GPIO. PWM (18, 50)
p.start (12,5)
пытаться:
в то время как True:
p. ChangeDutyCycle (12.5)
время сна (1)
p. ChangeDutyCycle (2.5)
время сна (1)
кроме KeyboardInterrupt:
p.stop ()
GPIO.cleanup ()
Шаг 4: RFID-считыватель RC522
Подключение RFID
- RST -> GPIO6
- MISO -> GPIO9 (MISO)
- MOSI -> GPIO10 (MOSI)
- SCK -> GPIO11 (SPISCLK)
- SDA -> GPIO8 (SPICS0)
- 3,3 В -> 3,3 В
- GND -> GND
Теперь мы можем проверить, работает ли наш RFID-ридер с этим маленьким скриптом.
импортировать RPi. GPIO как GPIO
из mfrc522 импорт SimpleMFRC522
reader = SimpleMFRC522 ()
text = input ('Новые данные:')
print ("Теперь поместите свой тег, чтобы написать")
reader.write (текст)
print ("Написано")
Шаг 5: тензодатчик HX711
Подключение тензодатчика к плате драйвера HX711
- Красный -> E +
- Черный -> E-
- Зеленый -> A +
- Белый -> A-
Подключение тензодатчика
- DT-> GPIO27
- SCK -> GPIO22
- КРАСНЫЙ -> 3,3 В
- GND -> GND
Теперь мы можем проверить, работает ли наш тензодатчик с помощью этого небольшого скрипта.
импортировать RPi. GPIO как GPIO импортировать время импорта sys из классов. HX711 импортировать HX711
def cleanAndExit (): print («Очистка…») GPIO.cleanup () print («Пока!») sys.exit ()
hx = HX711 (22, 27)
hx.set_reading_format ("LSB", "MSB")
hx.set_reference_unit (2167)
hx.reset ()
hx.tare ()
в то время как True:
пытаться:
val = max (0, int (hx.get_weight (5)))
печать (val)
hx.power_down ()
hx.power_up ()
time.sleep (0,5)
кроме (KeyboardInterrupt, SystemExit): cleanAndExit ()
Шаг 6: ЖК-дисплей (16 * 2)
Подключение ЖК-дисплея
- RS -> GPIO21
- RW -> GND
- E-> GPIO20
- D0 -> GPIO16
- D1 -> GPIO12
- D2 -> GPIO6
- D3 -> GPIO24
- D4 -> GPIO23
- D5 -> GPIO26
- D6 -> GPIO19
- D7 -> GPIO13
- VSS -> GND
- VDD -> 5 В
- А -> 5 В
- K -> GND
- V0 -> средний вывод потенциометра
Теперь мы можем проверить, работает ли наш ЖК-экран с помощью этого небольшого скрипта.
импортировать Adafruit_CharLCD как LCDlcd_rs = 21
lcd_en = 20
lcd_d4 = 23
lcd_d5 = 26
lcd_d6 = 19
lcd_d7 = 13
lcd_columns = 16
lcd_rows = 2
lcd = LCD. Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows)
lcd.message ('169.254.10.1')
Шаг 7: Полный контур
здесь вы можете еще раз проверить правильность всей схемы
Шаг 8: начало дела
Я использовал дозатор кукурузных хлопьев в качестве резервуара для собачьего корма.
Я подключил колесо в дозаторе к сервомотору.
Теперь я могу управлять колесом с помощью серводвигателя и сбрасывать еду из резервуара.
В конце резервуара подсоединена трубка из ПВХ, которая аккуратно опускает пищу в кроватку.
Я использую дерево как опалубку
Шаг 9: Собираем все вместе
Шаг 10: Веб-сайт
Теперь наша машина работает, нам нужно установить веб-сайт на пи. Теперь все готово и выполняется несколько инструкций о том, как работает сайт.
Вы можете подключить свой пи к Wi-Fi, подключив кабель hdmi и активировать таким образом
Первая страница - это домашняя страница, здесь вы можете увидеть:
- Информация о свете в реальном времени
- Информация в реальном времени о еде, оставшейся в миске
- Вы можете бросить еду
- Информация о собаке
Вторая страница - это страница редактирования, здесь вы можете редактировать:
- имя вашего питомца
- возраст вашего питомца
- вес вашего питомца
- фото вашего питомца
Третья страница - это страница истории, здесь вы можете увидеть:
- когда свет загорелся
- когда собака поела
- когда еда упала
Четвертая страница - это страница настроек, здесь вы можете редактировать:
- когда еда должна упасть
- количество еды, чтобы сбросить
- максимальная еда / день
- свет
Рекомендуемые:
АВТОМАТИЧЕСКИЙ ДОЗАТОР ДЛЯ ЖИВОТНЫХ: 9 шагов
АВТОМАТИЧЕСКИЙ ДОЗАТОР КОРМА ДЛЯ ЖИВОТНЫХ: Вы когда-нибудь чувствовали, что тратите слишком много времени на кормление своего питомца? Вам когда-нибудь приходилось звать кого-нибудь, чтобы покормить ваших питомцев, пока вы были в отпуске? Я попытался исправить обе эти проблемы в моем текущем школьном проекте: Petfeed
Автоматический дозатор дезинфицирующего средства для рук: 3 шага
Автоматический дозатор дезинфицирующего средства для рук: Этот автоматический дозатор дезинфицирующего средства для рук был разработан как относительно недорогой вариант, который легко собрать. Большинство необходимых предметов можно приобрести у местных розничных продавцов оборудования и электроники. Есть возможность распечатать
Автоматический дозатор воды для отслеживания расхода: 6 шагов
Автоматический дозатор воды для отслеживания потребления: Привет! Пару месяцев назад я был в своей комнате и думал о том, какой проект я хотел бы сделать для школьного задания. Я хотел сделать что-то, что подошло бы мне и принесло бы пользу в будущем. Внезапно в комнату вошла мама и
Автоматический дозатор корма для кошек: 7 шагов (с изображениями)
Автоматический дозатор корма для кошек: если вы не контролируете количество корма, которое ест ваша кошка, это может привести к перееданию и проблемам с лишним весом. Это особенно актуально, если вы находитесь вдали от дома и оставляете кошке лишнюю еду, чтобы она могла есть по ее собственному графику. В других случаях вы можете
Автоматический метатель мяча для собак: 6 шагов
Автоматический метатель мяча для собак: у нас обоих есть собаки, и, как всем известно, собаки могут проводить весь день, играя в мяч. Вот почему мы придумали способ построить автоматический метатель мячей