Turinys:
- Prekės
- 1 žingsnis: „Pi“sąranka
- 2 žingsnis: LED ir šviesos jutiklis
- 3 žingsnis: Servo variklis
- 4 žingsnis: RFID skaitytuvas RC522
- 5 veiksmas: įkelkite langelį HX711
- 6 žingsnis: LCD (16*2)
- 7 žingsnis: visa grandinė
- 8 žingsnis: bylos pradžia
- 9 žingsnis: surinkite jį kartu
- 10 žingsnis: svetainė
Video: Automatinis šunų dozatorius: 10 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
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
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
Prijungus LED
- S -> GPIO15 (rxd0)
- + -> 5V
- G -> rezistorius 470 omų ir GND
Šviesos jutiklio prijungimas
- OUT -> GPIO17
- VCC -> 3.3V
- 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 variklio prijungimas
- OUT -> GPIO18
- VCC -> 5V
- 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 prijungimas
- RST -> GPIO6
- MISO -> GPIO9 (MISO)
- MOSI -> GPIO10 (MOSI)
- SCK -> GPIO11 (SPISCLK)
- SDA -> GPIO8 (SPICS0)
- 3.3V -> 3.3V
- 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
Įkėlimo elemento prijungimas prie HX711 tvarkyklės plokštės
- Raudona -> E+
- Juoda -> E-
- Žalia -> A+
- Balta -> A-
„Load cell“prijungimas
- DT-> GPIO27
- SCK -> GPIO22
- RAUDONA -> 3.3V
- 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 ekrano prijungimas
- 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 -> 5V
- A -> 5V
- K -> GND
- 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ė
čia galite dar kartą patikrinti, ar visa grandinė yra teisinga
8 žingsnis: 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
10 žingsnis: svetainė
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:
„Pasidaryk pats“automatinis rankų dezinfekavimo priemonės dozatorius: 6 žingsniai
„Pasidaryk pats“automatinis rankų dezinfekavimo priemonės dozatorius: Šiame projekte mes sukursime automatinį rankų dezinfekavimo priemonės dozatorių. Šiame projekte bus naudojamas „Arduino“, ultragarso jutiklis, vandens siurblys ir rankų dezinfekavimo priemonė. Ultragarso jutiklis naudojamas patikrinti, ar rankos yra žemiau dezinfekavimo aparato išleidimo angos
Šunų šunų dresuotojas: 5 žingsniai
Šunų šunų dresuotojas: Pasak AKC, (https://www.akc.org/expert-advice/nutrition/how-many-times-a-day-should-a-dog-eat/) valgio porcijos dydis pašarai yra būtini šunims, o dėžutės dydis taip pat apribojo pašarų, kuriuos šuo galėjo suvalgyti per dieną, skaičių: „Veterinarija
Automatinis kukurūzų dribsnių dozatorius (cerematinis): 14 žingsnių
Automatinis kukurūzų dribsnių dozatorius (Cerematic): Mano idėja: Paskutiniame pirmųjų metų projekte man buvo leista parengti projektą, kuris man patiko. Man pasirinkimas buvo padarytas greitai. Man atrodė originali idėja automatizuoti javų dozatorių, kad galėtumėte valdyti mašiną nuotoliniu būdu. Po šiek tiek r
Automatinis tablečių dozatorius: 10 žingsnių (su nuotraukomis)
Automatinis piliulių dozatorius: esame pirmieji Briuselio inžinerijos fakulteto elektrotechnikos inžinerijos magistrantai (trumpai „Bruface“). Tai yra dviejų universitetų, esančių Briuselio centre, iniciatyva: Université Libre de Bruxelles (UL
„Arduino“varomas šunų maisto dozatorius: 10 žingsnių (su nuotraukomis)
„Arduino“varomas šunų maisto dozatorius: jei jūsų namas yra panašus į mano, kai kurios užduotys gali būti pamirštamos skubant. Neleisk, kad tavo augintinis būtų pamirštas! Šis automatinis šunų ėdalo dalytuvas naudoja „Arduino“, kad tinkamu laiku pristatytų reikiamą kiekį trupinių. Visi pa