Turinys:

Automatinis šunų dozatorius: 10 žingsnių
Automatinis šunų dozatorius: 10 žingsnių

Video: Automatinis šunų dozatorius: 10 žingsnių

Video: Automatinis šunų dozatorius: 10 žingsnių
Video: Automatinis bekontaktis skysto muilo dozatorius Zyle 2024, Lapkritis
Anonim
Automatinis šunų dozatorius
Automatinis šunų dozatorius
Automatinis šunų dozatorius
Automatinis šunų dozatorius
Automatinis šunų dozatorius
Automatinis šunų dozatorius

Vykdydamas savo projektą įsitikinu, kad kai paliksite savo šunį vieną namie, jis niekada nebus be maisto.

Automatinis tiektuvas bus „nulaužtas“iš kukurūzų dribsnių dalytuvo. Dozatorius yra šunų maisto rezervuaras, apačioje esantis ratas bus prijungtas prie servo variklio, kuris automatiškai numeta maistą, kai lovelė beveik tuščia ir kai šuo yra pakankamai arti. Dozatoriaus apačioje bus pritvirtintas PVC vamzdelis, kuris gražiai įmes šunų maistą į lovelę. Todėl šiame projekte bus 3 jutikliai, iš kurių 2 nėra klasėje, o 1 yra pavara.

Pirmasis jutiklis yra RFID skaitytuvas. Šis jutiklis tikrina, kai šuo priartėja prie lovelės. RFID bus įmontuotas į šuns antkaklį. Jei šis jutiklis pastebi, kad šuo yra pakankamai arti, jis perduos signalą antrajam jutikliui. Antrasis jutiklis yra svorio jutiklis (neįtrauktas į klasę), kuris matuoja lovelėje esantį maistą, jei šis jutiklis nustato, kad svoris yra per mažas, jis siunčia signalą servo varikliui, kuris numes maistą į lovelę (su RFID ir svorio jutiklio patvirtinimu). Trumpai tariant, šuo papildomo maisto gauna tik tada, kai yra pakankamai arti lovelės ir kai lovelė beveik tuščia. Žinoma, taip pat yra nustatytas apribojimas, kurį galite nustatyti patys per žiniatinklio serverį; kad šuo per dieną negautų per daug maisto. Trečiasis jutiklis yra šviesos jutiklis, kuris apšviečia LED prožektorių, kai aplink lovelę yra per tamsu. Todėl pavara bus servo variklis, prijungtas prie dozatoriaus rato.

Šis projektas skirtas šunims, taip pat galite jį naudoti kitiems mažiems augintiniams.

Prekės

Raspberry Pi 3

Įkelti ląstelę (1KG)

HX711 apkrovos elementų stiprintuvas

Maisto dubuo

Javų dozatorius

Mediena (+ varžtai ir atsuktuvas)

Šviesos sensorius

Vadovavo

RFID skaitytuvas rc522

Jumperio laidai

16*2 LCD (ekranas)

Servo variklis

5V maitinimo adapteris

Rezistorius 470 omų

PVC vamzdis

Breadbord

Potenciometras

Pjūklas

Šlifavimo popierius

Silicio pistoletas

1 žingsnis: „Pi“sąranka

Pi sąranka
Pi sąranka

Sąranka

Norėdami pradėti, pirmiausia turėsime nustatyti jūsų Pi.

Jums reikės dviejų dalykų:

- „Win32 Disk Imager“iš

- Raspbian OS vaizdas iš

Atsisiųskite ZIP failą ir išskleiskite jį ten, kur norite.

Įrengimas

1. Pasirinkite vaizdą naudodami aplanko piktogramą

2. Išskleidžiamajame meniu pasirinkite SD kortelę

3. Spustelėkite rašyti

Dabar turėsime šiek tiek papildomai atlikti tam tikrus nustatymus, kad galėtume pasiekti „Pi“.

1. Eikite į SD kortelės įkrovos katalogą

2. Atidarykite failą „cmdline.txt“

3. Pridėkite ip = 169.254.10.1 Ilgos teksto eilutės pabaigoje, atskirtą tarpais (toje pačioje eilutėje).

4. Išsaugokite failą.

5. Sukurkite failą pavadinimu ssh be plėtinio tame pačiame kataloge

Dabar galite išimti SD kortelę ir įdėti ją į „Pi“.

Jungiamasi

Dabar turėsime nustatyti programinę įrangą.

Pirmiausia prijunkite LAN kabelį, vieną galą į darbalaukį/nešiojamąjį kompiuterį, o kitą - į „Pi“.

Dabar paleiskite „Raspberry Pi“.

1. Įdiekite „Putty“iš

2. IP laukelyje įveskite 169.254.10.1.

3. Įsitikinkite, kad pasirinktas SSH ir užpildytas 22 prievadas.

4. Spustelėkite atidaryti

5. Įveskite vartotojo vardą: pi

6. Užpildykite slaptažodį: aviečių

Raspi-config

Atidarykite „Raspi-config“įrankį naudodami:

sudo raspi-config

Įjunkite šias sąsajų kategorijos parinktis

- 1 laidas

- SPI

Išjunkite šias parinktis įkrovos parinkčių kategorijoje

- Ekrano užsklanda

Galiausiai nustatykite darbalaukio/CLI nustatymą įkrovos parinkčių kategorijoje į „Desktop Autologin“.

Bevielis internetas

Šunų tiektuvui turime turėti „Wi -Fi“ryšį, todėl įsitikinkite, kad jūsų „Wi -Fi“prisijungimo duomenys yra uždaryti.

1. Eikite į root režimą

sudo -i

2. Įklijuokite šią eilutę, tačiau įsitikinkite, kad abu SSID ir slaptažodis yra užpildyti

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

3. Įveskite WPA klientą.

Wpa_cli

4. Pasirinkite sąsają

Sąsaja wlan0

5. Iš naujo įkelti konfigūraciją

Iš naujo sukonfigūruoti

Įsitikinkite, kad prisijungėte teisingai, įvesdami ip a ir pažiūrėję, ar turite IP WLAN0 sąsajose.

Paketai

Dabar, kai esame prisijungę prie interneto, turėsime įdiegti kai kuriuos paketus.

Pirmiausia turime atnaujinti naujausių paketų sąrašus.

sudo apt atnaujinimas

Python

Mes priversime „Raspbian“naudoti „Python 3“

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

atnaujinimo alternatyvos-įdiegti/usr/bin/python python/usr/bin/python3 2

MariaDB

Norėdami įdiegti duomenų bazę, įklijuokite šią eilutę.

sudo apt įdiegti mariadb-server

Tada turėsime apsaugoti savo diegimą.

mysql_secure_installation

Jis paprašys mūsų dabartinio pagrindinio slaptažodžio, nes jo neturime, tiesiog paspauskite „Enter“.

Toliau klausiama, ar norime įvesti pagrindinio slaptažodžio tipą y, nes mes jo norime.

Norėdami gauti kitų klausimų, tiesiog įveskite Y.

Toliau sukursime naudotoją, kurį galėsime naudoti veidrodžiui.

Įveskite „mysql“apvalkalą atlikdami šiuos veiksmus:

- Pakelkime save į šaknis

Sudo -i

- Įveskite „mysql“apvalkalą

Mysql

- Pakeiskite savo vartotojo vardu ir tą patį su

suteikite visas privilegijas *. * „''@'%', pažymėtam '';

- suteikite visas privilegijas *. * „@“%“, pažymėtam„ “;

Toliau pridėsime savo duomenų bazę.

„Apache“žiniatinklio serveris

Norėdami įdiegti tinklalapio serverį, vykdykite žemiau esančią eilutę.

sudo apt įdiegti apache2 -y

Python paketai

Mes ketiname įdiegti šiuos paketus

- Kolba

- Kolbos-kamšteliai

- Kolba-MySQL

- Kolba-lizdasIO

- „PyMySQL“

- Geventas

- „Gevent-websocket“

-

- „Python-socketio“

- Prašymai

- Wsaccel

- Ujsonas

Darant

pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL gevent gevent-websocket httpsib2 python-socketio užklausos wsaccel ujson mfrc522 hx711 Adafruit-CharLCD

2 žingsnis: LED ir šviesos jutiklis

LED ir šviesos jutiklis
LED ir šviesos jutiklis
LED ir šviesos jutiklis
LED ir šviesos jutiklis

Prijungus LED

  1. S -> GPIO15 (rxd0)
  2. + -> 5V
  3. G -> rezistorius 470 omų ir GND

Šviesos jutiklio prijungimas

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

Dabar galime patikrinti, ar mūsų LED ir šviesos jutiklis veikia su šiuo mažu scenarijumi

importuoti RPi. GPIO kaip GPIO GPIO.setmode (GPIO. BCM)

GPIO nustatymas (15, GPIO. OUT)

GPIO.setup (17, GPIO. IN)

pabandyk: nors tiesa:

jei GPIO.input (17) == 0:

GPIO išėjimas (15, GPIO. HIGH)

jei GPIO.input (17) == 1:

GPIO išėjimas (15, GPIO. LOW)

išskyrus „KeyboardInterrupt“: GPIO.cleanup ()

3 žingsnis: Servo variklis

Servo variklis
Servo variklis

Servo variklio prijungimas

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

Dabar galime patikrinti, ar mūsų LED ir šviesos jutiklis veikia su šiuo mažu scenarijumi

importuoti RPi. GPIO kaip GPIOimportuoti laiką

GPIO.setmode (GPIO. BCM)

GPIO nustatymas (18, GPIO. OUT)

p = GPIO. PWM (18, 50)

p. pradžia (12.5)

bandyti:

nors tiesa:

p. „ChangeDutyCycle“(12.5)

laikas. miegas (1)

p. „ChangeDutyCycle“(2.5)

laikas. miegas (1)

išskyrus klaviatūrąInterrupt:

p.stop ()

GPIO.cleanup ()

4 žingsnis: RFID skaitytuvas RC522

RFID skaitytuvas RC522
RFID skaitytuvas RC522

RFID prijungimas

  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

Dabar galime patikrinti, ar mūsų RFID skaitytuvas veikia su šiuo mažu scenarijumi

importuoti RPi. GPIO kaip GPIO

iš „mfrc522“importuokite „SimpleMFRC522“

skaitytuvas = SimpleMFRC522 ()

text = input ('Nauji duomenys:')

spausdinti („Dabar įdėkite žymą rašyti“)

reader.write (tekstas)

spausdinti („Raštu“)

5 veiksmas: įkelkite langelį HX711

Įkelkite ląstelę HX711
Įkelkite ląstelę HX711

Įkėlimo elemento prijungimas prie HX711 tvarkyklės plokštės

  1. Raudona -> E+
  2. Juoda -> E-
  3. Žalia -> A+
  4. Balta -> A-

„Load cell“prijungimas

  1. DT-> GPIO27
  2. SCK -> GPIO22
  3. RAUDONA -> 3.3V
  4. GND -> GND

Dabar galime patikrinti, ar mūsų apkrovos langelis veikia su šiuo mažu scenarijumi

importuoti RPi. GPIO kaip GPIO importuoti laiko importo sistemą iš klasių. HX711 importuoti HX711

def cleanAndExit (): print ("Valymas …") GPIO.cleanup () print ("Iki!") sys.exit ()

hx = HX711 (22, 27)

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

hx.set_reference_unit (2167)

hx.reset ()

hx.tare ()

nors tiesa:

bandyti:

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

spausdinti (val)

hx.power_down ()

hx.power_up ()

laikas. miegas (0,5)

išskyrus [KeyboardInterrupt, SystemExit]: cleanAndExit ()

6 žingsnis: LCD (16*2)

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

LCD ekrano prijungimas

  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 -> vidurinis potencialo kaištis

Dabar galime patikrinti, ar mūsų LCD ekranas veikia su šiuo mažu scenarijumi

importuokite „Adafruit_CharLCD“kaip 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 žingsnis: visa grandinė

Pilna grandinė
Pilna grandinė

čia galite dar kartą patikrinti, ar visa grandinė yra teisinga

8 žingsnis: bylos pradžia

Bylos pradžia
Bylos pradžia
Bylos pradžia
Bylos pradžia
Bylos pradžia
Bylos pradžia
Bylos pradžia
Bylos pradžia

Aš naudoju kukurūzų dribsnių dozatorių kaip šunų maisto rezervuarą

Dozatoriuje esantį ratą prijungiau prie savo servo variklio

Dabar aš galiu valdyti ratą savo servo varikliu ir išmesti maistą iš rezervuaro

Rezervuaro gale yra prijungtas PVC vamzdelis, kuris gražiai nuleidžia maistą į lovelę

Kaip apvalkalą naudoju medieną

9 žingsnis: surinkite jį kartu

Sujungimas
Sujungimas
Sujungimas
Sujungimas
Sujungimas
Sujungimas

10 žingsnis: svetainė

Tinklalapis
Tinklalapis
Tinklalapis
Tinklalapis
Tinklalapis
Tinklalapis
Tinklalapis
Tinklalapis

Dabar mūsų mašina veikia, mes turime įkelti svetainę į pi. Dabar viskas paruošta ir vykdoma keletas instrukcijų, kaip svetainė veikia.

Galite prijungti „pi“prie „Wi -Fi“prijungę „HDMI“kabelį ir taip suaktyvinti

Pirmasis puslapis yra pagrindinis puslapis, čia galite pamatyti:

  • Informacija apie šviesą realiuoju laiku
  • Informacija realiu laiku apie dubenyje likusį maistą
  • Galite numesti maisto
  • Informacija apie šunį

Antrasis puslapis yra redagavimo puslapis, čia galite redaguoti:

  • savo augintinio vardą
  • jūsų augintinio amžius
  • jūsų augintinio svoris
  • jūsų augintinio nuotrauka

Trečias puslapis yra istorijos puslapis, čia galite pamatyti:

  • kai užsidegė šviesa
  • kai šuo suvalgė
  • kai maistas nukrito

Ketvirtasis puslapis yra nustatymų puslapis, čia galite redaguoti:

  • kai maistas turi nukristi
  • maisto kiekis, kurį reikia numesti
  • maksimalus maistas per dieną
  • šviesa

Rekomenduojamas: