- आवश्यक सामग्री
- सर्किट आरेख
- 3 डी-प्रिंटेड पेट फीडर मॉडल
- DS3231 RTC मॉड्यूल
- कोड और स्पष्टीकरण
- स्वचालित पालतू फीडर का कार्य करना
आज हम एक Arduino आधारित स्वचालित पालतू फीडर का निर्माण कर रहे हैं जो स्वचालित रूप से आपके पालतू पशु को समय पर भोजन दे सकता है। इसमें DS3231 RTC (रियल टाइम क्लॉक) मॉड्यूल है, जो समय और तारीख निर्धारित करता था, जिस पर आपके पालतू को भोजन दिया जाना चाहिए। इसलिए, अपने पालतू जानवरों के खाने के समय के अनुसार समय निर्धारित करके, उपकरण स्वचालित रूप से ड्रॉप करें या भोजन का कटोरा भरें।
इस सर्किट में, हम Arduino UNO के साथ DS3231 RTC मॉड्यूल का उपयोग करके समय प्रदर्शित करने के लिए 16 * 2 एलसीडी का उपयोग कर रहे हैं। इसके अलावा, भोजन प्रदान करने के लिए कंटेनरों को घुमाने के लिए एक सर्वो मोटर का उपयोग किया जाता है और 4 * 4 मैट्रिक्स कीपैड को पेट भरने के लिए मैन्युअल रूप से सेट करने के लिए समय दिया जाता है। आप अपने पालतू जानवरों की सेवा के लिए भोजन की मात्रा के अनुसार रोटेशन कोण और कंटेनर खोलने की अवधि निर्धारित कर सकते हैं। भोजन की मात्रा आपके पालतू जानवर पर भी निर्भर कर सकती है, चाहे वह कुत्ता, बिल्ली या पक्षी हो।
आवश्यक सामग्री
- Arduino UNO
- 4 * 4 मैट्रिक्स कीपैड
- 16 * 2 एलसीडी
- बटन दबाओ
- सर्वो मोटर
- अवरोध
- तारों को जोड़ना
- ब्रेड बोर्ड
सर्किट आरेख
इस में Arduino आधारित बिल्ली फीडर, हो रही है समय और दिनांक के लिए, हम आरटीसी (रियल टाइम क्लॉक) मॉड्यूल का इस्तेमाल किया है। हमने 16x2 एलसीडी की मदद से मैन्युअल रूप से पेट के खाने का समय निर्धारित करने के लिए 4 * 4 मैट्रिक्स कीपैड का उपयोग किया है। सर्वो मोटर कंटेनर को घुमाता है और उपयोगकर्ता द्वारा निर्धारित समय पर भोजन छोड़ता है। एलसीडी का उपयोग दिनांक और समय प्रदर्शित करने के लिए किया जाता है। पूर्ण काम अंत में दिए गए वीडियो में पाया जा सकता है।
3 डी-प्रिंटेड पेट फीडर मॉडल
हमने 3 डी-प्रिंटर का उपयोग करके इस Arduino Pet फीडर कंटेनर को डिज़ाइन किया है । आप यहाँ से फ़ाइलों को डाउनलोड करके उसी डिज़ाइन को प्रिंट भी कर सकते हैं। इस मॉडल को प्रिंट करने के लिए प्रयुक्त सामग्री PLA है। नीचे चित्र में दिखाए गए अनुसार इसके चार भाग हैं:
नीचे दिए गए चित्र में दिखाए गए अनुसार चार भागों को इकट्ठा करें और सर्वो मोटर को कनेक्ट करें:
यदि आप नए 3 डी प्रिंटिंग के लिए यहां हैं तो शुरुआती गाइड है। आप इस पालतू फीडर के लिए एसटीएल फाइलें यहां से डाउनलोड कर सकते हैं।
DS3231 RTC मॉड्यूल
DS3231 एक RTC (रियल टाइम क्लॉक) मॉड्यूल है। इसका उपयोग अधिकांश इलेक्ट्रॉनिक्स परियोजनाओं के लिए तारीख और समय बनाए रखने के लिए किया जाता है। इस मॉड्यूल की अपनी सिक्का सेल बिजली आपूर्ति है, जिसके उपयोग से यह मुख्य पावर को हटाए जाने पर भी दिनांक और समय को बनाए रखता है या MCU एक हार्ड रीसेट के माध्यम से चला गया है। इसलिए एक बार जब हम इस मॉड्यूल में दिनांक और समय निर्धारित करते हैं तो यह हमेशा इसका ट्रैक रखेगा। हमारे सर्किट में, हम पालतू के मालिक द्वारा निर्धारित समय के अनुसार पालतू को खिलाने के लिए DS3231 का उपयोग कर रहे हैं, अलार्म की तरह। के रूप में, घड़ी निर्धारित समय तक पहुंचती है, यह कंटेनर गेट खोलने के लिए सर्वो मोटर संचालित करती है और भोजन पेट के भोजन के कटोरे में गिरता है।
नोट: पहली बार इस मॉड्यूल का उपयोग करते समय आपको तारीख और समय निर्धारित करना होगा। आप Arduino के साथ समय पढ़ने के लिए RTC IC DS1307 का भी उपयोग कर सकते हैं।
कोड और स्पष्टीकरण
ऑटोमैटिक्स पेट फीडर का पूरा Arduino कोड अंत में दिया गया है।
Arduino में सर्वो मोटर और एलसीडी 16 * 2 का उपयोग करने के लिए डिफ़ॉल्ट पुस्तकालय हैं। लेकिन Arduino के साथ DS3231 RTC मॉड्यूल और 4 * 4 मैट्रिक्स कीपैड का उपयोग करने के लिए, आपको पुस्तकालयों को डाउनलोड और इंस्टॉल करना होगा। दोनों पुस्तकालयों के लिए डाउनलोड लिंक नीचे दिया गया है:
- DS3231 RTC (रियल टाइम क्लॉक) मॉड्यूल लाइब्रेरी
- 4 * 4 मैट्रिक्स कीपैड लाइब्रेरी
नीचे दिए गए कोड में, हम पुस्तकालयों को परिभाषित कर रहे हैं, “#include
#शामिल
नीचे दिए गए कोड में, हम 4 * 4 मैट्रिक्स कीपैड के लिए कीमैप को परिभाषित कर रहे हैं और कीपैड के रो और कॉलम के लिए Arduino पिन असाइन कर रहे हैं।
char keys = {{1], '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' सी '}, {' * ',' 0 ',' # ',' डी '}}; बाइट पंक्तिपिन = {2, 3, 4, 5}; बाइट कोलिन्स = {6, 7, 8, 9};
यहां, हम कोड में नीचे कमांड का उपयोग करके कीपैड बना रहे हैं।
कीपैड kpd = कीपैड (मेकमैप (चाबियाँ), रोपिन्स, कॉलिन्स, रोव्स, कॉल्स);
DS3231 के SCL और SDA पिन से जुड़ने के लिए A4 और A5 Arduino पिन को असाइन करना। इसके अलावा, एलसीडी को पिंस असाइन करना और सर्वो मोटर को इनिशियलाइज़ करना।
DS3231 आरटीसी (ए 4, ए 5); सर्वो सर्वो; // जुड़े सर्वो लिक्विड क्रिस्टल एलसीडी (ए 0, ए 1, ए 2, 11, 12, 13) के लिए एक सर्वो ऑब्जेक्ट को इनिशियलाइज़ करें; // एक LC ऑब्जेक्ट बनाता है। पैरामीटर: (आरएस, सक्षम, डी 4, डी 5, डी 6, डी 7)
नीचे दिए गए कोड में, हम t1 से t6, key और array r और फीड को घोषित कर रहे हैं।
int t1, t2, t3, t4, t5, t6; बूलियन फ़ीड = सच; चार कुंजी; int r;
नीचे दिए गए कोड में, हम शुरुआत के लिए सभी घटकों को स्थापित कर रहे हैं। जैसे इस कोड में "servo_test.attach (10);" सर्वो Arduino के 10 वें पिन से जुड़ा हुआ है । आउटपुट पिन के रूप में A0, A1 और A2 को परिभाषित करना और LCD और RTC मॉड्यूल को इनिशियलाइज़ करना।
शून्य सेटअप () {सर्वो_टेस्ट.टच (10); // Arduino rtc.begin () के pin9 को इमदादी के सिग्नल पिन संलग्न करें; lcd.begin (16,2); servo_test.write (55); सीरियल.बेगिन (9600); पिनमोड (A0, OUTPUT); पिनमोड (A1, OUTPUT); पिनमोड (A2, OUTPUT); }
अब, लूप कैसे काम कर रहा है, यह समझने के लिए महत्वपूर्ण हिस्सा है। जब भी पुशबटन को दबाया जाता है, तो इसका अर्थ उच्च 1 होता है, जिसे "बटनप्रेस = डिजिटलरेड (ए 3)" द्वारा पढ़ा जा सकता है । अब यह 'if' स्टेटमेंट के अंदर जाता है और 'setFeedingTime' फंक्शन को कॉल करता है। फिर यह उपयोगकर्ता द्वारा वास्तविक समय और दर्ज किए गए समय की तुलना करता है। यदि स्थिति सही है, जिसका अर्थ है कि वास्तविक समय और दर्ज किया गया समय समान है, तो सर्वो मोटर 100 डिग्री के कोण और कोण तक घूमती है और 0.4 सेकंड के विलंब के बाद वापस अपनी प्रारंभिक स्थिति में आ जाती है।
शून्य लूप () {lcd.setCursor (0,0); int बटनप्रेस; buttonPress = digitalRead (A3); if (buttonPress == 1) setFeedingTime (); lcd.print ("समय:"); स्ट्रिंग टी = ""; 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 && feed == true) {servo_test.write (100); // कमांड को निर्दिष्ट कोण देरी (400) के लिए सर्वो को घुमाने के लिए; servo_test.write (55); खिला = झूठा; }}
में शून्य setFeedingTime () समारोह कोड, पुशबटन दबाने के बाद हम पालतू खिला समय दर्ज करने में सक्षम हैं, तो हम उस समय को बचाने के लिए प्रेस 'डी' के लिए है। जब बचा हुआ समय वास्तविक समय के साथ मेल खाता है तो सर्वो घूमना शुरू कर देता है।
शून्य सेटफीडिंग टाइम () {फ़ीड = सत्य; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("फीडिंग टाइम सेट करें"); lcd.clear (); lcd.print ("HH: MM"); lcd.setCursor (0,1); जबकि (1) {कुंजी = kpd.getKey (); चार जे; if (की! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (की); आर = की -48; मैं ++; जे ++; if (j == 2) {lcd.print (":"); जे ++; } देरी (500); } अगर (कुंजी == 'डी') {कुंजी = 0; टूटना; }}}
स्वचालित पालतू फीडर का कार्य करना
कोड को Arduino Uno पर अपलोड करने के बाद, समय और दिनांक 16 * 2 LCD पर प्रदर्शित होगी। जब आप पुशबटन को दबाते हैं तो यह पेट के खिलाने के समय के लिए पूछता है और आपको 4 * 4 मैट्रिक्स कीपैड का उपयोग करके समय दर्ज करना होगा। प्रदर्शन दर्ज समय दिखाएगा और जैसे ही आप 'डी' दबाते हैं यह समय बचाता है। जब वास्तविक समय और दर्ज समय मेल खाता है, तो यह अपनी प्रारंभिक स्थिति 55⁰ से 100⁰ तक सर्वो मोटर को घुमाता है और एक देरी के बाद फिर से अपनी प्रारंभिक स्थिति में लौटता है। इसलिए, सर्वो मोटर फूड कंटेनर गेट से जुड़ा हुआ है, इसलिए जैसे ही यह चलता है, गेट खुल जाएगा और भोजन की कुछ मात्रा कटोरे या प्लेट में गिर जाएगी। 0.4 सेकंड की देरी के बाद सर्वो मोटर फिर से घूमती है और गेट बंद कर देती है। पूरी प्रक्रिया कुछ सेकंड के भीतर पूरी हो जाती है। इस तरह से आपके पालतू जानवर को आपके द्वारा दर्ज किए गए समय पर भोजन स्वतः मिल जाता है।
भोजन के अनुसार समय और डिग्री बदलें