Isi kandungan:

Pengumpan Anjing Auto: 6 Langkah
Pengumpan Anjing Auto: 6 Langkah

Video: Pengumpan Anjing Auto: 6 Langkah

Video: Pengumpan Anjing Auto: 6 Langkah
Video: Ekstro Smart Pet Feeder - Wifi Dispenser Makan Otomatis Anjing Kucing 2024, Julai
Anonim
Pengumpan Anjing Auto
Pengumpan Anjing Auto

Ini adalah projek saya dari Auto Pet Feeder. Nama saya Parker saya berada di Gred 11 dan saya membuat projek ini pada 11 November 2020 sebagai CCA (Course Culminating Activity) dalam projek ini saya akan menunjukkan kepada anda cara membuat Pet Feeder Automatik dengan Arduino UNO. Anda boleh memilih masa yang boleh anda ubah. Makanan akan dikeluarkan melalui auger dan memberi makan haiwan kesayangan anda!

Bekalan

Elektronik:

  • Arduino UNO
  • L298N - 10 $ - Mengawal Nema 17
  • NEMA 17 - 10 $ - Menghidupkan auger sehingga makanan membuang
  • RTC (DS1307) - 10 $ - Memberi masa
  • Bekalan Kuasa 12V - 5 $ - Kuasa segalanya
  • Papan Roti Mini - Untuk ruang pendawaian tambahan
  • Jumper Wires - Menyambungkan semuanya
  • Kabel Perempuan ke Lelaki - Menyambungkan semuanya

Perkakasan:

  • Filamen cetak 3D - untuk pencetak 3d
  • 2 M4 Baut - Pegang plat asas di tempatnya
  • 4 baut Nema 17 - Tahan nema ke bawah
  • PVC T 48mm dimensi dalaman 66mm dimensi luar - 3 $

Alat:

  • Pencetak 3D
  • Gerudi
  • Pistol pematerian

Langkah 1: Gambaran Keseluruhan Reka Bentuk

Gambaran Keseluruhan Reka Bentuk
Gambaran Keseluruhan Reka Bentuk
Gambaran Keseluruhan Reka Bentuk
Gambaran Keseluruhan Reka Bentuk
Gambaran Keseluruhan Reka Bentuk
Gambaran Keseluruhan Reka Bentuk
Gambaran Keseluruhan Reka Bentuk
Gambaran Keseluruhan Reka Bentuk

Reka bentuk makanan haiwan peliharaan sangat mudah. Sebuah gerbong masuk ke bahagian atas PVC T. Kemudian penutup masuk di bahagian belakang PVC T (seperti yang ditunjukkan dalam gambar) dengan Nema 17 melekat padanya. Kemudian Nema 17 akan didorong ke belakang Auger yang dapat dilihat di atas dan selak akan masuk ke sisi untuk menahannya di tempat sehingga tidak merusak lubang yang dapat dilihat di atas!

Kemudian auger hanya akan menolak makanan keluar dari paip dan ke dalam mangkuk!

Langkah 2: Gambaran Keseluruhan Kod

Gambaran Keseluruhan Kod
Gambaran Keseluruhan Kod
Gambaran Keseluruhan Kod
Gambaran Keseluruhan Kod
Gambaran Keseluruhan Kod
Gambaran Keseluruhan Kod

RTC & Stepper mempunyai perpustakaan yang disebut RTClib.h dan Stepper.h yang menambah kod dipermudahkan untuk RTC & Stepper. Pernyataan jika sangat sederhana dengan pepatah jika jam & minit sama dengan waktu yang dinyatakan, ia akan memutarkan nema yang akan mengeluarkan makanan. Selebihnya kod sangat mudah difahami walaupun untuk seseorang yang berpengalaman seharian.

Langkah 3: Melampirkan Nema 17 ke Plat Bawah & Auger

Memasang Nema 17 ke Plat Bawah & Auger
Memasang Nema 17 ke Plat Bawah & Auger
Memasang Nema 17 ke Plat Bawah & Auger
Memasang Nema 17 ke Plat Bawah & Auger
Memasang Nema 17 ke Plat Bawah & Auger
Memasang Nema 17 ke Plat Bawah & Auger

Mula-mula anda ingin mengambil plat asas anda dan memasangkannya ke Nema 17 anda menggunakan lubang-lubang premade pada plat asas. Setelah selesai anda ingin memasang auger ke Nema menggunakan lubang belakang di atasnya. Kemudian sambungkan pelat Pangkalan dengan auger dan Nema terpasang kemudian skru bolt M2 ke setiap sisi.

Langkah 4: Pendawaian L298N & RTC

Pendawaian L298N & RTC
Pendawaian L298N & RTC
Pendawaian L298N & RTC
Pendawaian L298N & RTC

Langkah ini akan memberitahu anda cara memasang L298N & RTC

Kami akan bermula dengan pin 8, 9, 10, 11 hingga L298N

  • Pin 8 (Putih) ke IN1
  • Pin 9 (Ungu) ke IN2
  • Pin 10 (Pink) ke IN3
  • PIN 11 (Kuning) hingga IN4

Selanjutnya kita akan menghubungkan Nema 17 ke L298N

  • OUT1 hingga 1 di NEMA
  • OUT2 hingga 2 di NEMA
  • OUT3 hingga 3 di NEMA
  • OUT4 hingga 4 di NEMA

Menyambungkan 12v dan Arduino ke L298N (Tidak dapat menemui 12V jadi bayangkan bateri 9V sebagai kuasa)

  • Voltan hingga 12V
  • Tanah ke GND
  • 5V hingga 5V di Breadboard

Menghubungkan RTC ke Arduino

  • GND ke GND
  • 5V hingga 5V di Breadboard
  • SDA hingga A5
  • SCL hingga A4

Jumper Pin

Semua pin pelompat sepatutnya berada di L298N

Langkah 5: Pengekodan Dengan Komen

Pengekodan Dengan Komen
Pengekodan Dengan Komen
Pengekodan Dengan Komen
Pengekodan Dengan Komen
Pengekodan Dengan Komen
Pengekodan Dengan Komen

Kodnya lebih jelas dalam gambar di atas

// Nama: Parker Frederick

// Nama Projek: Pengumpan Haiwan Peliharaan Auto // Tarikh: Selasa, 10 November 2020 // Guru: M. Bonisteel // Keterangan: Beri makan haiwan kesayangan anda pada waktu tersebut!

// Perpustakaan untuk perkara yang saya gunakan #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Mengatakan apa yang digunakan oleh RTC

// Di sinilah anda menetapkan masa untuk makanan

// Jam int mornFeedTime = 12; int nightFeedTime = 7; // Minit int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Detik int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"Ahad", "Isnin", "Selasa", "Wedsneday", "Khamis", "Jumaat", "Sabtu"}; // Menjadikan hari biasa berubah menjadi hari dalam seminggu

const int feed = 200; // Ini adalah langkah anda jadi berapa kali anda mahu berputar

Stepper myStepper (suapan, 8, 9, 10, 11); // Pin anda untuk Nema 17 dan kebanyakan anak tangga lain

batal persediaan () {Serial.begin (9600);

sementara (! bersiri); // Sekiranya RTC tidak berfungsi, ia akan memaparkannya di skrin bersiri jika (! Rtc.begin ()) {Serial.println ("Tidak dapat mencari RTC"); sementara (1); }

// Ini akan memberitahu anda sama ada Jam Waktu Nyata berjalan atau tidak dan ia akan memaparkannya di skrin bersiri jika (! Rtc.isrunning ()) {Serial.println ("RTC sedang berjalan!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Ini akan memakan masa komputer anda dan menggunakannya di RTC

// Sekiranya anda ingin mempunyai masa yang ditetapkan dan bukannya waktu komputer, anda boleh melakukannya di sini //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Tahun / Bulan / Hari / Jam / Minit / Kedua} myStepper.setSpeed (200); // Kelajuan yang anda mahukan pada}

gelung kosong () {DateTime now = rtc.now ();

// Ini akan menjadikan pemboleh ubah ini pada jam yang ada sekarang dll int hr = now.hour (); int mi = now.minute (); int se = sekarang.kedua ();

// Kod sehingga pada waktu yang ditetapkan ia akan mengeluarkan makanan dan akan berputar 5 kali, ini jika untuk makanan pagi

jika (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Sarapan!"); myStepper.step (-feed); kelewatan (700);

myStepper.step (-feed); kelewatan (700);

myStepper.step (-feed); kelewatan (700);

myStepper.step (-feed); kelewatan (700);

myStepper.step (-feed); kelewatan (700);

myStepper.step (-feed); kelewatan (700);

myStepper.step (-feed); kelewatan (700);

}

// Kod sehingga pada waktu yang ditetapkan ia akan mengeluarkan makanan dan akan berputar 5 kali, ini untuk makanan waktu malam

jika (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Makan malam!"); myStepper.step (-feed); kelewatan (700);

myStepper.step (-feed); kelewatan (700);

myStepper.step (-feed); kelewatan (700);

myStepper.step (-feed); kelewatan (700);

myStepper.step (-feed); kelewatan (700);

myStepper.step (-feed); kelewatan (700);

myStepper.step (-feed); kelewatan (700); }

// Ini akan memaparkan TAHUN, BULAN, HARI, JAM, MINIT, KEDUA dalam siri ini

Serial.print (sekarang.tahun (), DEC); Cetakan bersiri ('/'); Serial.print (sekarang.bulan (), DEC); Cetakan bersiri ('/'); Serial.print (now.day (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serial.print (sekarang.jam (), DEC); Cetakan bersiri (':'); Serial.print (now.minute (), DEC); Cetakan bersiri (':'); Serial.print (sekarang.second (), DEC); Bersiri.println (); }

Laman web yang saya gunakan untuk RTC saya memadamkan kebanyakan perkara selain daripada jika pernyataan yang mengatakan sama ada RTC aktif atau tidak. Saya menggunakan laman web ini untuk belajar bagaimana memprogramkan RTC

Laman web yang saya gunakan untuk Stepper motor ini membantu saya memahami cara memprogram stepper untuk menjalankan saya tidak menyimpan apa-apa daripadanya. Ini hanya membantu saya memahami cara mengodkannya

Langkah 6: Masalah dan Bagaimana Saya Memperbaikinya

Masalah dan Bagaimana Saya Memperbaikinya!
Masalah dan Bagaimana Saya Memperbaikinya!

Beberapa masalah yang saya hadapi

  • Saya memerlukan bekalan kuasa 12v, saya hanya mempunyai bateri 9v yang saya dapati dan ia diselesaikan dengan cepat.
  • Semasa menyambungkan L298N dengan NEMA 17, kabel saya salah pada A dan A- yang menjadikannya sedikit gelisah. Saya hanya memperbaikinya dengan menukar wayar dengan cara lain.
  • Cuba membuat kod lebih mudah kerana dalam pernyataan if myStepper.step (-feed); berulang-ulang kelihatan tidak kemas. Jadi saya terpaksa menukarnya kembali.
  • Saya mempunyai plat asas ukuran yang salah seperti yang dilihat dalam gambar, jadi saya mesti mencetak 3D yang baru sedikit dan sesuai!
  • Masalah yang saya ada ialah ia macet kerana augernya kecil sehingga macet dengan cara mudah yang boleh saya perbaiki adalah dengan membesarkan auger sedikit!

Disyorkan: