Evcil Hayvanlarınız İçin Otomatik Besleme Sistemi Nasıl Yapılır?
Evcil hayvanların sağlıklarını koruyabilmeleri için zamanında beslenmeleri gerekir. Evcil hayvan sahipleri evde 7/24 müsait değiller, bazen iş toplantıları için başka bir şehre ya da başka birinin evine gidiyorlar, bu yüzden evcil hayvanlar yokluğunda yiyecek eksikliğinden dolayı acı çekiyor. Yerçekimi besleyiciler, evcil hayvanları otomatik olarak besleyebilen piyasada mevcuttur, ancak biraz pahalıdırlar ve yerleştirme için geniş bir alana ihtiyaç duyarlar. Bugün, evcil hayvanlar için insanoğlunun evcil hayvanları besleme çabalarını büyük ölçüde en aza indirecek otomatik bir besleme sistemi tasarlayacağım. Biri yiyeceği kaba koyacak ve belirli bir seviyenin altına düşer düşmez otomatik olarak yeniden doldurulacaktır. Bu nedenle, bu öğreticiyi takip edin ve bu yenilikçi fikri evlerinizde uygulamaya hazır olun.
Aparat Nasıl Kurulur ve Arduino Kullanılarak Nasıl Otomatikleştirilir?
Bu tekniğin amacı, piyasada bulunan yerçekimli besleyiciler gibi sistemlerden nispeten düşük maliyetli bir sistem yapmaktır. Sistemimiz, hem evcil hayvanlara sürekli yiyecek ve su sağlamaktan sorumlu olacaktır. Öncelikle otomatik su besleme sistemini tasarlayacağız ve ikinci olarak evcil hayvanlarımız için otomatik yem besleyici tasarlayacağız.
Adım 1: Gerekli Bileşenler (Donanım)
Adım 2: Gerekli Bileşenler (Yazılım)
Devreyi donanıma monte etmeden önce simüle edilmelidir. Simülasyondan sonra devremizin doğru çalışıp çalışmayacağını öğreniriz. Bu nedenle, yazılım simülasyonlarını aşağıya ekledim ve bunun için gerekli olan yazılım Proteus Professional.
Adım 3: Otonom Su Pompalama Sisteminin Çalışma Prensibi
Tüm bileşenler arasında en önemli bileşenler Transistörler BC 547'dir. Toplam 7 transistör vardır ve su seviyesini algılayacaklardır. LED'ler Kaptaki su seviyesini izleyecektir. su yükseldikçe sensörler suyla temas etmeye başlar ve transistörler etkinleştirilir ve transistörlerde LED'in yanmasını sağlayan bir akım ilerlemesi olur. Transistör ile LED arasında akım sınırlayıcı bir direnç vardır ve daha yüksek voltajın LED'e girmesini engeller. Kauçuk boru tepe tankına bağlanacak ve seviye belirli bir eşiğin altına düştüğü için kabın doldurulmasından sorumlu olacaktır. Su eşiğin altına düştüğünde su pompası çalışmaya başlar ve kap dolmaya başlar. Bu şekilde, kabı manuel olarak doldurmaya gerek kalmaz ve evcil hayvanlara sürekli su sağlanır. Rahatlığınız için, LED'lerin işlevselliğini ayrıntılı olarak açıklayacağım. Devreye takılan LED'ler dört tip renktedir. Kırmızı, Sarı, Yeşil ve Mavi. Kırmızı olan, kapta su olmadığını ve sensörlerden hiçbirinin suyla temas etmediğini ve kabın yeniden doldurulması gerektiğini gösterir. Sarı LED, kapta 1/4 su olduğunu gösterir. Yeşil LED, kabın yarı suyla dolu olduğunu ve mavi LED, kabın suyla dolu olduğunu gösterir.
Adım 4: Devrenin Simülasyonu
- Proteus yazılımını indirip kurduktan sonra açın. Tıklayarak yeni bir şematik açın. IŞİDMenüdeki simgesi.
- Yeni şematik göründüğünde, Pyan menüdeki simgesi. Bu, kullanılacak tüm bileşenleri seçebileceğiniz bir kutu açacaktır.
- Şimdi devreyi yapmak için kullanılacak bileşenlerin adını yazın. Bileşen, sağ tarafta bir listede görünecektir.
- Aynı şekilde, yukarıdaki gibi, tüm bileşenleri yukarıdaki gibi arayın. Görünecekler Cihazlar Liste.
Adım 5: Bir PCB Düzeni Yapın
Yapacağımız gibi donanım devresi Bir PCB üzerinde, önce bu devre için bir PCB düzeni yapmamız gerekiyor.
- PCB düzenini Proteus üzerinde yapmak için, önce PCB paketlerini şematikteki her bileşene atamamız gerekir. paketleri atamak için, paketi atamak istediğiniz bileşene sağ tıklayın ve Paketleme Aracı.
- Bir PCB şemasını açmak için üst menüdeki ARIES seçeneğine tıklayın.
- Bileşenler Listesinden, devrenizin benzemesini istediğiniz bir tasarımda ekrana tüm bileşenleri yerleştirin.
- Parça moduna tıklayın ve yazılımın bağlamanızı söylediği tüm pinleri bir okla bağlayın.
Adım 6: Devre Şeması
Bileşenleri monte edip kabloladıktan sonra devre şeması şu şekilde görünmelidir:
Adım 7: Otonom Gıda Tedarik Sisteminin Çalışma Prensibi
Gıda tedarik sisteminin çalışma prensibi çok basittir ve bu devredeki en hayati bileşen, Gerçek Zamanlı Saat Modülü (DS3231)evcil hayvanlarımıza yiyeceklerin sunulacağı tarihi ve saati ayarlayabiliyoruz. LCD modülü tarih ve saati gösterecek ve servo motor yiyeceklerden oluşacak kaseleri döndürür. Evcil hayvanları besleme zamanını manuel olarak ayarlamak için 4×4 tuş takımını ekledim. Servo motoru kullandım, böylece yiyeceği içeren kase döndürülebilir ve evcil hayvanların yiyebileceği alt kaseye düşebilir. Yiyecekler, kodda sizin tarafınızdan belirlenecek belirli aralıklarla alt kaseye düşürülecektir. Köpeği, kediyi, papağanı vb. Yeme alışkanlıklarını göz önünde bulundurarak yiyecek miktarını kendiniz ayarlayabilirsiniz.
Adım 8: Devre Simülasyonu
Çalışıp çalışmadığını kontrol etmek için yukarıdaki adımları izleyerek devreyi simüle edin. Prosedürün geri kalanı, bileşenler ve bunların yerleştirilmesi dışında aynıdır. Devrede kullanılacak bileşenler aşağıda gösterilmiştir:
- Bileşenler şurada görünecektir: Cihazlar Liste.
Şimdi, devrenin düzgün çalışıp çalışmadığını kontrol ettiğimiz için daha fazla ilerleyeceğiz ve kodunu yazacağız. Arduino.
Adım 9: Devre Şeması
Proteus'un devre şeması şu şekilde görünmelidir:
Adım 10: Arduino'ya Başlarken
Daha önce Arduino IDE'ye aşina değilseniz endişelenmeyin çünkü aşağıda Arduino IDE'yi kullanarak mikrodenetleyici kartında kod yazma işlemlerinin net adımlarını görebilirsiniz. Arduino IDE'nin son sürümünü buradan indirebilir ve aşağıdaki adımları takip edebilirsiniz:
- Arduino kartı PC'nize bağlandığında, "Kontrol paneli" ni açın ve "Donanım ve Ses" e tıklayın. Ardından "Aygıtlar ve Yazıcılar" a tıklayın. Arduino kartınızın bağlı olduğu bağlantı noktasının adını bulun. benim durumumda öyle "COM14" ancak bilgisayarınızda farklı olabilir.
- Şimdi Arduino IDE'yi açın. Araçlar'dan Arduino kartını şu şekilde ayarlayın: Arduino / Genuino UNO.
- Aynı Araç menüsünden, kontrol panelinde gördüğünüz bağlantı noktası numarasını ayarlayın.
- Aşağıda ekli kodu indirin ve IDE'nize kopyalayın. Kodu yüklemek için yükle düğmesine tıklayın.
Kodu buradan indirebilirsiniz.
Adım 11: Kodu Anlama
Bu projede kullanılan kod çok basit ve iyi yorumlanmış. Kendinden açıklamalı olmasına rağmen, aşağıda kısaca açıklanmıştır, böylece nano, mega vb. Gibi farklı bir Arduino kartı kullanıyorsanız, kodu doğru şekilde değiştirebilir ve ardından kartınıza yazabilirsiniz.
- En üstte, tuş takımı, LCD, RTC IC ve servo motorun mikrodenetleyici tarafından çalıştırılabilmesi için farklı kitaplıklar yer almaktadır.
#Dahil etmek#Dahil etmek #Dahil etmek #Dahil etmek
2. Daha sonra tuş takımının satırları ve sütunları bağlanacakları Arduino'nun pinlerini başlattı ve ardından tüm tuş takımı oluşturuldu.
const bayt SATIRLAR = 4; // Dört satırlık sabit bayt COLS = 4; // Üç sütun // Keymap karakter anahtarlarını tanımlayın [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; bayt rowPins [ROWS] = {2, 3, 4, 5}; // ROW0, ROW1, ROW2 ve ROW3 tuş takımını bu Arduino pinlerine bağlayın. bayt colPins [COLS] = {6, 7, 8, 9}; // COL0, COL1 ve COL2 tuş takımını bu Arduino pinlerine bağlayın. Keypad kpd = Keypad (makeKeymap (anahtarlar), rowPins, colPins, ROWS, COLS); // Tuş Takımını Oluşturun
3. Daha sonra RTC IC, servo motor ve Sıvı LCD başlatılır ve çalışma zamanı hesaplamaları için kullanılacak bazı değişkenler bildirilir.
DS3231 rtc (A4, A5); Servo servo_test; // bağlı servo LiquidCrystal lcd (A0, A1, A2, 11, 12, 13) için bir servo nesnesi başlat; // Bir LC nesnesi oluşturur. Parametreler: (rs, enable, d4, d5, d6, d7) // int angle = 0; // int potentio = A0; // potansiyometre int t1, t2, t3, t4, t5, t6 için A0analog pinini başlat; boole beslemesi = true; // alarm karakter anahtarı için koşul; int r [6];
4. geçersiz kurulum ()mikrodenetleyiciye güç verildiğinde veya etkinleştirme düğmesine basıldığında kodda yalnızca bir kez çalıştırılan bir işlevdir. Baud hızı, temelde mikro denetleyicinin çevresel aygıtlarla iletişim kurduğu saniyede bit cinsinden hız olan bu işlevde ayarlanır. Bu fonksiyonda, RTC ve servo da başlatılır ve pinler Giriş veya Çıkış olarak kullanılmak üzere başlatılır.
geçersiz kurulum () {servo_test.attach (10); // servonun sinyal pinini arduino rtc.begin () pin9'una bağlayın; lcd.başla(16,2); servo_test.write (55); Serial.begin (9600); pinMode (A0, ÇIKIŞ); pinMode (A1, ÇIKIŞ); pinMode (A2, ÇIKIŞ); }
5. geçersiz döngü () bir döngü içinde tekrar tekrar çalıştırılan bir işlevdir. İşte bu fonksiyonda kod, zamanı takip etmek ve LCD'ye yazdırmak için yazılır. daha sonra servoyu belirli bir açıda döndürmek için bir komut verilir.
geçersiz döngü () {lcd.setCursor (0,0); int düğmesiBasın; buttonPress = digitalRead (A3); eğer (buttonPress == 1) setFeedingTime (); //Serial.println(buttonPress); lcd.print ("Zaman:"); Dize 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 ("Tarih:"); lcd.print (rtc.getDateStr ()); eğer (t1 == r [0] && t2 == r [1] && t3 == r [2] && t4 == r [3] && t5 <1 && t6 <3 && feed == true) {servo_test. yazmak (100); // servoyu belirtilen açı gecikmesine (400) döndürme komutu; servo_test.write (55); feed = false; } }
6. void setFeedingTime () tuş takımından giriş alan ve mikro denetleyicideki besleme süresini ayarlamak için girişi eşleyen bir işlevdir. Bu sefer daha sonra evcil hayvanları beslemek için motoru döndürmek için kullanılır.
void setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Besleme Süresini Ayarla"); lcd.clear (); lcd.print ("HH: MM"); lcd.setCursor (0,1); while (1) {anahtar = kpd.getKey (); char j; if(anahtar!=NO_KEY){ lcd.setCursor(j,1); lcd.print (anahtar); r [i] = anahtar-48; i ++; j ++; eğer (j == 2) {lcd.print (":"); j ++; } gecikme (500); } if (anahtar == 'D') {anahtar = 0; kırmak; }}}
Adım 12: Su Pompalama Sisteminin Donanım Tasarımı
Tüm yazılım görevlerini yaptığımız gibi, şimdi projenin donanımını tasarlamaya doğru ilerleyelim. Öncelikle su pompalama sisteminin bileşenlerini bir araya getirip ardından otomatik gıda tedarik sisteminin donanımını tasarlayacağız. Devre lehimlemenin bir PCB düzenini yaptıktan sonra, PCB kartı üzerindeki bileşenleri yukarıda gösterilen devre şemasına göre lehimleyin. Devreyi küçük bir kutuya koyun ve uygun şekilde delikler açın, böylece LED'ler kutudan kolayca çıkabilir. Bir PCB kartı alın ve üzerindeki LED'leri yukarıda tanımlanan seviyelere göre lehimleyin. Devreyi analiz ettikten sonra, ana devre kartından sensöre giden beş besleme hattının çıkarılması gerektiğini öğrendik. Dört satır sensörlerden ve biri Ortak Pozitif Pin.
Su iyi bir elektrik iletkeni olduğundan, su ile temas ettiklerinde bir anahtar olarak hareket etmeleri için muhtemelen iki kanal yapmamız gerekiyor. PVC boru kullanıp içine delikler açabiliriz. Önce kabın yüksekliğini ölçün ve ardından eşit aralıklarla üzerine 4 nokta işaretleyin. Bu noktalarda delikler açın ve ardından akımı taşıyacak bir tel halkası yapın. Bu tel halkasını bu PVC borudaki somun ve cıvatalarla sabitleyin ve ardından kasaya ortak bir tel ekleyin. Çıplak telin ve cıvatanın deliği minimumda tutulmalıdır ve ihtiyacınız olması durumunda, somunun hemen yanındaki ortak hatta biraz tel lehimleyebilir ve algılama daha çok olduğu noktada vidalayabilirsiniz. su normal tel ve cıvata ile etkileşime girer, sıyrılmış telden cıvataya bir akım aktarımı olur ve bu nedenle algılama kısmı tamamlanır. Su belirli bir seviyenin altına iner inmez su motoru döndürülür AÇIK ve tank dolmaya başlar. Tank dolmaya başladığında, su tanktan tanka boru yoluyla aktarıldığı için su borusu nedeniyle konteyner de dolmaya başlar. Bu nedenle, artık kabı manuel olarak doldurmaya gerek yoktur.
Adım 13: Otomatik Gıda Tedarik Sisteminin Donanım Tasarımı
Şimdi gıda tedarik sisteminin donanımını bir araya getireceğiz. Kullanarak kendi seçtiğimiz zaman aralıklarını ayarlayabiliriz. DS3231 Gerçek Zamanlı Saat modülü ve dolayısıyla evcil hayvanlarımızın beslenme programını göz önünde bulundurarak programı ayarlayacağız. Zamanlayıcı ayarlanan tarih ve saate ulaştığında servo motor hareket edecek ve yiyecekler aşağıda yer alan kaseye düşecektir. Devreyi, devre tahtasında yukarıda gösterildiği gibi monte edin. Tahta bir çubuk alın ve bununla birlikte servo motoru takın. Dikey olarak duvara sabitleyin ve vidalar yardımıyla yemek kasesini çubuğa takın. Kase, her iki ucundan açık bambu biçimli içi boş bir boru gibi olabilir ve altına yuvarlak bir tahta parça konulacaktır. Servo motor tahta parçaya tutturulacak ve motor belirli bir açıyla hareket ettiği anda yiyecekler aşağıda yer alan çanağa düşürülür.
Hepsi bugün için. Bu projeyi tamamladıktan sonra deneyiminizi paylaşmayı unutmayın ve herhangi bir sorun yaşarsanız yorum bölümünde sormaktan çekinmeyin.