Mündəricat:
- Təchizat
- Addım 1: Dizayn haqqında ümumi məlumat
- Addım 2: Kod haqqında ümumi məlumat
- Addım 3: Nema 17 -ni Baza Plakasına və Burguya yapışdırın
- Addım 4: L298N və RTC -nin naqilləri
- Addım 5: Şərhlərlə Kodlaşdırma
- Addım 6: Problemlər və Onları Necə Düzəltdim
Video: Auto Dog Feeder: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Bu mənim Auto Pet Feeder layihəmdir. Mənim adım Parker, mən 11 -ci sinifdə oxuyuram və bu layihəni 11 Noyabr 2020 -ci ildə CCA (Kurs Sonlandırıcı Fəaliyyət) olaraq hazırladım və bu layihədə sizə Arduino UNO ilə Avtomatik Heyvan Besleyicisinin necə hazırlanacağını göstərəcəyəm. Dəyişdirə biləcəyiniz vaxtı seçə bilərsiniz. Yemək buruqdan paylanacaq və ev heyvanlarınızı qidalandıracaq!
Təchizat
Elektronika:
- Arduino UNO
- L298N - 10 $ - Nema 17 -ni idarə edir
- NEMA 17 - 10 $ - Burgunu belə çevirir ki, yemək paylansın
- RTC (DS1307) - 10 $ - Vaxt verir
- 12V Güc Təchizatı - 5 $ - Hər şeyə güc verir
- Mini Breadboard - Əlavə məftil üçün
- Jumper Wires - Hər şeyi birləşdirir
- Dişi -Kişi telləri - Hər şeyi birləşdirir
Avadanlıq:
- 3D çap filamenti - 3d printer üçün
- 2 M4 Bolt - Əsas plitəni yerində saxlayın
- 4 Nema 17 bolt - Nemanı basıb saxlayın
- PVC T 48mm daxili ölçü 66mm xarici ölçü - 3 dollar
Alətlər:
- 3D printer
- Qazma
- Lehim silahı
Addım 1: Dizayn haqqında ümumi məlumat
Heyvan qidalanmasının dizaynı çox sadədir. PVC T -nin üstünə bir hopper gedir. Sonra PVC T -nin arxasında (şəkildə göstərildiyi kimi) Nema 17 ilə bağlı bir örtük gedir. Sonra Nema 17, yuxarıda görünə bilən burğunun arxasına itiləcək və yuxarıda görünə biləcək çuxuru deformasiya etməmək üçün onu tutmaq üçün bir bolt yan tərəfə girəcək!
Sonra buruq sadəcə yeməyi borudan və bir qaba itələyəcək!
Addım 2: Kod haqqında ümumi məlumat
RTC & Stepper, RTClib.h və Stepper.h adlı bir kitabxanaya malikdir, bu da RTC və Stepper üçün sadələşdirilmiş kod əlavə edir. If ifadələri çox sadədir, əgər saat və dəqiqələr deyilən vaxta bərabərdirsə, yeməyi paylayacaq nemanı döndərəcək. Kodun qalan hissəsini bir günlük təcrübəsi olan bir insan üçün belə başa düşmək çox asandır.
Addım 3: Nema 17 -ni Baza Plakasına və Burguya yapışdırın
Əvvəlcə lövhənizi götürüb Nema 17 -yə bərkitmək üçün baza plakasındakı əvvəlcədən hazırlanmış deliklərdən istifadə edin. Bunu etdikdən sonra burğunu arxa çuxurdan istifadə edərək Nemaya bağlamaq istəyirsiniz. Sonra əsas lövhəni burgu ilə bağlayın və Nemanı bağlayın, sonra M2 boltlarını hər tərəfə vidalayın.
Addım 4: L298N və RTC -nin naqilləri
Bu addım sizə L298N və RTC -ni necə bağlayacağınızı izah edəcək
L298N -ə 8, 9, 10, 11 sancaqlar ilə başlayacağıq
- Pin 8 (Ağ) ilə IN1
- Pin 9 (Bənövşəyi) ilə IN2
- 10 -u (Çəhrayı) IN3 -ə bağlayın
- PIN 4 (Sarı) ilə IN4
Sonra Nema 17 -ni L298N -ə bağlayacağıq
- NEMA -da OUT1 -dən 1 -ə qədər
- NEMA -da OUT2 - 2
- NEMA -da OUT3 -dən 3 -ə qədər
- NEMA -da OUT4 -dən 4 -ə qədər
12v və Arduino -nu L298N -ə bağlamaq (12V tapılmadı, buna görə 9V batareyanı güc kimi təsəvvür edin)
- 12V -a qədər gərginlik
- GND üçün əsas
- Çörək lövhəsində 5V -dan 5V -a qədər
RTC -ni Arduino -ya bağlayın
- GND - GND
- Çörək lövhəsində 5V -dan 5V -a qədər
- SDA -dan A5 -ə qədər
- SC4 -dən A4 -ə qədər
Jumper pinləri
Bütün tullanan sancaqların L298N üzərində olması ehtimal olunur
Addım 5: Şərhlərlə Kodlaşdırma
Kod yuxarıdakı şəkillərdə daha aydındır
// Adı: Parker Frederick
// Layihənin Adı: Auto Pet Feeder // Tarix: 10 Noyabr 2020 Çərşənbə // Müəllim: M. Bonisteel // Desc: Ev heyvanlarınızı qeyd olunan vaxtda bəsləyin!
// İstifadə etdiyim şeylər üçün kitabxanalar #include #include #include "RTClib.h"
RTC_DS1307 rtc; // RTC -nin nə istifadə etdiyini söyləyir
// Yemək üçün vaxt təyin etdiyiniz yer budur
// mornFeedTime saatı = 12; int nightFeedTime = 7; // dəqiqə mornFeedTimeM = 29; int nightFeedTimeM = 00; // Saniyə int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"Bazar", "Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə"}; // Normal günləri həftənin günlərinə çevirir
const int feed = 200; // Bu sənin addımlarındır, buna görə neçə dəfə dönməsini istəyirsən
Stepper myStepper (feed, 8, 9, 10, 11); // Nema 17 üçün pinləriniz və digər stepperlər
void setup () {Serial.begin (9600);
while (! Serial); // RTC işləmirsə, onu serial ekranda göstərəcək, əgər (! Rtc.begin ()) {Serial.println ("RTC tapıla bilmədi"); isə (1); }
// Bu, Real Time Clock -un işləyib -işləmədiyini sizə xəbər verəcək və əgər (! Rtc.isrunning ()) {Serial.println ("RTC çalışır!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // Bu, kompüterinizə vaxt ayıracaq və RTC -də istifadə edəcək
// Kompüter vaxtı yerinə müəyyən bir vaxta sahib olmaq istəyirsinizsə burda edə bilərsiniz //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // İl/Ay/Gün/Saat/Dəqiqə/Saniyə} myStepper.setSpeed (200); // Dönməsini istədiyiniz sürət}
void loop () {DateTime now = rtc.now ();
// Bu, bu dəyişənləri indiki saatda edəcək və s. İnt hr = now.hour (); int mi = indi.minute (); int se = indi.second ();
// Kodlaşdırın ki, təyin olunmuş vaxt yeməyi paylayacaq və 5 dəfə fırlanacaq, bu səhər yeməyi üçün
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Breakfast!"); myStepper.step (-yem); gecikmə (700);
myStepper.step (-yem); gecikmə (700);
myStepper.step (-yem); gecikmə (700);
myStepper.step (-yem); gecikmə (700);
myStepper.step (-yem); gecikmə (700);
myStepper.step (-yem); gecikmə (700);
myStepper.step (-yem); gecikmə (700);
}
// Kodlaşdırın ki, təyin olunmuş vaxt yeməyi paylayacaq və 5 dəfə fırlayacaq, bu gecə yeməyi üçündür
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Dinner!"); myStepper.step (-yem); gecikmə (700);
myStepper.step (-yem); gecikmə (700);
myStepper.step (-yem); gecikmə (700);
myStepper.step (-yem); gecikmə (700);
myStepper.step (-yem); gecikmə (700);
myStepper.step (-yem); gecikmə (700);
myStepper.step (-yem); gecikmə (700); }
// Bu serialda İL, AY, GÜN, SAAT, DƏQİQƏ, İKİNCİ göstərəcək
Serial.print (indi.yıl (), DEC); Serial.print ('/'); Serial. çap (indi.ay (), DEC); Serial.print ('/'); Serial.print (indi.day (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serial.print (indi.hour (), DEC); Serial.print (':'); Serial.print (indi.minute (), DEC); Serial.print (':'); Serial.print (indi.second (), DEC); Serial.println (); }
RTC üçün istifadə etdiyim veb sayt, RTC -nin açıq olub -olmadığını bildirən ifadələrdən başqa bir çox şeyi sildim. Əsasən bu veb saytdan RTC -nin proqramlaşdırılmasını öyrənmək üçün istifadə etdim
Stepper motoru üçün istifadə etdiyim veb sayt, stepperi necə proqramlaşdıracağımı başa düşməyimə kömək etdi, heç bir şey saxlamadım. Kodlaşdırmağı başa düşməyimə kömək etdi
Addım 6: Problemlər və Onları Necə Düzəltdim
Yaşadığım bir neçə problem
- 12v enerji təchizatına ehtiyacım var idi, yalnız 9v batareya tapdım və tez həll olundu.
- L298N-i NEMA 17 ilə bağlayanda A və A-da telləri səhv saldım ki, bu da onu bir az sarsıtdı. Sadəcə telləri başqa bir şəkildə dəyişdirərək düzəltdim.
- Kodu daha sadə etməyə çalışdım, çünki if ifadəsində myStepper.step (-feed); təkrar -təkrar qarışıq görünürdü. Buna görə də onu dəyişdirməli oldum.
- Şəkildə gördüyüm kimi səhv ölçüdə bir lövhə aldım, buna görə bir az yenisini 3D çap etməli oldum və mükəmməl uyğun gəlir!
- Mənim problemim buruqların kiçik olması səbəbindən tıxacların olmasıdır, buna görə də buruqları az miqdarda böyütməklə düzəldə bilərəm.
Tövsiyə:
Bird Feeder Monitor V2.0: 12 Addım (Şəkillərlə birlikdə)
Bird Feeder Monitor V2.0: Bu, quş yemləyicimizi ziyarət edən quşların sayını və vaxtını izləmək, fotoşəkil çəkmək və qeyd etmək üçün bir layihədir. Bu layihə üçün çoxlu Raspberry Pi (RPi) istifadə edilmişdir. Onlardan biri Adafruit CAP1188 adlı tutumlu sensor sensor kimi aşkarlanmaq, qeyd olunmaq üçün istifadə edilmişdir
Smart Feeder: 4 addım
Ağıllı Besleyici: Bir ev heyvanına sahib olmaq çox əyləncəlidir. Ancaq nə vaxt əyləncəli bir tətilə getmək istəsəniz və ən yaxşı dostunuzu yanınıza gətirə bilməsəniz, gəlib ev heyvanınızı qidalandıracaq bir adam tapmalısınız. Bu problemi çox yaşadım və öz avtomatik ev heyvanı qurmaq fikrim var
MAGICAL Cat Feeder: 8 addım
Sehrli Pişik Yemək: CAT MƏHSULDUR
Daha Təhlükəsiz Elektrikli Hot Dog Ocağı: 14 Addım (Şəkillərlə birlikdə)
Daha Təhlükəsiz Elektrikli Hot Dog Ocağı: Fizika ixtisası üzrə bakalavr təhsili alanda isti itləri birbaşa 120V prizinə qoşaraq bişirərdik. Bu, nisbətən təhlükəli bir əməliyyat idi, çünki uzatma kabelinin uclarını hortumlara daxil olan iki boltla bağladıq
Heyvanlar üçün IoT Food Feeder: 9 Addım
Heyvanlar üçün IoT Food Feeder: Bu layihədə ev heyvanları və digər heyvanlar üçün IOT maye qida paylama sistemi quracağıq. Bu layihə sahibsiz heyvanların (itlər, pişiklər, quşlar və s.) Rifahı üçün və ya biomüxtəlifliyin itkisinin qarşısını almaq üçün həyata keçirilsə, ağıllı bir şey əldə etməyimizə kömək edə bilər