Spisu treści:

Automatyczny dozownik psa: 10 kroków
Automatyczny dozownik psa: 10 kroków

Wideo: Automatyczny dozownik psa: 10 kroków

Wideo: Automatyczny dozownik psa: 10 kroków
Wideo: Najlepsza smycz automatyczna dla psa, która nie zniszczy się po miesiącu 2024, Lipiec
Anonim
Automatyczny dozownik psa
Automatyczny dozownik psa
Automatyczny dozownik psa
Automatyczny dozownik psa
Automatyczny dozownik psa
Automatyczny dozownik psa

Dzięki mojemu projektowi upewniam się, że kiedy zostawiasz psa samego w domu, nigdy nie pozostaje bez jedzenia.

Automatyczny podajnik zostanie „zhakowany” z dozownika płatków kukurydzianych. Dozownik jest zbiornikiem na karmę dla psów, koło na dole będzie połączone z serwomotorem, który automatycznie upuszcza karmę, gdy łóżeczko jest prawie puste i gdy pies jest wystarczająco blisko. Na dnie dozownika dołączona będzie rurka PCV, która ładnie wrzuci karmę dla psa do łóżeczka. Ten projekt będzie zatem miał 3 czujniki, z których 2 nie są objęte klasą, a 1 jest siłownikiem.

Pierwszym czujnikiem jest czytnik RFID. Ten czujnik sprawdza, kiedy pies zbliża się do łóżeczka. RFID zostanie wkomponowane w obrożę psa. Jeśli ten czujnik zauważy, że pies jest wystarczająco blisko, przekaże sygnał do drugiego czujnika. Drugi czujnik to czujnik wagi (nie objęty klasą), który mierzy jedzenie w łóżeczku, jeśli ten czujnik wykryje, że waga jest zbyt niska, wyśle sygnał do serwomotoru, który wrzuci jedzenie do łóżeczka (z potwierdzeniem RFID i czujnikiem wagi). Krótko mówiąc, pies otrzymuje dodatkowe jedzenie tylko wtedy, gdy znajduje się wystarczająco blisko łóżeczka i gdy łóżeczko jest prawie puste. Oczywiście istnieje również zestaw limitów, który możesz ustawić samodzielnie za pośrednictwem serwera WWW; aby pies nie dostawał za dużo jedzenia dziennie. Trzeci czujnik to czujnik światła, który oświetla reflektor LED, gdy wokół łóżeczka jest zbyt ciemno. Siłownik będzie zatem serwomotorem połączonym z kołem w dozowniku.

Ten projekt jest przeznaczony dla psów, możesz go również wykorzystać dla innych małych zwierząt.

Kieszonkowe dzieci

Raspberry Pi 3

Ogniwo obciążnikowe (1KG)

Wzmacniacz tensometryczny HX711

Miska z jedzeniem

Dozownik zbóż

Drewno (+ śruby i śrubokręt)

Czujnik światła

Prowadzony

Czytnik RFID rc522

Przewody połączeniowe

16*2 LCD (wyświetlacz)

Siłownik

Zasilacz 5 V

Rezystor 470 Ohm

Rurka PCV

Tablica chlebowa

Potencjometr

Piła

Papier ścierny

Pistolet silikonowy

Krok 1: Konfiguracja Pi

Konfiguracja pi
Konfiguracja pi

Ustawiać

Aby rozpocząć, musimy najpierw skonfigurować Twoje Pi.

Będziesz potrzebować dwóch rzeczy:

- Win32 Disk Imager z

- Obraz Raspbian OS z

Pobierz plik ZIP i rozpakuj go w dowolne miejsce.

Instalacja

1. Wybierz obraz za pomocą ikony folderu

2. Wybierz swoją kartę SD z listy rozwijanej

3. Kliknij na napisz

Teraz będziemy musieli wykonać dodatkowe majsterkowanie przy niektórych ustawieniach, abyśmy mogli uzyskać dostęp do Pi.

1. Przejdź do katalogu rozruchowego karty SD

2. Otwórz plik „cmdline.txt”

3. Dodaj ip=169.254.10.1 Na końcu długiej linii tekstu oddzielonej spacją (w tej samej linii).

4. Zapisz plik.

5. Utwórz plik o nazwie ssh bez rozszerzenia w tym samym katalogu

Teraz możesz wysunąć kartę SD i włożyć ją do swojego Pi.

Złączony

Teraz będziemy musieli skonfigurować oprogramowanie.

Najpierw podłącz kabel LAN, jeden koniec do komputera stacjonarnego/laptopa, a drugi do Pi.

Teraz uruchom Raspberry Pi.

1. Zainstaluj Putty z

2. Wprowadź 169.254.10.1 w polu IP.

3. Upewnij się, że wybrano SSH, a port 22 jest wypełniony.

4. Kliknij otwórz

5. Wpisz nazwę użytkownika: pi

6. Wpisz hasło: malina

Konfiguracja raspi

Otwórz narzędzie Raspi-config za pomocą:

sudo raspi-config

Włącz następujące opcje w kategorii interfejsów

- 1-przewodowy

- SPI

Wyłącz następujące opcje w kategorii opcji rozruchu

- Ekran powitalny

Na koniec ustaw ustawienie Desktop/CLI w kategorii opcji rozruchu na Desktop Autologin.

Wi-Fi

W przypadku karmnika dla psów musimy mieć połączenie Wi-Fi, więc upewnij się, że masz zamknięte poświadczenia Wi-Fi.

1. Przejdź do trybu roota

sudo-i

2. Wklej tę linię, ale upewnij się, że SSID i hasło są wypełnione

wpa_passphrase "SSID" "HASŁO" >> /etc/wpa_supplicant/wpa_supplicant.conf

3. Wejdź do klienta WPA.

Wpa_cli

4. Wybierz interfejs

Interfejs wlan0

5. Przeładuj konfigurację

Zmień konfigurację

Upewnij się, że jesteś prawidłowo podłączony, wpisując ip a i sprawdzając, czy masz adres IP na interfejsach WLAN0.

Pakiety

Teraz, gdy mamy połączenie z Internetem, będziemy musieli zainstalować kilka pakietów.

Najpierw musimy odświeżyć listę pakietów do najnowszej.

aktualizacja sudo apt

Pyton

Zmusimy Raspbian do używania Pythona 3

update-alternatives – zainstaluj /usr/bin/python python /usr/bin/python2.7 1

update-alternatives -- zainstaluj /usr/bin/python python /usr/bin/python3 2

MariaDB

Wklej następujący wiersz, aby zainstalować bazę danych.

sudo apt zainstaluj serwer mariadb

Wtedy będziemy musieli zabezpieczyć naszą instalację.

mysql_secure_installation

Zapyta nas o aktualne hasło roota, ponieważ go nie mamy, wystarczy nacisnąć enter.

Następnie pyta, czy chcemy wpisać hasło roota w y, ponieważ je chcemy.

W przypadku kolejnych pytań wystarczy wpisać Y.

Następnie stworzymy użytkownika, którego będziemy mogli używać do lustra.

Wejdź do powłoki mysql, wykonując:

- Wznieś się do korzenia

Sudo-i

- Wejdź do powłoki mysql

Mysql

- Zastąp własną nazwą użytkownika i tym samym

nadaj wszystkie uprawnienia *.* do ''@'%' zidentyfikowanego przez '';

- nadaj wszystkie uprawnienia na *.* do ''@'%' oznaczonego '';

Następnie dodamy naszą bazę danych.

Serwer WWW Apache

Aby zainstalować serwer WWW, uruchom poniższy wiersz.

sudo apt zainstaluj apache2 -y

Pakiety Pythona

Zamierzamy zainstalować te pakiety

- Kolba

- Flask-Cors

- Flask-MySQL

- Kolba-Gniazdo IO

- PyMySQL

- Gevent

- Gevent-websocket

-

- Gniazdo Pythona

- Prośby

- Wsaccel

- Ujson

Wykonując

pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL gevent gevent-websocket httplib2 python-socketio żądania wsaccel ujson mfrc522 hx711 Adafruit-CharLCD

Krok 2: Led i czujnik światła

Czujnik Led i światła
Czujnik Led i światła
Czujnik Led i światła
Czujnik Led i światła

Podłączanie led

  1. S -> GPIO15 (rxd0)
  2. + -> 5V
  3. G -> Rezystor 470 omów i GND

Podłączanie czujnika światła

  1. OUT -> GPIO17
  2. VCC -> 3,3 V
  3. GND -> GND

Teraz możemy przetestować, czy nasz czujnik led i światła działa z tym małym skryptem

importuj RPi. GPIO jako GPIO GPIO.setmode(GPIO. BCM)

GPIO.setup(15, GPIO. OUT)

Konfiguracja. GPIO(17, GPIO. IN)

spróbuj: podczas gdy prawda:

jeśli GPIO.input(17) == 0:

GPIO.wyjście(15, GPIO. HIGH)

jeśli GPIO.input(17) == 1:

GPIO.wyjście(15, GPIO. LOW)

z wyjątkiem KeyboardInterrupt: GPIO.cleanup()

Krok 3: Serwosilnik

Siłownik
Siłownik

Podłączanie serwomotoru

  1. OUT -> GPIO18
  2. VCC -> 5V
  3. GND -> GND

Teraz możemy przetestować, czy nasz czujnik led i światła działa z tym małym skryptem

importuj RPi. GPIO jako czas importu GPIO

GPIO.setmode(GPIO. BCM)

GPIO.setup(18, GPIO. OUT)

p = GPIO. PWM(18, 50)

p.start(12.5)

próbować:

podczas gdy prawda:

p. Cykl zmian(12.5)

czas.sen(1)

p. Cykl zmian obowiązków(2.5)

czas.sen(1)

z wyjątkiem KeyboardInterrupt:

p.stop()

GPIO.oczyszczanie()

Krok 4: Czytnik RFID RC522

Czytnik RFID RC522
Czytnik RFID RC522

Podłączanie RFID

  1. RST -> GPIO6
  2. MISO -> GPIO9 (MISO)
  3. MOSI -> GPIO10 (MOSI)
  4. SCK -> GPIO11 (SPISCLK)
  5. SDA -> GPIO8 (SPICS0)
  6. 3,3 V -> 3,3 V
  7. GND -> GND

Teraz możemy przetestować, czy nasz czytnik RFID działa z tym małym skryptem

importuj RPi. GPIO jako GPIO

z mfrc522 importuj SimpleMFRC522

czytnik = SimpleMFRC522()

text = input('Nowe dane:')

print("Teraz umieść swój tag do pisania")

czytelnik.zapis(tekst)

print("Napisane")

Krok 5: Ogniwo obciążnikowe HX711

Ogniwo obciążnikowe HX711
Ogniwo obciążnikowe HX711

Podłączanie ogniwa obciążnikowego do płyty sterownika HX711

  1. Czerwony -> E+
  2. Czarny -> E-
  3. Zielony -> A+
  4. Biały -> A-

Podłączanie ogniwa obciążnikowego

  1. DT->GPIO27
  2. SCK -> GPIO22
  3. CZERWONY -> 3,3V
  4. GND -> GND

Teraz możemy przetestować, czy nasza komórka obciążeniowa działa z tym małym skryptem

import RPi. GPIO jako GPIOimport czasu import sys z klasses. HX711 import HX711

def cleanAndExit(): print("Czyszczenie…") GPIO.cleanup() print("Do widzenia!") sys.exit()

hx = HX711 (22, 27)

hx.set_reading_format ("LSB", "MSB")

hx.set_reference_unit (2167)

hx.reset()

hx.tara()

podczas gdy prawda:

próbować:

val = max(0, int(hx.get_weight(5)))

drukuj(val)

hx.power_down()

hx.power_up()

czas.sen(0.5)

z wyjątkiem (KeyboardInterrupt, SystemExit): cleanAndExit()

Krok 6: LCD (16*2)

LCD (16*2)
LCD (16*2)

Podłączanie LCD

  1. RS -> GPIO21
  2. RW -> GND
  3. E->GPIO20
  4. D0 -> GPIO16
  5. D1 -> GPIO12
  6. D2 -> GPIO6
  7. D3 ->GPIO24
  8. D4 -> GPIO23
  9. D5 -> GPIO26
  10. D6 -> GPIO19
  11. D7 -> GPIO13
  12. VSS -> GND
  13. VDD -> 5V
  14. A -> 5V
  15. K -> GND
  16. V0 -> środkowy pin potencjometru

Teraz możemy przetestować, czy nasz ekran LCD działa z tym małym skryptem

importuj Adafruit_CharLCD jako LCDlcd_rs = 21

lcd_en = 20

lcd_d4 = 23

lcd_d5 = 26

lcd_d6 = 19

lcd_d7 = 13

lcd_kolumny = 16

lcd_rows = 2

lcd = LCD. Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows)

komunikat.lcd('169.254.10.1')

Krok 7: Pełny obwód

Pełny obwód
Pełny obwód

tutaj możesz ponownie sprawdzić, czy cały obwód jest poprawny

Krok 8: Początek sprawy

Początek sprawy
Początek sprawy
Początek sprawy
Początek sprawy
Początek sprawy
Początek sprawy
Początek sprawy
Początek sprawy

Użyłem dozownika płatków kukurydzianych jako zbiornika na karmę dla psów

Podłączyłem koło w dozowniku do mojego serwomotoru

Teraz mogę sterować kołem za pomocą serwomotoru i wyrzucać jedzenie ze zbiornika

Na końcu zbiornika jest podłączona rurka z PVC, która ładnie wrzuca jedzenie do łóżeczka

Używam drewna jako osłonki

Krok 9: Łączenie w całość

Łączenie w całość
Łączenie w całość
Łączenie w całość
Łączenie w całość
Łączenie w całość
Łączenie w całość

Krok 10: Strona internetowa

Strona internetowa
Strona internetowa
Strona internetowa
Strona internetowa
Strona internetowa
Strona internetowa
Strona internetowa
Strona internetowa

Teraz nasza maszyna działa, musimy umieścić witrynę na pi. Teraz wszystko jest gotowe i działa kilka instrukcji dotyczących działania witryny.

Możesz podłączyć pi do Wi-Fi, podłączając kabel HDMI i aktywować w ten sposób

Pierwsza strona to strona główna, tutaj możesz zobaczyć:

  • Informacje o świetle w czasie rzeczywistym
  • Informacje w czasie rzeczywistym o jedzeniu pozostawionym w misce?
  • Możesz upuścić jedzenie
  • Informacje o psie

Druga strona to strona edycji, tutaj możesz edytować:

  • imię twojego zwierzaka
  • wiek twojego zwierzaka
  • waga Twojego zwierzaka
  • zdjęcie twojego zwierzaka

Trzecia strona to strona historii, tutaj możesz zobaczyć:

  • kiedy światło się zapaliło
  • kiedy pies zjadł
  • kiedy jedzenie spadło

Czwarta strona to strona ustawień, tutaj możesz edytować:

  • kiedy jedzenie musi spaść
  • ilość jedzenia do zrzucenia
  • max jedzenie/dzień
  • światło

Zalecana: