Cuprins:

Dispenser automat pentru câini: 10 pași
Dispenser automat pentru câini: 10 pași

Video: Dispenser automat pentru câini: 10 pași

Video: Dispenser automat pentru câini: 10 pași
Video: Dispenser hrana pisici / caini 2024, Iulie
Anonim
Dispenser automat pentru câini
Dispenser automat pentru câini
Dispenser automat pentru câini
Dispenser automat pentru câini
Dispenser automat pentru câini
Dispenser automat pentru câini

Prin proiectul meu mă asigur că atunci când îți lași câinele singur acasă, el / ea nu va fi niciodată fără mâncare.

Alimentatorul automat va fi „spart” de la un distribuitor de fulgi de porumb. Distribuitorul este rezervorul pentru hrana câinilor, roata din partea de jos va fi conectată la un servomotor care scade automat hrana atunci când pătuțul este aproape gol și când câinele este suficient de aproape. În partea de jos a dozatorului va fi atașat un tub din PVC care va lăsa mâncarea câinelui frumos în pătuț. Prin urmare, acest proiect va avea 3 senzori, dintre care 2 nu sunt incluși în clasă și 1 dintre care este un actuator.

Primul senzor este cititorul RFID. Acest senzor verifică când câinele se apropie de pătuț. RFID va fi încorporat în gulerul câinelui. Dacă acest senzor observă că câinele este suficient de aproape, va transmite un semnal celui de-al doilea senzor. Al doilea senzor este senzorul de greutate (care nu este inclus în clasă) care măsoară alimentele din pătuț, dacă acest senzor detectează că greutatea este prea mică, va trimite un semnal către servomotor care va arunca alimentele în pătuț (cu confirmarea RFID și a senzorului de greutate). Pe scurt, câinele primește hrană suplimentară doar atunci când este suficient de aproape de pătuț și când pătuțul este aproape gol. Desigur, există și o limită setată pe care o puteți seta dvs. prin intermediul serverului web; astfel încât câinele să nu primească prea multă mâncare pe zi. Al treilea senzor este un senzor de lumină care luminează un reflector LED atunci când este prea întuneric în jurul pătuțului. Prin urmare, actuatorul va fi un servomotor conectat la roata din distribuitor.

Acest proiect este destinat câinilor, îl puteți folosi și pentru alte animale de companie mici.

Provizii

Raspberry Pi 3

Celula de încărcare (1 kg)

Amplificator cu celule de încărcare HX711

Bol pentru alimente

Distribuitor de cereale

Lemn (+ șuruburi și șurubelniță)

Senzor de lumina

LED

Cititor RFID rc522

Sârme de jumper

16 * 2 LCD (afișaj)

Servo motor

Adaptor de alimentare 5V

Rezistor 470 Ohm

Tub din PVC

Breadbord

Potențiometru

A văzut

Hârtie de șlefuit

Pistol de siliciu

Pasul 1: Configurare Pi

Configurare Pi
Configurare Pi

Înființat

Pentru a începe, va trebui mai întâi să vă configurați Pi.

Veți avea nevoie de două lucruri:

- Win32 Disk Imager de la

- Imagine Raspbian OS de la

Descărcați fișierul ZIP și extrageți-l oriunde doriți.

Instalatia

1. Selectați imaginea dvs. prin pictograma dosar

2. Selectați cardul SD prin meniul derulant

3. Faceți clic pe scrie

Acum va trebui să facem câteva modificări suplimentare cu unele setări, astfel încât să putem accesa Pi.

1. Accesați directorul de pornire al cardului SD

2. Deschideți fișierul „cmdline.txt”

3. Adăugați ip = 169.254.10.1 La sfârșitul liniei lungi de text separate cu un spațiu (pe aceeași linie).

4. Salvați fișierul.

5. Creați un fișier numit ssh fără extensie în același director

Acum puteți scoate cardul SD și îl puteți pune în Pi.

Conectarea

Acum va trebui să configurăm software-ul.

Conectați mai întâi un cablu LAN, un capăt în desktop / laptop și celălalt în Pi.

Acum porniți Raspberry Pi.

1. Instalați Putty de pe

2. Introduceți 169.254.10.1 în caseta IP.

3. Asigurați-vă că este selectat SSH și că portul 22 este completat.

4. Faceți clic pe Deschidere

5. Completați numele de utilizator: pi

6. Completați parola: zmeură

Raspi-config

Deschideți utilitarul Raspi-config utilizând:

sudo raspi-config

Activați următoarele opțiuni în categoria interfețe

- 1 fir

- SPI

Dezactivați următoarele opțiuni din categoria opțiuni de încărcare

- Ecran splash

În cele din urmă, setați setarea Desktop / CLI din categoria de opțiuni de încărcare la Desktop Autologin.

Wifi

Pentru alimentatorul de câini trebuie să avem o conexiune wifi, deci asigurați-vă că aveți acreditările dvs. wifi aproape.

1. Accesați modul root

sudo -i

2. Lipiți această linie, dar asigurați-vă că SSID și parola sunt completate ambele

wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf

3. Introduceți clientul WPA.

Wpa_cli

4. Selectați interfața

Interfață wlan0

5. Reîncărcați config

Reconfigurați

Asigurați-vă că sunteți conectat corect tastând ip a și verificând dacă aveți un IP pe interfețele WLAN0.

Pachete

Acum că suntem conectați la internet va trebui să instalăm câteva pachete.

Mai întâi va trebui să reîmprospătăm listele de pachete pentru cea mai recentă.

actualizare sudo apt

Piton

Vom forța Raspbian să folosească Python 3

update-alternatives --install / usr / bin / python python /usr/bin/python2.7 1

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

MariaDB

Lipiți următoarea linie pentru a instala baza de date.

sudo apt instalați mariadb-server

Apoi va trebui să ne asigurăm instalarea.

mysql_secure_installation

Ne va cere parola curentă de root, deoarece nu avem una, doar apăsați Enter.

Apoi se întreabă dacă vrem o parolă de tip root în y, deoarece vrem una.

Pentru următoarele întrebări, introduceți doar Y.

Apoi vom crea un utilizator pe care îl vom putea folosi pentru oglindă.

Introduceți shell-ul mysql făcând:

- Ridică-ne la rădăcină

Sudo -i

- Introduceți shell-ul mysql

Mysql

- Înlocuiți cu propriul dvs. nume de utilizator și la fel cu

acordă toate privilegiile pe *. * către '' @ '%' identificat prin '';

- acordați toate privilegiile pe *. * către '' @ '%' identificat prin '';

În continuare vom adăuga baza noastră de date.

Apache Webserver

Pentru a instala Webserver rulați linia de mai jos.

sudo apt instalează apache2 -y

Pachete Python

Vom instala aceste pachete

- Balon

- Flask-Cors

- Flask-MySQL

- Flask-SocketIO

- PyMySQL

- Gevent

- Gevent-websocket

-

- Python-socketio

- Cereri

- Wsaccel

- Ujson

Facand

pip instalare Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL gevent gevent-websocket httplib2 python-socketio requests wsaccel ujson mfrc522 hx711 Adafruit-CharLCD

Pasul 2: Led și senzor de lumină

Led și senzor de lumină
Led și senzor de lumină
Led și senzor de lumină
Led și senzor de lumină

Cuplând ledul

  1. S -> GPIO15 (rxd0)
  2. + -> 5V
  3. G -> Rezistor 470 ohm și GND

Conectarea senzorului de lumină

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

Acum putem testa dacă senzorul nostru de lumină și led funcționează cu acest mic script

import RPi. GPIO ca GPIO GPIO.setmode (GPIO. BCM)

GPIO.setup (15, GPIO. OUT)

GPIO.setup (17, GPIO. IN)

încercați: în timp ce este adevărat:

dacă GPIO.input (17) == 0:

GPIO.output (15, GPIO. HIGH)

dacă GPIO.input (17) == 1:

GPIO.output (15, GPIO. LOW)

cu excepția KeyboardInterrupt: GPIO.cleanup ()

Pasul 3: Servomotor

Servo motor
Servo motor

Conectarea servomotorului

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

Acum putem testa dacă senzorul nostru de lumină și led funcționează cu acest mic script

import RPi. GPIO ca GPIOimport timp

GPIO.setmode (GPIO. BCM)

GPIO.setup (18, GPIO. OUT)

p = GPIO. PWM (18, 50)

p.start (12.5)

încerca:

în timp ce este adevărat:

p. ChangeDutyCycle (12.5)

time.sleep (1)

p. ChangeDutyCycle (2.5)

time.sleep (1)

cu excepția KeyboardInterrupt:

p.stop ()

GPIO.cleanup ()

Pasul 4: RFID Reader RC522

Cititor RFID RC522
Cititor RFID RC522

Conectarea RFID

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

Acum putem testa dacă cititorul nostru RFID funcționează cu acest mic script

importați RPi. GPIO ca GPIO

din mfrc522 import SimpleMFRC522

cititor = SimpleMFRC522 ()

text = input („Date noi:”)

print („Plasați acum eticheta pentru a scrie”)

reader.write (text)

print („Scris”)

Pasul 5: Încărcați celula HX711

Încărcați celula HX711
Încărcați celula HX711

Conectarea celulei de încărcare la placa driverului HX711

  1. Roșu -> E +
  2. Negru -> E-
  3. Verde -> A +
  4. Alb -> A-

Conectarea celulei de încărcare

  1. DT-> GPIO27
  2. SCK -> GPIO22
  3. ROȘU -> 3.3V
  4. GND -> GND

Acum putem testa dacă celula noastră de încărcare funcționează cu acest mic script

import RPi. GPIO ca GPIOimport timp import sisteme din klasses. HX711 import HX711

def cleanAndExit (): print ("Curățare …") GPIO.cleanup () print ("Bye!") sys.exit ()

hx = HX711 (22, 27)

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

hx.set_reference_unit (2167)

hx.reset ()

hx.tare ()

în timp ce este adevărat:

încerca:

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

print (val)

hx.power_down ()

hx.power_up ()

time.sleep (0,5)

cu excepția (KeyboardInterrupt, SystemExit): cleanAndExit ()

Pasul 6: LCD (16 * 2)

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

Conectarea ecranului 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 -> pin potentio mijloc

Acum putem testa dacă ecranul nostru LCD funcționează cu acest mic script

importați Adafruit_CharLCD ca 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”)

Pasul 7: Circuit complet

Circuit complet
Circuit complet

aici puteți verifica din nou dacă întregul circuit este corect

Pasul 8: Începerea cazului

Începutul cazului
Începutul cazului
Începutul cazului
Începutul cazului
Începutul cazului
Începutul cazului
Începutul cazului
Începutul cazului

Am folosit un distribuitor de fulgi de porumb ca rezervor pentru hrana pentru câini

Am conectat roata din dozator la servomotorul meu

Acum pot controla roata cu servomotorul meu și pot arunca alimente din rezervor

La capătul rezervorului este conectat un tub din PVC care aruncă mâncarea frumos în pătuț

Folosesc lemnul ca înveliș

Pasul 9: Pune-l împreună

Punând laolaltă
Punând laolaltă
Punând laolaltă
Punând laolaltă
Punând laolaltă
Punând laolaltă

Pasul 10: site-ul web

Site-ul
Site-ul
Site-ul
Site-ul
Site-ul
Site-ul
Site-ul
Site-ul

Acum mașina noastră funcționează, trebuie să punem site-ul web pe pi. Acum totul funcționează și rulează câteva instrucțiuni despre modul în care funcționează site-ul.

Puteți conecta sunteți pi la wifi conectând un cablu HDMI și activați acest mod

Prima pagină este pagina principală, aici puteți vedea:

  • Informații în timp real despre lumină
  • Informații în timp real despre mâncarea rămasă în castron
  • Puteți scăpa de mâncare
  • Informații despre câine

A doua pagină este pagina de editare, aici puteți edita:

  • numele animalului tău de companie
  • vârsta animalului tău de companie
  • greutatea animalului tău de companie
  • fotografia animalului tău de companie

A treia pagină este pagina istoriei, aici puteți vedea:

  • când lumina s-a aprins
  • când câinele a mâncat
  • când mâncarea a scăzut

A patra pagină este pagina de setări, aici puteți edita:

  • când mâncarea trebuie să scadă
  • cantitatea de alimente care trebuie scăzută
  • hrana maxima / zi
  • lumina

Recomandat: