विषयसूची:

टॉयल टास्क ट्रैकर: 3 चरण (चित्रों के साथ)
टॉयल टास्क ट्रैकर: 3 चरण (चित्रों के साथ)

वीडियो: टॉयल टास्क ट्रैकर: 3 चरण (चित्रों के साथ)

वीडियो: टॉयल टास्क ट्रैकर: 3 चरण (चित्रों के साथ)
वीडियो: Peppa Pig in Hindi - Tren Mein Raat Bhar Sona - हिंदी Kahaniya - Hindi Cartoons for Kids 2024, जुलाई
Anonim
Image
Image
टॉयल टास्क ट्रैकर
टॉयल टास्क ट्रैकर
टॉयल टास्क ट्रैकर
टॉयल टास्क ट्रैकर

जब आप काम करने की योजना बना रहे हों या इससे भी बदतर, एक कार्य सत्र के बीच में हों और आपके फोन पर एक सूचना आती है-एक "त्वरित जांच" घंटों बाद हो जाती है, तो क्या आप इसे नफरत नहीं करते हैं। साथ ही, क्या आप जानते हैं कि आपने प्रति सप्ताह काम के लिए जो समय आवंटित किया है, उसके संबंध में आप कुछ कार्यों पर कितना समय देते हैं?

TOYL टास्क ट्रैकर दर्ज करें। यह आपको अपने फोन को स्विच ऑफ करने और काम पर ध्यान केंद्रित करने में सक्षम बनाता है, साथ ही साथ आपको प्रति सप्ताह काम करने की मात्रा को सेट करने में सक्षम बनाता है-जैसे कि 60 घंटे-और वे कार्य जिन्हें आप पूरा करना चाहते हैं। जब आप किसी सत्र के लिए बैठते हैं, तो आपको पता चलता है कि आपने अपने समग्र कार्य के लिए कितना समय छोड़ा है। ट्रैकर के दो तरीके हैं: टाइमर, जहां आपने पूर्व निर्धारित किया है कि आप प्रति सप्ताह प्रति कार्य कितना समय बिताना चाहते हैं, और स्टॉपवॉच, जहां आप कार्य का चयन करने के बाद टाइमर को बस स्टार्ट-स्टॉप कर सकते हैं।

आपूर्ति

सर्किट

  • एडफ्रूट पंख हुज़ाह
  • एडफ्रूट फेदर विंग
  • पुरुष हैडर पिन
  • महिला हैडर पिन
  • 500mAh बैटरी
  • 100K ओम रेसिस्टर्स x2
  • इन्सुलेशन टेप
  • फँसा हुआ तार
  • वायर स्ट्रिपर्स
  • सोल्डर फैन

झलार

  • अपारदर्शी एक्रिलिक शीट 24 "x18"
  • दो तरफा टेप
  • लेजर कटर तक पहुंच
  • वेक्टर सॉफ्टवेयर

चरण 1: सोल्डर योर सर्किट

सोल्डर योर सर्किट
सोल्डर योर सर्किट
सोल्डर योर सर्किट
सोल्डर योर सर्किट
सोल्डर योर सर्किट
सोल्डर योर सर्किट

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

अपना फेदर हुज़ाह हार्डवेयर सेटअप करें

अपना फेदर विंग हार्डवेयर सेटअप करें

चरण 2: अपना कोड जोड़ें

अपना कोड जोड़ें
अपना कोड जोड़ें
अपना कोड जोड़ें
अपना कोड जोड़ें

यह कोड पाठ 5 इंटरनेट ऑफ थिंग्स कोड का एक अनुकूलन है, समय की अनुमति है, मैं प्रीसेप्टिटन सेवा को एक के साथ बदलना चाहूंगा जो उन कार्यों को ट्रैक करता है जो ToDosit IFTTT एप्लेट के माध्यम से जोड़े जाते हैं। फिलहाल आपको कार्यों के एक सेट को मैन्युअल रूप से इनपुट करना होगा और उनके माध्यम से साइकिल चलाने के लिए बटन ए का उपयोग करना होगा। इसके अलावा, मैं टाइमर को मिनटों में गिनने और अगले कार्य पर स्विच करते समय रुकने के लिए कोडित करना पसंद करता। टाइमर के लिए बेस कोड बनाने और कार्यों के माध्यम से साइकिल चलाने के लिए बेकी स्टर्न को बहुत-बहुत धन्यवाद। यदि आप परियोजना को इंटरनेट से जोड़ने में रुचि रखते हैं, तो मैं अत्यधिक अनुशंसा करता हूं कि आप इस वर्ग की कक्षाओं को देखें।

// इंस्ट्रक्शंसेबल इंटरनेट ऑफ थिंग्स क्लास नमूना कोड // सर्किट इंटरनेट डेटा प्रदर्शित करता है // मौसम डेटा एक फ़ीड में एकत्र किया जाता है // मल्टीपल नियोपिक्सल मौसम की स्थिति की कल्पना करता है // // बेकी स्टर्न 2017 द्वारा संशोधित // एडफ्रूट आईओ सदस्यता उदाहरण के आधार पर

// Adafruit इस ओपन सोर्स कोड को प्रदान करने में समय और संसाधनों का निवेश करता है।

// कृपया एडफ्रूट से // उत्पादों को खरीदकर एडफ्रूट और ओपन सोर्स हार्डवेयर का समर्थन करें! // // एडफ्रूट इंडस्ट्रीज के लिए टॉड ट्रीस द्वारा लिखित // कॉपीराइट (सी) 2016 एडफ्रूट इंडस्ट्रीज // एमआईटी लाइसेंस के तहत लाइसेंस प्राप्त है। // // उपरोक्त सभी पाठों को किसी भी पुनर्वितरण में शामिल किया जाना चाहिए।

/********** एडफ्रूट आईओ कॉन्फ़िगरेशन ********* *********

/ अगर आपको खाता बनाने की आवश्यकता है तो io.adafruit.com पर जाएं, // या यदि आपको अपनी Adafruit IO कुंजी की आवश्यकता है। #define IO_USERNAME "YourUsernameHere" #define IO_KEY "YourIOKeyHere"

/****************** वाईफ़ाई कॉन्फ़िगरेशन **************** *********/

#परिभाषित वाईफ़ाई_एसएसआईडी "वाईफाईनाम"

# वाईफ़ाई_पास परिभाषित करें "वाईफाई पासवर्ड"

#शामिल "AdafruitIO_WiFi.h"

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

/********** मुख्य कार्यक्रम यहां शुरू होता है ********* ***********/

#शामिल करें #शामिल करें #शामिल करें

#शामिल

#शामिल करें #शामिल करें

#परिभाषित OLED_RESET 3

Adafruit_SSD1306 डिस्प्ले(128, 32, और वायर, OLED_RESET);

// यह स्थिरांक नहीं बदलेगा:

कॉन्स्ट इंट बटनपिनए = 0; // पिन जो पुशबटन से जुड़े होते हैं const int buttonPinB = 16; // इसमें पहले से ही एक पुलअप रोकनेवाला है, अन्य दो को एक कॉन्स्ट इंट बटन पिनसी = 2 की आवश्यकता है;

// चर बदल जाएगा:

इंट बटनAPushCounter = 0; // बटन प्रेस की संख्या के लिए काउंटर int बटनएस्टेट = 0; // बटन की वर्तमान स्थिति int lastButtonAState = 0; // बटन की पिछली स्थिति

// चर बदल जाएगा:

इंट बटनबीपीशकाउंटर = 0; // बटन की संख्या के लिए काउंटर int बटन दबाता हैBState = 0; // बटन की वर्तमान स्थिति int lastButtonBState = 0; // बटन की पिछली स्थिति

// चर बदल जाएगा:

इंट बटनसीपीशकाउंटर = 0; // बटन की संख्या के लिए काउंटर int बटन दबाता हैCState = 0; // बटन की वर्तमान स्थिति int lastButtonCState = 0; // बटन की पिछली स्थिति

स्ट्रिंग डिस्प्लेफोरकास्ट = "अज्ञात";

इंट टाइमरवैल = 0;

अहस्ताक्षरित लंबा लास्टस्टार्टटाइम = 0; बूल टाइमर सक्षम = 0;

AdafruitIO_Feed *वर्षा = io.feed("वर्षा"); // 'वर्षा' फ़ीड सेट करें

//AdafruitIO_Feed *taskmanager = io.feed("taskmanager"); // 'कार्य प्रबंधक' फ़ीड सेट करें

व्यर्थ व्यवस्था() {

पिनमोड (बटन पिनए, इनपुट); पिनमोड (बटनपिनबी, INPUT_PULLUP); पिनमोड (बटन पिनसी, इनपुट);

// SSD1306_SWITCHCAPVCC = आंतरिक रूप से 3.3V से डिस्प्ले वोल्टेज उत्पन्न करें

डिस्प्ले.बेगिन (SSD1306_SWITCHCAPVCC, 0x3C); // पता 0x3C 128x32. के लिए

// स्क्रीन पर प्रारंभिक प्रदर्शन बफर सामग्री दिखाएं -

// लाइब्रेरी इसे एडफ्रूट स्प्लैश स्क्रीन के साथ इनिशियलाइज़ करती है। डिस्प्ले.डिस्प्ले (); देरी (2000); // 2 सेकंड के लिए रुकें

// बफर साफ़ करें।

डिस्प्ले.क्लियरडिस्प्ले ();

// सीरियल कनेक्शन शुरू करें

सीरियल.बेगिन (115200);

// io.adafruit.com से कनेक्ट करें

Serial.print ("एडफ्रूट आईओ से कनेक्ट करना"); आईओ.कनेक्ट (); // 'वर्षा' फ़ीड के लिए एक संदेश हैंडलर सेट करें। // हैंडलमैसेज फ़ंक्शन (नीचे परिभाषित) // जब भी कोई संदेश आएगा // एडफ्रूट io से प्राप्त किया जाएगा। वर्षा-> संदेश पर (संभाल संदेश);

// कनेक्शन के लिए प्रतीक्षा करें

जबकि (io.status() <AIO_CONNECTED) {सीरियल.प्रिंट ("।"); देरी (500); }

// हम जुड़े हैं

सीरियल.प्रिंट्लन (); Serial.println (io.statusText ());

}

शून्य लूप () {

// io.run (); सभी रेखाचित्रों के लिए आवश्यक है।

// यह हमेशा आपके लूप // फंक्शन के शीर्ष पर मौजूद होना चाहिए। यह क्लाइंट को //io.adafruit.com से कनेक्टेड रखता है, और आने वाले किसी भी डेटा को प्रोसेस करता है। io.run ();

// पुशबटन इनपुट पिन पढ़ें:

बटनएस्टेट = डिजिटलरेड (बटनपिनए); बटनबीस्टेट = डिजिटलरेड (बटनपिनबी); बटनसीस्टेट = डिजिटलरेड (बटनपिनसी);

// बटनस्टेट की तुलना उसकी पिछली स्थिति से करें

if (buttonAState!= lastButtonAState || buttonBState!= lastButtonBState || buttonCState!= lastButtonCState) {// यदि राज्य बदल गया है, तो काउंटर बढ़ाएँ यदि (buttonAState == LOW) {// यदि वर्तमान स्थिति कम है तो बटन बटन दबाया गया थाAPushCounter++; Serial.print ("एक बटन पुश की संख्या:"); Serial.println (बटनAPushCounter); } अगर (बटनबीस्टेट == कम) {// यदि वर्तमान स्थिति कम है तो बटन दबाया गया था BPushCounter++; Serial.print ("बी बटन पुश की संख्या:"); Serial.println(buttonBPushCounter); Serial.println ("टाइमर शुरू करना"); टाइमर सक्षम = 1; लास्टस्टार्टटाइम = मिली (); } अगर (buttonCState == LOW) {// यदि वर्तमान स्थिति कम है तो बटन दबाया गया था buttonCPushCounter++; Serial.print ("C बटन पुश की संख्या:"); Serial.println(buttonCPushCounter); Serial.println ("टाइमर रोकना"); टाइमर सक्षम = 0; } } अगर (timerEnabled == 1){// टाइमर को तभी बढ़ाएँ जब इसे शुरू किया गया हो टाइमरवैल = (मिलिस () - लास्टस्टार्टटाइम)/1000; }

// प्रदर्शन स्थिति 1 - पूर्वानुमान

// अगर (बटनAPushCounter% 3 == 0) {// display.clearDisplay (); // display.setTextSize(1); // display.setTextColor (सफेद); // डिस्प्ले.सेट कर्सर (0, 0); // डिस्प्ले.प्रिंट ("पूर्वानुमान:"); // डिस्प्ले। प्रिंट्लन (डिस्प्लेफोरकास्ट); // डिस्प्ले.सेट कर्सर (0, 16); // display.println ("दूसरी पंक्ति"); // display.println ("उदाहरण सामग्री"); // डिस्प्ले। डिस्प्ले (); // // देरी (2000); // }

// प्रदर्शन स्थिति 1 - कार्य 1

अगर (बटनAPushCounter% 3 == 0) { display.setTextSize(1); display.setTextColor (सफेद); डिस्प्ले.क्लियरडिस्प्ले (); डिस्प्ले.सेट कर्सर (0, 0); display.println ("अनुसंधान - साक्षात्कार"); डिस्प्ले.प्रिंट्लन (); डिस्प्ले.प्रिंट ("टाइमर:"); डिस्प्ले.प्रिंट्लन (टाइमरवैल); डिस्प्ले.डिस्प्ले (); }

// प्रदर्शन स्थिति 2 - कार्य 2

अगर (बटनAPushCounter% 3 == 1) { display.clearDisplay (); डिस्प्ले.सेट कर्सर (0, 0); display.println ("स्टूडियो बनाना - कोड"); डिस्प्ले.प्रिंट्लन (); डिस्प्ले.प्रिंट ("टाइमर:"); डिस्प्ले.प्रिंट्लन (टाइमरवैल); डिस्प्ले.डिस्प्ले (); }

// प्रदर्शन स्थिति 3 - कार्य 3

अगर (बटनAPushCounter% 3 == 2) { display.clearDisplay (); डिस्प्ले.सेट कर्सर (0, 0); display.println ("डीएसवी - स्केचिंग"); डिस्प्ले.प्रिंट्लन (); डिस्प्ले.प्रिंट ("टाइमर:"); डिस्प्ले.प्रिंट्लन (टाइमरवैल); डिस्प्ले.डिस्प्ले (); }

// वर्तमान स्थिति को अंतिम स्थिति के रूप में सहेजें, // अगली बार लूप के माध्यम से lastButtonAState = buttonAState; लास्टबटनबीस्टेट = बटनबीस्टेट; लास्टबटनसीस्टेट = बटनसीस्टेट;

}

// इस फ़ंक्शन को जब भी कोई संदेश कहा जाता है

// Adafruit IO से प्राप्त किया गया है। यह ऊपर दिए गए सेटअप () फ़ंक्शन में // फ़ीड से जुड़ा था। शून्य हैंडल संदेश (AdafruitIO_Data * डेटा) {

स्ट्रिंग पूर्वानुमान = डेटा-> टूस्ट्रिंग (); // आने वाले मौसम डेटा को एक स्ट्रिंग में संग्रहीत करें

सीरियल.प्रिंट ("प्राप्त <-"); Serial.println (पूर्वानुमान); प्रदर्शन पूर्वानुमान = पूर्वानुमान; // निम्नलिखित तार विभिन्न आईएफटीटीटी मौसम रिपोर्ट शब्दों को संग्रहीत करते हैं जिन्हें मैंने अब तक खोजा है स्ट्रिंग टास्क 1 = स्ट्रिंग ("टास्क 1"); स्ट्रिंग बारिश = स्ट्रिंग ("बारिश"); स्ट्रिंग लाइटरेन = स्ट्रिंग ("हल्की बारिश"); स्ट्रिंग रेनशॉवर = स्ट्रिंग ("रेन शावर"); स्ट्रिंग AMshowers = स्ट्रिंग ("AM शावर्स"); स्ट्रिंग रेनएंडस्नो = स्ट्रिंग ("बारिश और हिमपात"); स्ट्रिंग स्नो = स्ट्रिंग ("स्नो"); स्ट्रिंग स्नोशॉवर = स्ट्रिंग ("स्नो शावर"); स्ट्रिंग बादल = स्ट्रिंग ("बादल"); स्ट्रिंग ज्यादातरक्लाउडी = स्ट्रिंग ("ज्यादातर बादल छाए रहेंगे"); स्ट्रिंग आंशिक रूप से बादल छाए रहेंगे = स्ट्रिंग ("आंशिक रूप से बादल छाए रहेंगे"); स्ट्रिंग क्लियरस्की = स्ट्रिंग ("क्लियर"); स्ट्रिंग मेला = स्ट्रिंग ("मेला"); स्ट्रिंग सनी = स्ट्रिंग ("सनी");

// ये अगर स्टेटमेंट आने वाले मौसम चर की तुलना संग्रहीत परिस्थितियों से करते हैं, और तदनुसार NeoPixels को नियंत्रित करते हैं।

// अगर पूर्वानुमान में बारिश हो रही है अगर (forecast.equalsIgnoreCase(rain) || पूर्वानुमान। बराबर IgnoreCase (लाइटरेन) || पूर्वानुमान। इग्नोरकेस (रेनशॉवर) के बराबर है || पूर्वानुमान। इग्नोरकेस (AMshowers)) { Serial.println ("वर्षा में वर्षा) आज का पूर्वानुमान");

}

// अगर पूर्वानुमान में बर्फ है अगर (forcast.equalsIgnoreCase(snow) || पूर्वानुमान.बराबरIgnoreCase(rainandsnow) || पूर्वानुमान. बराबर IgnoreCase(snowshower)){ Serial.println("आज पूर्वानुमान में वर्षा");

}

// अगर पूर्वानुमान में सूर्य है अगर (forcast.equalsIgnoreCase(clearsky) || पूर्वानुमान.बराबर इग्नोरकेस (निष्पक्ष) || पूर्वानुमान। इग्नोरकेस (धूप)){ Serial.println ("आज पूर्वानुमान में किसी प्रकार का सूर्य");

}

// अगर पूर्वानुमान में बादल हैं अगर (forcast.equalsIgnoreCase(cloudy) || पूर्वानुमान.बराबर इग्नोरकेस (ज्यादातर बादल) || पूर्वानुमान। इग्नोरकेस (आंशिक रूप से बादल)) { Serial.println ("आज पूर्वानुमान में बादल आकाश");

}

}

चरण 3: कंटेनर / शेल बनाएं

कंटेनर / शेल बनाएं
कंटेनर / शेल बनाएं
कंटेनर / शेल बनाएं
कंटेनर / शेल बनाएं
कंटेनर / शेल बनाएं
कंटेनर / शेल बनाएं
कंटेनर / शेल बनाएं
कंटेनर / शेल बनाएं

शेल के लिए, यह निर्धारित करके प्रारंभ करें कि आप अपने फ्रेम को किस आकार का बनाना चाहते हैं, या आप मेरी फ़ाइल डाउनलोड कर सकते हैं। एक बार जब आप आकार निर्धारित कर लेते हैं तो आप वेक्टर फ़ाइल के लिए लेआउट बनाने के लिए मेकरकेस का उपयोग कर सकते हैं।

फ़ाइल को लेजर कटर से चलाएं - इसमें लगभग 5 मिनट लगने चाहिए। इसके बाद खोल को एक साथ रख दें।

मैंने उस सामग्री की चौड़ाई का हिसाब नहीं दिया जिससे मेरे बटन तक पहुंचना मुश्किल हो गया। मुझे अभी भी उन्हें संलग्न करने का एक तरीका खोजने की जरूरत है। वे भी बहुत छोटे हैं जिससे उनके साथ काम करना मुश्किल हो जाता है।

सिफारिश की: