সুচিপত্র:

টয়ল টাস্ক ট্র্যাকার: 3 টি ধাপ (ছবি সহ)
টয়ল টাস্ক ট্র্যাকার: 3 টি ধাপ (ছবি সহ)

ভিডিও: টয়ল টাস্ক ট্র্যাকার: 3 টি ধাপ (ছবি সহ)

ভিডিও: টয়ল টাস্ক ট্র্যাকার: 3 টি ধাপ (ছবি সহ)
ভিডিও: Darkest Hour (2017) - Blood, Toil, Tears and Sweat Scene (1/10) | Movieclips 2024, নভেম্বর
Anonim
Image
Image
টয়ল টাস্ক ট্র্যাকার
টয়ল টাস্ক ট্র্যাকার
টয়ল টাস্ক ট্র্যাকার
টয়ল টাস্ক ট্র্যাকার

আপনি যখন কাজ করার পরিকল্পনা করছেন বা খারাপ করার কথা ভাবছেন তখন আপনি এটিকে ঘৃণা করবেন না, কাজের সেশনের মাঝামাঝি সময়ে এবং আপনার ফোনে একটি বিজ্ঞপ্তি আসে-কয়েক ঘন্টা পরে একটি "দ্রুত চেক" হয়ে যায়। এছাড়াও, আপনি কি জানেন যে আপনি প্রতি সপ্তাহে কাজের জন্য বরাদ্দ করা সময়ের সাথে সম্পর্কিত নির্দিষ্ট কাজগুলিতে কতটা সময় কাজ করেন?

TOYL টাস্ক ট্র্যাকার লিখুন। এটি আপনাকে আপনার ফোন বন্ধ করতে এবং কাজের দিকে মনোনিবেশ করতে সক্ষম করে, একই সাথে আপনাকে প্রতি সপ্তাহে আপনি যে পরিমাণ কাজ করতে চান তা সেট করতে সক্ষম করে-60 ঘন্টা বলুন-এবং যে কাজগুলি আপনি করতে চান। যখন আপনি একটি অধিবেশন বসেন, তখন আপনি আপনার সামগ্রিক কাজের জন্য কতটা সময় রেখেছেন তার একটি ধারণা পান। ট্র্যাকারের দুটি মোড রয়েছে: টাইমার, যেখানে আপনি প্রতি টাস্ক প্রতি সপ্তাহে কতটা সময় ব্যয় করতে চান তা প্রিসেট করেছেন এবং স্টপওয়াচ, যেখানে আপনি একটি টাস্ক নির্বাচন করার পর টাইমারটি স্টার্ট-স্টপ করতে পারেন।

সরবরাহ

সার্কিট

  • Adafruit পালক Huzzah
  • Adafruit FeatherWing
  • পুরুষ হেডার পিন
  • মহিলা হেডার পিন
  • 500mAh ব্যাটারি
  • 100K ওহম প্রতিরোধক x2
  • অন্তরণ টেপ
  • তন্তুবিশিষ্ট তারের
  • তারের স্ট্রিপার
  • ঝাল ফ্যান

কেসিং

  • অস্বচ্ছ এক্রাইলিক শীট 24 "x18"
  • ডবল পার্শ্বযুক্ত টেপ
  • লেজার কাটারে প্রবেশ
  • ভেক্টর সফটওয়্যার

ধাপ 1: আপনার সার্কিট সোল্ডার

আপনার সার্কিট সোল্ডার
আপনার সার্কিট সোল্ডার
আপনার সার্কিট সোল্ডার
আপনার সার্কিট সোল্ডার
আপনার সার্কিট সোল্ডার
আপনার সার্কিট সোল্ডার

ফেডার হুজাহাতে মহিলা হেডার পিনগুলি বিক্রি করুন। এই টিউটোরিয়ালটি ফেদার হুজাহ হার্ডওয়্যার সেটআপের জন্য দরকারী। তারপরে, পুরুষ হেডার পিনগুলি ফেদারউইং -এ সোল্ডার করুন। এই পদ্ধতিতে তাদের বিক্রি করা আপনাকে প্রয়োজনে ফেদার উইজকে ফেদার হুজাহ থেকে যোগ দিতে এবং আলাদা করতে দেয়। এটি বিশেষভাবে সুবিধাজনক যখন আপনার FeatherWing এ প্রতিরোধক যোগ করার প্রয়োজন হয়, যা পরবর্তী ধাপ। প্রতিটি পিন 0 এবং 2 থেকে 100K ওহম প্রতিরোধক সংযুক্ত করুন, 3V এর সাথে সংযুক্ত।

আপনার পালক Huzzah হার্ডওয়্যার সেটআপ করুন

আপনার ফেদার উইং হার্ডওয়্যার সেটআপ করুন

ধাপ 2: আপনার কোড যোগ করুন

আপনার কোড যোগ করুন
আপনার কোড যোগ করুন
আপনার কোড যোগ করুন
আপনার কোড যোগ করুন

এই কোডটি পাঠ 5 ইন্টারনেট অফ থিংস কোডের একটি অভিযোজন, টাইম পারমিটিং, আমি Preceptitaton পরিষেবাটি প্রতিস্থাপন করতে চাই যেটি ToDosit IFTTT অ্যাপলেটের মাধ্যমে যোগ করা কাজগুলি ট্র্যাক করে। এই মুহুর্তে আপনাকে কাজের একটি সেট ম্যানুয়ালি ইনপুট করতে হবে এবং সেগুলির মধ্য দিয়ে চক্রের জন্য বোতাম A ব্যবহার করতে হবে। উপরন্তু, আমি কয়েক মিনিটের মধ্যে টাইমার কোড করতে এবং পরবর্তী টাস্কে স্যুইচ করার সময় থামতে পছন্দ করতাম। বেকি স্টার্নকে টাইমারের জন্য বেস কোড তৈরির জন্য এবং কাজের মাধ্যমে সাইকেল চালানোর জন্য আপনাকে অসংখ্য ধন্যবাদ। আপনি যদি প্রকল্পটিকে ইন্টারনেটের সাথে সংযুক্ত করতে আগ্রহী হন, তাহলে আমি এই ক্লাসের মধ্য দিয়ে যাওয়ার সুপারিশ করব।

// ইন্সট্রাকটেবল ইন্টারনেট অব থিংস ক্লাস নমুনা কোড // সার্কিট ইন্টারনেট ডেটা প্রদর্শন করে // আবহাওয়ার তথ্য ফিডে সংগ্রহ করা হয় // একাধিক নিওপিক্সেল আবহাওয়ার অবস্থা কল্পনা করে // // বেকি স্টার্ন 2017 দ্বারা সংশোধিত // এডাফ্রুট আইও সাবস্ক্রিপশন উদাহরণের উপর ভিত্তি করে

// অ্যাডাফ্রুট এই ওপেন সোর্স কোড প্রদান করে সময় এবং সম্পদ বিনিয়োগ করে।

// Adafruit থেকে // পণ্য ক্রয় করে Adafruit এবং ওপেন সোর্স হার্ডওয়্যার সমর্থন করুন! // // অ্যাডাফ্রুট ইন্ডাস্ট্রিজের জন্য টড ট্রিসের লেখা // কপিরাইট (গ) 2016 অ্যাডাফ্রুট ইন্ডাস্ট্রিজ // এমআইটি লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত। // // উপরের সমস্ত পাঠ্য অবশ্যই কোন পুনর্বণ্টনে অন্তর্ভুক্ত করা আবশ্যক।

/************************ Adafruit IO কনফিগারেশন ********************** *********

/ io.adafruit.com ভিজিট করুন যদি আপনার অ্যাকাউন্ট তৈরি করতে হয়, // অথবা আপনার Adafruit IO কী প্রয়োজন হলে। #Define IO_USERNAME "YourUsernameHere" #Define IO_KEY "YourIOKeyHere"

/******************************* ওয়াইফাই কনফিগারেশন **************** ************************

#WIFI_SSID "WifiName" নির্ধারণ করুন

#WIFI_PASS "WifiPassword" নির্ধারণ করুন

#অন্তর্ভুক্ত করুন "AdafruitIO_WiFi.h"

AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);

/************************ প্রধান প্রোগ্রাম এখানে শুরু হয় ********************* **********/

#অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত

#OLED_RESET নির্ধারণ করুন 3

Adafruit_SSD1306 ডিসপ্লে (128, 32, & Wire, OLED_RESET);

// এই ধ্রুবক পরিবর্তন হবে না:

const int buttonPinA = 0; // পিনগুলি যা পুশবটনগুলি কনস্ট int বাটনের সাথে সংযুক্ত থাকে পিনবি = 16; // এই একটি ইতিমধ্যে একটি pullup প্রতিরোধক আছে, অন্য দুটি প্রয়োজন একটি const int buttonPinC = 2;

// পরিবর্তনশীল পরিবর্তন হবে:

int buttonAPushCounter = 0; // বোতামের সংখ্যার জন্য কাউন্টার int buttonAState = 0 টিপুন; // বাটনের বর্তমান অবস্থা int lastButtonAState = 0; // বোতামের আগের অবস্থা

// পরিবর্তনশীল পরিবর্তন হবে:

int buttonBPushCounter = 0; // বোতামের সংখ্যার জন্য কাউন্টার int buttonBState = 0 টিপুন; // বাটনের বর্তমান অবস্থা int lastButtonBState = 0; // বোতামের আগের অবস্থা

// পরিবর্তনশীল পরিবর্তন হবে:

int buttonCPushCounter = 0; // বোতাম সংখ্যার জন্য কাউন্টার int buttonCState = 0 টিপুন; // বাটনের বর্তমান অবস্থা int lastButtonCState = 0; // বোতামের আগের অবস্থা

স্ট্রিং displayForecast = "অজানা";

int টাইমারভাল = 0;

স্বাক্ষরবিহীন দীর্ঘ lastStartTime = 0; bool timerEnabled = 0;

AdafruitIO_Feed *বৃষ্টিপাত = io.feed ("বৃষ্টিপাত"); // 'বৃষ্টিপাত' ফিড সেট আপ করুন

// AdafruitIO_Feed *taskmanager = io.feed ("taskmanager"); // 'টাস্কম্যানেজার' ফিড সেট আপ করুন

অকার্যকর সেটআপ() {

pinMode (buttonPinA, INPUT); pinMode (buttonPinB, INPUT_PULLUP); pinMode (buttonPinC, INPUT);

// SSD1306_SWITCHCAPVCC = অভ্যন্তরীণভাবে 3.3V থেকে ডিসপ্লে ভোল্টেজ তৈরি করুন

display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // 128x32 এর জন্য 0x3C ঠিকানা

// পর্দায় প্রাথমিক প্রদর্শন বাফারের বিষয়বস্তু দেখান -

// লাইব্রেরি এটি একটি অ্যাডাফ্রুট স্প্ল্যাশ স্ক্রিন দিয়ে শুরু করে। display.display (); বিলম্ব (2000); // 2 সেকেন্ডের জন্য বিরতি দিন

// বাফার সাফ করুন।

display.clearDisplay ();

// সিরিয়াল সংযোগ শুরু করুন

Serial.begin (115200);

// io.adafruit.com এর সাথে সংযোগ করুন

Serial.print ("Adafruit IO এর সাথে সংযোগ স্থাপন"); io.connect (); // 'বৃষ্টিপাত' ফিডের জন্য একটি বার্তা হ্যান্ডলার সেট আপ করুন। // হ্যান্ডেল মেসেজ ফাংশন (নীচে সংজ্ঞায়িত) // যখনই একটি বার্তা // adafruit io থেকে প্রাপ্ত হবে তাকে বলা হবে। বৃষ্টিপাত-> onMessage (handleMessage);

// একটি সংযোগের জন্য অপেক্ষা করুন

while (io.status () <AIO_CONNECTED) {Serial.print ("।"); বিলম্ব (500); }

// আমরা সংযুক্ত

Serial.println (); Serial.println (io.statusText ());

}

অকার্যকর লুপ () {

// io.run (); সব স্কেচের জন্য প্রয়োজন।

// এটি সর্বদা আপনার লুপ // ফাংশনের শীর্ষে উপস্থিত থাকা উচিত। এটি ক্লায়েন্টকে // io.adafruit.com এর সাথে সংযুক্ত রাখে এবং যেকোনো ইনকামিং ডেটা প্রসেস করে। io.run ();

// pushbutton ইনপুট পিন পড়ুন:

buttonAState = digitalRead (buttonPinA); buttonBState = digitalRead (buttonPinB); buttonCState = digitalRead (buttonPinC);

// বাটন স্টেটকে তার আগের অবস্থায় তুলনা করুন

যদি (buttonAState! = lastButtonAState || buttonBState! = lastButtonBState || buttonCState! = lastButtonCState) {// যদি রাজ্য পরিবর্তিত হয়, তাহলে কাউন্টার বাড়ান বোতাম চাপানো হয়েছিল APushCounter ++; সিরিয়াল.প্রিন্ট ("A বোতাম পুশ করার সংখ্যা:"); Serial.println (buttonAPushCounter); } if (buttonBState == LOW) {// যদি বর্তমান অবস্থা LOW হয় তাহলে বাটনটি চাপলে buttonBPushCounter ++; Serial.print ("B বাটন পুশ করার সংখ্যা:"); Serial.println (buttonBPushCounter); Serial.println ("টাইমার শুরু হচ্ছে"); timerEnabled = 1; lastStartTime = মিলিস (); } if (buttonCState == LOW) {// যদি বর্তমান অবস্থা LOW হয় তাহলে বাটনটি চাপলে buttonCPushCounter ++; সিরিয়াল.প্রিন্ট ("সি বোতাম ধাক্কা সংখ্যা:"); Serial.println (buttonCPushCounter); Serial.println ("স্টপিং টাইমার"); timerEnabled = 0; }} যদি (timerEnabled == 1) {// টাইমার বাড়ানো হয় তখনই যখন টাইমারভাল = (মিলিস () - lastStartTime)/1000; }

// প্রদর্শন অবস্থান 1 - পূর্বাভাস

// যদি (buttonAPushCounter % 3 == 0) {// display.clearDisplay (); // display.setTextSize (1); // display.setTextColor (সাদা); // display.setCursor (0, 0); // display.print ("পূর্বাভাস:"); // display.println (displayForecast); // display.setCursor (0, 16); // display.println ("দ্বিতীয় লাইন"); // display.println ("উদাহরণ সামগ্রী"); // display.display (); // // বিলম্ব (2000); //}

// ডিসপ্লে পজিশন 1 - টাস্ক 1

যদি (buttonAPushCounter % 3 == 0) {display.setTextSize (1); display.setTextColor (সাদা); display.clearDisplay (); display.setCursor (0, 0); display.println ("গবেষণা - সাক্ষাৎকার"); display.println (); display.print ("টাইমার:"); display.println (টাইমারভ্যাল); display.display (); }

// প্রদর্শন অবস্থান 2 - টাস্ক 2

যদি (buttonAPushCounter % 3 == 1) {display.clearDisplay (); display.setCursor (0, 0); display.println ("মেকিং স্টুডিও - কোড"); display.println (); display.print ("টাইমার:"); display.println (টাইমারভাল); display.display (); }

// প্রদর্শন অবস্থান 3 - টাস্ক 3

যদি (buttonAPushCounter % 3 == 2) {display.clearDisplay (); display.setCursor (0, 0); display.println ("DSV - Sketching"); display.println (); display.print ("টাইমার:"); display.println (টাইমারভ্যাল); display.display (); }

// বর্তমান অবস্থাটিকে শেষ অবস্থা হিসাবে সংরক্ষণ করুন, // পরবর্তী সময়ের জন্য লুপের মাধ্যমে lastButtonAState = buttonAState; lastButtonBState = buttonBState; lastButtonCState = buttonCState;

}

// এই ফাংশনটি যখনই একটি বার্তা বলা হয়

// অ্যাডাফ্রুট আইও থেকে প্রাপ্ত। এটি উপরের সেটআপ () ফাংশনে ফিডের সাথে সংযুক্ত ছিল। void handleMessage (AdafruitIO_Data *data) {

স্ট্রিং পূর্বাভাস = data-> toString (); // একটি স্ট্রিং এ আগত আবহাওয়ার তথ্য সংরক্ষণ করুন

Serial.print ("প্রাপ্ত <-"); Serial.println (পূর্বাভাস); displayForecast = পূর্বাভাস; // নিম্নোক্ত স্ট্রিংগুলি আমি এখন পর্যন্ত আবিষ্কার করা বিভিন্ন IFTTT আবহাওয়া রিপোর্ট শব্দ সংরক্ষণ করি String task1 = String ("Task 1"); স্ট্রিং বৃষ্টি = স্ট্রিং ("বৃষ্টি"); স্ট্রিং লাইট্রেন = স্ট্রিং ("হালকা বৃষ্টি"); স্ট্রিং রেইন শাওয়ার = স্ট্রিং ("রেইন শাওয়ার"); স্ট্রিং AMshowers = স্ট্রিং ("AM Showers"); স্ট্রিং rainandsnow = স্ট্রিং ("বৃষ্টি এবং তুষার"); স্ট্রিং বরফ = স্ট্রিং ("তুষার"); স্ট্রিং স্নো শাওয়ার = স্ট্রিং ("স্নো শাওয়ার"); স্ট্রিং মেঘলা = স্ট্রিং ("মেঘলা"); স্ট্রিং mostcloudy = স্ট্রিং ("বেশিরভাগ মেঘলা"); স্ট্রিং partlycloudy = স্ট্রিং ("আংশিক মেঘলা"); স্ট্রিং ক্লিয়ারস্কি = স্ট্রিং ("ক্লিয়ার"); স্ট্রিং ফেয়ার = স্ট্রিং ("ফেয়ার"); স্ট্রিং সানি = স্ট্রিং ("সানি");

// এইগুলি যদি বিবৃতিগুলি আগত আবহাওয়ার পরিবর্তনশীল সঞ্চিত অবস্থার সাথে তুলনা করে এবং সেই অনুযায়ী নিওপিক্সেলগুলি নিয়ন্ত্রণ করে।

// যদি পূর্বাভাসে বৃষ্টি হয় যদি (forecast.equalsIgnoreCase (বৃষ্টি) || forecast.equalsIgnoreCase (lightrain) || forecast.equalsIgnoreCase (rainshower) || forecast.equalsIgnoreCase (AMshowers)) {Serial.println ("বৃষ্টিপাত আজকের পূর্বাভাস ");

}

// যদি পূর্বাভাসে তুষারপাত হয় যদি (পূর্বাভাস।

}

// যদি পূর্বাভাসে সূর্য থাকে যদি (পূর্বাভাস।

}

// যদি পূর্বাভাসে মেঘ থাকে যদি (পূর্বাভাস।

}

}

ধাপ 3: কন্টেইনার / শেল তৈরি করুন

কনটেইনার / শেল তৈরি করুন
কনটেইনার / শেল তৈরি করুন
কনটেইনার / শেল তৈরি করুন
কনটেইনার / শেল তৈরি করুন
কনটেইনার / শেল তৈরি করুন
কনটেইনার / শেল তৈরি করুন
কনটেইনার / শেল তৈরি করুন
কনটেইনার / শেল তৈরি করুন

শেলের জন্য, আপনার ফ্রেমটি কোন আকারের হতে চান তা নির্ধারণ করে শুরু করুন, অথবা আপনি আমার ফাইলটি ডাউনলোড করতে পারেন। একবার আপনি আকার নির্ধারণ করলে আপনি ভেক্টর ফাইলের জন্য লেআউট তৈরি করতে MakerCase ব্যবহার করতে পারেন।

লেজার কাটারের মাধ্যমে ফাইলটি চালান - এটি প্রায় 5 মিনিট সময় নিতে হবে। তারপরে খোসাটি একসাথে রাখুন।

আমি উপাদানগুলির প্রস্থের জন্য হিসাব করিনি যা আমার বোতামগুলি পৌঁছানো কঠিন করে তোলে। আমি এখনও তাদের সংযুক্ত করার একটি উপায় খুঁজে বের করতে হবে। এগুলি খুব ছোট যা তাদের সাথে কাজ করা কঠিন করে তোলে।

প্রস্তাবিত: