विषयसूची:

टास्क मैनेजर - एक घरेलू काम प्रबंधन प्रणाली: 5 कदम (चित्रों के साथ)
टास्क मैनेजर - एक घरेलू काम प्रबंधन प्रणाली: 5 कदम (चित्रों के साथ)

वीडियो: टास्क मैनेजर - एक घरेलू काम प्रबंधन प्रणाली: 5 कदम (चित्रों के साथ)

वीडियो: टास्क मैनेजर - एक घरेलू काम प्रबंधन प्रणाली: 5 कदम (चित्रों के साथ)
वीडियो: What is Human Resource Management? – [Hindi] – Quick Support 2024, नवंबर
Anonim
टास्क मैनेजर - एक घरेलू काम प्रबंधन प्रणाली
टास्क मैनेजर - एक घरेलू काम प्रबंधन प्रणाली
टास्क मैनेजर - एक घरेलू काम प्रबंधन प्रणाली
टास्क मैनेजर - एक घरेलू काम प्रबंधन प्रणाली

मैं अपने घर में सामना की जाने वाली एक वास्तविक समस्या का समाधान करने का प्रयास करना चाहता था (और, मैं कल्पना करता हूं, कई अन्य पाठकों की), जो कि घर के कामों में मदद करने के लिए अपने बच्चों को आवंटित, प्रेरित और पुरस्कृत करना है।

अब तक, हमने A4 पेपर की एक लैमिनेटेड शीट को फ्रिज के किनारे से चिपका कर रखा है। इसमें कार्यों की एक ग्रिड छपी होती है, जिसमें संबंधित राशि की पॉकेट मनी होती है जिसे उस कार्य को पूरा करने के लिए अर्जित किया जा सकता है। विचार यह है कि हर बार जब हमारा कोई बच्चा किसी काम में मदद करता है, तो उन्हें उस बॉक्स में एक टिक मिलता है और प्रत्येक सप्ताह के अंत में, हम अर्जित धन को जोड़ते हैं, बोर्ड को मिटा देते हैं और फिर से शुरू करते हैं। हालांकि, कार्यों की सूची पुरानी है और बदलना मुश्किल है, हम कभी-कभी हर हफ्ते बोर्ड को साफ करना याद नहीं रखते हैं, और कुछ कार्यों को अलग-अलग आवृत्तियों के साथ करने की आवश्यकता होती है - कुछ आदर्श रूप से दैनिक रूप से किए जाएंगे, जबकि अन्य महीने में केवल एक बार हो सकते हैं। इसलिए, मैंने इन मुद्दों को हल करने के लिए एक Arduino- आधारित डिवाइस बनाने के बारे में सेट किया - मेरा इरादा कुछ ऐसा बनाना था जो कार्यों को आसान जोड़ने/हटाने/अद्यतन करने की अनुमति देता था, एक कार्य पूरा होने पर रिकॉर्डिंग के लिए एक सुव्यवस्थित तंत्र और क्रेडिट आवंटित करना उपयुक्त व्यक्ति, और विभिन्न अनुसूचियों और आवृत्ति का ट्रैक रखने का एक तरीका जिसके साथ विभिन्न कार्यों को करने की आवश्यकता होती है, और अतिदेय कार्यों को उजागर करना। और यह निर्देशयोग्य दिखाएगा कि परिणामी "टास्क मैनेजर" डिवाइस कैसे निकला।

चरण 1: हार्डवेयर

हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर

परियोजना कई अच्छी तरह से इस्तेमाल और प्रलेखित हार्डवेयर घटकों का उपयोग करती है:

  • Arduino UNO/Nano - यह सिस्टम का "दिमाग" है। ऑनबोर्ड EEPROM मेमोरी का उपयोग सिस्टम के बंद होने पर भी कार्यों की स्थिति को बचाने के लिए किया जाएगा। वायरिंग में आसानी के लिए, मैंने नैनो को स्क्रूशील्ड पर रखा है, लेकिन आप चाहें तो GPIO पिन में मिलाप कर सकते हैं या crimped कनेक्शन का उपयोग कर सकते हैं।
  • रीयल-टाइम क्लॉक (RTC) मॉड्यूल - उस टाइमस्टैम्प को रिकॉर्ड करने के लिए उपयोग किया जाता है जिस पर कार्य किए गए थे, और, पिछली बार की वर्तमान समय से तुलना करके, निर्धारित करें कि कौन से कार्य अतिदेय हैं। ध्यान दें कि मुझे प्राप्त इकाई को रिचार्जेबल लीपो बैटरी (एलआईआर 2032) के साथ उपयोग करने के लिए डिज़ाइन किया गया था। हालाँकि, मैं एक गैर-रिचार्जेबल CR2032 बैटरी का उपयोग कर रहा हूं, इसलिए मुझे चार्जिंग सर्किट को अक्षम करने के लिए कुछ संशोधन करने की आवश्यकता है (आप एक गैर-रिचार्जेबल बैटरी को रिचार्ज करने का प्रयास नहीं करना चाहते हैं, या आप एक विस्फोट का सामना कर सकते हैं…।) विशेष रूप से, मैंने प्रतिरोधों R4, R5, और R6 को हटा दिया, और डायोड को D1 के रूप में चिह्नित किया। मैंने तब एक सोल्डर ब्रिज बनाया, जहाँ R6 था। इन परिवर्तनों को नीचे दी गई तस्वीर में दिखाया गया है।
  • ISO14443 RFID रीडर + प्रति उपयोगकर्ता एक टैग- सिस्टम को "gamify" करने के तरीके के रूप में, मेरे प्रत्येक बच्चे का अपना विशिष्ट RFID टैग होता है। किसी कार्य का चयन करना और फिर उसके टैग को पाठक पर स्वाइप करना किसी कार्य को पूर्ण के रूप में चिह्नित करने के लिए उपयोग किया जाने वाला तंत्र होगा
  • 16x2 एलसीडी डिस्प्ले - सिस्टम को यूजर इंटरफेस प्रदान करने के लिए उपयोग किया जाता है। एक बोर्ड का उपयोग करके जिसमें एक अभिन्न PCF8574A बैकपैक है, बोर्ड को I2C इंटरफ़ेस के माध्यम से Arduino से जोड़ा जा सकता है, जो वायरिंग को काफी सरल करता है।
  • रोटरी एनकोडर - मुख्य नियंत्रण घुंडी होगी जिसे उपयोगकर्ता विभिन्न उपलब्ध कार्यों का चयन करने के लिए बदल देंगे
  • वागो कनेक्टर - ये स्नैप-शट कनेक्टर घटकों को एक साथ तार करने या कई मॉड्यूल के लिए सरल बस बनाने का एक सुविधाजनक तरीका है जिसमें प्रत्येक को सामान्य जमीन या 5V आपूर्ति की आवश्यकता होती है।

चरण 2: वायरिंग

तारों
तारों

16x2 LCD डिस्प्ले और DS1307 RTC दोनों एक I2C इंटरफ़ेस का उपयोग करते हैं, जो सुविधाजनक है क्योंकि यह वायरिंग को बहुत सरल बनाता है, इसके लिए Arduino के A4 (SDA) और A5 (SCL) पिन में जाने वाले तारों की केवल एक जोड़ी की आवश्यकता होती है।

MFRC-522 RFID रीडर एक SPI इंटरफ़ेस का उपयोग करता है, जो फिक्स्ड हार्डवेयर पिन 11 (MOSI), 12 (MISO), और 13 (SCK) का उपयोग करता है। इसके लिए दास चयन और रीसेट लाइन की भी आवश्यकता होती है, जिसे मैंने क्रमशः 10 और 9 पिन करने के लिए असाइन किया है।

रोटरी एन्कोडर को पिन की एक जोड़ी की आवश्यकता होती है। इष्टतम प्रदर्शन के लिए, यह सबसे अच्छा है अगर ये पिन बाहरी इंटरप्ट को संभाल सकते हैं, इसलिए मैं डिजिटल पिन 2 और 3 का उपयोग कर रहा हूं। आप एनकोडर को स्विच के रूप में भी क्लिक कर सकते हैं, और मैंने इसे पिन 4 में वायर कर दिया है। वर्तमान में कोड में उपयोग किया जाता है, आप इसे अतिरिक्त सुविधाओं को जोड़ने के लिए उपयोगी पा सकते हैं

सुविधा के लिए, मैं WAGO 222-श्रृंखला कनेक्टर ब्लॉक का उपयोग कर रहा हूं। ये स्नैप-शट कनेक्टर हैं जो 2 और 8 तारों के बीच कहीं भी एक साथ कनेक्ट करने का एक मजबूत, आसान तरीका प्रदान करते हैं, और Arduino प्रोजेक्ट्स के लिए बहुत सुविधाजनक हैं जिन्हें ग्राउंड या 5V लाइन साझा करने के लिए कई मॉड्यूल की आवश्यकता होती है, या जहां आपके पास कई डिवाइस हैं वही I2C या SPI बस, कहते हैं।

आरेख दिखाता है कि कैसे सब कुछ एक साथ तार-तार किया जाता है।

चरण 3: निर्माण

मैंने इलेक्ट्रॉनिक्स को घर में रखने के लिए एक बहुत ही बुनियादी 3 डी प्रिंटेड केस बनाया। मैंने कुछ चुम्बकों को पीछे की तरफ रखा ताकि यूनिट को फ्रिज के किनारे पर सुरक्षित किया जा सके, जैसा कि पिछली मुद्रित सूची थी। मैंने यूएसबी सॉकेट को भी खुला छोड़ दिया, क्योंकि इसका उपयोग तब किया जाएगा जब सिस्टम में नए कार्यों को जोड़ने की आवश्यकता होगी, या लॉग ऑन करने और पूर्ण कार्यों को दिखाने वाले डेटा का एक सेट डाउनलोड करने के लिए उपयोग किया जाएगा।

मैंने प्रिंटिंग के बाद एसटीएल फाइलों को नहीं सहेजा, लेकिन बहुत सारे समान (और, शायद बेहतर!) मामले thingiverse.com पर उपलब्ध हैं। वैकल्पिक रूप से, आप एक अच्छे लकड़ी के बक्से का निर्माण कर सकते हैं, या इलेक्ट्रॉनिक्स को रखने के लिए बस एक पुराने कार्डबोर्ड बॉक्स या टपरवेयर कंटेनर का उपयोग कर सकते हैं।

चरण 4: कोड

कोड
कोड

पूरी तरह से टिप्पणी वाला कोड नीचे डाउनलोड के रूप में संलग्न है। ध्यान देने योग्य कुछ और महत्वपूर्ण बिंदु यहां दिए गए हैं:

मैंने एक कस्टम संरचना बनाई है, "कार्य", जो डेटा की एक इकाई है जो एक ही इकाई में किसी कार्य के सभी गुणों को समाहित करती है। कार्यों में एक नाम होता है, जो कि वे एलसीडी डिस्प्ले में कैसे दिखाई देंगे (और इसलिए 16 वर्णों तक सीमित हैं), आवृत्ति जिसके साथ उन्हें प्रदर्शन करने की आवश्यकता है, और उन्हें कब और किसके द्वारा अंतिम बार पूरा किया गया था।

संरचना कार्य {

चार कार्यनाम [16]; // इस कार्य के लिए संक्षिप्त, "दोस्ताना" नाम जैसा कि प्रदर्शन पर दिखाई देगा int repeatEachXDays; // नियमितता, दिनों में, जिसके साथ यह कार्य दोहराया जाता है। १=दैनिक, ७=साप्ताहिक आदि। अहस्ताक्षरित लंबे समय तक अंतिम पूर्ण समय; // टाइमस्टैम्प जिस पर यह कार्य अंतिम बार पूरा किया गया था int lastCompletedBy; // उस व्यक्ति की आईडी जिसने इस कार्य को अंतिम बार पूरा किया था};

मुख्य डेटा संरचना को "टास्कलिस्ट" कहा जाता है, जो कि अलग-अलग कार्यों की एक सरणी है। आप यहां जो भी कार्य चाहते हैं, उन्हें परिभाषित कर सकते हैं, जो उस समय के लिए 0 के मान के साथ प्रारंभ किए गए हैं, जिस पर वे अंतिम बार पूर्ण हुए थे, और -1 उस उपयोगकर्ता की आईडी के लिए जिसने उन्हें अंतिम बार निष्पादित किया था।

कार्य कार्यसूची [संख्या कार्य] = {

{ "साफ कार", 7, 0, -1}, { "चादरें बदलें", 14, 0, -1}, { "लॉन घास काटना", 7, 0, -1}, { "हूवर", 3, 0, -1}, { "वॉक डॉग", 1, 0, -1}, { "साफ बेडरूम", 7, 0, -1}, { "पानी के पौधे", 2, 0, -1}, { "ऊपर की ओर" शौचालय", 7, 0, -1}, { "डी/सीढ़ी शौचालय", 7, 0, -1}, { "हूवर", 3, 0, -1}, { "साफ स्नान", 7, 0, -1},};

कोड के शीर्ष पर स्थिरांक अनुभाग में, "eepromSignature" नामक एक एकल बाइट मान होता है। इस मान का उपयोग यह निर्धारित करने के लिए किया जाता है कि क्या EEPROM पर संग्रहीत डेटा मान्य है। यदि आप कार्यों को जोड़कर या हटाकर, या अतिरिक्त फ़ील्ड जोड़कर कार्यसूची आइटम की संरचना बदलते हैं, तो कहें, आपको इस मान को बढ़ाना चाहिए। आप इसे डेटा के लिए एक मूल संस्करण क्रमांकन प्रणाली की तरह सोच सकते हैं।

कॉन्स्ट बाइट eepromSignature = 1;

स्टार्टअप पर, प्रोग्राम केवल EEPROM में संग्रहीत डेटा को लोड करने का प्रयास करेगा यदि यह कोड में परिभाषित डेटा के हस्ताक्षर से मेल खाता है।

शून्य पुनर्स्थापनाफ्रॉमईईपीरोम () {

int checkByte = EEPROM.read(0); if(checkByte == eepromSignature) { EEPROM.get(1, taskList); } }

LCD डिस्प्ले और RTC मॉड्यूल Arduino के साथ संचार करने के लिए I2C इंटरफ़ेस का उपयोग करते हैं। इसके लिए प्रत्येक डिवाइस का एक विशिष्ट I2C पता होना आवश्यक है। मैंने अलग-अलग 16x2 डिस्प्ले बोर्ड की कोशिश की है, और कुछ 0x27 पते का उपयोग करते हैं, जबकि अन्य समान रूप से समान बोर्ड 0x3f का उपयोग करते हैं। यदि आप पाते हैं कि आपका प्रदर्शन केवल वर्गों की एक श्रृंखला दिखाता है और कोई पाठ नहीं है, तो यहां कोड में परिभाषित पता मान को बदलने का प्रयास करें:

लिक्विड क्रिस्टल_पीसीएफ8574 एलसीडी (0x27);

जब एक RFID टैग का पता चलता है, तो कोड 4-बाइट पहचानकर्ता को पढ़ता है, और इसका उपयोग ज्ञात उपयोगकर्ताओं की तालिका से संबंधित उपयोगकर्ता को देखने का प्रयास करने के लिए करता है। यदि टैग पहचाना नहीं गया है, तो 4 बाइट पहचानकर्ता को सीरियल मॉनिटर कंसोल पर भेजा जाएगा:

int GetUserFromRFIDTag (बाइट आरएफआईडी ) {

for(int i=0; i<numusers; {<numUsers; i++) { if(memcmp(userList.rfidUID, RFID, sizeof userList.rfidUID) == 0) { वापसी उपयोगकर्ता सूची .userID; } } सीरियल.प्रिंट (एफ ("अज्ञात आरएफआईडी कार्ड का पता चला:")); for(बाइट i=0; i<4; i++) { Serial.print(RFID<0x10 ? "0": ""); सीरियल.प्रिंट (आरएफआईडी , हेक्स); } वापसी -1; }

किसी उपयोगकर्ता को टैग असाइन करने के लिए, आपको प्रदर्शित आईडी की प्रतिलिपि बनानी चाहिए और संबंधित उपयोगकर्ता के बगल में कोड के शीर्ष पर उपयोगकर्ता सरणी में 4-बाइट मान डालना चाहिए:

उपयोगकर्ता उपयोगकर्ता सूची [संख्या उपयोगकर्ता] = { { 1, "गिन्नी", {0x00, 0x00, 0x00, 0x00}}, { 2, "हैरी", {0x12, 0x34, 0x56, 0x78}}, { 3, "रॉन", {0xE8, 0x06, 0xC2, 0x49}}, { 4, "हर्मियोन", {0x12, 0x34, 0x56, 0x78}}, { 5, "एलिस्टेयर", {0x12, 0x34, 0x56, 0x78}}, };

चरण 5: उपयोग

प्रयोग
प्रयोग
प्रयोग
प्रयोग

यदि आपने इसे अभी तक बनाया है, तो सिस्टम का उपयोग कोड से काफी हद तक निहित होना चाहिए; उपयोगकर्ता किसी भी समय उपलब्ध कार्यों की सूची में स्क्रॉल करने के लिए रोटरी नॉब को घुमा सकते हैं। जो काम अतिदेय हैं, उनके शीर्षक के बाद एक तारांकन चिह्न के साथ चिह्नित किया जाता है।

कार्य को पूरा करने के लिए एक कार्य का चयन करने के बाद, उपयोगकर्ता कार्य को पूर्ण के रूप में चिह्नित करने के लिए अपने स्वयं के अनूठे RFID फ़ॉब को पूरे रीडर में स्कैन कर सकते हैं। उनकी आईडी और वर्तमान समय को Arduino के EEPROM में रिकॉर्ड और सहेजा जाएगा।

पहले सही RFID टैग सेट करने के लिए, आपको स्केच को Arduino सीरियल मॉनिटर के साथ संलग्न करना चाहिए। प्रत्येक टैग को स्कैन करें और सीरियल मॉनीटर पर प्रदर्शित 4-बाइट हेक्स यूआईडी मान पर ध्यान दें। फिर इस टैग आईडी को उपयुक्त उपयोगकर्ता को असाइन करने के लिए कोड के शीर्ष पर घोषित उपयोगकर्ता सूची को संशोधित करें।

मैंने प्रत्येक सप्ताह उचित पॉकेट मनी इनाम आवंटित करने के लिए, पिछले सप्ताह के दौरान उपयोगकर्ता द्वारा पूर्ण किए गए सभी कार्यों को दिखाते हुए एक रिपोर्ट मुद्रित करने के लिए कार्यक्षमता जोड़ने पर विचार किया। हालाँकि, जैसा कि होता है, मेरे बच्चे इस प्रणाली का उपयोग करने की नवीनता से संतुष्ट प्रतीत होते हैं कि पॉकेट मनी पुरस्कारों के बारे में पूरी तरह से भूल गए हैं! हालांकि यह काफी सरल जोड़ होगा, और पाठक के लिए एक अभ्यास के रूप में छोड़ दिया गया है:)

सिफारिश की: