Talaan ng mga Nilalaman:

Awtomatikong Dispenser ng Aso: 10 Hakbang
Awtomatikong Dispenser ng Aso: 10 Hakbang

Video: Awtomatikong Dispenser ng Aso: 10 Hakbang

Video: Awtomatikong Dispenser ng Aso: 10 Hakbang
Video: 10 Bagay na Ayaw ng Aso na ginagawa ng Tao 2024, Hulyo
Anonim
Awtomatikong Dispenser ng Aso
Awtomatikong Dispenser ng Aso
Awtomatikong Dispenser ng Aso
Awtomatikong Dispenser ng Aso
Awtomatikong Dispenser ng Aso
Awtomatikong Dispenser ng Aso

Sa aking proyekto tinitiyak kong kapag iniwan mong nag-iisa ang iyong aso sa bahay, hindi siya kailanman walang pagkain.

Ang awtomatikong tagapagpakain ay "ma-hack" mula sa isang dispenser ng cornflakes. Ang dispenser ay ang reservoir para sa pagkain ng aso, ang gulong sa ilalim ay makakonekta sa isang motor na servo na awtomatikong bumababa ng pagkain kapag ang kuna ay halos walang laman at kapag ang aso ay sapat na malapit. Sa ilalim ng dispenser magkakaroon ng isang tubo ng PVC na nakakabit na mahuhulog nang maayos ang pagkain ng aso sa kuna. Samakatuwid ang proyektong ito ay magkakaroon ng 3 mga sensor, 2 na kung saan ay hindi sakop sa klase at 1 na kung saan ay isang actuator.

Ang unang sensor ay ang RFID reader. Sinusuri ng sensor na ito kapag ang aso ay malapit sa kuna. Ang RFID ay isasama sa kwelyo ng aso. Kung napansin ng sensor na ito na ang aso ay sapat na malapit, magpapadala ito ng isang senyas sa pangalawang sensor. Ang pangalawang sensor ay ang sensor ng timbang (hindi sakop sa klase) na sumusukat sa pagkain sa kuna, kung nakita ng sensor na ito na ang bigat ay masyadong mababa, magpapadala ito ng isang senyas sa servo motor na ihuhulog ang pagkain sa kuna (na may kumpirmasyon ng RFID at ang sensor ng timbang). Sa madaling salita, nakakakuha lamang ang aso ng sobrang pagkain kapag malapit na siya sa kuna at kapag ang kuna ay halos walang laman. Siyempre mayroon ding isang hanay ng limitasyon na maaari mong itakda ang iyong sarili sa pamamagitan ng web server; upang ang aso ay hindi makakuha ng labis na pagkain bawat araw. Ang pangatlong sensor ay isang light sensor na nagbibigay-ilaw sa isang LED floodlight kapag masyadong madilim sa paligid ng kuna. Samakatuwid ang actuator ay magiging isang servo motor na konektado sa gulong sa dispenser.

Ang proyektong ito ay inilaan para sa mga aso, maaari mo ring gamitin ito para sa iba pang maliliit na alaga.

Mga gamit

Raspberry Pi 3

Load cell (1KG)

HX711 load cell amplifier

Mangkok ng pagkain

Dispenser ng cereal

Kahoy (+ mga turnilyo at distornilyador)

Banayad na sensor

Pinangunahan

RFID reader rc522

Jumper wires

16 * 2 LCD (display)

Servo motor

5V power adapter

Resistor 470 Ohm

Tube ng PVC

Breadbord

Potensyomiter

Saw

Sanding papel

Silicon gun

Hakbang 1: Pag-set up ng Pi

Pag-set up ng Pi
Pag-set up ng Pi

Pag-set up

Upang magsimula kailangan muna naming i-set up ang iyong Pi.

Kakailanganin mo ang dalawang bagay:

- Win32 Disk Imager mula sa

- Larawan ng Raspbian OS mula sa

I-download ang ZIP file at i-extract ito sa kung saan mo nais.

Ang pag-install

1. Piliin ang iyong imahe sa pamamagitan ng icon ng folder

2. Piliin ang iyong SD card sa pamamagitan ng dropdown

3. Mag-click sa sumulat

Ngayon kakailanganin naming gumawa ng dagdag na tinkering sa ilang mga setting upang ma-access namin ang Pi.

1. Pumunta sa direktoryo ng boot ng SD card

2. Buksan ang file na "cmdline.txt"

3. Magdagdag ng ip = 169.254.10.1 Sa dulo ng mahabang linya ng teksto na pinaghiwalay ng isang puwang (sa parehong linya).

4. I-save ang file.

5. Lumikha ng isang file na pinangalanang ssh na walang extension sa parehong direktoryo

Ngayon ay maaari mong palabasin ang SD card at ilagay ito sa iyong Pi.

Kumokonekta

Ngayon kakailanganin naming i-setup ang software.

Unang plug sa isang LAN cable, isang dulo sa iyong desktop / laptop at ang isa sa iyong Pi.

Ngayon boot ang Raspberry Pi.

1. I-install ang Putty mula sa

2. Ipasok ang 169.254.10.1 sa IP box.

3. Tiyaking napili ang SSH at napunan ang port 22.

4. Mag-click bukas

5. Punan ang username: pi

6. Punan ang password: raspberry

Raspi-config

Buksan ang Raspi-config utility sa pamamagitan ng paggamit ng:

sudo raspi-config

Paganahin ang mga sumusunod na pagpipilian sa kategorya ng mga interface

- 1-Wire

- SPI

Huwag paganahin ang mga sumusunod na pagpipilian sa kategorya ng mga pagpipilian sa boot

- Splash screen

Panghuli itakda ang setting ng Desktop / CLI sa kategorya ng mga pagpipilian sa boot sa Desktop Autologin.

WiFi

Para sa feeder ng aso kailangan naming magkaroon ng isang koneksyon sa wifi kaya tiyaking malapit na ang iyong mga kredensyal sa wifi.

1. Pumunta sa root mode

sudo -i

2. Idikit ang linyang ito ngunit tiyakin na ang SSID at Password ay parehong napunan

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

3. Ipasok ang WPA Client.

Wpa_cli

4. Piliin ang interface

Interface wlan0

5. I-reload ang config

I-configure muli

Tiyaking nakakonekta ka nang tama sa pamamagitan ng pagta-type ng ip a at nakikita kung mayroon kang isang IP sa mga interface ng WLAN0.

Mga pakete

Ngayon na nakakonekta kami sa internet kakailanganin naming mag-install ng ilang mga pakete.

Una kailangan naming i-refresh ang mga listahan ng package para sa pinakabagong.

sudo apt update

Sawa

Pipilitin namin ang Raspbian na gamitin ang 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

I-paste ang sumusunod na linya upang mai-install ang database.

sudo apt i-install ang mariadb-server

Pagkatapos ay kakailanganin naming i-secure ang aming pag-install.

mysql_secure_install

Hihingi sa amin ito ng kasalukuyang root password dahil wala kaming isa pindutin lamang ang enter.

Susunod na tinatanong nito kung nais namin ang isang uri ng root password sa y dahil gusto namin ang isa.

Para sa mga susunod na katanungan ipasok lamang ang Y.

Susunod na lilikha kami ng isang gumagamit na magagamit namin para sa salamin.

Ipasok ang MySQL shell sa pamamagitan ng paggawa:

- Itaas ang ating sarili upang mag-ugat

Sudo -i

- Ipasok ang shell ng MySQL

Mysql

- Palitan ng iyong sariling username at pareho sa

ibigay ang lahat ng mga pribilehiyo sa *. * sa '' @ '%' na kinilala ng '';

- ibigay ang lahat ng mga pribilehiyo sa *. * sa '' @ '%' na kinilala ng '';

Susunod na idaragdag namin ang aming database.

Apache Webserver

Upang mai-install ang Webserver patakbuhin ang linya sa ibaba.

sudo apt i-install ang apache2 -y

Mga pakete ng sawa

I-install namin ang mga package na ito

- Prasko

- Flask-Cors

- Flask-MySQL

- Flask-SocketIO

- PyMySQL

- Gevent

- Gevent-websocket

-

- Python-socketio

- Mga Kahilingan

- Wsaccel

- Ujson

Sa paggawa

pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL gevent gevent-websocketekitplib2 python-socketio mga kahilingan wsaccel ujson mfrc522 hx711 Adafruit-CharLCD

Hakbang 2: Led at Light Sensor

Led at Light Sensor
Led at Light Sensor
Led at Light Sensor
Led at Light Sensor

Nakabitin ang pinangunahan

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

Pag-hook up ng light sensor

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

Ngayon ay maaari naming subukan kung gumagana ang aming led at light sensor sa maliit na script na ito

i-import ang RPi. GPIO bilang GPIO GPIO.setmode (GPIO. BCM)

GPIO.setup (15, GPIO. OUT)

GPIO.setup (17, GPIO. IN)

subukan: habang Totoo:

kung GPIO.input (17) == 0:

GPIO.output (15, GPIO. HIGH)

kung GPIO.input (17) == 1:

GPIO.output (15, GPIO. LOW)

maliban sa KeyboardInterrupt: GPIO.cleanup ()

Hakbang 3: Servo Motor

Servo Motor
Servo Motor

Pag-hook up ng servo motor

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

Ngayon ay maaari naming subukan kung gumagana ang aming led at light sensor sa maliit na script na ito

i-import ang RPi. GPIO bilang oras ng GPIOimport

GPIO.setmode (GPIO. BCM)

GPIO.setup (18, GPIO. OUT)

p = GPIO. PWM (18, 50)

p.start (12.5)

subukan:

habang Totoo:

p. ChangeDutyCycle (12.5)

oras. tulog (1)

p. ChangeDutyCycle (2.5)

oras. tulog (1)

maliban sa KeyboardInterrupt:

p.stop ()

GPIO.cleanup ()

Hakbang 4: RFID Reader RC522

RFID Reader RC522
RFID Reader RC522

Pag-hook up ng 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

Ngayon ay maaari naming subukan kung gumagana ang aming RFID reader sa maliit na script na ito

i-import ang RPi. GPIO bilang GPIO

mula sa mfrc522 import SimpleMFRC522

reader = SimpleMFRC522 ()

teksto = input ('Bagong data:')

i-print ("Ngayon ilagay ang iyong tag upang isulat")

mambabasa. magsulat (teksto)

i-print ("Nakasulat")

Hakbang 5: Mag-load ng Cell HX711

I-load ang Cell HX711
I-load ang Cell HX711

Pag-hook up ng Load cell sa HX711 driver board

  1. Pula -> E +
  2. Itim -> E-
  3. Green -> A +
  4. Puti -> A-

Pag-hook up ng cell ng Pag-load

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

Ngayon ay maaari naming subukan kung gumagana ang aming load cell sa maliit na script na ito

i-import ang RPi. GPIO bilang GPIOimport ang oras sa pag-import ng sys mula sa klasses. HX711 import HX711

def cleanAndExit (): print ("Paglilinis …") GPIO.cleanup () print ("Bye!") sys.exit ()

hx = HX711 (22, 27)

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

hx.set_referensi_unit (2167)

hx.reset ()

hx.tare ()

habang Totoo:

subukan:

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

i-print (val)

hx.power_down ()

hx.power_up ()

oras. pagtulog (0.5)

maliban (KeyboardInterrupt, SystemExit): cleanAndExit ()

Hakbang 6: LCD (16 * 2)

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

Nakabitin ang 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 -> gitnang potentio pin

Ngayon ay maaari naming subukan kung gagana ang aming LCD screen sa maliit na script na ito

i-import ang Adafruit_CharLCD bilang 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')

Hakbang 7: Buong Circuit

Buong Circuit
Buong Circuit

dito maaari mong suriin muli kung ang buong circuit ay tama

Hakbang 8: Simula ng Kaso

Simula ng Kaso
Simula ng Kaso
Simula ng Kaso
Simula ng Kaso
Simula ng Kaso
Simula ng Kaso
Simula ng Kaso
Simula ng Kaso

Gumamit ako ng dispenser ng cornflake bilang isang reservoir para sa pagkaing aso

Ikinonekta ko ang gulong sa dispenser sa aking motor na servo

Ngayon ay makokontrol ko na ang gulong gamit ang aking motor na servo at ihulog ang pagkain sa reservoir

Sa dulo ng reservoir mayroong isang tubo ng PVC na konektado na mahuhulog nang maayos ang pagkain sa kuna

Gumagamit ako ng kahoy bilang isang pambalot

Hakbang 9: Pagsasama-sama Ito

Pagsasama-sama nito
Pagsasama-sama nito
Pagsasama-sama nito
Pagsasama-sama nito
Pagsasama-sama nito
Pagsasama-sama nito

Hakbang 10: Ang Website

Ang Website
Ang Website
Ang Website
Ang Website
Ang Website
Ang Website
Ang Website
Ang Website

Ngayon gumagana ang aming makina kailangan namin upang makuha ang website papunta sa pi. Ngayon ang lahat ay naka-up at nagpapatakbo ng ilang kaunting tagubilin sa kung paano gumagana ang site.

Maaari mong ikonekta ang pi mo sa wifi sa pamamagitan ng pag-plug sa isang HDMI cable at paganahin sa ganitong paraan

Ang unang pahina ay ang home page, dito makikita mo:

  • Impormasyon sa realtime tungkol sa ilaw
  • Realtime na impormasyon tungkol sa pagkain na naiwan sa mangkok
  • Maaari mong ihulog ang pagkain
  • Impormasyon tungkol sa aso

Ang pangalawang pahina ay ang pahina ng pag-edit, dito maaari mong i-edit:

  • ang pangalan ng alaga mo
  • ang edad ng iyong alaga
  • ang bigat ng iyong alaga
  • ang larawan ng iyong alaga

Ang pangatlong pahina ay ang pahina ng kasaysayan, dito makikita mo:

  • nung nag ilaw na talaga
  • kapag kumain na ang aso
  • nang bumagsak ang pagkain

Ang ika-apat na pahina ay ang pahina ng mga setting, dito maaari mong i-edit:

  • kung kailan kailangang bumagsak ang pagkain
  • ang dami ng babagsak na pagkain
  • max na pagkain / araw
  • ang liwanag

Inirerekumendang: