Hur man skapar ett automatiskt utfodringssystem för dina husdjur?
Husdjur måste matas i rätt tid så att de kan bibehålla god hälsa. Husdjursägare är inte tillgängliga hemma dygnet runt, ibland går de på affärsmöten till en annan stad eller någon annans hus, så husdjuren lider i sin frånvaro på grund av brist på mat. Tyngdkraftsmatarna finns på marknaden som kan mata husdjur automatiskt men de är lite dyra och de behöver ett stort område för placering. Idag kommer jag att utforma ett automatiskt utfodringssystem för husdjur som minimerar människans ansträngningar att mata husdjur till stor del. Den ena placerar maten i behållaren och den fylls på automatiskt så snart den faller under en viss nivå. Följ följaktligen denna handledning och var redo att implementera denna innovativa idé hemma.
Hur ställer jag in apparaten och automatiserar den med Arduino?
Syftet med denna teknik är att göra ett system, mer effektivt från de system som finns på marknaden som gravitationskostnader, med relativt låga kostnader. Vårt system kommer att ansvara för att bibehålla den konstanta tillförseln av mat och vatten till husdjuret. För det första designar vi det automatiska vattenmatningssystemet och för det andra designar vi en automatisk matmatare för våra husdjur.
Steg 1: Komponenter som behövs (hårdvara)
Steg 2: Komponenter som behövs (programvara)
Innan kretsen monteras på hårdvaran ska den simuleras. Efter simuleringen får vi veta att om vår krets fungerar korrekt eller inte. Därför har jag inkluderat programvarusimuleringarna nedan och för det är den programvara som krävs Proteus Professional.
Steg 3: Arbetsprincip för autonomt vattenpumpsystem
Bland alla komponenterna är de viktigaste komponenterna Transistorer BC 547. Det finns totalt 7 transistorer och de kommer att känna av vattennivån. Lysdioderna kommer att övervaka vattennivån i behållaren. när vattnet stiger upp börjar sensorerna att komma i kontakt med vattnet och transistorerna aktiveras och det finns en progression av ström i transistorerna som gör att lysdioden tänds. Det finns ett strömbegränsande motstånd involverat mellan transistorn och LED och det förhindrar att högre spänning kommer in i lysdioden. Gummiröret kommer att anslutas till luftbehållaren och det kommer att ansvara för att fylla behållaren eftersom nivån sjunker under ett visst tröskelvärde. När vattnet sjunker under tröskeln startar vattenpumpen och behållaren börjar fyllas. På detta sätt finns det inget behov av att fylla på behållaren manuellt och husdjur får konstant vattenförsörjning. För din lätthet kommer jag att utarbeta funktionerna hos lysdioder. Lysdioderna installerade i kretsen har fyra olika färger. Röd, gul, grön och blå. Den röda indikerar att det inte finns något vatten i behållaren och ingen av sensorerna är i kontakt med vattnet och behållaren behöver fyllas på. Den gula lysdioden indikerar 1/4 vatten i behållaren. Den gröna lysdioden indikerar att behållaren är halvfull med vatten och den blå lysdioden indikerar att behållaren är full av vatten.
Steg 4: Simulera kretsen
- När du har laddat ner och installerat Proteus-programvaran öppnar du den. Öppna ett nytt schema genom att klicka på ISISikonen på menyn.
- När det nya schemat visas klickar du på Pikonen på sidomenyn. Detta öppnar en ruta där du kan välja alla komponenter som ska användas.
- Skriv nu namnet på de komponenter som ska användas för att skapa kretsen. Komponenten visas i en lista på höger sida.
- På samma sätt, som ovan, sök i alla komponenter som ovan. De kommer att visas i Enheter Lista.
Steg 5: Gör en PCB-layout
När vi ska göra hårdvarukrets på ett kretskort måste vi först skapa en kretskortlayout för den här kretsen.
- För att göra PCB-layouten på Proteus måste vi först tilldela PCB-paketen till varje komponent i schemat. för att tilldela paket högerklickar du på komponenten du vill tilldela paketet och väljer Förpackningsverktyg.
- Klicka på ARIES-alternativet i toppmenyn för att öppna ett kretskort.
- Från komponentlistan, placera alla komponenter på skärmen i en design som du vill att din krets ska se ut.
- Klicka på spårläget och anslut alla stift som programvaran säger att du ska ansluta genom att peka på en pil.
Steg 6: Kretsschema
Efter att ha monterat komponenterna och kopplat dem ska kretsschemat se ut så här:
Steg 7: Arbetsprincip för det autonoma livsmedelsförsörjningssystemet
Funktionsprincipen för livsmedelsförsörjningssystemet är mycket enkel och den viktigaste komponenten i denna krets är Realtidsklockmodul (DS3231)genom vilket vi kan ställa in datum och tid då maten ska serveras till våra husdjur. LCD-modulen visar datum och tid samt servomotor roterar skålarna som kommer att bestå av mat. Jag har inkluderat 4 × 4-knappsatsen för att manuellt ställa in tiden för matning av husdjur. Jag har använt servomotorn så att skålen som innehåller maten kan roteras och den kan släppas ner i den undre skålen där husdjuren kommer att kunna äta den. Maten kommer att släppas i den nedre skålen med de specifika intervall som du anger i koden. Du kan ställa in mängden mat på egen hand med tanke på vanorna att äta hund, katt, papegoja, etc.
Steg 8: Simulera kretsen
Simulera kretsen genom att följa stegen ovan för att kontrollera om den fungerar eller inte. Resten av proceduren är densamma utom komponenterna och deras placering. Komponenterna som kommer att användas i kretsen visas nedan:
- Komponenterna kommer att visas i Enheter Lista.
Nu när vi har kontrollerat att kretsen fungerar bra kommer vi att gå vidare och skriva koden för Arduino.
Steg 9: Kretsschema
Kretsschemat för Proteus ska se ut så här:
Steg 10: Komma igång med Arduino
Om du inte känner till Arduino IDE innan, oroa dig inte för nedan kan du se tydliga steg för att bränna kod på mikrokontrollkortet med Arduino IDE. Du kan ladda ner den senaste versionen av Arduino IDE härifrån och följ stegen nedan:
- När Arduino-kortet är anslutet till din dator öppnar du "Kontrollpanelen" och klickar på "Hårdvara och ljud". Klicka sedan på "Enheter och skrivare". Hitta namnet på den port som Arduino-kortet är anslutet till. I mitt fall är det “COM14” men det kan vara annorlunda på din dator.
- Öppna nu Arduino IDE. Från Verktyg ställer du Arduino-kortet till Arduino / Genuino UNO.
- Från samma verktygsmeny ställer du in portnumret som du såg på kontrollpanelen.
- Ladda ner koden som bifogas nedan och kopiera den till din IDE. Klicka på uppladdningsknappen för att ladda upp koden.
Du kan ladda ner koden härifrån.
Steg 11: Förstå koden
Koden som används i detta projekt är mycket enkel och kommenterad. Även om det är självförklarande beskrivs det kort nedan så att om du använder ett annat Arduino-kort som nano, mega, etc kan du ändra koden ordentligt och sedan bränna den på ditt bräde.
- Överst ingår olika bibliotek så att knappsats, LCD, RTC IC och servomotor kan manövreras av mikrokontrollern.
#omfatta#omfatta #omfatta #omfatta
2. Sedan har raderna och kolumnerna på knappsatsen initialiserat stiften på Arduino som de kommer att anslutas till och sedan skapas hela knappsatsen.
const byte ROWS = 4; // Fyra rader med byte COLS = 4; // Tre kolumner // Definiera teckenknapparna för Keymap [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {2, 3, 4, 5}; // Anslut knappsatsen ROW0, ROW1, ROW2 och ROW3 till dessa Arduino-stift. byte colPins [COLS] = {6, 7, 8, 9}; // Anslut knappsats COL0, COL1 och COL2 till dessa Arduino-stift. Knappsats kpd = Knappsats (makeKeymap (tangenter), rowPins, colPins, ROWS, COLS); // Skapa knappsatsen
3. Därefter initialiseras RTC IC, servomotor och Liquid LCD och vissa variabler deklareras som kommer att användas för beräkningstiden.
DS3231 rtc (A4, A5); Servo servo_test; // initiera ett servoobjekt för den anslutna servon LiquidCrystal lcd (A0, A1, A2, 11, 12, 13); // Skapar ett LC-objekt. Parametrar: (rs, aktivera, d4, d5, d6, d7) // int vinkel = 0; // int potentio = A0; // initialisera A0analog-stiftet för potentiometer int t1, t2, t3, t4, t5, t6; booleskt flöde = sant; // villkor för larmknappnyckel; int r [6];
4. ogiltig installation ()är en funktion som bara körs en gång i koden när mikrokontrollern slås på eller när aktiveringsknappen trycks in. Överföringshastigheten ställs in i denna funktion som i grunden är hastigheten i bitar per sekund genom vilken mikrokontrollern kommunicerar med kringutrustningen. I denna funktion startas också RTC och servo och stiften initialiseras för att användas som ingång eller utgång.
ogiltig installation () {servo_test.attach (10); // fäst signalstiftet på servo till pin9 i arduino rtc.begin (); lcd.begin (16,2); servo_test.write (55); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A2, OUTPUT); }
5. ogiltig slinga () är en funktion som körs om och om igen i en slinga. Här i den här funktionen skrivs koden för att hålla reda på tiden och skriva ut den på LCD-skärmen. sedan ges ett kommando att rotera servon i en angiven vinkel.
ogiltig slinga () {lcd.setCursor (0,0); int-knappTryck på; buttonPress = digitalRead (A3); om (buttonPress == 1) setFeedingTime (); //Serial.println(buttonPress); lcd.print ("Time:"); Sträng 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 ("Date:"); lcd.print (rtc.getDateStr ()); om (t1 == r [0] && t2 == r [1] && t3 == r [2] && t4 == r [3] && t5 <1 && t6 <3 && feed == true) {servo_test. skriv (100); // kommando för att rotera servon till den angivna vinkelfördröjningen (400); servo_test.write (55); mata = falskt; }}
6. ogiltig setFeedingTime () är en funktion som tar inmatning från knappsatsen och mappar ingången för att ställa in matningstiden i mikrokontrollern. Denna tid används senare för att rotera motorn för att mata husdjuret.
ogiltig setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Ställ in matningstid"); lcd.clear (); lcd.print ("HH: MM"); lcd.setCursor (0,1); medan (1) {key = kpd.getKey (); char j; om (nyckel! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (nyckel); r [i] = nyckel-48; i ++; j ++; om (j == 2) {lcd.print (":"); j ++; } fördröjning (500); } om (key == 'D') {key = 0; ha sönder; }}}
Steg 12: Hårdvarudesign av vattenpumpsystem
Eftersom vi har gjort alla mjukvaruuppgifter, låt oss nu fortsätta mot att designa projektets hårdvara. Först och främst kommer vi att montera komponenterna i vattenpumpsystemet och därefter kommer vi att utforma maskinvaran i det automatiska livsmedelsförsörjningssystemet. Efter att ha gjort en kretskortlayout för kretslödet, komponenterna på kretskortet enligt kretsschemat som visas ovan. Lägg kretsen i en liten låda och gör hål i den på lämpligt sätt så att lysdioder lätt kan komma ut ur lådan. Ta ett kretskort och löd lysdioderna på det enligt nivåerna definierade ovan. Efter att ha analyserat kretsen fick vi veta att fem matningslinjer måste tas ut från huvudkortet till sensorn. Fyra rader är av sensorerna och en för Vanlig positiv stift.
Vi måste möjligen skapa två kanaler så när de är i kontakt med vatten kommer de att gå som en omkopplare, eftersom vatten är en bra ledare för elektricitet. Vi kan använda ett PVC-rör och göra hål i det. Mät först behållarens höjd och markera sedan med samma intervall 4 punkter på den. Gör hål på dessa punkter och gör sedan en trådslinga som bär strömmen. Fixa den trådslingan med muttrar och bultar i det PVC-röret och lägg sedan till en vanlig tråd i höljet. Hålet på den nakna tråden och bulten bör hållas på ett minimum och i händelse av att du behöver kan du lödda lite tråd till den gemensamma linjen precis bredvid muttern och skruven eftersom avkänningen skulle vara mer vid den vattnet samverkar med den normala ledningen och bulten, det kommer att ske en strömöverföring från den avskalade ledningen till bulten och följaktligen är avkänningsdelen komplett. Så snart vattnet kommer under en viss nivå vrids vattenmotorn PÅ och tanken börjar fylla. När tanken börjar fylla börjar behållaren också att fyllas på grund av vattenröret eftersom vatten överförs från tanken till behållaren genom röret. Därför finns det inget behov av att fylla behållaren manuellt längre.
Steg 13: Hårdvarudesign av det automatiska livsmedelsförsörjningssystemet
Nu ska vi montera hårdvaran i livsmedelsförsörjningssystemet. Vi kan ställa in tidsintervall efter eget val genom att använda DS3231 Realtidsklocka modul och därmed med tanke på matplanen för våra husdjur kommer vi att justera schemat. När timern når det inställda datumet och tiden kommer servomotorn att röra sig och maten tappas i skålen nedanför. Montera kretsen som visas ovan på panelen. Ta en träpinne och fäst servomotorn med den. Fäst det vertikalt mot väggen och fäst skålen med mat med hjälp av skruvar. Skålen kan vara som ett bambuformat ihåligt rör öppet från båda ändar och en rund träbit kommer att placeras längst ner på den. Servomotorn fästs på trästycket och så snart motorn rör sig i någon vinkel tappas maten i skålen nedanför.
Det är allt för idag. Glöm inte att dela med dig av dina erfarenheter efter att ha slutfört detta projekt och om du har några problem när du gör det gärna fråga i kommentarsektionen.