Mục lục:
- Quân nhu
- Bước 1: Tổng quan về thiết kế
- Bước 2: Tổng quan về mã
- Bước 3: Gắn Nema 17 vào Base Plate & Auger
- Bước 4: Đấu dây L298N & RTC
- Bước 5: Mã hóa với nhận xét
- Bước 6: Sự cố và cách tôi khắc phục
Video: Auto Dog Feeder: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Đây là dự án của tôi về Máy cấp liệu tự động cho thú cưng. Tên tôi là Parker, tôi học lớp 11 và tôi đã thực hiện dự án này vào ngày 11 tháng 11 năm 2020 với tư cách là CCA (Hoạt động kết thúc khóa học). Trong dự án này, tôi sẽ hướng dẫn bạn cách tạo Máy nạp vật nuôi tự động với Arduino UNO. Bạn có thể chọn thời gian mà bạn có thể thay đổi. Thức ăn sẽ được phân phối thông qua máy khoan và cho vật nuôi của bạn ăn!
Quân nhu
Thiết bị điện tử:
- Arduino UNO
- L298N - 10 $ - Điều khiển Nema 17
- NEMA 17 - 10 $ - Xoay máy khoan để thức ăn phân phát
- RTC (DS1307) - 10 $ - Cung cấp thời gian
- Nguồn điện 12V - 5 $ - Cung cấp năng lượng cho mọi thứ
- Mini Breadboard - Để có thêm không gian đi dây
- Jumper Wires - Kết nối mọi thứ
- Dây từ Nữ đến Nam - Kết nối mọi thứ
Phần cứng:
- Dây tóc in 3D - dành cho máy in 3D
- 2 Bu lông M4 - Giữ tấm đế tại chỗ
- 4 bu lông Nema 17 - Giữ nema xuống
- PVC T 48mm kích thước bên trong 66mm kích thước bên ngoài - 3 $
Công cụ:
- máy in 3D
- Máy khoan
- Súng hàn
Bước 1: Tổng quan về thiết kế
Thiết kế của máng ăn cho vật nuôi rất đơn giản. Một cái phễu đi lên trên cùng của PVC T. Sau đó, một nắp đậy ở mặt sau của PVC T (như trong hình) với Nema 17 được gắn vào nó. Sau đó, Nema 17 sẽ được đẩy vào phía sau của Auger có thể được nhìn thấy ở trên và một bu lông sẽ đi vào bên để giữ nó đúng vị trí để nó không làm biến dạng lỗ có thể nhìn thấy ở trên!
Sau đó, máy khoan sẽ chỉ đơn giản là đẩy thức ăn ra khỏi đường ống và vào một cái bát!
Bước 2: Tổng quan về mã
RTC & Stepper có một libary được gọi là RTClib.h và Stepper.h bổ sung mã đơn giản cho RTC & Stepper. Câu lệnh if rất đơn giản, nó nói rằng nếu giờ & phút bằng với thời gian đã nói, nó sẽ quay nema sẽ phân phối thức ăn. Phần còn lại của mã rất dễ hiểu ngay cả đối với những người có một ngày kinh nghiệm.
Bước 3: Gắn Nema 17 vào Base Plate & Auger
Trước tiên, bạn muốn lấy tấm nền của mình và gắn nó vào Nema 17 bằng cách sử dụng các lỗ được tạo sẵn trên tấm nền. Sau khi hoàn thành, bạn muốn gắn mũi khoan vào Nema bằng cách sử dụng lỗ phía sau trên đó. Sau đó, kết nối tấm nền với mũi khoan và Nema được gắn vào sau đó vặn các bu lông M2 vào mỗi bên.
Bước 4: Đấu dây L298N & RTC
Bước này sẽ cho bạn biết cách đấu dây L298N & RTC
Chúng tôi sẽ bắt đầu với các chân 8, 9, 10, 11 đến L298N
- Chân 8 (Trắng) sang IN1
- Pin 9 (Tím) sang IN2
- Ghim 10 (Hồng) sang IN3
- Mã PIN 11 (Vàng) thành IN4
Tiếp theo, chúng tôi sẽ kết nối Nema 17 với L298N
- OUT1 đến 1 trên NEMA
- OUT2 đến 2 trên NEMA
- OUT3 đến 3 trên NEMA
- OUT4 đến 4 trên NEMA
Kết nối 12v và Arduino với L298N (Không thể tìm thấy 12V nên hãy tưởng tượng pin 9V như nguồn điện)
- Vôn đến 12V
- Mặt đất đến GND
- 5V đến 5V trên Breadboard
Kết nối RTC với Arduino
- GND sang GND
- 5V đến 5V trên Breadboard
- SDA đến A5
- SCL sang A4
Jumper Pins
Tất cả các chân jumper được cho là trên L298N
Bước 5: Mã hóa với nhận xét
Mã rõ ràng hơn trong hình ảnh ở trên
// Tên: Parker Frederick
// Tên dự án: Auto Pet Feeder // Ngày: Thứ Ba, ngày 10 tháng 11 năm 2020 // Giáo viên: M. Bonisteel // Mô tả: Cho vật nuôi của bạn ăn vào một thời điểm nhất định!
// Libaries cho những thứ tôi đã sử dụng #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Nói những gì tôi đang sử dụng RTC
// Đây là nơi bạn đặt thời gian cho món ăn
// Giờ int mornFeedTime = 12; int nightFeedTime = 7; // Phút int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Giây int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"Chủ Nhật", "Thứ Hai", "Thứ Ba", "Wedsneday", "Thứ Năm", "Thứ Sáu", "Thứ Bảy"}; // Biến những ngày bình thường thành những ngày trong tuần
const int nguồn cấp dữ liệu = 200; // Đây là các bước của bạn nên bạn muốn nó quay bao nhiêu lần
Bước myStepper (nguồn cấp dữ liệu, 8, 9, 10, 11); // Chân của bạn cho Nema 17 và hầu hết các bước khác
void setup () {Serial.begin (9600);
while (! nối tiếp); // Nếu RTC không hoạt động, nó sẽ hiển thị nó trong màn hình nối tiếp if (! Rtc.begin ()) {Serial.println ("Không thể tìm thấy RTC"); trong khi (1); }
// Điều này sẽ cho bạn biết Đồng hồ thời gian thực có đang chạy hay không và nó sẽ hiển thị trên màn hình nối tiếp if (! Rtc.isrunning ()) {Serial.println ("RTC đang chạy!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Điều này sẽ làm mất thời gian máy tính của bạn và sử dụng nó trên RTC
// Nếu bạn muốn đặt thời gian thay vì thời gian trên máy tính, bạn có thể thực hiện tại đây //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Năm / Tháng / Ngày / Giờ / Phút / Giây} myStepper.setSpeed (200); // Tốc độ bạn muốn nó quay tại}
void loop () {DateTime now = rtc.now ();
// Điều này sẽ biến các biến này thành giờ hiện tại vv int hr = now.hour (); int mi = now.minute (); int se = ngay.second ();
// Mã để tại thời điểm đã đặt, nó sẽ phân phát thức ăn và nó sẽ quay 5 lần, điều này nếu cho thức ăn buổi sáng
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Bữa sáng!"); myStepper.step (-feed); chậm trễ (700);
myStepper.step (-feed); chậm trễ (700);
myStepper.step (-feed); chậm trễ (700);
myStepper.step (-feed); chậm trễ (700);
myStepper.step (-feed); chậm trễ (700);
myStepper.step (-feed); chậm trễ (700);
myStepper.step (-feed); chậm trễ (700);
}
// Mã để vào thời gian đã đặt, nó sẽ phân phát thức ăn và nó sẽ quay 5 lần, đây là cho thức ăn ban đêm
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Bữa tối!"); myStepper.step (-feed); chậm trễ (700);
myStepper.step (-feed); chậm trễ (700);
myStepper.step (-feed); chậm trễ (700);
myStepper.step (-feed); chậm trễ (700);
myStepper.step (-feed); chậm trễ (700);
myStepper.step (-feed); chậm trễ (700);
myStepper.step (-feed); chậm trễ (700); }
// Điều này sẽ hiển thị NĂM, THÁNG, NGÀY, GIỜ, PHÚT, GIÂY trong chuỗi
Serial.print (now.year (), DEC); Serial.print ('/'); Serial.print (now.month (), DEC); Serial.print ('/'); Serial.print (now.day (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serial.print (now.hour (), DEC); Serial.print (':'); Serial.print (now.minute (), DEC); Serial.print (':'); Serial.print (now.second (), DEC); Serial.println (); }
Trang web tôi đã sử dụng cho RTC Tôi đã xóa hầu hết những thứ khác ngoài các câu lệnh if cho biết RTC đang bật hay tắt. Tôi chủ yếu sử dụng trang web này để học cách lập trình RTC
Trang web tôi đã sử dụng cho Động cơ bước, điều này đã giúp tôi hiểu cách lập trình bước để chạy. Tôi thực sự không giữ bất cứ điều gì với nó. Nó chỉ giúp tôi hiểu cách viết mã nó
Bước 6: Sự cố và cách tôi khắc phục
Một số vấn đề tôi đã gặp phải
- Tôi cần nguồn điện 12v, tôi chỉ có pin 9v, tôi đã tìm thấy một cái và nó đã được giải quyết nhanh chóng.
- Khi kết nối L298N với NEMA 17, tôi đã mắc sai dây trên A và A- khiến nó hơi chập chờn. Tôi chỉ đơn giản là sửa nó bằng cách thay đổi dây theo cách khác.
- Cố gắng làm cho mã đơn giản hơn vì trong câu lệnh if myStepper.step (-feed); lặp đi lặp lại trông lộn xộn. Vì vậy, tôi đã phải thay đổi nó trở lại.
- Tôi đã có tấm đế sai kích thước như trong hình nên tôi phải in 3D một tấm mới một chút và nó vừa vặn hoàn hảo!
- Vấn đề tôi gặp phải là nó bị kẹt vì mũi khoan nhỏ nên nó bị kẹt, cách đơn giản tôi có thể khắc phục là bằng cách phóng to mũi khoan lên một lượng nhỏ!
Đề xuất:
Bird Feeder Monitor V2.0: 12 bước (có hình ảnh)
Bird Feeder Monitor V2.0: Đây là một dự án theo dõi, chụp ảnh và ghi lại số lượng và thời gian của những con chim đến thăm máy cho chim của chúng tôi. Nhiều Raspberry Pi (RPi) đã được sử dụng cho dự án này. Một chiếc được sử dụng làm cảm biến cảm ứng điện dung, Adafruit CAP1188, để phát hiện, cảm biến lại
Arduino Uno Fish Feeder trong 6 bước giá rẻ và dễ dàng!: 6 bước
Arduino Uno Fish Feeder trong 6 bước rẻ và dễ dàng !: Vì vậy, có thể cần một chút thông tin cơ bản cho dự án này. Những người nuôi cá cảnh có lẽ cũng gặp phải vấn đề tương tự như tôi: nghỉ phép và hay quên. Tôi liên tục quên cho cá ăn và luôn cố gắng làm như vậy trước khi nó
MAGICAL Cat Feeder: 8 bước
MAGICAL Cat Feeder: CAT LIVES MATTER
Bird Feeder Monitor: 7 bước (có hình ảnh)
Bird Feeder Monitor: Đây là một dự án theo dõi số lượng chim đến thăm nơi cho chim ăn của tôi, cũng như ghi lại khoảng thời gian cho ăn. Tôi đã sử dụng Arduino Yún và cảm biến cảm ứng điện dung, Adafruit CAP1188, để phát hiện và ghi lại tiếng chim ăn. Trên một
Raspberry Pi Automatic Dog Feeder & Live Video Streamer: 3 bước
Raspberry Pi Automatic Dog Feeder & Live Video Streamer: Đây là khay nạp chó tự động được hỗ trợ bởi Raspberry PI của tôi. Tôi thường làm việc từ sáng 11 giờ đến 9 giờ tối. Con chó của tôi sẽ phát điên nếu tôi không cho nó ăn đúng giờ. Lướt google để mua máy nạp thức ăn tự động, Chúng không có sẵn ở Ấn Độ và nhập khẩu đắt đỏ op