İçindekiler:
- Gereçler
- Adım 1: Tasarıma Genel Bakış
- 2. Adım: Koda Genel Bakış
- Adım 3: Nema 17'nin Taban Plakasına ve Burguya Takılması
- Adım 4: L298N ve RTC'yi Kablolama
- Adım 5: Yorumlarla Kodlama
- Adım 6: Sorunlar ve Onları Nasıl Düzelttim
Video: Otomatik Köpek Besleyici: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
Bu benim Otomatik Evcil Hayvan Besleyici projem. Adım Parker 11. Sınıftayım ve bu projeyi 11 Kasım 2020'de CCA (Kurs Bitirme Etkinliği) olarak yaptım bu projede sizlere Arduino UNO ile Otomatik Evcil Hayvan Besleyici yapmayı göstereceğim. Değiştirebileceğiniz bir zaman seçebilirsiniz. Yiyecekler bir burgu aracılığıyla dağıtılacak ve evcil hayvanlarınızı besleyecektir!
Gereçler
Elektronik:
- Arduino UNO'su
- L298N - 10$ - Nema 17'yi kontrol eder
- NEMA 17 - 10$ - Yiyeceklerin dağıtılması için burguyu döndürür
- RTC (DS1307) - 10$ - Zaman kazandırır
- 12V Güç Kaynağı - 5$ - Her şeye güç sağlar
- Mini Breadboard - Ekstra kablolama alanı için
- Jumper Wires - Her şeyi birbirine bağlar
- Dişi - Erkek kablolar - Her şeyi bağlar
Donanım:
- 3D baskı filamanı - 3d yazıcı için
- 2 M4 Cıvata - Taban plakasını yerinde tutun
- 4 Nema 17 cıvata - Nema'yı basılı tutun
- PVC T 48mm iç ölçü 66mm dış ölçü - 3$
Aletler:
- 3 boyutlu yazıcı
- Delmek
- Lehim tabancası
Adım 1: Tasarıma Genel Bakış
Evcil hayvan besleyicinin tasarımı çok basittir. PVC T'nin üstüne bir huni girer. Daha sonra PVC T'nin arkasına (resimde gösterildiği gibi) Nema 17 takılı olan bir kapak gider. Daha sonra Nema 17, yukarıda görülebilen Burgu'nun arkasına itilecek ve yukarıda görülen deliği deforme etmeyecek şekilde yerinde tutmak için bir cıvata yan tarafa gidecektir!
Ardından burgu, yiyecekleri borudan dışarı ve bir kaseye itecektir!
2. Adım: Koda Genel Bakış
RTC & Stepper, RTC ve Stepper için basitleştirilmiş kod ekleyen RTClib.h ve Stepper.h adlı bir kitaplığa sahiptir. İf ifadeleri çok basittir, eğer saat ve dakika belirtilen süreye eşitse, yiyeceği dağıtacak nema'yı döndürür. Kodun geri kalanı, bir günlük deneyime sahip biri için bile anlaşılması çok kolaydır.
Adım 3: Nema 17'nin Taban Plakasına ve Burguya Takılması
Öncelikle taban plakanızı alıp, taban plakasındaki önceden hazırlanmış deliklerden Nema 17'nize takmak istiyorsunuz. Bunu yaptıktan sonra, üzerindeki arka deliği kullanarak burguyu Nema'ya takmak istiyorsunuz. Ardından Taban plakasını burgu ve Nema takılıyken bağlayın, ardından M2 cıvatalarını her iki tarafa vidalayın.
Adım 4: L298N ve RTC'yi Kablolama
Bu adım size L298N ve RTC'yi nasıl bağlayacağınızı söyleyecektir.
L298N'ye 8, 9, 10, 11 pinleriyle başlayacağız.
- Pin 8'i (Beyaz) IN1'e
- Pin 9 (Mor) - IN2
- Pin 10 (Pembe) - IN3
- PIN 11 (Sarı) - IN4
Daha sonra Nema 17'yi L298N'ye bağlayacağız
- NEMA'da OUT1'den 1'e
- NEMA'da OUT2'den 2'ye
- NEMA'da OUT3'ten 3'e
- NEMA'da OUT4 ila 4
12v ve Arduino'yu L298N'ye bağlama (12V bulunamadı, bu yüzden 9V pili güç olarak hayal edin)
- Volt - 12V
- GND'ye toprak
- Breadboard'da 5V - 5V
RTC'yi Arduino'ya Bağlama
- GND'den GND'ye dönüştürücü
- Breadboard'da 5V - 5V
- SDA'dan A5'e
- SCL'den A4'e
Jumper Pimleri
Tüm jumper pinlerinin L298N'de olması gerekiyor
Adım 5: Yorumlarla Kodlama
Yukarıdaki resimlerde kod daha net
// İsim: Parker Frederick
// Proje Adı: Otomatik Evcil Hayvan Besleyici // Tarih: 10 Kasım 2020 Salı // Öğretmen: M. Bonisteel // Açıklama: Evcil hayvanlarınızı belirtilen saatte besleyin!
// Kullandığım şeyler için kütüphaneler #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Hangi RTC'yi kullandığımı söylüyor
// Bu, yemeğin zamanını belirlediğiniz yerdir.
// Saat int mornFeedTime = 12; int nightFeedTime = 7; //Dakika int mornFeedTimeM = 29; int nightFeedTimeM = 00; //Saniye int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7][12] = {"Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"}; // Normal günleri haftanın günlerine çevirir
const int besleme = 200; // Bu senin adımların, yani kaç kez dönmesini istiyorsun
Step myStepper(besleme, 8, 9, 10, 11); // Nema 17 ve diğer birçok stepper için pinleriniz
geçersiz kurulum() { Serial.begin(9600);
while (!Seri); // RTC çalışmıyorsa, seri ekranda gösterir if (! rtc.begin()) { Serial.println("RTC bulunamadı"); iken (1); }
// Bu size Gerçek Zamanlı Saat'in çalışıp çalışmadığını söyleyecek ve seri ekranda if (! rtc.isrunning()) { Serial.println("RTC çalışıyor!");
rtc.adjust(DateTime(F(_DATE_), F(_TIME_))); // Bu, bilgisayarınızın zamanını alacak ve RTC'de kullanacaktır.
// Bilgisayar saati yerine saat ayarı yapmak istiyorsanız buradan yapabilirsiniz //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Yıl/Ay/Gün/Saat/Dakika/Saniye } myStepper.setSpeed(200); // Dönmesini istediğiniz hız }
void loop() { DateTime şimdi = rtc.now();
// Bu, bu değişkenleri şu anda olduğu saat yapacaktır vb. int hr = şimdi.hour(); int mi = şimdi.dakika(); int se = şimdi.saniye();
// Ayarlanan zamanda mamayı dağıtacak ve 5 kez dönecek şekilde kodlayın, bu sabah yemi içinse
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) { Serial.println("Kahvaltı!"); myStepper.step(-feed); gecikme(700);
myStepper.step(-feed); gecikme(700);
myStepper.step(-feed); gecikme(700);
myStepper.step(-feed); gecikme(700);
myStepper.step(-feed); gecikme(700);
myStepper.step(-feed); gecikme(700);
myStepper.step(-feed); gecikme(700);
}
// Ayarlanan zamanda mamayı dağıtacak ve 5 kez dönecek şekilde kodlayın, bu gece beslemesi içindir
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) { Serial.println("Akşam Yemeği!"); myStepper.step(-feed); gecikme(700);
myStepper.step(-feed); gecikme(700);
myStepper.step(-feed); gecikme(700);
myStepper.step(-feed); gecikme(700);
myStepper.step(-feed); gecikme(700);
myStepper.step(-feed); gecikme(700);
myStepper.step(-feed); gecikme(700); }
// Bu, seride YIL, AY, GÜN, SAAT, DAKİKA, İKİNCİ görüntüleyecektir.
Seri.print(şimdi.yıl(), Aralık); Seri.print('/'); Seri.print(şimdi.ay(), Aralık); Seri.print('/'); Serial.print(şimdi.gün(), Aralık); Serial.print(" ("); Serial.print(daysOfTheWeek[now.dayOfTheWeek()]); Serial.print(") "); Seri.print(şimdi.saat(), Aralık); Seri.print(':'); Seri.print(şimdi.dakika(), Aralık); Seri.print(':'); Seri.print(şimdi.ikinci(), Aralık); Seri.println(); }
RTC için kullandığım web sitesi RTC'nin açık veya kapalı olduğunu söyleyen if ifadeleri dışındaki çoğu şeyi sildim. Bu web sitesini esas olarak RTC'nin nasıl programlanacağını öğrenmek için kullandım
Step motor için kullandığım web sitesi bu, step motoru çalışacak şekilde nasıl programlayacağımı anlamama yardımcı oldu, ondan gerçekten hiçbir şey saklamadım. Sadece nasıl kodlayacağımı anlamama yardımcı oldu
Adım 6: Sorunlar ve Onları Nasıl Düzelttim
yaşadığım birkaç sorun
- 12v güç kaynağına ihtiyacım vardı, sadece 9v pilim vardı ve bir tane buldum ve çabucak çözüldü.
- L298N'yi NEMA 17 ile bağlarken, A ve A'daki kabloları yanlış yaptım ve bu da biraz titremesine neden oldu. Sadece kabloları başka bir şekilde değiştirerek düzelttim.
- Kodu daha basit hale getirmeye çalıştım çünkü if ifadesinde myStepper.step(-feed); tekrar tekrar dağınık görünüyordu. Bu yüzden geri değiştirmek zorunda kaldım.
- Resimde görüldüğü gibi yanlış boyutta taban plakasına sahiptim, bu yüzden biraz yeni bir tane 3D yazdırmak zorunda kaldım ve mükemmel oldu!
- Sorunum, burgu küçük olduğu için sıkışması, bu nedenle sıkışması, düzeltebileceğim basit bir yol, burguyu az miktarda büyütmek!
Önerilen:
Otomatik Köpek Besleyici!!: 4 Adım
Otomatik Köpek Besleyici!!: Kolay, Faydalı ve Sağlıklı
Köpek Köpek Eğitmeni: 5 Adım
Köpek Köpek Eğitmeni: AKC'ye göre, (https://www.akc.org/expert-advice/nutrition/how-many-times-a-day-should-a-dog-eat/) yemler köpekler için çok önemlidir ve kutunun boyutu köpeğin bir günde yiyebileceği yem sayısını da sınırlamıştır, “Veteriner
WiFi Otomatik Rezervuarlı Bitki Besleyici - İç/Dış Yetiştirme Kurulumu - Uzaktan İzleme ile Otomatik Su Tesisleri: 21 Adım
Rezervuarlı WiFi Otomatik Bitki Besleyici - İç/Dış Mekan Yetiştirme Kurulumu - Uzaktan İzleme ile Otomatik Su Tesisleri: Bu eğitimde, bitkileri otomatik olarak sulayan ve Adosia platformu kullanılarak uzaktan izlenebilen özel bir iç/dış bitki besleme sisteminin nasıl kurulacağını göstereceğiz
Otomatik Köpek Besleyici: 5 Adım
Otomatik Köpek Besleyici: Bu, Arduino kullanarak otomatik bir köpek besleme makinesinin nasıl yapılacağına dair adım adım bir eğitimdir. Bu, günün çoğunda evin dışındaysanız mükemmeldir. Köpeğinizin yemek için bütün gün beklemek zorunda kalması veya onu beslemek için eve eğilmeniz yerine, bu cihaz
Raspberry Pi Otomatik Köpek Besleyici ve Canlı Video Yayıncısı: 3 Adım
Raspberry Pi Otomatik Köpek Besleyici ve Canlı Video Streamer: Bu benim Raspberry PI destekli otomatik köpek besleyicim. Sabah 11'den akşam 9'a kadar çalışıyordum. Köpeğimi zamanında beslemezsem çıldırıyor. Otomatik gıda besleyicileri satın almak için Google'da gezindi, Hindistan'da mevcut değiller ve pahalı ithalat