Hvordan lage et automatisk fôringssystem for kjæledyrene dine?
Kjæledyrene må mates i tide slik at de kan opprettholde god helse. Dyreeierne er ikke tilgjengelige hjemme døgnet rundt, noen ganger drar de på forretningsmøter til en annen by eller noen andres hus, så kjæledyrene lider i fravær på grunn av mangel på mat. Tyngdekraftsmatere er tilgjengelige i markedet som kan mate kjæledyrene automatisk, men de er litt dyre og de trenger et stort område for plassering. I dag skal jeg designe et automatisk fôringssystem for husdyr som vil minimere menneskelig innsats for å mate kjæledyrene i stor grad. Den ene vil plassere maten i beholderen, og den fylles automatisk på igjen så snart den faller under et visst nivå. Følg derfor denne veiledningen og vær klar til å implementere denne innovative ideen hjemme hos deg.
Hvordan sette opp apparatet og automatisere det ved hjelp av Arduino?
Hensikten med denne teknikken er å gjøre et system, mer effektivt fra systemene som er tilgjengelige i markedet som tyngdekraftsmatere, med relativt lave kostnader. Systemet vårt vil være ansvarlig for å opprettholde den konstante tilførselen av mat og vann til kjæledyrene. For det første vil vi designe det automatiske vannmatingssystemet, og for det andre vil vi designe en automatisk matemat for kjæledyrene våre.
Trinn 1: Nødvendige komponenter (maskinvare)
Trinn 2: Nødvendige komponenter (programvare)
Før du monterer kretsen på maskinvaren, bør den simuleres. Etter simuleringen får vi vite at om kretsen vår vil fungere nøyaktig eller ikke. Derfor har jeg tatt med programvaresimuleringene nedenfor, og for det er programvaren som kreves Proteus Professional.
Trinn 3: Arbeidsprinsipp for autonomt vannpumpesystem
Blant alle komponentene er de viktigste komponentene Transistorer BC 547. Det er totalt 7 transistorer, og de vil føle vannstanden. LED-er vil overvåke vannstanden i beholderen. når vannet stiger, begynner sensorene å komme i kontakt med vannet og transistorene aktiveres, og det er en progresjon av strøm i transistorene som gjør at lysdioden lyser. Det er en strømbegrensende motstand involvert mellom transistoren og LED, og det forhindrer at høyere spenning kommer inn i LED-en. Gummirøret vil være koblet til overliggende tank, og det vil være ansvarlig for å fylle beholderen ettersom nivået faller under en viss terskel. Når vannet synker under terskelen, starter vannpumpen og beholderen begynner å fylles. På denne måten er det ikke nødvendig å fylle på beholderen manuelt, og kjæledyr får konstant tilførsel av vann. For enkelhets skyld vil jeg utdype funksjonaliteten til lysdioder. Lysdiodene som er installert i kretsen, har fire typer farger. Rød, gul, grønn og blå. Den røde indikerer at det ikke er vann i beholderen, og ingen av sensorene er i kontakt med vannet, og beholderen må fylles på igjen. Den gule lysdioden indikerer 1/4 vann i beholderen. Den grønne lysdioden indikerer at beholderen er halvfull av vann og den blå lysdioden indikerer at beholderen er full av vann.
Trinn 4: Simulere kretsen
- Når du har lastet ned og installert Proteus-programvaren, åpner du den. Åpne et nytt skjema ved å klikke på ISISikonet på menyen.
- Når det nye skjemaet vises, klikker du på Pikonet på sidemenyen. Dette åpner en rute der du kan velge alle komponentene som skal brukes.
- Skriv inn navnet på komponentene som skal brukes til å lage kretsen. Komponenten vises i en liste på høyre side.
- På samme måte, som ovenfor, søk i alle komponentene som ovenfor. De vil vises i Enheter Liste.
Trinn 5: Lag et PCB-oppsett
Som vi skal lage maskinvarekrets på et PCB, må vi først lage et PCB-oppsett for denne kretsen.
- For å lage PCB-oppsettet på Proteus, må vi først tildele PCB-pakkene til hver komponent på skjematisk. for å tildele pakker, høyreklikker musen på komponenten du vil tildele pakken og velger Emballasjeverktøy.
- Klikk på ARIES-alternativet i toppmenyen for å åpne et PCB-skjema.
- Fra komponentlisten plasserer du alle komponentene på skjermen i et design du vil at kretsen din skal se ut.
- Klikk på spormodus og koble til alle pinnene som programvaren forteller deg å koble til ved å peke på en pil.
Trinn 6: Kretsdiagram
Etter at komponentene er montert og koblet til dem, bør kretsskjemaet se slik ut:
Trinn 7: Arbeidsprinsipp for det autonome matforsyningssystemet
Arbeidsprinsippet til matforsyningssystemet er veldig enkelt, og den viktigste komponenten i denne kretsen er Sanntids klokkemodul (DS3231)som vi kan angi dato og klokkeslett for når maten skal serveres til kjæledyrene våre. LCD-modulen viser dato og klokkeslett og Servo motor vil rotere bollene som vil bestå av mat. Jeg har tatt med 4 × 4 tastaturet for å stille inn tiden for mating av kjæledyr manuelt. Jeg har brukt servomotoren slik at bollen som inneholder maten kan roteres, og den kan slippes ned i den nedre bollen der kjæledyrene kan spise den. Maten vil bli kastet i den nedre bollen med de spesifikke intervallene som blir satt av deg i koden. Du kan angi mengden mat på egen hånd med tanke på vanene å spise hunden, katten, papegøyen, etc.
Trinn 8: Simulere kretsen
Simuler kretsen ved å følge trinnene ovenfor for å sjekke om den fungerer eller ikke. Resten av prosedyren er den samme bortsett fra komponentene og deres plassering. Komponentene som skal brukes i kretsen er vist nedenfor:
- Komponentene vises i Enheter Liste.
Nå som vi har sjekket at kretsen fungerer bra, vil vi fortsette videre og skrive koden for Arduino.
Trinn 9: Kretsdiagram
Kretsskjemaet til Proteus skal se slik ut:
Trinn 10: Komme i gang med Arduino
Hvis du ikke er kjent med Arduino IDE før, ikke bekymre deg, for nedenfor kan du se klare trinn for å brenne kode på mikrokontrollerkortet ved hjelp av Arduino IDE. Du kan laste ned den nyeste versjonen av Arduino IDE herfra og følge trinnene nedenfor:
- Når Arduino-kortet er koblet til PC-en, åpner du "Kontrollpanel" og klikker på "Maskinvare og lyd". Klikk deretter på "Enheter og skrivere". Finn navnet på porten som Arduino-kortet ditt er koblet til. I mitt tilfelle er det “COM14” men det kan være annerledes på din PC.
- Åpne nå Arduino IDE. Fra Verktøy, sett Arduino-kortet til Arduino / Genuino UNO.
- Fra den samme verktøymenyen angir du portnummeret du så i kontrollpanelet.
- Last ned koden som er vedlagt nedenfor, og kopier den til IDE. For å laste opp koden, klikk på opplastingsknappen.
Du kan laste ned koden herfra.
Trinn 11: Forstå koden
Koden som brukes i dette prosjektet er veldig enkel og godt kommentert. Selv om det er selvforklarende, blir det kort beskrevet nedenfor, slik at hvis du bruker et annet Arduino-kort som nano, mega, etc, kan du endre koden riktig og deretter brenne den på brettet ditt.
- Øverst er forskjellige biblioteker inkludert, slik at tastaturet, LCD, RTC IC og servomotor kan betjenes av mikrokontrolleren.
#inkludere#inkludere #inkludere #inkludere
2. Deretter har radene og kolonnene på tastaturet initialisert pinnene til Arduino de skal kobles til, og deretter blir hele tastaturet opprettet.
const byte RADER = 4; // Fire rader med byte COLS = 4; // Tre kolonner // Definer nøkkelkorttegnene [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {2, 3, 4, 5}; // Koble tastaturet ROW0, ROW1, ROW2 og ROW3 til disse Arduino-pinnene. byte colPins [COLS] = {6, 7, 8, 9}; // Koble tastaturet COL0, COL1 og COL2 til disse Arduino-pinnene. Tastatur kpd = Tastatur (makeKeymap (nøkler), rowPins, colPins, ROWS, COLS); // Opprett tastaturet
3. Deretter initialiseres RTC IC, servomotor og Liquid LCD, og noen variabler er erklært som vil bli brukt til kjøretidsberegningene.
DS3231 rtc (A4, A5); Servo servo_test; // initialisere et servoobjekt for den tilkoblede servo LiquidCrystal lcd (A0, A1, A2, 11, 12, 13); // Oppretter et LC-objekt. Parametere: (rs, aktivere, d4, d5, d6, d7) // int vinkel = 0; // int potensio = A0; // initialiser A0analog pin for potensiometer int t1, t2, t3, t4, t5, t6; boolsk feed = true; // tilstand for alarmkullnøkkel; int r [6];
4. ugyldig oppsett ()er en funksjon som bare utføres en gang i koden når mikrokontrolleren slås på eller aktiveringsknappen trykkes. Baudhastigheten er satt i denne funksjonen, som i utgangspunktet er hastigheten i bits per sekund som mikrokontrolleren kommuniserer med de perifere enhetene. I denne funksjonen startes også RTC og servo, og pinnene initialiseres for å brukes som inngang eller utgang.
ugyldig oppsett () {servo_test.attach (10); // fest signalpinnen til servoen til pin9 av arduino rtc.begin (); lcd.begin (16,2); servo_test.write (55); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A2, OUTPUT); }
5. ugyldig sløyfe () er en funksjon som utføres igjen og igjen i en løkke. Her i denne funksjonen blir koden skrevet for å holde oversikt over tiden og skrive den ut på LCD-skjermen. så blir det gitt en kommando om å rotere servoen i en spesifisert vinkel.
ugyldig sløyfe () {lcd.setCursor (0,0); int-knappTrykk på; buttonPress = digitalRead (A3); hvis (buttonPress == 1) setFeedingTime (); //Serial.println(buttonPress); lcd.print ("Time:"); Streng 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 ()); hvis (t1 == r [0] && t2 == r [1] && t3 == r [2] && t4 == r [3] && t5 <1 && t6 <3 && feed == true) {servo_test. skriv (100); // kommando for å rotere servoen til den angitte vinkelforsinkelsen (400); servo_test.write (55); feed = false; }}
6. ugyldig setFeedingTime () er en funksjon som tar inngang fra tastaturet og kartlegger inngangen for å stille matetiden i mikrokontrolleren. Denne tiden brukes senere til å rotere motoren for å mate kjæledyrene.
ugyldig setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Angi fôringstid"); lcd.clear (); lcd.print ("HH: MM"); lcd.setCursor (0,1); mens (1) {nøkkel = kpd.getKey (); røye j; hvis (nøkkel! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (nøkkel); r [i] = nøkkel-48; i ++; j ++; hvis (j == 2) {lcd.print (":"); j ++; } forsinkelse (500); } hvis (nøkkel == 'D') {nøkkel = 0; gå i stykker; }}}
Trinn 12: Maskinvaredesign av vannpumpesystem
Etter hvert som vi har gjort alle programvareoppgavene, la oss nå fortsette med å designe maskinvaren til prosjektet. Først og fremst vil vi montere komponentene i vannpumpesystemet, og etterpå vil vi designe maskinvaren til det automatiske matforsyningssystemet. Etter å ha laget et kretskortlayout for kretsloddet, skal komponentene på kretskortet være i henhold til kretsskjemaet vist ovenfor. Legg kretsen i en liten boks og lag hull i den på riktig måte slik at LED-er lett kommer ut av boksen. Ta et PCB-kort og lodd LED-lampene på det i henhold til nivåene som er definert ovenfor. Etter å ha analysert kretsen fikk vi vite at fem forsyningslinjer må tas ut fra hovedkortet til sensoren. Fire linjer er av sensorene, og en er for Vanlig positiv pin.
Vi trenger muligens å lage to kanaler, så når de er i kontakt med vann, vil de gå rundt som en bryter, siden vann er en god leder av elektrisitet. Vi kan bruke et PVC-rør og lage hull i det. For det første måler du høyden på beholderen, og deretter markerer du 4 poeng med like intervaller. Lag hull på disse punktene, og lag deretter en løkke av ledning som skal bære strømmen. Fest den trådsløyfen med muttere og bolter i PVC-røret, og legg deretter til en vanlig ledning til foringsrøret. Hullet på den nakne ledningen og bolten bør holdes på et minimum, og i tilfelle du trenger det, kan du lodde litt ledning til den felles linjen like ved mutteren og skruen, da sensingen ville være mer på det tidspunktet vannet samhandler med den vanlige ledningen og bolten, det vil være en overføring av strøm fra den avisolerte ledningen til bolten, og følgelig er sensing-delen fullført. Så snart vannet kommer under et visst nivå, snus vannmotoren PÅ og tanken begynner å fylle. Når tanken begynner å fylle, begynner beholderen også å fylle på grunn av vannrøret ettersom vann overføres fra tanken til beholderen gjennom røret. Derfor er det ikke lenger nødvendig å fylle beholderen manuelt.
Trinn 13: Maskinvaredesign av automatisk matforsyningssystem
Nå skal vi montere maskinvaren til matforsyningssystemet. Vi kan stille tidsintervallene etter eget valg ved å bruke DS3231 sanntidsklokke modul og dermed holde øye med spiseplanen til kjæledyrene våre, vil vi justere timeplanen. Når timeren når den innstilte datoen og klokkeslettet, vil servomotoren bevege seg og maten slippes ned i bollen nedenfor. Monter kretsen som vist ovenfor på brødplaten. Ta en trepinne og fest servomotoren med den. Fest det vertikalt mot veggen og fest skruen med mat på pinnen ved hjelp av skruer. Skål kan være som et bambusformet hulrør åpent fra begge ender, og et rundt trebit vil bli plassert nederst på det. Servomotoren blir festet til trestykket, og så snart motoren beveger seg i en viss vinkel, faller maten i bollen som er plassert under.
Det var alt for i dag. Ikke glem å dele din erfaring etter at du har fullført dette prosjektet, og hvis du har noen problemer mens du gjør det, kan du gjerne spørre i kommentarfeltet.