สารบัญ:

IoT Treat Dispenser สำหรับสัตว์เลี้ยง: 7 ขั้นตอน (พร้อมรูปภาพ)
IoT Treat Dispenser สำหรับสัตว์เลี้ยง: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: IoT Treat Dispenser สำหรับสัตว์เลี้ยง: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: IoT Treat Dispenser สำหรับสัตว์เลี้ยง: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: D.I.Y Dog Feeder ขวดน้ำใสให้อาหาร ทำง่ายใน 5 นาที 2024, กรกฎาคม
Anonim
Image
Image
เครื่องจ่าย IoT สำหรับสัตว์เลี้ยง
เครื่องจ่าย IoT สำหรับสัตว์เลี้ยง

ฉันมีแมวสองตัว และต้องให้อาหารพวกมันประมาณ 3 ครั้งต่อวันก็ค่อนข้างน่ารำคาญ พวกเขาจะมองมาที่ฉันด้วยใบหน้าที่น่ารักและจ้องเขม็ง จากนั้นจึงวิ่งไปที่กล่องที่เต็มไปด้วยแมวเขียว ร้องเหมียวๆ และอ้อนวอนให้พวกเขา ฉันตัดสินใจว่าพอแล้วก็พอ ไม่ต้องลุกไปหยิบขนมให้แมวอีกต่อไป ตอนนี้เป็นเวลาสำหรับเครื่องจ่ายขนม เพราะอย่างที่พูดไว้ว่า "โปรแกรมเมอร์มีไว้เพื่อทำสิ่งที่ซับซ้อนเพื่อทำสิ่งที่ธรรมดาให้น้อยลง"

DFRobot สนับสนุนโครงการนี้

ส่วนรายการ:

  • DFRobot Raspberry Pi 3
  • DFRobot โมดูลกล้อง Raspberry Pi
  • DFRobot สเต็ปเปอร์มอเตอร์พร้อมเฟืองดาวเคราะห์
  • I2C LCD 16x2
  • แจ็คบาร์เรลไปยังเทอร์มินัล
  • DRV8825 สเต็ปเปอร์มอเตอร์ไดร์เวอร์
  • ตัวเก็บประจุ 100 µF
  • Arduino UNO & Genuino UNO
  • สายจัมเปอร์ (ทั่วไป)

ขั้นตอนที่ 1: การสร้างการออกแบบ

การสร้างการออกแบบ
การสร้างการออกแบบ

อย่างแรกคือการเลือกวิธีควบคุมเครื่องคิดใหม่ของฉัน บลูทู ธ จะมีช่วงสั้นเกินไปเพียง 30 ฟุตโดยไม่มีสิ่งกีดขวาง ด้วยข้อมูลนี้ ฉันเลือกใช้ WiFi แต่ตอนนี้จะใช้ WiFi ควบคุมเครื่องได้อย่างไร? Raspberry Pi 3 มีความสามารถ WiFi ในตัว ทำให้ฉันใช้ Flask เพื่อโฮสต์เว็บเพจได้ ต่อไปเป็นหัวข้อของกรงและวิธีการแจกจ่ายขนม ฉันตัดสินใจออกแบบวงล้อที่หมุนได้ โดยที่ขนมจะตกเป็นส่วนเล็กๆ หมุนไปรอบๆ จากนั้นขนมก็จะหล่นลงมาบนทางลาดและเดินทางไปที่ด้านหน้าของเครื่องจักร

ขั้นตอนที่ 2: การสร้างโมเดล Fusion 360

การสร้างแบบจำลอง Fusion 360
การสร้างแบบจำลอง Fusion 360
การสร้างแบบจำลอง Fusion 360
การสร้างแบบจำลอง Fusion 360
การสร้างแบบจำลอง Fusion 360
การสร้างแบบจำลอง Fusion 360

ฉันเริ่มต้นด้วยการสร้างแบบจำลองพื้นฐานสำหรับภาชนะใส่อาหาร ขนมจะตกลงไปในถังขนาดเล็ก แล้วนำไปใส่ในวงล้อที่หมุนได้

ต่อไปฉันเพิ่ม Raspberry Pi 3 ลงในการออกแบบ Fusion พร้อมกับอุปกรณ์อิเล็กทรอนิกส์อื่น ๆ รวมถึงโมดูลกล้อง LCD และ Raspberry Pi ฉันยังทำถังที่สามารถเก็บอาหารเพิ่มเติมได้

ผนังสำหรับตู้ทำขนมควรจะตัดด้วยไม้อัดขนาด 1/4 นิ้วบนเราเตอร์ CNC มีทั้งหมด 7 ชิ้น ผนัง 4 ชิ้น พื้น และชิ้นบนและฝาที่เปิดปิดเพื่อแสดงขนมได้

สุดท้ายนี้ ฉันได้สร้างที่จับ "แฟนซี" ขึ้นมาเพื่อเปิดฝา

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

DFRobot ยื่นมือมาหาฉันและส่งโมดูลกล้อง Raspberry Pi 3 และ Raspberry Pi ดังนั้น หลังจากที่ฉันเปิดกล่องออกมา ฉันก็เริ่มทำงานโดยตั้งค่าการ์ด SD ก่อนอื่นฉันไปที่หน้าดาวน์โหลด Raspberry Pi และดาวน์โหลด Raspbian เวอร์ชันล่าสุด จากนั้นฉันก็แตกไฟล์และใส่ลงในไดเร็กทอรีที่สะดวก คุณไม่สามารถคัดลอก/วางไฟล์.img ลงในการ์ด SD ได้ แต่คุณต้อง "เบิร์น" ลงในการ์ด คุณสามารถดาวน์โหลดยูทิลิตี้การเบิร์น เช่น Etcher.io เพื่อถ่ายโอนอิมเมจ OS ได้อย่างง่ายดาย หลังจากที่ไฟล์.img อยู่ในการ์ด SD ของฉันแล้ว ฉันจึงเสียบมันเข้าไปใน Raspberry Pi และให้พลังงานแก่มัน หลังจากนั้นประมาณ 50 วินาที ผมก็ถอดสายและถอดการ์ด SD ออก ต่อไปฉันใส่การ์ด SD กลับเข้าไปในพีซีและไปที่ไดเร็กทอรี "บูต" ฉันเปิด Notepad และบันทึกเป็นไฟล์เปล่าชื่อ "ssh" โดยไม่มีนามสกุล นอกจากนี้ยังมีไฟล์ที่ฉันเพิ่มชื่อ "wpa_supplicant.conf" และใส่ข้อความนี้ลงไป: network={ ssid= psk=} จากนั้นฉันก็บันทึกและนำการ์ดออกแล้วใส่กลับเข้าไปใน Raspberry Pi 3 ซึ่งตอนนี้น่าจะอนุญาตให้ การใช้ SSH และการเชื่อมต่อกับ WiFi

ขั้นตอนที่ 4: การติดตั้งซอฟต์แวร์

มีซอฟต์แวร์ต่างๆ มากมายที่สามารถสตรีมวิดีโอได้ เช่น VLC และภาพเคลื่อนไหว แต่ฉันตัดสินใจใช้ mjpeg-streamer เนื่องจากมีเวลาแฝงต่ำและติดตั้งง่าย ตามคำแนะนำบนเว็บไซต์ ให้ทำ a:git clone https://github.com/jacksonliam/mjpg-streamer.git ลงในโฟลเดอร์ จากนั้นพิมพ์: sudo apt-get install cmake libjpeg8-dev เพื่อติดตั้งไลบรารีที่จำเป็น เปลี่ยนไดเร็กทอรีของคุณลงในโฟลเดอร์ที่คุณดาวน์โหลดแล้วพิมพ์: make Followed by: sudo make install เพื่อคอมไพล์ซอฟต์แวร์ สุดท้ายป้อน: export LD_LIBRARY_PATH=. และหากต้องการเรียกใช้ให้พิมพ์:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" คุณสามารถเข้าถึงสตรีมได้โดยไปที่: https:// The pi's local ip:8080/stream html เพื่อดูสตรีม

ขั้นตอนที่ 5: การตั้งค่าเว็บเซิร์ฟเวอร์

เพื่อให้เครื่องถูกควบคุมจากภายนอกด้วย WiFi ฉันต้องการเว็บเซิร์ฟเวอร์ เว็บเซิร์ฟเวอร์โดยทั่วไปจะให้บริการหน้าเว็บเมื่อมีการร้องขอ โดยปกติแล้วโดยเบราว์เซอร์ ฉันต้องการบางสิ่งที่ง่ายและรวดเร็วในการติดตั้งและใช้งาน โดยนำ Apache ออกจากตาราง ฉันยังต้องการเชื่อมต่อเว็บเซิร์ฟเวอร์กับ Python เพื่อให้สามารถควบคุม Arduino Uno ด้วย PySerial ได้ ภารกิจนี้นำฉันไปสู่ Flask ซึ่งเป็นไลบรารี Python ที่ดีที่ช่วยให้ผู้ใช้สร้างเว็บเซิร์ฟเวอร์ได้อย่างรวดเร็ว รหัสเต็มถูกแนบมากับหน้าโครงการนี้ โดยทั่วไปแล้วสคริปต์หลามจะตั้งค่าหน้าเว็บ 2 หน้า เว็บหนึ่งโฮสต์อยู่ที่ไดเรกทอรีราก '/' และอีกเว็บหนึ่งโฮสต์อยู่ที่ '/dispense' หน้าดัชนีมีรูปแบบ HTML ที่ส่งคำขอโพสต์ไปยังหน้าจ่ายเมื่อส่ง หน้าแจกจ่ายจะตรวจสอบว่าค่าโพสต์ถูกต้องหรือไม่ และหากเป็นข้อความ 'D\n' ที่ส่งผ่านซีเรียลไปยัง Arduino Uno

ขั้นตอนที่ 6: การควบคุม IO

การควบคุม IO
การควบคุม IO
การควบคุม IO
การควบคุม IO
การควบคุม IO
การควบคุม IO
การควบคุม IO
การควบคุม IO

ฉันตัดสินใจใช้ DRV8825 เพื่อขับเคลื่อนสเต็ปเปอร์มอเตอร์ เนื่องจากต้องใช้พิน IO เพียง 2 พิน พร้อมกับการจำกัดกระแสที่ปรับได้ ฉันลองใช้ L293D แต่ไม่สามารถรับน้ำหนักของสเต็ปเปอร์มอเตอร์ได้ DRV8825 ถูกควบคุมโดยพัลส์พิน STEP ผ่าน PWM และควบคุมทิศทางโดยการดึงพิน DIR ให้สูงหรือต่ำ สเต็ปเปอร์มอเตอร์ที่ฉันใช้มีการดึง 1.2 แอมป์ ดังนั้นฉันจึงปรับแรงดัน VREF เป็น.6V ถัดมาเป็น LCD ฉันต้องการใช้ I2C เพื่อลดจำนวน IO ที่จำเป็นและทำให้โค้ดง่ายขึ้น ในการติดตั้งไลบรารี่ เพียงแค่ค้นหา "LiquidCrystal_I2C" และติดตั้ง ในที่สุด Arduino Uno จะตรวจสอบข้อมูลใหม่ในบัฟเฟอร์อนุกรมและหากตรงกับ 'D' หากเป็นเช่นนั้น Uno จะทำให้สเต็ปเปอร์มอเตอร์ขยับ 180 องศาแล้ว -72 องศาเพื่อป้องกันไม่ให้ขนมติดค้าง

แนะนำ: