Mục lục:

IoT Treat Dispenser cho vật nuôi: 7 bước (có hình ảnh)
IoT Treat Dispenser cho vật nuôi: 7 bước (có hình ảnh)

Video: IoT Treat Dispenser cho vật nuôi: 7 bước (có hình ảnh)

Video: IoT Treat Dispenser cho vật nuôi: 7 bước (có hình ảnh)
Video: Xây dần ước mơ "Bảo Tàng Tiền Tệ" 🏛 2024, Tháng mười một
Anonim
Image
Image
IoT Treat Dispenser cho vật nuôi
IoT Treat Dispenser cho vật nuôi

Tôi có hai con mèo, và việc phải cho chúng ăn đồ ăn vặt khoảng 3 lần một ngày trở nên khá phiền toái. Họ sẽ ngước nhìn tôi với khuôn mặt dễ thương và ánh mắt mãnh liệt, sau đó chạy đến một chiếc hộp đầy mèo, kêu meo meo và cầu xin chúng. Tôi đã quyết định rằng đủ là đủ. Không cần phải dậy chỉ để cho một con mèo một vài món quà. Bây giờ là thời điểm cho máy pha chế đồ ăn, bởi vì như người ta thường nói: "Các lập trình viên tồn tại để tạo ra những thứ phức tạp để làm những thứ đơn giản ít hơn."

DFRobot đã tài trợ cho dự án này.

Danh sách các bộ phận:

  • DFRobot Raspberry Pi 3
  • Mô-đun máy ảnh DFRobot Raspberry Pi
  • Động cơ bước DFRobot với bánh răng hành tinh
  • I2C LCD 16x2
  • Jack thùng đến ga cuối
  • Trình điều khiển động cơ bước DRV8825
  • Tụ điện 100 µF
  • Arduino UNO & Genuino UNO
  • Dây nhảy (chung)

Bước 1: Tạo thiết kế

Tạo thiết kế
Tạo thiết kế

Đầu tiên là lựa chọn cách điều khiển cỗ máy mới nghĩ của tôi. Bluetooth sẽ có phạm vi quá ngắn, chỉ 30 feet mà không có vật cản. Với thông tin này, tôi đã chọn sử dụng WiFi. Nhưng bây giờ, làm cách nào để sử dụng WiFi để điều khiển máy? Raspberry Pi 3 có khả năng WiFi tích hợp, cho phép tôi sử dụng Flask để lưu trữ một trang web. Tiếp theo là chủ đề về bao vây và cách phân phát đồ ăn vặt. Tôi quyết định thiết kế bánh xe xoay, trong đó đồ ăn sẽ rơi thành các đoạn nhỏ, được xoay xung quanh, và sau đó đồ ăn sẽ thả xuống một đoạn đường dốc và di chuyển đến phía trước của máy.

Bước 2: Tạo mô hình Fusion 360

Tạo mô hình Fusion 360
Tạo mô hình Fusion 360
Tạo mô hình Fusion 360
Tạo mô hình Fusion 360
Tạo mô hình Fusion 360
Tạo mô hình Fusion 360

Tôi đã bắt đầu bằng cách tạo ra một mô hình cơ sở cho ngăn chứa điều trị. Xử lý rơi vào một cái phễu nhỏ, sau đó chúng được đưa vào một bánh xe quay.

Tiếp theo, tôi đã thêm Raspberry Pi 3 vào thiết kế Fusion, cùng với các thiết bị điện tử khác, bao gồm màn hình LCD và mô-đun máy ảnh Raspberry Pi. Tôi cũng đã làm một cái phễu có thể lưu trữ thêm đồ ăn vặt.

Các bức tường của bộ phân phối xử lý được cho là được cắt ra từ ván ép 1/4 inch trên bộ định tuyến CNC. Có 7 mảnh, 4 bức tường, một sàn nhà, và một mảnh trên cùng và nắp có thể mở và đóng để phơi đồ.

Cuối cùng, tôi đã tạo ra một tay cầm "lạ mắt" để mở nắp.

Bước 3: Thiết lập Pi

DFRobot đã liên hệ với tôi và gửi Mô-đun máy ảnh Raspberry Pi 3 và Raspberry Pi của họ. Vì vậy, sau khi tôi mở các hộp, tôi có quyền làm việc bằng cách thiết lập thẻ SD. Đầu tiên, tôi truy cập trang Tải xuống Raspberry Pi và tải xuống phiên bản Raspbian mới nhất. Sau đó tôi giải nén tập tin và đặt nó vào một thư mục thuận tiện. Bạn không thể chỉ sao chép / dán tệp.img vào thẻ SD, bạn phải "ghi nó" vào thẻ. Bạn có thể tải xuống tiện ích ghi đĩa như Etcher.io để dễ dàng chuyển ảnh hệ điều hành. Sau khi tệp.img có trên thẻ SD của tôi, tôi đã lắp nó vào Raspberry Pi và cấp nguồn cho nó. Sau khoảng 50 giây, tôi rút dây và tháo thẻ SD. Tiếp theo, tôi đặt lại thẻ SD vào PC và chuyển đến thư mục "khởi động". Tôi đã mở Notepad và lưu nó dưới dạng tệp trống có tên "ssh" không có phần mở rộng. Cũng có một tệp tôi đã thêm có tên "wpa_supplicant.conf" và đặt văn bản này vào đó: network = {ssid = psk =} Sau đó, tôi đã lưu và đẩy thẻ ra và đưa nó trở lại Raspberry Pi 3. Điều này bây giờ sẽ cho phép việc sử dụng SSH và kết nối với WiFi.

Bước 4: Cài đặt phần mềm

Có một số phần mềm khác nhau có thể phát trực tuyến video, chẳng hạn như VLC và chuyển động, nhưng tôi quyết định sử dụng mjpeg-streamer do độ trễ thấp và cài đặt dễ dàng. Theo hướng dẫn trên trang web, hãy thực hiện thao tác: git clone https://github.com/jacksonliam/mjpg-streamer.git Vào một thư mục, sau đó nhập: sudo apt-get install cmake libjpeg8-dev Để cài đặt các thư viện cần thiết. Thay đổi thư mục của bạn thành thư mục bạn đã tải xuống rồi nhập: make Tiếp theo là: sudo make install Để biên dịch phần mềm. Cuối cùng nhập: xuất LD_LIBRARY_PATH =. Và để chạy nó, hãy nhập:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Bạn có thể truy cập luồng bằng cách truy cập: https:// IP cục bộ của pi: 8080 / stream. html Để xem luồng.

Bước 5: Thiết lập máy chủ web

Để có thể điều khiển máy tính từ bên ngoài bằng WiFi, tôi cần một máy chủ web. Về cơ bản, một máy chủ web phục vụ các trang web khi được yêu cầu, thường là bởi một trình duyệt. Tôi muốn một thứ gì đó nhanh chóng và đơn giản để thiết lập và sử dụng, loại bỏ Apache. Tôi cũng muốn giao diện máy chủ web với Python để tôi có thể điều khiển Arduino Uno bằng PySerial. Nhiệm vụ này cuối cùng đã dẫn tôi đến Flask, một thư viện Python tuyệt vời cho phép người dùng nhanh chóng tạo một máy chủ web. Mã đầy đủ được đính kèm với trang dự án này. Về cơ bản, tập lệnh python thiết lập 2 trang web, một trang được lưu trữ tại thư mục gốc, '/' và một trang khác được lưu trữ tại '/ dispense'. Trang chỉ mục có một dạng HTML mà khi được gửi sẽ gửi một yêu cầu đăng bài đến trang phân phối. Sau đó, trang phân phối sẽ kiểm tra xem giá trị bài đăng có đúng hay không và nếu đó là thông báo 'D / n' được gửi qua nối tiếp đến Arduino Uno.

Bước 6: Kiểm soát IO

Kiểm soát IO
Kiểm soát IO
Kiểm soát IO
Kiểm soát IO
Kiểm soát IO
Kiểm soát IO
Kiểm soát IO
Kiểm soát IO

Tôi đã quyết định sử dụng DRV8825 để điều khiển động cơ bước của mình, chủ yếu là do nó chỉ cần 2 chân IO cùng với giới hạn dòng điện có thể điều chỉnh. Tôi đã thử sử dụng L293D nhưng nó không thể xử lý tải của động cơ bước. DRV8825 được điều khiển bằng cách tạo xung chân STEP qua PWM và hướng được điều khiển bằng cách kéo chân DIR lên cao hoặc xuống thấp. Động cơ bước tôi đang sử dụng có dòng điện 1,2 amp, vì vậy tôi đã điều chỉnh điện áp VREF thành 0,6V. Tiếp theo là màn hình LCD. Tôi muốn sử dụng I2C để giảm lượng IO cần thiết và đơn giản hóa mã. Để cài đặt thư viện, chỉ cần tìm kiếm "LiquidCrystal_I2C" và cài đặt nó. Cuối cùng, Arduino Uno kiểm tra thông tin mới trong bộ đệm nối tiếp và nếu nó khớp với 'D'. Nếu đúng như vậy, Uno sẽ làm cho động cơ bước di chuyển 180 độ và sau đó -72 độ để ngăn không cho đồ đạc bị mắc kẹt.

Đề xuất: