สารบัญ:

เครื่องจ่ายสุนัขอัตโนมัติ: 10 ขั้นตอน
เครื่องจ่ายสุนัขอัตโนมัติ: 10 ขั้นตอน

วีดีโอ: เครื่องจ่ายสุนัขอัตโนมัติ: 10 ขั้นตอน

วีดีโอ: เครื่องจ่ายสุนัขอัตโนมัติ: 10 ขั้นตอน
วีดีโอ: Очередной рейс (1958) фильм 2024, พฤศจิกายน
Anonim
เครื่องจ่ายสุนัขอัตโนมัติ
เครื่องจ่ายสุนัขอัตโนมัติ
เครื่องจ่ายสุนัขอัตโนมัติ
เครื่องจ่ายสุนัขอัตโนมัติ
เครื่องจ่ายสุนัขอัตโนมัติ
เครื่องจ่ายสุนัขอัตโนมัติ

กับโครงการของฉัน ฉันแน่ใจว่าเมื่อคุณปล่อยให้สุนัขของคุณอยู่คนเดียวที่บ้าน เขา / เธอไม่เคยขาดอาหาร

เครื่องป้อนอัตโนมัติจะถูก "แฮ็ก" จากเครื่องจ่ายคอร์นเฟลก ที่จ่ายอาหารสุนัขคือช่องเก็บอาหาร โดยล้อที่ด้านล่างจะเชื่อมต่อกับเซอร์โวมอเตอร์ที่จะหยดอาหารโดยอัตโนมัติเมื่อเปลใกล้จะว่างและเมื่อสุนัขอยู่ใกล้เพียงพอ ที่ด้านล่างของตู้กดน้ำจะมีท่อพีวีซีติดอยู่เพื่อหย่อนอาหารสุนัขลงในเปล โครงการนี้จึงจะมีเซ็นเซอร์ 3 ตัว โดย 2 ตัวไม่ครอบคลุมในคลาส และ 1 ตัวเป็นแอคทูเอเตอร์

เซ็นเซอร์แรกคือเครื่องอ่าน RFID เซ็นเซอร์นี้จะตรวจสอบเมื่อสุนัขเข้ามาใกล้เปล RFID จะรวมอยู่ในปลอกคอของสุนัข หากเซ็นเซอร์นี้สังเกตว่าสุนัขอยู่ใกล้เพียงพอ มันจะส่งสัญญาณไปยังเซ็นเซอร์ตัวที่สอง เซ็นเซอร์ตัวที่สองคือเซ็นเซอร์น้ำหนัก (ไม่ครอบคลุมในชั้นเรียน) ที่วัดอาหารในเปล หากเซ็นเซอร์นี้ตรวจพบว่าน้ำหนักต่ำเกินไป มันจะส่งสัญญาณไปยังเซอร์โวมอเตอร์ที่จะวางอาหารลงในเปล (พร้อมการยืนยันของ RFID และเซ็นเซอร์น้ำหนัก) กล่าวโดยสรุป สุนัขจะได้รับอาหารพิเศษก็ต่อเมื่ออยู่ใกล้เพียงพอกับเปล และเมื่อเปลใกล้จะว่าง แน่นอนว่ายังมีลิมิตเซ็ตที่คุณสามารถตั้งค่าเองผ่านเว็บเซิร์ฟเวอร์ได้ เพื่อไม่ให้สุนัขได้รับอาหารมากเกินไปต่อวัน เซ็นเซอร์ตัวที่สามคือเซ็นเซอร์วัดแสงที่ส่องสว่างหลอดไฟ LED เมื่ออยู่ใกล้เตียงในที่มืดเกินไป ดังนั้น แอคทูเอเตอร์จะเป็นเซอร์โวมอเตอร์ที่เชื่อมต่อกับล้อในเครื่องจ่าย

โปรเจ็กต์นี้มีไว้สำหรับสุนัข คุณยังสามารถใช้กับสัตว์เลี้ยงขนาดเล็กอื่นๆ ได้

เสบียง

Raspberry Pi 3

โหลดเซลล์ (1KG)

เครื่องขยายเสียงโหลดเซลล์ HX711

ชามอาหาร

เครื่องจ่ายธัญพืช

ไม้ (+ สกรูและไขควง)

เซ็นเซอร์วัดแสง

นำ

เครื่องอ่าน RFID rc522

สายจัมเปอร์

16*2 LCD (จอแสดงผล)

เซอร์โวมอเตอร์

อะแดปเตอร์ไฟ 5V

ตัวต้านทาน 470 โอห์ม

ท่อพีวีซี

เขียงหั่นขนม

โพเทนชิออมิเตอร์

เลื่อย

กระดาษทราย

ปืนซิลิโคน

ขั้นตอนที่ 1: การตั้งค่า Pi

Pi Setup
Pi Setup

ติดตั้ง

ในการเริ่มต้น เราต้องตั้งค่า Pi ของคุณก่อน

คุณจะต้องมีสองสิ่ง:

- Win32 Disk Imager จาก

- รูปภาพระบบปฏิบัติการ 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. ติดตั้ง Putty จาก

2. ป้อน 169.254.10.1 ในกล่อง IP

3. ตรวจสอบให้แน่ใจว่าได้เลือก SSH และเติมพอร์ต 22 แล้ว

4. คลิกเปิด

5. กรอกชื่อผู้ใช้: pi

6. กรอกรหัสผ่าน: raspberry

Raspi-config

เปิดยูทิลิตี้ Raspi-config โดยใช้:

sudo raspi-config

เปิดใช้งานตัวเลือกต่อไปนี้ในหมวดหมู่อินเทอร์เฟซ

- 1-Wire

- 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 อัปเดต

Python

เราจะบังคับให้ Raspbian ใช้ Python 3

อัพเดตทางเลือก -- ติดตั้ง /usr/bin/python python /usr/bin/python2.7 1

อัพเดตทางเลือก -- ติดตั้ง /usr/bin/python python /usr/bin/python3 2

MariaDB

วางบรรทัดต่อไปนี้เพื่อติดตั้งฐานข้อมูล

sudo apt ติดตั้ง mariadb-server

จากนั้นเราจะต้องรักษาความปลอดภัยการติดตั้งของเรา

mysql_secure_installation

มันจะถามเราถึงรหัสผ่านรูทปัจจุบันเนื่องจากเราไม่มีรหัสผ่านเพียงแค่กด Enter

ต่อไปจะถามว่าเราต้องการให้ root password พิมพ์เป็น y ไหม เพราะเราต้องการ

สำหรับคำถามถัดไป ให้ป้อน Y

ต่อไปเราจะสร้างผู้ใช้ที่เราจะสามารถใช้สำหรับมิเรอร์ได้

ป้อนเปลือก mysql โดยทำ:

- ยกระดับตัวเองให้รูท

ซูโด -i

- เข้าสู่ mysql shell

Mysql

- แทนที่ด้วยชื่อผู้ใช้ของคุณเองและแทนที่ด้วย

ให้สิทธิ์ทั้งหมดใน *.* ถึง ''@'%' ที่ระบุโดย '';

- ให้สิทธิ์ทั้งหมดใน *.* แก่ ''@'%' ที่ระบุโดย '';

ต่อไปเราจะเพิ่มฐานข้อมูลของเรา

Apache Webserver

ในการติดตั้งเว็บเซิร์ฟเวอร์ให้เรียกใช้บรรทัดด้านล่าง

sudo apt ติดตั้ง apache2 -y

แพ็คเกจ Python

เราจะติดตั้งแพ็คเกจเหล่านี้

- ขวด

- กระติกน้ำ-คอร์

- Flask-MySQL

- กระติกน้ำ-SocketIO

- PyMySQL

- เกเวนต์

- Gevent-websocket

-

- Python-socketio

- คำขอ

- Wsaccel

- อุจซัน

จากการทำ

pip ติดตั้ง Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL gevent gevent-websocket httplib2 python-socketio ร้องขอ wsaccel ujson mfrc522 hx711 Adafruit-CharLCD

ขั้นตอนที่ 2: ไฟ LED และเซนเซอร์ตรวจจับแสง

ไฟ LED และเซนเซอร์ตรวจจับแสง
ไฟ LED และเซนเซอร์ตรวจจับแสง
ไฟ LED และเซนเซอร์ตรวจจับแสง
ไฟ LED และเซนเซอร์ตรวจจับแสง

ติดไฟ led

  1. S -> GPIO15 (rxd0)
  2. + -> 5V
  3. G -> ตัวต้านทาน 470 โอห์มและ GND

การต่อเซ็นเซอร์วัดแสง

  1. ออก -> GPIO17
  2. VCC -> 3.3V
  3. GND -> GND

ตอนนี้ เราสามารถทดสอบได้ว่าเซ็นเซอร์นำและแสงของเราทำงานร่วมกับสคริปต์เล็กๆ นี้ได้หรือไม่

นำเข้า RPi. GPIO เป็น GPIO GPIO.setmode(GPIO. BCM)

GPIO.setup(15, GPIO.ออก)

GPIO.setup (17, GPIO. IN)

ลอง: ในขณะที่จริง:

ถ้า GPIO.input(17) == 0:

GPIO.output(15, GPIO.สูง)

ถ้า GPIO.input(17) == 1:

GPIO.output(15, GPIO.ต่ำ)

ยกเว้น KeyboardInterrupt: GPIO.cleanup()

ขั้นตอนที่ 3: เซอร์โวมอเตอร์

เซอร์โวมอเตอร์
เซอร์โวมอเตอร์

การต่อเซอร์โวมอเตอร์

  1. ออก -> GPIO18
  2. VCC -> 5V
  3. GND -> GND

ตอนนี้เราสามารถทดสอบว่าเซ็นเซอร์นำและแสงของเราทำงานร่วมกับสคริปต์เล็กๆ นี้ได้หรือไม่

นำเข้า RPi. GPIO เป็น GPIOนำเข้าเวลา

GPIO.setmode(GPIO. BCM)

GPIO.setup(18, GPIO.ออก)

p = GPIO. PWM (18, 50)

p.start(12.5)

ลอง:

ในขณะที่จริง:

หน้า ChangeDutyCycle(12.5)

เวลานอน(1)

p. ChangeDutyCycle(2.5)

เวลานอน(1)

ยกเว้น KeyboardInterrupt:

p.stop()

GPIO. การล้างข้อมูล ()

ขั้นตอนที่ 4: เครื่องอ่าน RFID RC522

เครื่องอ่าน RFID RC522
เครื่องอ่าน RFID RC522

การต่อ RFID

  1. RST -> GPIO6
  2. มิโซะ -> GPIO9 (มิโซะ)
  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()

text = input('ข้อมูลใหม่:')

print("ตอนนี้วางแท็กของคุณเพื่อเขียน")

reader.write (ข้อความ)

พิมพ์ ("เขียน")

ขั้นตอนที่ 5: โหลดเซลล์ HX711

โหลดเซลล์ HX711
โหลดเซลล์ HX711

การต่อโหลดเซลล์เข้ากับบอร์ดไดรเวอร์ HX711

  1. สีแดง -> E+
  2. ดำ -> อี-
  3. สีเขียว -> A+
  4. สีขาว -> เอ-

การต่อโหลดเซลล์

  1. DT-> GPIO27
  2. SCK -> GPIO22
  3. สีแดง -> 3.3V
  4. GND -> GND

ตอนนี้เราสามารถทดสอบว่าโหลดเซลล์ของเราใช้งานได้กับสคริปต์เล็กๆ นี้หรือไม่

นำเข้า RPi. GPIO เป็น GPIO นำเข้าระบบเวลานำเข้าจาก klasses. 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.รีเซ็ต()

hx.tare()

ในขณะที่จริง:

ลอง:

val = สูงสุด(0, int(hx.get_weight(5)))

พิมพ์ (วาล)

hx.power_down()

hx.power_up()

เวลานอน(0.5)

ยกเว้น (KeyboardInterrupt, SystemExit): cleanAndExit()

ขั้นตอนที่ 6: LCD (16*2)

จอแอลซีดี (16*2)
จอแอลซีดี (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. เอ -> 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_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: วงจรเต็ม

ครบวงจร
ครบวงจร

ที่นี่คุณสามารถตรวจสอบอีกครั้งว่าวงจรทั้งหมดถูกต้องหรือไม่

ขั้นตอนที่ 8: จุดเริ่มต้นของคดี

จุดเริ่มต้นของคดี
จุดเริ่มต้นของคดี
จุดเริ่มต้นของคดี
จุดเริ่มต้นของคดี
จุดเริ่มต้นของคดี
จุดเริ่มต้นของคดี
จุดเริ่มต้นของคดี
จุดเริ่มต้นของคดี

ฉันใช้เครื่องจ่ายคอร์นเฟลกเป็นที่เก็บอาหารสุนัข

ฉันเชื่อมต่อล้อในเครื่องจ่ายกับเซอร์โวมอเตอร์ของฉัน

ตอนนี้ฉันควบคุมวงล้อด้วยเซอร์โวมอเตอร์แล้วปล่อยอาหารออกจากอ่างเก็บน้ำได้

ที่ปลายอ่างเก็บน้ำมีท่อพีวีซีเชื่อมต่อที่หย่อนอาหารลงในเปล

ฉันใช้ไม้เป็นปลอก

ขั้นตอนที่ 9: นำมันมารวมกัน

เอามารวมกัน
เอามารวมกัน
เอามารวมกัน
เอามารวมกัน
เอามารวมกัน
เอามารวมกัน

ขั้นตอนที่ 10: เว็บไซต์

เว็บไซต์
เว็บไซต์
เว็บไซต์
เว็บไซต์
เว็บไซต์
เว็บไซต์
เว็บไซต์
เว็บไซต์

ตอนนี้เครื่องของเราใช้งานได้ เราต้องนำเว็บไซต์เข้าสู่ pi ตอนนี้ทุกอย่างทำงานและดำเนินการตามคำแนะนำบางประการเกี่ยวกับวิธีการทำงานของเว็บไซต์

คุณสามารถเชื่อมต่อ pi ของคุณกับ wifi ได้โดยเสียบสาย hdmi แล้วเปิดใช้งานด้วยวิธีนี้

หน้าแรกคือหน้าแรก ที่นี่คุณสามารถดู:

  • ข้อมูลเรียลไทม์เกี่ยวกับแสง
  • ข้อมูลเรียลไทม์เกี่ยวกับอาหารที่เหลืออยู่ในชาม
  • วางอาหารได้
  • ข้อมูลเกี่ยวกับน้องหมา

หน้าที่สองคือหน้าแก้ไข คุณสามารถแก้ไขได้ที่นี่:

  • ชื่อสัตว์เลี้ยงของคุณ
  • อายุของสัตว์เลี้ยงของคุณ
  • น้ำหนักสัตว์เลี้ยงของคุณ
  • รูปสัตว์เลี้ยงของคุณ

หน้าที่สามคือหน้าประวัติ ที่นี่คุณสามารถดู:

  • เมื่อไฟดับ
  • เมื่อน้องหมาได้กิน
  • เมื่ออาหารลดลง

หน้าที่สี่คือหน้าการตั้งค่า คุณสามารถแก้ไขได้ที่นี่:

  • เมื่ออาหารต้องหล่น
  • ปริมาณอาหารที่จะดรอป
  • อาหารสูงสุด/วัน
  • แสง

แนะนำ: