Բովանդակություն:

Շների ավտոմատ դիսպենսեր `10 քայլ
Շների ավտոմատ դիսպենսեր `10 քայլ

Video: Շների ավտոմատ դիսպենսեր `10 քայլ

Video: Շների ավտոմատ դիսպենսեր `10 քայլ
Video: Aufgebraucht Juni & Juli 2023 2024, Հուլիսի
Anonim
Շների ավտոմատ դիսպենսեր
Շների ավտոմատ դիսպենսեր
Շների ավտոմատ դիսպենսեր
Շների ավտոմատ դիսպենսեր
Շների ավտոմատ դիսպենսեր
Շների ավտոմատ դիսպենսեր

Իմ նախագծով ես համոզվում եմ, որ երբ ձեր շանը մենակ եք թողնում տանը, նա երբեք առանց սննդի չի մնում:

Ավտոմատ սնուցողը «կոտրվելու է» եգիպտացորենի փաթիլների դիսպենսերից: Դիսպենսերը շների սննդի ջրամբարն է, ներքևի անիվը միացված կլինի սերվո շարժիչին, որն ինքնաբերաբար կաթեցնում է սնունդը, երբ օրորոցը գրեթե դատարկ է, և երբ շունը բավական մոտ է: Դիսպենսերների ներքևում կցված կլինի PVC խողովակ, որը շան սնունդը գեղեցիկ կթափի օրորոցի մեջ: Այս նախագիծը, հետևաբար, կունենա 3 տվիչ, որոնցից 2 -ը ներառված չեն դասարանում, իսկ 1 -ը `շարժիչ:

Առաջին սենսորը RFID ընթերցողն է: Այս սենսորը ստուգում է, երբ շունը մոտենում է օրորոցին: RFID- ը կներառվի շան վզիկի մեջ: Եթե այս սենսորը նկատի, որ շունը բավական մոտ է, ապա ազդանշան կփոխանցի երկրորդ սենսորին: Երկրորդ սենսորը քաշի սենսորն է (դասարանում ընդգրկված չէ), որը չափում է օրորոցի սնունդը, եթե այս սենսորը հայտնաբերի, որ քաշը չափազանց ցածր է, այն ազդանշան կուղարկի սերվո շարժիչին, որը սնունդը կթափի օրորոցի մեջ (RFID- ի և քաշի տվիչի հաստատմամբ): Մի խոսքով, շունը լրացուցիչ սնունդ է ստանում միայն այն դեպքում, երբ նա բավականաչափ մոտ է օրորոցին և երբ օրորոցը գրեթե դատարկ է: Իհարկե, կա նաև սահմանափակում, որը կարող եք ինքներդ սահմանել վեբ սերվերի միջոցով. որպեսզի շունը օրական շատ սնունդ չստանա: Երրորդ սենսորը լույսի ցուցիչ է, որը լուսավորում է լուսադիոդային լուսարձակը, երբ օրորոցի շուրջը շատ մութ է: Ուստի շարժիչը կլինի սերվո շարժիչ, որը միացված է դիսպենսերների անիվին:

Այս նախագիծը նախատեսված է շների համար, կարող եք օգտագործել նաև այլ փոքր ընտանի կենդանիների համար:

Պարագաներ

Ազնվամորի Պի 3

Բեռնախցիկ (1 կգ)

HX711 բեռնախցիկի ուժեղացուցիչ

Սննդի աման

Հացահատիկի դիսպենսեր

Փայտ (+ պտուտակներ և պտուտակահան)

Լույսի ցուցիչ

Գլխավորած

RFID ընթերցող rc522

Jumper լարերը

16*2 LCD (ցուցադրում)

Սերվո շարժիչ

5V հոսանքի ադապտեր

Դիմադրություն 470 Օմ

PVC խողովակ

Breadbord

Պոտենցիոմետր

Տեսավ

Հղկող թուղթ

Սիլիկոնային ատրճանակ

Քայլ 1: Pi- ի կարգավորում

Pi կարգաբերում
Pi կարգաբերում

Կարգավորում

Սկսելու համար մենք նախ պետք է կազմաձևենք ձեր Pi- ն:

Ձեզ անհրաժեշտ կլինի երկու բան.

- Win32 Disk Imager ՝

- Raspbian OS- ի պատկերը ՝ https://www.raspberrypi.org/downloads/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. Տեղադրեք tyեփամածիկ https://www.putty.org/ կայքից

2. IP վանդակում մուտքագրեք 169.254.10.1:

3. Համոզվեք, որ SSH- ն ընտրված է, և 22 պորտը լրացված է:

4. Սեղմեք բաց

5. Լրացրեք օգտվողի անունը `pi

6. Լրացրեք գաղտնաբառը `ազնվամորի

Raspi-config

Բացեք Raspi-config ծրագիրը ՝ օգտագործելով.

sudo raspi-config

Միացրեք միջերեսերի կատեգորիայի հետևյալ ընտրանքները

- 1-մետաղալար

- SPI

Անջատեք հետևյալ ընտրանքները բեռնման ընտրանքների կատեգորիայում

- Ջուր շաղ տալ էկրանին

Վերջապես, բեռնման ընտրանքների կատեգորիայի Desktop/CLI կարգավորումը սահմանեք Desktop Autologin:

WiFi

Շների սնուցողի համար մենք պետք է ունենանք wifi կապ, այնպես որ համոզվեք, որ ձեր WiFi հավատարմագրերը մոտ են:

1. Գնացեք արմատային ռեժիմ

sudo -i

2. Տեղադրեք այս տողը, բայց համոզվեք, որ SSID- ը և գաղտնաբառը երկուսն էլ լրացված են

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

3. Մուտքագրեք WPA հաճախորդը:

Wpa_cli

4. Ընտրեք ինտերֆեյսը

Ինտերֆեյս wlan0

5. Վերաբեռնեք կազմաձևը

Վերակազմավորել

Համոզվեք, որ ճիշտ եք միացված ՝ մուտքագրելով ip a և տեսնելով, արդյոք ունեք IP WLAN0 միջերեսների վրա:

Փաթեթներ

Այժմ, երբ մենք միացված ենք ինտերնետին, մենք ստիպված կլինենք տեղադրել որոշ փաթեթներ:

Նախ, մենք պետք է թարմացնենք փաթեթների ցուցակները վերջինի համար:

sudo apt թարմացում

Պիթոն

Մենք կստիպենք Raspbian- ին օգտագործել Python 3 -ը

Update-alternatives-Տեղադրեք/usr/bin/python python /usr/bin/python2.7 1

թարմացում-այլընտրանքներ-տեղադրեք/usr/bin/python python/usr/bin/python3 2

ՄարիաԴԲ

Տեղադրեք հետևյալ տողը ՝ տվյալների բազան տեղադրելու համար:

sudo apt տեղադրել mariadb-server

Այնուհետեւ մենք պետք է ապահովենք մեր տեղադրումը:

mysql_secure_installation

Այն մեզանից կպահանջի ընթացիկ արմատային գաղտնաբառ, քանի որ մենք չունենք, պարզապես սեղմեք enter:

Հաջորդը այն հարցնում է, թե արդյոք մենք ցանկանում ենք արմատային գաղտնաբառ մուտքագրել y- ում, քանի որ մենք ուզում ենք մեկը:

Հաջորդ հարցերի համար պարզապես մուտքագրեք Y.

Հաջորդը մենք կստեղծենք օգտվող, որը մենք կկարողանանք օգտագործել հայելու համար:

Մուտքագրեք mysql shell- ը ՝ կատարելով.

- Բարձրացրեք մեզ արմատավորելու համար

Սուդո -ի

- Մուտքագրեք mysql shell- ը

Mysql

- Փոխարինեք ձեր սեփական օգտվողի անունով և նույնով ՝

շնորհել բոլոր արտոնությունները *. * - ին ''@'%' - ով ';

- *. * բոլոր արտոնությունները շնորհել ''@'%' - ով ';

Հաջորդը մենք կավելացնենք մեր տվյալների բազան:

Apache վեբ սերվեր

Վեբ սերվերը տեղադրելու համար գործարկեք ստորև բերված տողը:

sudo apt տեղադրել apache2 -y

Python փաթեթներ

Մենք պատրաստվում ենք տեղադրել այս փաթեթները

- շիշ

- Flask-Cors

- Flask-MySQL

- Flask-SocketIO

- PyMySQL

- Գեվենտ

- Gevent-websocket

-

- Python-socketio

- Հարցումներ

- Վասաչել

- Ույսոն

Կատարելով

pip տեղադրել Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL gevent gevent-websocket httplib2 python-socketio պահանջներ wsaccel ujson mfrc522 hx711 Adafruit-CharLCD

Քայլ 2: Առաջնորդվող և թեթև ցուցիչ

Led եւ Light սենսոր
Led եւ Light սենսոր
Led եւ Light սենսոր
Led եւ Light սենսոր

Կապելով led- ը

  1. S -> GPIO15 (rxd0)
  2. + -> 5 Վ
  3. G -> Resistor 470 ohm և GND

Լույսի ցուցիչի միացում

  1. ԴՈUTՐՍ -> GPIO17
  2. VCC -> 3.3V
  3. GND -> GND

Այժմ մենք կարող ենք ստուգել, թե արդյոք մեր լուսադիոդային և լուսային տվիչն աշխատում է այս փոքրիկ սցենարով

ներմուծել RPi. GPIO- ն որպես GPIO GPIO.setmode (GPIO. BCM)

GPIO.setup (15, GPIO. OUT)

GPIO.setup (17, GPIO. IN)

փորձել: while True:

եթե GPIO.input (17) == 0:

GPIO.output (15, GPIO. HIGH)

եթե GPIO.input (17) == 1:

GPIO.putput (15, GPIO. LOW)

բացառությամբ Ստեղնաշարի Անընդհատ: GPIO.cleanup ()

Քայլ 3: Servo Motor

Servo Motor
Servo Motor

Սերվո շարժիչի միացում

  1. Ելք -> GPIO18
  2. VCC -> 5V
  3. GND -> GND

Այժմ մենք կարող ենք ստուգել, թե արդյոք մեր լուսադիոդային և լուսային տվիչն աշխատում է այս փոքրիկ սցենարով

ներմուծեք RPi. GPIO- ն որպես GPIOimport ժամանակ

GPIO.setmode (GPIO. BCM)

GPIO.setup (18, GPIO. OUT)

p = GPIO. PWM (18, 50)

p.start (12.5)

փորձել:

իսկական True:

էջ. ChangeDutyCycle (12.5)

ժամանակ. քուն (1)

էջ. ChangeDutyCycle (2.5)

ժամանակ. քուն (1)

բացառությամբ Ստեղնաշարի

p.stop ()

GPIO.cleanup ()

Քայլ 4: RFID Reader RC522

RFID ընթերցող RC522
RFID ընթերցող RC522

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

Այժմ մենք կարող ենք ստուգել, թե արդյոք մեր RFID ընթերցողն աշխատում է այս փոքրիկ սցենարի հետ

ներմուծեք RPi. GPIO- ն որպես GPIO

mfrc522 ներմուծումից SimpleMFRC522

ընթերցող = SimpleMFRC522 ()

տեքստ = մուտքագրում ('Նոր տվյալներ.')

տպել («Այժմ տեղադրեք ձեր պիտակը գրելու համար»)

ընթերցող. գրել (տեքստ)

տպագիր («Գրված»)

Քայլ 5: Բեռնել բջիջը HX711

Բեռնախցիկ HX711
Բեռնախցիկ HX711

Բեռի բջիջը միացնելով HX711 վարորդական տախտակին

  1. Կարմիր -> E+
  2. Սև -> Ե-
  3. Կանաչ -> A+
  4. Սպիտակ -> A-

Բեռի բջիջը միացնելը

  1. DT-> GPIO27
  2. SCK -> GPIO22
  3. ԿԱՐՄԻՐ -> 3.3 Վ
  4. GND -> GND

Այժմ մենք կարող ենք ստուգել, թե արդյոք մեր բեռնախցիկն աշխատում է այս փոքրիկ սցենարով

ներմուծել RPi. GPIO- ն որպես GPIOimport time ներմուծման sys ակնոցներից: HX711 ներմուծել HX711

def cleanAndExit (): print («Մաքրում …») 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 ()

իսկական True:

փորձել:

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

տպել (val)

hx.power_down ()

hx.power_up ()

ժամանակ. քուն (0.5)

բացառությամբ (KeyboardInterrupt, SystemExit) ՝ cleanAndExit ()

Քայլ 6: LCD (16*2)

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

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 -> միջին հզորության քորոց

Այժմ մենք կարող ենք ստուգել, թե արդյոք մեր LCD էկրանն աշխատում է այս փոքրիկ սցենարով

ներմուծել Adafruit_CharLCD- ը որպես LCDlcd_rs = 21

lcd_en = 20

lcd_d4 = 23

lcd_d5 = 26

lcd_d6 = 19

lcd_d7 = 13

lcd_colunns = 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. հաղորդագրություն ('169.254.10.1')

Քայլ 7: Լրիվ միացում

Full Circuit
Full Circuit

այստեղ կարող եք նորից ստուգել ՝ արդյոք ամբողջ սխեման ճիշտ է

Քայլ 8: Գործի սկիզբ

Գործի սկիզբ
Գործի սկիզբ
Գործի սկիզբ
Գործի սկիզբ
Գործի սկիզբ
Գործի սկիզբ
Գործի սկիզբ
Գործի սկիզբ

Ես օգտագործել եմ եգիպտացորենի փաթիլների դիսպենսեր ՝ որպես շների սննդի պահեստ

Դիսպենսերային անիվը միացրի իմ սերվո շարժիչին

Այժմ ես կարող եմ ղեկը կառավարել իմ servo շարժիչով և սնունդը դուրս գցել ջրամբարից

Theրամբարի վերջում միացված է PVC խողովակ, որը սնունդը գեղեցիկ գցում է օրորոցի մեջ

Ես փայտ եմ օգտագործում որպես պատյան

Քայլ 9: Միավորել այն

Միասին դնելը
Միասին դնելը
Միասին դնելը
Միասին դնելը
Միասին դնելը
Միասին դնելը

Քայլ 10: Կայք

Կայքը
Կայքը
Կայքը
Կայքը
Կայքը
Կայքը
Կայքը
Կայքը

Այժմ մեր մեքենան աշխատում է, մենք պետք է կայքը տեղափոխենք pi:

Դուք կարող եք միացնել ձեր pi- ն wifi- ին `միացնելով HDMI մալուխը և ակտիվացնել այս կերպ

Առաջին էջը գլխավոր էջն է, այստեղ կարող եք տեսնել

  • Լույսի մասին իրական ժամանակի տեղեկատվություն
  • Տեղեկատվություն ամանի մեջ մնացած սննդի մասին
  • Դուք կարող եք սնունդ թողնել
  • Տեղեկատվություն շան մասին

Երկրորդ էջը խմբագրման էջն է, այստեղ կարող եք խմբագրել

  • ձեր ընտանի կենդանու անունը
  • ձեր ընտանի կենդանու տարիքը
  • ձեր ընտանի կենդանու քաշը
  • ձեր ընտանի կենդանու լուսանկարը

Երրորդ էջը պատմության էջն է, այստեղ կարող եք տեսնել

  • երբ լույսն իսկապես վառվեց
  • երբ շունը կերել է
  • երբ սնունդը ընկել է

Չորրորդ էջը պարամետրերի էջն է, այստեղ կարող եք խմբագրել

  • երբ սնունդը պետք է ընկնի
  • նվազեցվող սննդի քանակը
  • առավելագույն սնունդ/օր
  • լույսը

Խորհուրդ ենք տալիս: