Мазмуну:

Автоматтык ит тараткыч: 10 кадам
Автоматтык ит тараткыч: 10 кадам

Video: Автоматтык ит тараткыч: 10 кадам

Video: Автоматтык ит тараткыч: 10 кадам
Video: Сверлильное приспособление для токарного станка. Испытание фрезеровкой. 2024, Ноябрь
Anonim
Автоматтык ит тараткыч
Автоматтык ит тараткыч
Автоматтык ит таркатуучу
Автоматтык ит таркатуучу
Автоматтык ит тараткыч
Автоматтык ит тараткыч

Менин проектим менен, итиңизди үйдө жалгыз калтырсаңыз, ал эч качан тамаксыз калбайт.

Автоматтык азыктандыргыч жүгөрү үлпөт таркаткычынан "бузулат". Диспенсер - бул иттин тамагы үчүн резервуар, түбүндөгү дөңгөлөк servo моторго туташат, ал бешик дээрлик бош калганда жана ит жетишерлик жакын болгондо тамакты автоматтык түрдө түшүрөт. Диспенсердин түбүндө поливинилхлорид түтүгү болот, ал иттин тамагын бешикке жакшы түшүрөт. Бул долбоордо 3 сенсор болот, алардын 2си класска кирбейт жана 1и аткаруучу болуп саналат.

Биринчи сенсор RFID окурманы. Бул сенсор ит бешикке жакын келгенде текшерет. RFID иттин жакасына киргизилет. Эгерде бул сенсор иттин жетишерлик жакын экенин байкаса, анда ал экинчи сенсорго сигнал берет. Экинчи сенсор - бул бешиктеги тамак -ашты өлчөөчү салмагы сенсору (класста камтылбайт), эгерде бул сенсор салмагы өтө төмөн экенин аныктаса, ал тамакты бешикке түшүрө турган серво моторуна сигнал жөнөтөт (RFID жана салмак сенсорунун ырастоосу менен). Кыскача айтканда, ит бешикке жакын болгондо жана бешик дээрлик бош калганда гана кошумча тамак алат. Албетте, веб -сервер аркылуу өзүңүздү орното турган чектөө бар; ит күнүнө өтө көп тамак албашы үчүн. Үчүнчү сенсор - бул бешиктин айланасы өтө караңгы болгондо LED прожекторун жарык кылган жарык сенсору. Демек, кыймылдаткыч диспенсердеги дөңгөлөккө туташкан servo мотор болот.

Бул долбоор иттерге арналган, аны башка кичинекей үй жаныбарлары үчүн да колдонсоңуз болот.

Жабдуулар

Raspberry Pi 3

Жүктөө клеткасы (1KG)

HX711 жүк клеткасынын күчөткүчү

Тамак табагы

Дан таркатуучу

Жыгач (+ бурамалар жана отверткалар)

Жарык сенсору

Жетектеген

RFID окурман rc522

Өткөргүч зымдар

16*2 ЖК (дисплей)

Серво мотору

5V электр адаптери

Резистор 470 Ом

PVC түтүк

Breadbord

Потенциометр

Көрдүм

Күмүш кагаз

Кремний тапанчасы

1 -кадам: Pi орнотуу

Pi орнотуу
Pi орнотуу

Жайгашуу

Баштоо үчүн, адегенде Пиңизди орнотушубуз керек.

Сизге эки нерсе керек болот:

- Win32 Disk Imager

- Raspbian OS сүрөтү

ZIP файлын жүктөп алып, аны каалаган жерге чыгарыңыз.

Орнотуу

1. Папка сүрөтчөсү аркылуу сүрөтүңүздү тандаңыз

2. Ылдый түшүп SD картаңызды тандаңыз

3. Жазууну басыңыз

Эми биз Piге кире алгыбыз үчүн, кээ бир жөндөөлөр менен кошумча шылтоо кылышыбыз керек.

1. SD картанын жүктөө каталогуна өтүңүз

2. "cmdline.txt" файлын ачыңыз

3. Кошуу ip = 169.254.10.1 Тексттин узун сабынын аягында боштук менен бөлүнгөн (ошол эле сапта).

4. Файлды сактаңыз.

5. Ошол каталогдо кеңейтүүсү жок ssh аттуу файлды түзүңүз

Эми сиз SD картаны чыгарып, аны Пиңизге сала аласыз.

Туташууда

Эми биз программаны орнотушубуз керек.

Алгач LAN кабелин туташтырыңыз, бир учу столго/ноутбукка, экинчиси Пиңизге.

Эми Raspberry Pi'ни жүктөңүз.

1. Putty программасын 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 терип, WLAN0 интерфейстеринде IPиңиз бар -жогун текшериңиз.

Пакеттер

Эми биз интернетке туташкандан кийин, кээ бир пакеттерди орнотууга туура келет.

Адегенде пакеттердин тизмесин жаңыртуубуз керек.

sudo apt update

Python

Биз Raspbianды 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

Маалымат базасын орнотуу үчүн төмөнкү сапты чаптаңыз.

sudo apt install mariadb-server

Андан кийин биз орнотууну камсыз кылышыбыз керек.

mysql_secure_installation

Ал бизден учурдагы түпнуска сырсөзүн сурайт, анткени бизде бир гана enter басуу жок.

Андан кийин, у тамгасынын у тамгасын киргизүүнү каалайбызбы, жокпу деп сурап жатат.

Кийинки суроолор үчүн Y киргизиңиз.

Андан кийин биз күзгү үчүн колдоно турган колдонуучу түзөбүз.

MySQL кабыгын киргизиңиз:

- Өзүбүздү түп тамырынан бери көтөрөбүз

Sudo -i

- MySQL кабыгын киргизиңиз

Mysql

- Өзүңүздүн колдонуучу атыңыз менен алмаштырыңыз жана ошол эле менен

*. * боюнча ''@'%' '' менен аныкталган бардык артыкчылыктарды берүү;

- '' менен аныкталган ''@'%' үчүн *. * боюнча бардык артыкчылыктарды берүү;

Андан кийин биз маалымат базабызды кошобуз.

Apache Webserver

Вебсерверди орнотуу үчүн төмөнкү линияны иштетиңиз.

sudo apt install apache2 -y

Python пакеттери

Биз бул пакеттерди орнотобуз

- Колба

- Flask-Cors

- Flask-MySQL

- Flask-SocketIO

- PyMySQL

- Гевент

- Gevent-вебсокети

-

- Python-socketio

- Сурамдар

- Wsaccel

- Ужсон

Жасоо менен

пип орнотуу Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL Gevent Gevent-WebSocket httplib2 python-socketio wsaccel ujson mfrc522 hx711 Adafruit-CharLCD

2 -кадам: Жарык жана жарык сенсору

Жарык жана жарык сенсору
Жарык жана жарык сенсору
Жарык жана жарык сенсору
Жарык жана жарык сенсору

Лидерди туташтыруу

  1. S -> GPIO15 (rxd0)
  2. + -> 5V
  3. G -> Резистор 470 ом жана GND

Жарык сенсорун туташтыруу

  1. ЧЫГЫП -> GPIO17
  2. VCC -> 3.3V
  3. GND -> GND

Эми биз өзүбүздүн лед жана жарык сенсорубуз ушул кичине сценарий менен иштээрин текшере алабыз

GPO GPIO.setmode (GPIO. BCM) катары RPi. GPIO импорттоо

GPIO.setup (15, GPIO. OUT)

GPIO.setup (17, GPIO. IN)

аракет кыл: чынында:

эгер GPIO.input (17) == 0:

GPIO.output (15, GPIO. HIGH)

эгер GPIO.input (17) == 1:

GPIO.output (15, GPIO. LOW)

KeyboardInterruptдон башка: GPIO.cleanup ()

3 -кадам: Servo Motor

Servo Motor
Servo Motor

Серво моторун туташтыруу

  1. ЧЫГЫП -> GPIO18
  2. VCC -> 5V
  3. GND -> GND

Эми биз өзүбүздүн лед жана жарык сенсорубуз ушул кичине сценарий менен иштээрин текшере алабыз

GPO импорттоо убактысы катары RPi. GPIO импорттоо

GPIO.setmode (GPIO. BCM)

GPIO.setup (18, GPIO. OUT)

б = GPIO. PWM (18, 50)

p.start (12.5)

аракет кыл:

чын болсо:

p. ChangeDutyCycle (12.5)

убакыт.уйку (1)

p. ChangeDutyCycle (2.5)

убакыт.уйку (1)

KeyboardInterruptдон башка:

p.stop ()

GPIO.cleanup ()

4 -кадам: RFID Reader RC522

RFID Reader RC522
RFID Reader 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 окурманыбыз бул кичинекей скрипт менен иштээрин текшере алабыз

GPO катары RPi. GPIO импорттоо

mfrc522 импортунан SimpleMFRC522

окурман = SimpleMFRC522 ()

текст = киргизүү ('Жаңы маалыматтар:')

басып чыгаруу ("Эми жазуу үчүн тегиңизди коюңуз")

окурман.жазуу (текст)

басып чыгаруу ("Жазылган")

5 -кадам: Load Cell HX711

HX711 уячасын жүктөө
HX711 уячасын жүктөө

Load клеткасын HX711 драйв тактасына илип коюу

  1. Кызыл -> E+
  2. Кара -> E-
  3. Жашыл -> A+
  4. Ак -> A-

Load клеткасын туташтыруу

  1. DT-> GPIO27
  2. SCK -> GPIO22
  3. КЫЗЫЛ -> 3.3V
  4. GND -> GND

Эми биз жүктөө клеткабыз ушул кичине скрипт менен иштээрин текшере алабыз

GPIO катары RPi. GPIO импорттоо klasses. HX711ден импорттоо системасын импорттоо

def cleanAndExit (): басып чыгаруу ("Тазалоо…") GPIO.cleanup () басып чыгаруу ("Кош!") sys.exit ()

hx = HX711 (22, 27)

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

hx.set_reference_unit (2167)

hx.reset ()

hx.tare ()

чын болсо:

аракет кыл:

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

басып чыгаруу (вал)

hx.power_down ()

hx.power_up ()

убакыт.уйку (0.5)

башка (KeyboardInterrupt, SystemExit): cleanAndExit ()

6 -кадам: ЖК (16*2)

ЖК (16*2)
ЖК (16*2)

ЖКди туташтыруу

  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 -> орто потенциондук пин

Эми биз ЖК экраныбыз бул кичинекей скрипт менен иштээрин текшере алабыз

Adafruit_CharLCDди 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 -кадам: Толук Circuit

Толук Circuit
Толук Circuit

бул жерде сиз бүтүндөй схеманын туура экендигин кайра текшере аласыз

8 -кадам: Иштин башталышы

Иштин башталышы
Иштин башталышы
Иштин башталышы
Иштин башталышы
Иштин башталышы
Иштин башталышы
Иштин башталышы
Иштин башталышы

Мен жүгөрүнүн үлпөт диспенсерин иттин тамагы үчүн суу сактагыч катары колдоном

Диспенсердеги дөңгөлөктү серво моторума туташтырдым

Эми мен серво моторум менен рулду башкара алам жана суу сактагычтан тамак таштайм

Суу сактагычтын аягында ПВХ түтүгү бар, ал тамакты бешикке жакшы түшүрөт

Мен жыгачты корпус катары колдоном

9 -кадам: Аны бириктирүү

Аны бириктирүү
Аны бириктирүү
Аны бириктирүү
Аны бириктирүү
Аны бириктирүү
Аны бириктирүү

10 -кадам: Вебсайт

Вебсайт
Вебсайт
Вебсайт
Вебсайт
Вебсайт
Вебсайт
Вебсайт
Вебсайт

Эми биздин машина иштейт, биз веб -сайтты piге жеткиришибиз керек.

Сиз өзүңүздү Wi -Fiга hdmi кабелин туташтырып, ушул жол менен активдештире аласыз

Биринчи бет үй баракчасы, бул жерден көрө аласыз:

  • Жарык жөнүндө реалдуу маалымат
  • Идиште калган тамак жөнүндө реалдуу убакыт маалыматы
  • Тамакты таштасаңыз болот
  • Ит тууралуу маалымат

Экинчи барак - бул түзөтүү барагы, бул жерде сиз түзөтө аласыз:

  • сиздин үй жаныбарыңыздын аты
  • сиздин үй жаныбарыңыздын жашы
  • сиздин үй жаныбарыңыздын салмагы
  • сиздин үй жаныбарыңыздын сүрөтү

Үчүнчү бет - тарых баракчасы, бул жерден көрө аласыз:

  • качан жарык күйдү
  • ит жегенде
  • тамак түшкөндө

Төртүнчү бет - бул орнотуулар барагы, бул жерде сиз түзөтө аласыз:

  • тамакты түшүрүү керек болгондо
  • тамактын көлөмү түшүшү керек
  • максимум тамак/күн
  • жарык

Сунушталууда: