সুচিপত্র:

টাস্ক ম্যানেজার - একটি গৃহস্থালি কাজ ব্যবস্থাপনা সিস্টেম: 5 টি ধাপ (ছবি সহ)
টাস্ক ম্যানেজার - একটি গৃহস্থালি কাজ ব্যবস্থাপনা সিস্টেম: 5 টি ধাপ (ছবি সহ)

ভিডিও: টাস্ক ম্যানেজার - একটি গৃহস্থালি কাজ ব্যবস্থাপনা সিস্টেম: 5 টি ধাপ (ছবি সহ)

ভিডিও: টাস্ক ম্যানেজার - একটি গৃহস্থালি কাজ ব্যবস্থাপনা সিস্টেম: 5 টি ধাপ (ছবি সহ)
ভিডিও: কিভাবে উইন্ডোজ দিতে হয় | Windows 10 Setup process Step By Step | How To Install Windows 10 2024, নভেম্বর
Anonim
টাস্ক ম্যানেজার - একটি গৃহস্থালি কাজ ব্যবস্থাপনা সিস্টেম
টাস্ক ম্যানেজার - একটি গৃহস্থালি কাজ ব্যবস্থাপনা সিস্টেম
টাস্ক ম্যানেজার - একটি গৃহস্থালি কাজ ব্যবস্থাপনা সিস্টেম
টাস্ক ম্যানেজার - একটি গৃহস্থালি কাজ ব্যবস্থাপনা সিস্টেম

আমি আমাদের পরিবারের (এবং, আমি কল্পনা করি, অন্যান্য অনেক পাঠকের) সম্মুখীন একটি বাস্তব সমস্যা মোকাবেলার চেষ্টা করতে চেয়েছিলাম, যা কিভাবে আমার বাচ্চাদের বাড়ির কাজে সাহায্য করার জন্য বরাদ্দ, অনুপ্রাণিত এবং পুরস্কৃত করা যায়।

এখন পর্যন্ত, আমরা ফ্রিজের পাশে আটকে থাকা A4 কাগজের একটি স্তরিত শীট রেখেছি। এটিতে মুদ্রিত কাজের একটি গ্রিড রয়েছে, যার সাথে সংশ্লিষ্ট পরিমাণ পকেট মানি রয়েছে যা সেই কাজটি সম্পন্ন করার জন্য উপার্জন করা যেতে পারে। ধারণাটি হল যে যখনই আমাদের বাচ্চাদের মধ্যে একটি কাজ করতে সাহায্য করে, তারা সেই বাক্সে একটি টিক পায় এবং প্রতি সপ্তাহের শেষে, আমরা উপার্জিত অর্থ যোগ করি, বোর্ড মুছি এবং আবার শুরু করি। যাইহোক, কাজের তালিকা পুরানো এবং পরিবর্তন করা কঠিন, আমরা কখনও কখনও প্রতি সপ্তাহে বোর্ড পরিষ্কার করার কথা মনে করি না, এবং কিছু কাজ বিভিন্ন ফ্রিকোয়েন্সি দিয়ে সম্পাদন করা প্রয়োজন-কিছু আদর্শভাবে দৈনিক করা হবে, যেখানে অন্যরা মাসে একবার হতে পারে। সুতরাং, আমি এই সমস্যাগুলি সমাধান করার জন্য একটি Arduino- ভিত্তিক ডিভাইস তৈরি করার বিষয়ে সেট করেছি - আমার উদ্দেশ্য ছিল এমন কিছু তৈরি করা যা কাজগুলিকে সহজভাবে যোগ/অপসারণ/আপডেট করার অনুমতি দেয়, একটি কাজ সম্পন্ন করার সময় রেকর্ড করার জন্য একটি সুশৃঙ্খল প্রক্রিয়া এবং ক্রেডিট বরাদ্দ করা উপযুক্ত ব্যক্তি, এবং বিভিন্ন সময়সূচী এবং ফ্রিকোয়েন্সি ট্র্যাক রাখার একটি উপায় যার সাহায্যে বিভিন্ন কাজ সম্পাদন করা প্রয়োজন এবং অতিরিক্ত কাজগুলি হাইলাইট করুন। এবং এই নির্দেশযোগ্য দেখাবে কিভাবে "টাস্ক ম্যানেজার" ডিভাইসটি বেরিয়ে এসেছে।

ধাপ 1: হার্ডওয়্যার

হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার

প্রকল্পটি বেশ কয়েকটি ব্যবহৃত এবং নথিভুক্ত হার্ডওয়্যার উপাদান ব্যবহার করে:

  • আরডুইনো ইউএনও/ন্যানো - এটি সিস্টেমের "মস্তিষ্ক"। অনবোর্ড EEPROM মেমরি সিস্টেমের চালিত অবস্থায়ও কাজের অবস্থা বাঁচাতে ব্যবহার করা হবে। ওয়্যারিং সহজ করার জন্য, আমি একটি স্ক্রুশিল্ডে ন্যানো মাউন্ট করেছি, কিন্তু আপনি যদি পছন্দ করেন তবে আপনি জিপিআইও পিনের সাথে স্লিপড সংযোগ ব্যবহার করতে পারেন।
  • রিয়েল -টাইম ক্লক (আরটিসি) মডিউল - টাইমস্ট্যাম্পটি রেকর্ড করার জন্য ব্যবহৃত হয় যেখানে কাজগুলি সম্পাদিত হয়েছিল এবং শেষ সময়কে বর্তমান সময়ের সাথে তুলনা করে নির্ধারণ করুন যে কোন কাজগুলি বিলম্বিত। মনে রাখবেন যে ইউনিটটি আমি পেয়েছি তা রিচার্জেবল লিপো ব্যাটারি (LIR2032) ব্যবহার করার জন্য ডিজাইন করা হয়েছিল। যাইহোক, আমি একটি নন-রিচার্জেবল CR2032 ব্যাটারি ব্যবহার করছি, তাই চার্জিং সার্কিট নিষ্ক্রিয় করার জন্য আমার কিছু পরিবর্তন করা দরকার)। বিশেষ করে, আমি প্রতিরোধক R4, R5, এবং R6 সরিয়েছি এবং ডায়োড D1 চিহ্নিত করেছি। আমি তারপর R6 ছিল যেখানে সংক্ষিপ্ত একটি ঝাল ব্রিজ তৈরি। এই পরিবর্তনগুলি নীচের ছবিতে সচিত্র।
  • ISO14443 RFID রিডার + ব্যবহারকারীর প্রতি একটি ট্যাগ- সিস্টেমটিকে "গ্যামিফাইং" করার একটি উপায় হিসাবে, আমার প্রতিটি সন্তানের নিজস্ব অনন্য RFID ট্যাগ রয়েছে। একটি টাস্ক নির্বাচন করা এবং তারপরে পাঠক জুড়ে তাদের ট্যাগ সোয়াইপ করা একটি টাস্ককে সম্পূর্ণ হিসেবে চিহ্নিত করার জন্য ব্যবহৃত প্রক্রিয়া হবে
  • 16x2 এলসিডি ডিসপ্লে - সিস্টেমে ইউজার ইন্টারফেস দিতে ব্যবহৃত। একটি অবিচ্ছেদ্য PCF8574A ব্যাকপ্যাক আছে এমন একটি বোর্ড ব্যবহার করে, বোর্ডটি একটি I2C ইন্টারফেসের মাধ্যমে Arduino এর সাথে সংযুক্ত করা যেতে পারে, যা উল্লেখযোগ্যভাবে তারের সরলীকরণ করে।
  • রোটারি এনকোডার - প্রধান নিয়ন্ত্রণ গিঁট হবে যা ব্যবহারকারীরা বিভিন্ন উপলভ্য কাজগুলি বেছে নেবে
  • ওয়াগো সংযোগকারী - এই স্ন্যাপ -শাট সংযোগকারীগুলি উপাদানগুলিকে একত্রিত করার একটি সুবিধাজনক উপায় বা বিভিন্ন মডিউলগুলির জন্য সাধারণ বাসগুলি তৈরি করে যার প্রতিটিতে সাধারণ স্থল বা 5V সরবরাহ প্রয়োজন।

ধাপ 2: তারের

তারের
তারের

16x2 LCD ডিসপ্লে এবং DS1307 RTC উভয়ই একটি I2C ইন্টারফেস ব্যবহার করে, যা সুবিধাজনক কারণ এটি ওয়্যারিংকে অনেক সহজ করে তোলে, যার জন্য Adu (SDA) এবং A5 (SCL) পিনগুলিতে যাওয়ার জন্য কেবল একটি জোড়া প্রয়োজন।

MFRC-522 RFID রিডার একটি SPI ইন্টারফেস ব্যবহার করে, যা নির্দিষ্ট হার্ডওয়্যার পিন 11 (MOSI), 12 (MISO), এবং 13 (SCK) ব্যবহার করে। এটি একটি ক্রীতদাস নির্বাচন এবং রিসেট লাইন প্রয়োজন, যা আমি যথাক্রমে 10 এবং 9 পিন বরাদ্দ করেছি।

ঘূর্ণমান এনকোডারের জন্য এক জোড়া পিনের প্রয়োজন। অনুকূল পারফরম্যান্সের জন্য, যদি এই পিনগুলি বাহ্যিক বাধাগুলি পরিচালনা করতে পারে, তাহলে আমি ডিজিটাল পিন 2 এবং 3 ব্যবহার করছি। বর্তমানে কোড ব্যবহার করা হয়, আপনি অতিরিক্ত বৈশিষ্ট্য যোগ করার জন্য এটি দরকারী হতে পারে

সুবিধার জন্য, আমি WAGO 222-সিরিজের সংযোগকারী ব্লক ব্যবহার করছি। এইগুলি স্ন্যাপ-শাট সংযোগকারী যা 2 থেকে 8 টি তারের মধ্যে একসাথে সংযোগের একটি শক্তিশালী, সহজ উপায় প্রদান করে এবং Arduino প্রকল্পগুলির জন্য খুব সুবিধাজনক যা একটি স্থল বা 5V লাইন ভাগ করার জন্য বেশ কয়েকটি মডিউল প্রয়োজন, অথবা যেখানে আপনার একাধিক ডিভাইস রয়েছে একই I2C বা SPI বাস, বলুন।

ডায়াগ্রামটি দেখায় কিভাবে সবকিছু একসাথে তারযুক্ত হয়।

ধাপ 3: নির্মাণ

আমি ইলেকট্রনিক্স রাখার জন্য একটি খুব মৌলিক 3D মুদ্রিত কেস তৈরি করেছি। আমি পিছনে কিছু চুম্বক রেখেছিলাম যাতে ইউনিটটি ফ্রিজের পাশে সুরক্ষিত করা যায়, ঠিক যেমনটি আগের মুদ্রিত তালিকা ছিল। আমি ইউএসবি সকেটকে উন্মুক্ত করে রেখেছি, যেহেতু এটি ব্যবহার করা হবে যদি নতুন কাজগুলি সিস্টেমে যোগ করার প্রয়োজন হয়, অথবা লগ ইন করতে এবং সম্পূর্ণ কাজগুলি দেখানো ডেটার একটি সেট ডাউনলোড করতে ইত্যাদি।

আমি প্রিন্টিং এর পর STL ফাইল সেভ করিনি, কিন্তু জিনিসভিত্তিক ডট কম এ প্রচুর পরিমাণে (এবং, সম্ভবত ভাল!) কেস পাওয়া যায়। বিকল্পভাবে, আপনি একটি সুন্দর কাঠের বাক্স তৈরি করতে পারেন, অথবা ইলেকট্রনিক্স রাখার জন্য একটি পুরানো কার্ডবোর্ড বাক্স বা টুপারওয়্যার পাত্রে ব্যবহার করতে পারেন।

ধাপ 4: কোড

কোড
কোড

সম্পূর্ণরূপে মন্তব্য করা কোডটি নিচে ডাউনলোড হিসাবে সংযুক্ত করা হয়েছে। এখানে আরও কয়েকটি গুরুত্বপূর্ণ বিষয় লক্ষ্য করা দরকার:

আমি একটি কাস্টম স্ট্রাক্ট তৈরি করেছি, "টাস্ক", যা ডেটার একটি ইউনিট যা একটি একক সত্তার একটি টাস্কের সমস্ত বৈশিষ্ট্যগুলিকে ধারণ করে। টাস্কগুলি একটি নাম নিয়ে গঠিত, যা LCD ডিসপ্লেতে (এবং সেইজন্য 16 টি অক্ষরের মধ্যে সীমাবদ্ধ), যে ফ্রিকোয়েন্সি দিয়ে তাদের সঞ্চালন করতে হবে, এবং কখন এবং কার দ্বারা সেগুলি শেষ হয়েছিল তা হবে।

স্ট্রাক্ট টাস্ক {

char taskName [16]; // এই কাজের জন্য সংক্ষিপ্ত, "বন্ধুত্বপূর্ণ" নামটি প্রদর্শিত হবে যার মধ্যে int repeatEachXDays; // নিয়মিততা, দিনের মধ্যে, যার সাথে এই কাজটি পুনরাবৃত্তি হয়। 1 = দৈনিক, 7 = সাপ্তাহিক ইত্যাদি স্বাক্ষরবিহীন দীর্ঘ lastCompletedTime; // টাইমস্ট্যাম্প যেখানে এই টাস্ক শেষ শেষ হয়েছে int lastCompletedBy; // যে ব্যক্তি এই কাজটি শেষ করেছে তার আইডি};

মূল ডেটা স্ট্রাকচারকে "টাস্কলিস্ট" বলা হয়, যা কেবল আলাদা টাস্কের একটি অ্যারে। আপনি এখানে যে কাজগুলি চান তা সংজ্ঞায়িত করতে পারেন, যা শেষ করার সময় 0 এর মান দিয়ে আরম্ভ করা হয়, এবং -1 ব্যবহারকারীর আইডির জন্য যা শেষবার সম্পন্ন করেছিল।

টাস্কলিস্ট [numTasks] = {

কোডের শীর্ষে ধ্রুবক বিভাগে, "eepromSignature" নামে একটি একক বাইট মান রয়েছে। এই মানটি EEPROM- এ সংরক্ষিত ডেটা বৈধ কিনা তা নির্ধারণ করতে ব্যবহৃত হয়। আপনি যদি টাস্কলিস্ট আইটেমের কাঠামো পরিবর্তন করেন, টাস্ক যোগ বা অপসারণ করে, অথবা অতিরিক্ত ক্ষেত্র যুক্ত করে, বলুন, আপনার এই মান বাড়ানো উচিত। আপনি এটিকে ডেটার জন্য একটি মৌলিক সংস্করণ সংখ্যার পদ্ধতির মতো ভাবতে পারেন।

const বাইট eepromSignature = 1;

প্রারম্ভে, প্রোগ্রামটি শুধুমাত্র EEPROM এ সংরক্ষিত ডেটা লোড করার চেষ্টা করবে যদি এটি কোডে সংজ্ঞায়িত ডেটার স্বাক্ষরের সাথে মিলে যায়।

অকার্যকর পুনরুদ্ধার FromEEPROM () {

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

LCD ডিসপ্লে এবং RTC মডিউল Arduino এর সাথে যোগাযোগের জন্য একটি I2C ইন্টারফেস ব্যবহার করে। এর জন্য প্রতিটি ডিভাইসের একটি অনন্য I2C ঠিকানা থাকা প্রয়োজন। আমি কয়েকটি 16x2 ডিসপ্লে বোর্ড চেষ্টা করেছি, এবং কিছু 0x27 ঠিকানা ব্যবহার করে বলে মনে হচ্ছে, অন্য আপাতদৃষ্টিতে অভিন্ন বোর্ডগুলি 0x3f ব্যবহার করে। আপনি যদি দেখেন যে আপনার ডিসপ্লেতে কেবল স্কোয়ারের একটি সিরিজ দেখানো হয়েছে এবং কোন টেক্সট নেই, এখানে কোডে সংজ্ঞায়িত ঠিকানা মান পরিবর্তন করার চেষ্টা করুন:

LiquidCrystal_PCF8574 lcd (0x27);

যখন একটি RFID ট্যাগ সনাক্ত করা হয়, তখন কোডটি 4-বাইট শনাক্তকারী পড়ে এবং পরিচিত ব্যবহারকারীদের টেবিল থেকে সংশ্লিষ্ট ব্যবহারকারীর সন্ধান করার চেষ্টা করে। যদি ট্যাগটি স্বীকৃত না হয়, 4 বাইট সনাক্তকারী সিরিয়াল মনিটর কনসোলে পাঠানো হবে:

int GetUserFromRFIDTag (বাইট RFID ) {

জন্য (int i = 0; i <numusers; i ++) = "" {<numUsers; i ++) {যদি (memcmp (userList .rfidUID, RFID, sizeof userList .rfidUID) == 0) {return userList .userID; }} Serial.print (F ("অজানা RFID কার্ড সনাক্ত:")); জন্য (বাইট i = 0; i <4; i ++) {Serial.print (RFID <0x10? "0": ""); Serial.print (RFID , HEX); } ফেরত -1; }

একটি ব্যবহারকারীকে একটি ট্যাগ বরাদ্দ করার জন্য, আপনার প্রদর্শিত আইডিটি অনুলিপি করা উচিত এবং সংশ্লিষ্ট ব্যবহারকারীর পাশে কোডের শীর্ষে ব্যবহারকারীদের অ্যারেতে 4-বাইট মান সন্নিবেশ করান:

const user userList [numUsers] = {{1, "Ginny", {0x00, 0x00, 0x00, 0x00}}, {2, "Harry", {0x12, 0x34, 0x56, 0x78}}, {3, "Ron", {0xE8, 0x06, 0xC2, 0x49}}, {4, "Hermione", {0x12, 0x34, 0x56, 0x78}}, {5, "Alastair", {0x12, 0x34, 0x56, 0x78}},};

ধাপ 5: ব্যবহার

ব্যবহার
ব্যবহার
ব্যবহার
ব্যবহার

যদি আপনি এটিকে এতদূর তৈরি করে থাকেন, তাহলে সিস্টেমের ব্যবহার কোড থেকে মোটামুটি অন্তর্নিহিত হওয়া উচিত; যেকোনো সময়, ব্যবহারকারীরা ঘূর্ণমান গুঁতা চালু করতে পারেন উপলভ্য কাজের তালিকার মাধ্যমে স্ক্রল করতে। শিরোনামের পরে যে কাজগুলি অতিবাহিত হয় তা তারকা চিহ্ন দিয়ে চিহ্নিত করা হয়।

কাজটি সম্পন্ন করার জন্য, ব্যবহারকারীরা কাজটি সম্পূর্ণ হিসাবে চিহ্নিত করতে পাঠক জুড়ে তাদের নিজস্ব অনন্য RFID ফোব স্ক্যান করতে পারেন। তাদের আইডি এবং বর্তমান সময় রেকর্ড করা হবে এবং Arduino এর EEPROM এ সংরক্ষণ করা হবে।

প্রথমে সঠিক RFID ট্যাগ সেট আপ করার জন্য, আপনাকে Arduino সিরিয়াল মনিটর সংযুক্ত করে স্কেচ চালানো উচিত। প্রতিটি ট্যাগ স্ক্যান করুন এবং সিরিয়াল মনিটরে প্রদর্শিত 4-বাইট হেক্স ইউআইডি মান নোট করুন। তারপর উপযুক্ত ব্যবহারকারীকে এই ট্যাগ আইডি বরাদ্দ করার জন্য কোডের শীর্ষে ঘোষিত ব্যবহারকারী তালিকা পরিবর্তন করুন।

আমি প্রতি সপ্তাহে উপযুক্ত পকেট মানি পুরস্কার বরাদ্দ করার জন্য গত সপ্তাহে ব্যবহারকারীর দ্বারা সম্পন্ন করা সমস্ত কাজ দেখানো একটি প্রতিবেদন মুদ্রণ করার জন্য কার্যকারিতা যোগ করার কথা বিবেচনা করেছি। যাইহোক, এটি যেমন ঘটে, আমার বাচ্চারা পকেট মানির পুরষ্কারগুলি সম্পূর্ণভাবে ভুলে যাওয়ার জন্য সিস্টেমটি ব্যবহার করার অভিনবত্ব দেখে সন্তুষ্ট বলে মনে হয়! তবে এটি একটি মোটামুটি সহজ সংযোজন হবে, এবং পাঠকের জন্য একটি অনুশীলন হিসাবে রেখে দেওয়া হয়েছে:)

প্রস্তাবিত: