- మెటీరియల్ అవసరం
- సర్క్యూట్ రేఖాచిత్రం
- 3 డి-ప్రింటెడ్ పెట్ ఫీడర్ మోడల్
- DS3231 RTC మాడ్యూల్
- కోడ్ మరియు వివరణ
- ఆటోమేటిక్ పెట్ ఫీడర్ యొక్క పని
ఈ రోజు మనం ఆర్డునో ఆధారిత ఆటోమేటిక్ పెట్ ఫీడర్ను నిర్మిస్తున్నాము, ఇది మీ పెంపుడు జంతువుకు సకాలంలో ఆహారాన్ని స్వయంచాలకంగా అందించగలదు. దీనికి DS3231 RTC (రియల్ టైమ్ క్లాక్) మాడ్యూల్ ఉంది, ఇది మీ పెంపుడు జంతువుకు ఆహారం ఇవ్వవలసిన సమయం మరియు తేదీని సెట్ చేయడానికి ఉపయోగించబడుతుంది. కాబట్టి, మీ పెంపుడు జంతువు తినే షెడ్యూల్ ప్రకారం సమయాన్ని సెట్ చేయడం ద్వారా, పరికరం స్వయంచాలకంగా ఆహార గిన్నెను వదలండి లేదా నింపండి.
ఈ సర్క్యూట్లో, మేము ఆర్డునో UNO తో DS3231 RTC మాడ్యూల్ ఉపయోగించి సమయాన్ని ప్రదర్శించడానికి 16 * 2 LCD ని ఉపయోగిస్తున్నాము. అలాగే, ఆహారాన్ని అందించడానికి కంటైనర్లను తిప్పడానికి ఒక సర్వో మోటారును మరియు పెంపుడు జంతువుకు ఆహారం ఇవ్వడానికి సమయాన్ని మానవీయంగా సెట్ చేయడానికి 4 * 4 మ్యాట్రిక్స్ కీప్యాడ్ను ఉపయోగిస్తారు. మీరు మీ పెంపుడు జంతువుకు సేవ చేయాలనుకుంటున్న ఆహారం పరిమాణానికి అనుగుణంగా భ్రమణ కోణం మరియు కంటైనర్ ప్రారంభ వ్యవధిని సెట్ చేయవచ్చు. ఆహారం యొక్క పరిమాణం మీ పెంపుడు జంతువు కుక్క, పిల్లి లేదా పక్షి అయినా ఆధారపడి ఉంటుంది.
మెటీరియల్ అవసరం
- ఆర్డునో UNO
- 4 * 4 మ్యాట్రిక్స్ కీప్యాడ్
- 16 * 2 ఎల్సిడి
- నొక్కుడు మీట
- సర్వో మోటార్
- రెసిస్టర్
- వైర్లను కనెక్ట్ చేస్తోంది
- బ్రెడ్బోర్డ్
సర్క్యూట్ రేఖాచిత్రం
ఈ ఆర్డునో ఆధారిత క్యాట్ ఫీడర్లో, సమయం మరియు తేదీని పొందడానికి, మేము RTC (రియల్ టైమ్ క్లాక్) మాడ్యూల్ని ఉపయోగించాము. పెంపుడు జంతువుల తినే సమయాన్ని 16x2 LCD సహాయంతో మానవీయంగా సెట్ చేయడానికి మేము 4 * 4 మ్యాట్రిక్స్ కీప్యాడ్ను ఉపయోగించాము. సర్వో మోటారు కంటైనర్ను తిరుగుతుంది మరియు వినియోగదారు నిర్ణయించిన సమయానికి ఆహారాన్ని వదలండి. తేదీ మరియు సమయాన్ని ప్రదర్శించడానికి LCD ఉపయోగించబడుతుంది. పూర్తి పనిని చివరిలో ఇచ్చిన వీడియోలో చూడవచ్చు.
3 డి-ప్రింటెడ్ పెట్ ఫీడర్ మోడల్
మేము 3D- ప్రింటర్ ఉపయోగించి ఈ ఆర్డునో పెట్ ఫీడర్ కంటైనర్ను రూపొందించాము. మీరు ఇక్కడ నుండి ఫైళ్ళను డౌన్లోడ్ చేయడం ద్వారా అదే డిజైన్ను ప్రింట్ చేయవచ్చు. ఈ నమూనాను ముద్రించడానికి ఉపయోగించే పదార్థం PLA. దిగువ చిత్రంలో చూపిన విధంగా దీనికి నాలుగు భాగాలు ఉన్నాయి:
దిగువ చిత్రంలో చూపిన విధంగా నాలుగు భాగాలను సమీకరించండి మరియు సర్వో మోటారును కనెక్ట్ చేయండి:
మీరు 3D ప్రింటింగ్కు కొత్తగా ఉంటే ఇక్కడ ప్రారంభ గైడ్ ఉంది. ఈ పెంపుడు జంతువు ఫీడర్ కోసం మీరు STL ఫైళ్ళను ఇక్కడ డౌన్లోడ్ చేసుకోవచ్చు.
DS3231 RTC మాడ్యూల్
DS3231 అనేది RTC (రియల్ టైమ్ క్లాక్) మాడ్యూల్. చాలా ఎలక్ట్రానిక్స్ ప్రాజెక్టులకు తేదీ మరియు సమయాన్ని నిర్వహించడానికి ఇది ఉపయోగించబడుతుంది. ఈ మాడ్యూల్ దాని స్వంత కాయిన్ సెల్ విద్యుత్ సరఫరాను కలిగి ఉంది, ఇది ప్రధాన శక్తిని తొలగించినప్పుడు లేదా MCU హార్డ్ రీసెట్ ద్వారా వెళ్ళినప్పుడు కూడా తేదీ మరియు సమయాన్ని నిర్వహిస్తుంది. కాబట్టి మేము ఈ మాడ్యూల్లో తేదీ మరియు సమయాన్ని సెట్ చేసిన తర్వాత అది ఎల్లప్పుడూ ట్రాక్ చేస్తుంది. మా సర్క్యూట్లో, పెంపుడు జంతువు యొక్క యజమాని అలారం లాగా ఏర్పాటు చేసిన సమయానికి అనుగుణంగా పెంపుడు జంతువుకు ఆహారం ఇవ్వడానికి మేము DS3231 ను ఉపయోగిస్తున్నాము. గడియారం నిర్ణీత సమయానికి చేరుకున్నప్పుడు, ఇది కంటైనర్ గేట్ తెరవడానికి సర్వో మోటారును నడుపుతుంది మరియు పెంపుడు జంతువుల ఆహార గిన్నెలో ఆహారం పడిపోతుంది.
గమనిక: ఈ మాడ్యూల్ను మొదటిసారి ఉపయోగిస్తున్నప్పుడు మీరు తేదీ మరియు సమయాన్ని సెట్ చేయాలి. ఆర్డునోతో సమయాన్ని చదవడానికి మీరు RTC IC DS1307 ను కూడా ఉపయోగించవచ్చు.
కోడ్ మరియు వివరణ
ఆటోమాటిక్స్ పెట్ ఫీడర్ యొక్క పూర్తి ఆర్డునో కోడ్ చివరిలో ఇవ్వబడుతుంది.
ఆర్డునో సర్వో మోటర్ మరియు ఎల్సిడి 16 * 2 ను ఉపయోగించడానికి డిఫాల్ట్ లైబ్రరీలను కలిగి ఉంది. Arduino తో DS3231 RTC మాడ్యూల్ మరియు 4 * 4 మ్యాట్రిక్స్ కీప్యాడ్ను ఉపయోగించడం కోసం, మీరు లైబ్రరీలను డౌన్లోడ్ చేసి ఇన్స్టాల్ చేయాలి. రెండు లైబ్రరీల కోసం డౌన్లోడ్ లింక్ క్రింద ఇవ్వబడింది:
- DS3231 RTC (రియల్ టైమ్ క్లాక్) మాడ్యూల్ లైబ్రరీ
- 4 * 4 మ్యాట్రిక్స్ కీప్యాడ్ లైబ్రరీ
దిగువ కోడ్లో, మేము లైబ్రరీలను నిర్వచిస్తున్నాము, “# చేర్చండి
# చేర్చండి
దిగువ కోడ్లో, మేము 4 * 4 మ్యాట్రిక్స్ కీప్యాడ్ కోసం కీ మ్యాప్ను నిర్వచిస్తున్నాము మరియు కీప్యాడ్ యొక్క వరుస మరియు నిలువు వరుసల కోసం ఆర్డునో పిన్లను కేటాయిస్తున్నాము.
చార్ కీలు = {{'1', '2', '3', 'ఎ'}, {'4', '5', '6', 'బి'}, {'7', '8', ' 9 ',' సి '}, {' * ',' 0 ',' # ',' డి '}}; బైట్ rowPins = {2, 3, 4, 5}; బైట్ కోల్పిన్స్ = {6, 7, 8, 9};
ఇక్కడ, కోడ్లోని క్రింది ఆదేశాన్ని ఉపయోగించి మేము కీప్యాడ్ను సృష్టిస్తున్నాము.
కీప్యాడ్ kpd = కీప్యాడ్ (makeKeymap (కీలు), rowPins, colPins, ROWS, COLS);
DS3231 యొక్క SCL మరియు SDA పిన్లతో కనెక్ట్ అవ్వడానికి A4 మరియు A5 ఆర్డునో పిన్లను కేటాయించడం. అలాగే, ఎల్సిడికి పిన్లను కేటాయించడం మరియు సర్వో మోటారును ప్రారంభించడం.
DS3231 rtc (A4, A5); సర్వో సర్వో_టెస్ట్; // కనెక్ట్ చేయబడిన సర్వో లిక్విడ్క్రిస్టల్ ఎల్సిడి (A0, A1, A2, 11, 12, 13) కోసం సర్వో వస్తువును ప్రారంభించండి; // ఒక LC వస్తువును సృష్టిస్తుంది. పారామితులు: (rs, enable, d4, d5, d6, d7)
దిగువ కోడ్లో, మేము t1 ను t6, కీ మరియు శ్రేణి r మరియు ఫీడ్కి ప్రకటిస్తున్నాము.
int t1, t2, t3, t4, t5, t6; బూలియన్ ఫీడ్ = నిజం; చార్ కీ; int r;
దిగువ కోడ్లో, మేము ప్రారంభానికి అన్ని భాగాలను ఏర్పాటు చేస్తున్నాము. ఈ కోడ్లో వలె “servo_test.attach (10);” ఆర్డోనో యొక్క 10 వ పిన్కు సర్వో జతచేయబడింది. A0, A1 మరియు A2 ను అవుట్పుట్ పిన్గా నిర్వచించడం మరియు LCD మరియు RTC మాడ్యూల్ను ప్రారంభించడం.
శూన్య సెటప్ () {servo_test.attach (10); // arduino rtc.begin () యొక్క పిన్ 9 కు సర్వో యొక్క సిగ్నల్ పిన్ను అటాచ్ చేయండి; lcd.begin (16,2); servo_test.write (55); సీరియల్.బెగిన్ (9600); పిన్మోడ్ (A0, OUTPUT); పిన్మోడ్ (A1, OUTPUT); పిన్మోడ్ (A2, OUTPUT); }
ఇప్పుడు, లూప్ ఎలా పనిచేస్తుందో అర్థం చేసుకోవడానికి ముఖ్యమైన భాగం. పుష్బటన్ నొక్కినప్పుడల్లా, ఇది 1 అంటే అధికంగా వెళుతుంది, దీనిని “buttonPress = DigitalRead (A3)” ద్వారా చదవవచ్చు. ఇప్పుడు అది 'if' స్టేట్మెంట్ లోపలికి వెళ్లి 'setFeedingTime' ఫంక్షన్ ని పిలుస్తుంది. అప్పుడు ఇది నిజ సమయాన్ని మరియు వినియోగదారు ప్రవేశించిన సమయాన్ని పోల్చి చూస్తుంది. పరిస్థితి నిజమైతే, నిజ సమయం మరియు ప్రవేశించిన సమయం ఒకేలా ఉంటే, అప్పుడు సర్వో మోటారు 100 డిగ్రీల కోణానికి తిరుగుతుంది మరియు 0.4 సెకన్ల ఆలస్యం తరువాత అది తిరిగి దాని ప్రారంభ స్థానానికి వస్తుంది.
void loop () {lcd.setCursor (0,0); పూర్ణాంక బటన్ ప్రెస్; buttonPress = డిజిటల్ రీడ్ (A3); if (buttonPress == 1) setFeedingTime (); lcd.print ("సమయం:"); స్ట్రింగ్ 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 ("తేదీ:"); lcd.print (rtc.getDateStr ()); if (t1 == r && t2 == r && t3 == r && t4 == r && t5 <1 && t6 <3 && ఫీడ్ == true) {servo_test.write (100); పేర్కొన్న కోణ ఆలస్యం (400) కు సర్వోను తిప్పడానికి // ఆదేశం; servo_test.write (55); ఫీడ్ = తప్పుడు; }}
లో గర్జన setFeedingTime () ఫంక్షన్ కోడ్, పుష్బటన్ నొక్కడం తర్వాత మేము పెంపుడు దాణా సమయాన్ని నమోదు చేయగలరు, అప్పుడు మేము ఆ సమయంలో సేవ్ ప్రెస్ 'D' ఉంటుంది. సేవ్ చేసిన సమయం నిజ సమయంతో సరిపోలినప్పుడు సర్వో తిరగడం ప్రారంభించండి.
void setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("దాణా సమయాన్ని సెట్ చేయండి"); lcd.clear (); lcd.print ("HH: MM"); lcd.setCursor (0,1); (1) {key = kpd.getKey (); చార్ j; if (కీ! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (కీ); r = కీ -48; i ++; j ++; if (j == 2) {lcd.print (":"); j ++; } ఆలస్యం (500); } if (key == 'D') {key = 0; విచ్ఛిన్నం; }}}
ఆటోమేటిక్ పెట్ ఫీడర్ యొక్క పని
Arduino Uno కు కోడ్ను అప్లోడ్ చేసిన తరువాత, సమయం మరియు తేదీ 16 * 2 LCD లో ప్రదర్శించబడుతుంది. మీరు పుష్బటన్ నొక్కినప్పుడు అది పెట్ యొక్క దాణా సమయాన్ని అడుగుతుంది మరియు మీరు 4 * 4 మ్యాట్రిక్స్ కీప్యాడ్ ఉపయోగించి సమయాన్ని నమోదు చేయాలి. ప్రదర్శన ఎంటర్ చేసిన సమయాన్ని చూపుతుంది మరియు మీరు 'D' నొక్కినప్పుడు అది సమయాన్ని ఆదా చేస్తుంది. నిజ సమయం మరియు ప్రవేశించిన సమయం సరిపోలినప్పుడు, ఇది సర్వో మోటారును దాని ప్రారంభ స్థానం 55⁰ నుండి 100⁰ కు తిరుగుతుంది మరియు ఆలస్యం తరువాత మళ్ళీ దాని ప్రారంభ స్థానానికి తిరిగి వస్తుంది. అందువల్ల, సర్వో మోటారు ఫుడ్ కంటైనర్ గేట్కు అనుసంధానించబడి ఉంది, కనుక ఇది కదులుతున్నప్పుడు, గేట్ తెరుచుకుంటుంది మరియు కొంత మొత్తంలో ఆహారం గిన్నె లేదా ప్లేట్లో వస్తుంది. 0.4 సెకన్ల ఆలస్యం తరువాత సర్వో మోటారు మళ్లీ తిరుగుతుంది మరియు గేట్ మూసివేయండి. మొత్తం ప్రక్రియ కొన్ని సెకన్లలో పూర్తవుతుంది. మీరు ప్రవేశించిన సమయానికి మీ పెంపుడు జంతువు ఆహారాన్ని స్వయంచాలకంగా పొందుతుంది.
ఆహారం ప్రకారం సమయం మరియు డిగ్రీని మార్చండి