Làm thế nào để tạo ra một hệ thống cho ăn tự động cho vật nuôi của bạn?
Vật nuôi cần được cho ăn kịp thời để chúng có thể duy trì sức khỏe tốt. Chủ sở hữu vật nuôi không có mặt ở nhà 24/7, đôi khi họ đi họp kinh doanh đến thành phố khác hoặc nhà của người khác, vì vậy, vật nuôi phải chịu cảnh vắng mặt vì thiếu thức ăn. Máy cho ăn bằng trọng lực có sẵn trên thị trường có thể cho vật nuôi ăn tự động nhưng chúng hơi đắt và cần diện tích lớn để đặt thức ăn. Hôm nay, tôi sẽ thiết kế một hệ thống cho ăn tự động cho vật nuôi trong nhà sẽ giảm thiểu nỗ lực của con người trong việc cho vật nuôi ăn ở mức độ lớn. Người ta sẽ đặt thực phẩm vào hộp đựng và nó sẽ tự động được đổ đầy lại ngay khi giảm xuống dưới một mức nhất định. Do đó, hãy làm theo hướng dẫn này và sẵn sàng thực hiện ý tưởng sáng tạo này tại nhà của bạn.
Làm thế nào để thiết lập thiết bị và tự động hóa nó bằng Arduino?
Mục đích của kỹ thuật này là tạo ra một hệ thống, hiệu quả hơn từ các hệ thống có sẵn trên thị trường như máy cấp liệu trọng lực, với chi phí tương đối thấp. Hệ thống của chúng tôi sẽ chịu trách nhiệm duy trì nguồn cung cấp thức ăn và nước uống liên tục cho cả vật nuôi. Thứ nhất, chúng tôi sẽ thiết kế hệ thống cấp nước tự động và thứ hai, chúng tôi sẽ thiết kế một khay nạp thức ăn tự động cho vật nuôi của chúng tôi.
Bước 1: Các thành phần cần thiết (Phần cứng)
Bước 2: Các thành phần cần thiết (Phần mềm)
Trước khi lắp ráp mạch trên phần cứng, nó nên được mô phỏng. Sau khi mô phỏng, chúng ta biết rằng liệu mạch của chúng ta có hoạt động chính xác hay không. Do đó, tôi đã bao gồm các mô phỏng phần mềm bên dưới và để làm được điều đó, phần mềm được yêu cầu là Proteus Professional.
Bước 3: Nguyên lý làm việc của hệ thống bơm nước tự động
Trong số tất cả các thành phần, thành phần quan trọng nhất là Bóng bán dẫn BC 547. Có tổng cộng 7 bóng bán dẫn và chúng sẽ cảm biến mực nước. Đèn LED sẽ theo dõi mực nước trong Thùng chứa. khi nước lên cao, các cảm biến bắt đầu tiếp xúc với nước và các bóng bán dẫn được kích hoạt và có sự gia tăng dòng điện trong các bóng bán dẫn làm cho đèn LED sáng lên. Có một điện trở giới hạn dòng điện liên quan giữa bóng bán dẫn và đèn LED và nó ngăn chặn điện áp cao hơn đi vào đèn LED. Ống cao su sẽ được kết nối với bình chứa trên cao và nó sẽ có nhiệm vụ làm đầy bình chứa khi mực nước giảm xuống dưới một ngưỡng nhất định. Khi nước giảm xuống dưới ngưỡng, máy bơm nước sẽ khởi động và thùng chứa bắt đầu đầy. Bằng cách này, không cần phải đổ đầy bình chứa theo cách thủ công và vật nuôi được cung cấp nước liên tục. Để bạn dễ hiểu, tôi sẽ nói rõ hơn về chức năng của đèn LED. Các đèn LED được lắp đặt trong mạch có bốn loại màu. Đỏ, Vàng, Xanh lục và Xanh lam. Màu đỏ cho biết không có nước trong bình chứa và không có cảm biến nào tiếp xúc với nước và bình chứa cần được đổ đầy lại. Đèn LED màu vàng cho biết 1/4 lượng nước trong bình chứa. Đèn LED màu xanh lá cây cho biết thùng chứa đầy nước và đèn LED màu xanh lam cho biết thùng chứa đầy nước.
Bước 4: Mô phỏng mạch
- Sau khi bạn tải xuống và cài đặt phần mềm Proteus, hãy mở nó. Mở một giản đồ mới bằng cách nhấp vào ISISbiểu tượng trên menu.
- Khi giản đồ mới xuất hiện, hãy nhấp vào Pbiểu tượng trên menu bên. Thao tác này sẽ mở ra một hộp trong đó bạn có thể chọn tất cả các thành phần sẽ được sử dụng.
- Bây giờ gõ tên của các thành phần sẽ được sử dụng để tạo mạch. Thành phần sẽ xuất hiện trong danh sách ở phía bên phải.
- Tương tự như trên, tìm kiếm tất cả các thành phần như trên. Chúng sẽ xuất hiện trong Thiết bị Danh sách.
Bước 5: Tạo bố cục PCB
Khi chúng tôi sẽ làm cho mạch phần cứng trên PCB, Trước tiên, chúng ta cần tạo bố cục PCB cho mạch này.
- Để tạo bố cục PCB trên Proteus, trước tiên chúng ta cần gán các gói PCB cho mọi thành phần trên giản đồ. để gán gói, nhấp chuột phải vào thành phần bạn muốn gán gói và chọn Dụng cụ đóng gói.
- Nhấp vào tùy chọn ARIES trên menu trên cùng để mở sơ đồ PCB.
- Từ Danh sách Thành phần, Đặt tất cả các thành phần trên màn hình theo thiết kế mà bạn muốn mạch của mình trông giống như vậy.
- Nhấp vào chế độ theo dõi và kết nối tất cả các chân mà phần mềm đang yêu cầu bạn kết nối bằng cách trỏ một mũi tên.
Bước 6: Sơ đồ mạch
Sau khi lắp ráp các thành phần và đấu dây, sơ đồ mạch sẽ như sau:
Bước 7: Nguyên tắc hoạt động của hệ thống cung cấp thực phẩm tự chủ
Nguyên lý hoạt động của hệ thống cung cấp thực phẩm rất đơn giản và thành phần quan trọng nhất trong mạch này là Mô-đun đồng hồ thời gian thực (DS3231)qua đó chúng tôi có thể đặt ngày và giờ mà thức ăn sẽ được phục vụ cho vật nuôi của chúng tôi. Mô-đun LCD sẽ hiển thị ngày và giờ và động cơ servo sẽ xoay các bát chứa thức ăn. Tôi đã bao gồm bàn phím 4 × 4 để đặt thời gian cho vật nuôi theo cách thủ công. Tôi đã sử dụng động cơ servo để bát chứa thức ăn có thể quay và nó có thể được thả xuống bát thấp hơn từ đó vật nuôi có thể ăn được. Thức ăn sẽ được bỏ vào bát dưới theo khoảng thời gian cụ thể do bạn đặt trong mã. Bạn có thể tự đặt lượng thức ăn theo thói quen ăn uống của chó, mèo, vẹt, v.v.
Bước 8: Mô phỏng mạch
Mô phỏng mạch bằng cách làm theo các bước trên để kiểm tra xem nó có hoạt động hay không. Phần còn lại của quy trình giống nhau ngoại trừ các thành phần và vị trí của chúng. Các thành phần sẽ được sử dụng trong mạch được hiển thị dưới đây:
- Các thành phần sẽ xuất hiện trong Thiết bị Danh sách.
Bây giờ, khi chúng tôi đã kiểm tra rằng mạch hoạt động tốt, chúng tôi sẽ tiếp tục và viết mã cho Arduino.
Bước 9: Sơ đồ mạch
Sơ đồ mạch của Proteus sẽ trông như thế này:
Bước 10: Bắt đầu với Arduino
Nếu bạn chưa quen với Arduino IDE trước đây, đừng lo lắng vì dưới đây, bạn có thể xem các bước ghi mã rõ ràng trên bảng vi điều khiển bằng Arduino IDE. Bạn có thể tải xuống phiên bản Arduino IDE mới nhất từ đây và làm theo các bước bên dưới:
- Khi bảng Arduino được kết nối với PC của bạn, hãy mở “Bảng điều khiển” và nhấp vào “Phần cứng và Âm thanh”. Sau đó nhấp vào “Thiết bị và Máy in”. Tìm tên của cổng mà bảng Arduino của bạn được kết nối. Trong trường hợp của tôi, nó là “COM14” nhưng nó có thể khác trên PC của bạn.
- Bây giờ hãy mở Arduino IDE. Từ Công cụ, đặt bảng Arduino thành Arduino / Genuino UNO.
- Từ cùng một menu Công cụ, hãy đặt số cổng mà bạn đã thấy trong bảng điều khiển.
- Tải xuống mã được đính kèm bên dưới và sao chép nó vào IDE của bạn. Để tải mã lên, hãy nhấp vào nút tải lên.
Bạn có thể tải xuống mã từ Đây.
Bước 11: Tìm hiểu Quy tắc
Mã được sử dụng trong dự án này rất đơn giản và được nhận xét tốt. Mặc dù nó tự giải thích nhưng nó được mô tả ngắn gọn bên dưới để nếu bạn đang sử dụng một bảng Arduino khác như nano, mega, v.v., bạn có thể sửa đổi mã đúng cách và sau đó ghi nó vào bảng của bạn.
- Ở trên cùng, các thư viện khác nhau được bao gồm để bàn phím, LCD, IC RTC và động cơ servo có thể được vận hành bởi bộ vi điều khiển.
#include#include #include #include
2. Sau đó, các hàng và cột của bàn phím đã khởi tạo các chân của Arduino mà chúng sẽ được kết nối và sau đó toàn bộ bàn phím được tạo.
const byte ROWS = 4; // Bốn hàng const byte COLS = 4; // Ba cột // Xác định các phím Biểu đồ ký tự [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {2, 3, 4, 5}; // Kết nối bàn phím ROW0, ROW1, ROW2 và ROW3 với các chân Arduino này. byte colPins [COLS] = {6, 7, 8, 9}; // Kết nối bàn phím COL0, COL1 và COL2 với các chân Arduino này. Keypad kpd = Bàn phím (makeKeymap (phím), rowPins, colPins, ROWS, COLS); // Tạo bàn phím
3. Sau đó, IC RTC, động cơ servo và LCD lỏng được khởi tạo và một số biến được khai báo sẽ được sử dụng cho các tính toán thời gian chạy.
DS3231 rtc (A4, A5); Servo servo_test; // khởi tạo đối tượng servo cho lcd LiquidCrystal servo được kết nối (A0, A1, A2, 11, 12, 13); // Tạo một đối tượng LC. Các tham số: (rs, enable, d4, d5, d6, d7) // int angle = 0; // int potentio = A0; // khởi tạo chân A0analog cho chiết áp int t1, t2, t3, t4, t5, t6; boolean feed = true; // điều kiện cho khóa char báo động; int r [6];
4. void setup ()là một chức năng chỉ được thực thi một lần trong mã khi bộ vi điều khiển được bật nguồn hoặc nút bật được nhấn. Tốc độ truyền được đặt trong hàm này về cơ bản là tốc độ tính bằng bit trên giây mà vi điều khiển giao tiếp với các thiết bị ngoại vi. Trong chức năng này, RTC và servo cũng được khởi động và các chân được khởi tạo để sử dụng làm Đầu vào hoặc Đầu ra.
void setup () {servo_test.attach (10); // gắn chân tín hiệu của servo vào chân9 của arduino rtc.begin (); lcd.begin (16,2); servo_test.write (55); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A2, OUTPUT); }
5. void loop () là một hàm được thực thi lặp đi lặp lại trong một vòng lặp. Ở đây trong chức năng này, mã được viết để theo dõi thời gian và in nó trên màn hình LCD. sau đó một lệnh được đưa ra để xoay servo ở một góc xác định.
void loop () {lcd.setCursor (0,0); int buttonPress; buttonPress = digitalRead (A3); if (buttonPress == 1) setFeedingTime (); //Serial.println(buttonPress); lcd.print ("Thời gian:"); Chuỗi t = ""; t = rtc.getTimeStr (); t1 = t.charAt (0) -48; t2 = t.charAt (1) -48; t3 = t.charAt (3) -48; t4 = t.charAt (4) -48; t5 = t.charAt (6) -48; t6 = t.charAt (7) -48; lcd.print (rtc.getTimeStr ()); lcd.setCursor (0,1); lcd.print ("Ngày:"); lcd.print (rtc.getDateStr ()); if (t1 == r [0] && t2 == r [1] && t3 == r [2] && t4 == r [3] && t5 <1 && t6 <3 && feed == true) {servo_test. ghi (100); // lệnh xoay servo đến độ trễ góc xác định (400); servo_test.write (55); nguồn cấp dữ liệu = false; }}
6. void setFeedingTime () là một chức năng nhận đầu vào từ bàn phím và ánh xạ đầu vào để đặt thời gian nạp liệu trong bộ vi điều khiển. Thời gian này sau đó được sử dụng để quay mô tơ để cung cấp thức ăn cho vật nuôi.
void setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Đặt thời gian cho ăn"); lcd.clear (); lcd.print ("HH: MM"); lcd.setCursor (0,1); while (1) {key = kpd.getKey (); ký tự j; if (key! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (phím); r [i] = phím-48; i ++; j ++; if (j == 2) {lcd.print (":"); j ++; } delay (500); } if (key == 'D') {key = 0; phá vỡ; }}}
Bước 12: Thiết kế phần cứng của hệ thống bơm nước
Vì chúng ta đã hoàn thành tất cả các nhiệm vụ phần mềm, bây giờ chúng ta hãy tiến hành thiết kế phần cứng của dự án. Trước hết, chúng tôi sẽ lắp ráp các thành phần của hệ thống bơm nước và sau đó, chúng tôi sẽ thiết kế phần cứng của hệ thống cung cấp thực phẩm tự động. Sau khi thực hiện sơ đồ mạch PCB, hàn các linh kiện trên bảng mạch PCB theo sơ đồ mạch như trên. Đặt mạch vào một hộp nhỏ và tạo các lỗ trên đó một cách thích hợp để đèn LED có thể dễ dàng thoát ra khỏi hộp. Lấy bảng mạch PCB và hàn đèn LED trên đó theo các mức được xác định ở trên. Sau khi phân tích mạch, chúng tôi biết rằng cần phải đưa năm đường cung cấp ra khỏi bảng mạch chính đến cảm biến. Bốn dòng dành cho các cảm biến và một dòng dành cho Pin dương chung.
Chúng ta có thể cần tạo ra hai kênh để khi chúng tiếp xúc với nước, chúng sẽ hoạt động như một công tắc, vì nước là một chất dẫn điện tốt. Chúng ta có thể sử dụng một ống PVC và tạo lỗ trên đó. Đầu tiên, đo chiều cao của vật chứa và sau đó với các khoảng thời gian bằng nhau, đánh dấu 4 điểm trên đó. Tạo các lỗ trên những điểm đó và sau đó tạo một vòng dây sẽ mang dòng điện. Cố định vòng dây đó bằng đai ốc và bu lông trong ống PVC đó và sau đó thêm dây chung vào vỏ. Lỗ của dây trần và bu lông nên được giữ ở mức tối thiểu và trong trường hợp cần thiết, bạn có thể hàn một ít dây vào đường chung ngay bên cạnh đai ốc và vít vì cảm biến sẽ nhiều hơn tại điểm khi nước tương tác với dây bình thường và bu lông, sẽ có sự truyền dòng điện từ dây bị tước sang bu lông và do đó, phần cảm biến đã hoàn thành. Ngay sau khi nước xuống dưới một mức nhất định, mô tơ nước sẽ được quay TRÊN và bể bắt đầu đầy. Khi thùng bắt đầu đầy thùng chứa cũng bắt đầu đầy do ống nước khi nước được truyền từ thùng sang thùng chứa qua đường ống. Do đó, không cần phải lấp đầy thùng chứa theo cách thủ công nữa.
Bước 13: Thiết kế phần cứng của hệ thống cung cấp thực phẩm tự động
Bây giờ chúng ta sẽ lắp ráp phần cứng của hệ thống cung cấp thực phẩm. Chúng ta có thể đặt các khoảng thời gian do mình lựa chọn bằng cách sử dụng Đồng hồ thời gian thực DS3231 mô-đun và do đó theo dõi lịch trình ăn uống của vật nuôi của chúng tôi, chúng tôi sẽ điều chỉnh lịch trình. Khi bộ hẹn giờ đến ngày giờ đã định, mô tơ servo sẽ di chuyển và thức ăn sẽ được thả vào bát đặt bên dưới. Lắp ráp mạch như hình trên vào breadboard. Lấy một thanh gỗ và gắn động cơ servo với nó. Cố định thẳng đứng vào tường và với sự trợ giúp của vít gắn bát thức ăn vào que. Bát có thể giống như một ống rỗng hình ống tre được mở từ hai đầu và một miếng gỗ tròn sẽ được đặt ở dưới cùng của nó. Mô tơ servo sẽ được gắn vào miếng gỗ và ngay khi mô tơ di chuyển ở một góc nào đó, thực phẩm sẽ được thả xuống bát đặt bên dưới.
Đó là tất cả cho ngày hôm nay. Đừng quên chia sẻ kinh nghiệm của bạn sau khi hoàn thành dự án này và nếu bạn có bất kỳ vấn đề gì hãy hỏi trong phần bình luận.