สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: การตั้งค่า Pi
- ขั้นตอนที่ 2: ไฟ LED และเซนเซอร์ตรวจจับแสง
- ขั้นตอนที่ 3: เซอร์โวมอเตอร์
- ขั้นตอนที่ 4: เครื่องอ่าน RFID RC522
- ขั้นตอนที่ 5: โหลดเซลล์ HX711
- ขั้นตอนที่ 6: LCD (16*2)
- ขั้นตอนที่ 7: วงจรเต็ม
- ขั้นตอนที่ 8: จุดเริ่มต้นของคดี
- ขั้นตอนที่ 9: นำมันมารวมกัน
- ขั้นตอนที่ 10: เว็บไซต์
วีดีโอ: เครื่องจ่ายสุนัขอัตโนมัติ: 10 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
กับโครงการของฉัน ฉันแน่ใจว่าเมื่อคุณปล่อยให้สุนัขของคุณอยู่คนเดียวที่บ้าน เขา / เธอไม่เคยขาดอาหาร
เครื่องป้อนอัตโนมัติจะถูก "แฮ็ก" จากเครื่องจ่ายคอร์นเฟลก ที่จ่ายอาหารสุนัขคือช่องเก็บอาหาร โดยล้อที่ด้านล่างจะเชื่อมต่อกับเซอร์โวมอเตอร์ที่จะหยดอาหารโดยอัตโนมัติเมื่อเปลใกล้จะว่างและเมื่อสุนัขอยู่ใกล้เพียงพอ ที่ด้านล่างของตู้กดน้ำจะมีท่อพีวีซีติดอยู่เพื่อหย่อนอาหารสุนัขลงในเปล โครงการนี้จึงจะมีเซ็นเซอร์ 3 ตัว โดย 2 ตัวไม่ครอบคลุมในคลาส และ 1 ตัวเป็นแอคทูเอเตอร์
เซ็นเซอร์แรกคือเครื่องอ่าน RFID เซ็นเซอร์นี้จะตรวจสอบเมื่อสุนัขเข้ามาใกล้เปล RFID จะรวมอยู่ในปลอกคอของสุนัข หากเซ็นเซอร์นี้สังเกตว่าสุนัขอยู่ใกล้เพียงพอ มันจะส่งสัญญาณไปยังเซ็นเซอร์ตัวที่สอง เซ็นเซอร์ตัวที่สองคือเซ็นเซอร์น้ำหนัก (ไม่ครอบคลุมในชั้นเรียน) ที่วัดอาหารในเปล หากเซ็นเซอร์นี้ตรวจพบว่าน้ำหนักต่ำเกินไป มันจะส่งสัญญาณไปยังเซอร์โวมอเตอร์ที่จะวางอาหารลงในเปล (พร้อมการยืนยันของ RFID และเซ็นเซอร์น้ำหนัก) กล่าวโดยสรุป สุนัขจะได้รับอาหารพิเศษก็ต่อเมื่ออยู่ใกล้เพียงพอกับเปล และเมื่อเปลใกล้จะว่าง แน่นอนว่ายังมีลิมิตเซ็ตที่คุณสามารถตั้งค่าเองผ่านเว็บเซิร์ฟเวอร์ได้ เพื่อไม่ให้สุนัขได้รับอาหารมากเกินไปต่อวัน เซ็นเซอร์ตัวที่สามคือเซ็นเซอร์วัดแสงที่ส่องสว่างหลอดไฟ LED เมื่ออยู่ใกล้เตียงในที่มืดเกินไป ดังนั้น แอคทูเอเตอร์จะเป็นเซอร์โวมอเตอร์ที่เชื่อมต่อกับล้อในเครื่องจ่าย
โปรเจ็กต์นี้มีไว้สำหรับสุนัข คุณยังสามารถใช้กับสัตว์เลี้ยงขนาดเล็กอื่นๆ ได้
เสบียง
Raspberry Pi 3
โหลดเซลล์ (1KG)
เครื่องขยายเสียงโหลดเซลล์ HX711
ชามอาหาร
เครื่องจ่ายธัญพืช
ไม้ (+ สกรูและไขควง)
เซ็นเซอร์วัดแสง
นำ
เครื่องอ่าน RFID rc522
สายจัมเปอร์
16*2 LCD (จอแสดงผล)
เซอร์โวมอเตอร์
อะแดปเตอร์ไฟ 5V
ตัวต้านทาน 470 โอห์ม
ท่อพีวีซี
เขียงหั่นขนม
โพเทนชิออมิเตอร์
เลื่อย
กระดาษทราย
ปืนซิลิโคน
ขั้นตอนที่ 1: การตั้งค่า Pi
ติดตั้ง
ในการเริ่มต้น เราต้องตั้งค่า 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
- S -> GPIO15 (rxd0)
- + -> 5V
- G -> ตัวต้านทาน 470 โอห์มและ GND
การต่อเซ็นเซอร์วัดแสง
- ออก -> GPIO17
- VCC -> 3.3V
- 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: เซอร์โวมอเตอร์
การต่อเซอร์โวมอเตอร์
- ออก -> GPIO18
- VCC -> 5V
- 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
- RST -> GPIO6
- มิโซะ -> GPIO9 (มิโซะ)
- MOSI -> GPIO10 (MOSI)
- SCK -> GPIO11 (SPISCLK)
- SDA -> GPIO8 (SPICS0)
- 3.3V -> 3.3V
- GND -> GND
ตอนนี้ เราสามารถทดสอบว่าเครื่องอ่าน RFID ของเราใช้งานได้กับสคริปต์เล็กๆ นี้หรือไม่
นำเข้า RPi. GPIO เป็น GPIO
จาก mfrc522 นำเข้า SimpleMFRC522
เครื่องอ่าน = SimpleMFRC522()
text = input('ข้อมูลใหม่:')
print("ตอนนี้วางแท็กของคุณเพื่อเขียน")
reader.write (ข้อความ)
พิมพ์ ("เขียน")
ขั้นตอนที่ 5: โหลดเซลล์ HX711
การต่อโหลดเซลล์เข้ากับบอร์ดไดรเวอร์ HX711
- สีแดง -> E+
- ดำ -> อี-
- สีเขียว -> A+
- สีขาว -> เอ-
การต่อโหลดเซลล์
- DT-> GPIO27
- SCK -> GPIO22
- สีแดง -> 3.3V
- 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)
การต่อจอ LCD
- 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
- เอ -> 5V
- K -> GND
- 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 แล้วเปิดใช้งานด้วยวิธีนี้
หน้าแรกคือหน้าแรก ที่นี่คุณสามารถดู:
- ข้อมูลเรียลไทม์เกี่ยวกับแสง
- ข้อมูลเรียลไทม์เกี่ยวกับอาหารที่เหลืออยู่ในชาม
- วางอาหารได้
- ข้อมูลเกี่ยวกับน้องหมา
หน้าที่สองคือหน้าแก้ไข คุณสามารถแก้ไขได้ที่นี่:
- ชื่อสัตว์เลี้ยงของคุณ
- อายุของสัตว์เลี้ยงของคุณ
- น้ำหนักสัตว์เลี้ยงของคุณ
- รูปสัตว์เลี้ยงของคุณ
หน้าที่สามคือหน้าประวัติ ที่นี่คุณสามารถดู:
- เมื่อไฟดับ
- เมื่อน้องหมาได้กิน
- เมื่ออาหารลดลง
หน้าที่สี่คือหน้าการตั้งค่า คุณสามารถแก้ไขได้ที่นี่:
- เมื่ออาหารต้องหล่น
- ปริมาณอาหารที่จะดรอป
- อาหารสูงสุด/วัน
- แสง
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง