विषयसूची:

स्टडी रूम टाइमर: 7 कदम
स्टडी रूम टाइमर: 7 कदम

वीडियो: स्टडी रूम टाइमर: 7 कदम

वीडियो: स्टडी रूम टाइमर: 7 कदम
वीडियो: Munawar Ne Kiya Ankita Aur Vicky Ko Roast | Bigg Boss 17 2024, जुलाई
Anonim
स्टडी रूम टाइमर
स्टडी रूम टाइमर
स्टडी रूम टाइमर
स्टडी रूम टाइमर
स्टडी रूम टाइमर
स्टडी रूम टाइमर

अध्ययन कक्ष के लिए टाइमर बनाने के निर्देश।

चरण 1: इंटरेक्शन वीडियो

drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk

चरण 2: समस्या विवरण

ज्यादातर समय स्टडी रूम हमेशा लिया जाता है। ऐसा इसलिए होता है क्योंकि लोग जरूरत से ज्यादा देर तक कमरे में रहना पसंद करते हैं। हमने एक टाइमर डिज़ाइन किया है जो प्रत्येक व्यक्ति को कुल 2 घंटे की अनुमति देता है और लोग अगले समूह में कमरे का अनुरोध करने की क्षमता का इंतजार कर रहे हैं। Neopixels पर RGB का उपयोग शेष समय की मात्रा को व्यक्त करेगा।

चरण 3: यह कैसे काम करता है इसका अवलोकन

टाइमर में लेजर कटर, 3 बटन, 1 एलईडी, 1 पोटेंशियोमीटर द्वारा काटे गए हिस्से होते हैं।

Neopixels और पोटेंशियोमीटर को NodeMCU से तार दिया जाता है। NodeMCU को यह पता लगाने के लिए प्रोग्राम किया गया है कि गोलाकार Neopixel स्ट्रिप पर एलईडी की मात्रा को बदलने के लिए पोटेंशियोमीटर को कितनी दूर घुमाया जाता है। रिक्वेस्ट बटन स्टार्ट, स्टॉप और सेट टाइम फंक्शन के फंक्शन को रोकता है। कमरे के अंदर टाइमर पर एलईडी का रंग बॉक्स के किनारे पर लगे एलईडी के समान रंग है। बॉक्स के किनारे पर नियोपिक्सल इमारत की लॉबी में डिस्प्ले का प्रतिनिधित्व करता है यह जानने के लिए कि कौन सा कमरा लिया गया है और कितना समय बचा है। प्रत्येक कमरे के लिए 2 एलईडी निर्धारित हैं, एक एलईडी दर्शाता है कि क्या कमरा लिया गया है और दूसरा एलईडी टाइमर पर एलईडी के रंग को दर्शाता है (हरा अधिक समय है, फिर पीला, फिर कम समय के लिए लाल)।

चरण 4: सामग्री और उपकरणों की सूची

-स्पष्ट एक्रिलिक

-माइक्रोयूएसबी केबल

www.digikey.com/product-detail/hi/stewart-…

-ब्रेड बोर्ड

www.amazon.com/gp/product/B01EV6LJ7G/ref=o…

-पोटेंशियोमीटर

www.alliedelec.com/honeywell-380c32500/701…

-3 बटन

www.digikey.com/product-detail/hi/te-conne…

-नोडएमसीयू

www.amazon.com/gp/product/B07CB4P2XY/ref=o…

- 2 नियोपिक्सल स्ट्रिप्स

www.amazon.com/Lighting-Modules-NeoPixel-W…

-प्रतिरोधक

www.digikey.com/product-detail/hi/te-conne…

- तार

www.digikey.com/product-detail/hi/sparkfun…

-1 एलईडी

www.mouser.com/ProductDetail/Cree-Inc/C512…

-गर्म गोंद वाली बंदूक

www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…

-स्टिकी वेल्क्रो स्ट्रिप्स

www.amazon.com/VELCRO-Brand-90076-फास्टनर…

चरण 5: ब्रेडबोर्ड के साथ निर्माण शुरू करें

ब्रेडबोर्ड के साथ निर्माण शुरू करें
ब्रेडबोर्ड के साथ निर्माण शुरू करें

पोटेंशियोमीटर पर A0 से मध्य पिन

नियोपिक्सल रिंग पर विन टू पावर

3v3 पोटेंशियोमीटर के एक तरफ

NodeMCU पर ग्राउंड करने के लिए सभी आधार

D1 से अनुरोध बटन

D2 एलईडी का अनुरोध करने के लिए

D3 प्रारंभ करने के लिए बटन

D4 टू स्टॉप बटन

D5 रिंग पर Neopixel इनपुट को रोकने के लिए

D6 Neopixel इनपुट स्ट्रिप को रोकने के लिए

चरण 6: कोड शुरू करना

यह सुनिश्चित करने के लिए कोड है कि आपकी परियोजना अब तक काम कर रही है। Neopixel Ring पर टाइमर प्रति एलईडी केवल कुछ सेकंड का होना चाहिए। एक बार जब आप जान जाते हैं कि यह इस बिंदु तक काम कर रहा है, तो आपको बस इतना करना है कि यदि नीचे दिए गए विवरण आपकी निर्दिष्ट सीमा तक हैं तो समय बदल दें। मैं हर बार '#चेंज टाइम' डालूंगा अगर स्टेटमेंट्स जिन्हें आपको अपने टाइम अलॉटमेंट के लिए बदलने की जरूरत है।

कोड की कोशिश कर रहा है:

आयात utime

आयात समय

मशीन से आयात एडीसी

आयात मशीन

आयात नियोपिक्सेल

एडीसी = एडीसी(0)

पिन = मशीन। पिन (14, मशीन। पिन। आउट)

np = neopixel. NeoPixel (पिन, 12)

पिन 2 = मशीन। पिन (12, मशीन। पिन। आउट)

np2 = neopixel. NeoPixel(pin2, 8)

एल 1 = मशीन। पिन (4, मशीन। पिन। आउट)

b1 = मशीन। पिन (5, मशीन। पिन.इन, मशीन। पिन। PULL_UP)

b3 = मशीन.पिन(2, मशीन.पिन.इन, मशीन.पिन. PULL_UP)

b2 = मशीन। पिन (0, मशीन। पिन.इन, मशीन। पिन। PULL_UP)

l1.मूल्य(0)

def tglled (): # टॉगल 'अनुरोध' एलईडी फ़ंक्शन

अगर l1.value() == 0:

l1.मूल्य(1)

अन्यथा:

l1.मूल्य(0)

एक्स = 0

b1temp1 = 0

b1temp2 = 0

टी = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

एस = 0

जबकि सच:

# यह वह बटन है जो 'अनुरोध' एलईडी को टॉगल करता है

b1temp2 = b1.value ()

अगर b1temp1 और b1temp2 नहीं:

tglled ()

समय सो जाओ (0.05)

b1temp1 = b1temp2

#यह ग्रिड है

एनपी २ [०] = एनपी [११]

अगर l1.value() == 1:

np2[1] = (३०, ०, ०)

अन्यथा:

np2[1] = (0, 0, 30)

np2.लिखें ()

# यह वह जगह है जहां हम चुनते हैं कि हमें कितना समय चाहिए

अगर टी == 0:

मैं सीमा में (-1, 12) के लिए:

अगर (l1.value() == 0):

अगर (adc.read() >= (85.34 * (i+1))):

एनपी = (0, 0, 0)

एनपी [11] = (0, 0, 30)

एस = (मैं + 1)

अन्यथा:

एनपी = (0, 0, 30)

एनपी.लिखें ()

अन्यथा:

एनपी = (0, 0, 0)

एनपी.लिखें ()

# यह टाइमर शुरू करने का बटन है

अगर (l1.value() == 0) और (टी == 0):

b2temp2 = b2.value ()

अगर b2temp1 और b2temp2 नहीं:

एक्स + = 1

टी + = (एस * १००)

समय सो जाओ (0.05)

b2temp1 = b2temp2

# यह बटन टाइमर समाप्त करता है

अगर (l1.value() == 0):

b3temp2 = b3.value ()

अगर b3temp1 और b3temp2 नहीं:

एक्स = 0

टी = 0

समय सो जाओ (0.05)

b3temp1 = b3temp2

#यह टाइमर है

अगर एक्स> 0:

टी + = 1

अगर (टी> 0) और (टी <= 100): #समय बदलें

एनपी [0] = (5, 30, 0)

एनपी[1] = (5, 30, 0)

एनपी[2] = (5, 30, 0)

एनपी [3] = (5, 30, 0)

एनपी [4] = (5, 30, 0)

एनपी [5] = (5, 30, 0)

एनपी [6] = (5, 30, 0)

एनपी [7] = (5, 30, 0)

एनपी [8] = (5, 30, 0)

एनपी [9] = (5, 30, 0)

एनपी [10] = (5, 30, 0)

एनपी [11] = (5, 30, 0)

एनपी.लिखें ()

अगर (टी> 100) और (टी <= 200): #समय बदलें

एनपी [0] = (0, 0, 0)

एनपी[1] = (10, 30, 0)

एनपी[2] = (10, 30, 0)

एनपी [3] = (10, 30, 0)

एनपी [4] = (10, 30, 0)

एनपी [5] = (10, 30, 0)

एनपी [6] = (10, 30, 0)

एनपी [7] = (10, 30, 0)

एनपी [8] = (10, 30, 0)

एनपी [9] = (10, 30, 0)

एनपी [10] = (10, 30, 0)

एनपी [11] = (10, 30, 0)

एनपी.लिखें ()

अगर (टी> 200) और (टी <= 300): #समय बदलें

एनपी [0] = (0, 0, 0)

एनपी[1] = (0, 0, 0)

एनपी[2] = (15, 30, 0)

एनपी [3] = (15, 30, 0)

एनपी [4] = (15, 30, 0)

एनपी [5] = (15, 30, 0)

एनपी [6] = (15, 30, 0)

एनपी [7] = (15, 30, 0)

एनपी [8] = (15, 30, 0)

एनपी [9] = (15, 30, 0)

एनपी [१०] = (१५, ३०, ०)

एनपी [११] = (१५, ३०, ०)

एनपी.लिखें ()

अगर (टी> 300) और (टी <= 400): #समय बदलें

एनपी [0] = (0, 0, 0)

एनपी[1] = (0, 0, 0)

एनपी[2] = (0, 0, 0)

एनपी [3] = (20, 30, 0)

एनपी [4] = (20, 30, 0)

एनपी [5] = (20, 30, 0)

एनपी [6] = (20, 30, 0)

एनपी [7] = (20, 30, 0)

एनपी [8] = (20, 30, 0)

एनपी [9] = (20, 30, 0)

एनपी [10] = (20, 30, 0)

एनपी [11] = (20, 30, 0)

एनपी.लिखें ()

अगर (टी> 400) और (टी <= 500): #समय बदलें

एनपी [0] = (0, 0, 0)

एनपी[1] = (0, 0, 0)

एनपी[2] = (0, 0, 0)

एनपी [3] = (0, 0, 0)

एनपी [४] = (२५, ३०, ०)

एनपी [5] = (२५, ३०, ०)

एनपी [6] = (२५, ३०, ०)

एनपी [7] = (२५, ३०, ०)

एनपी [8] = (25, 30, 0)

एनपी [9] = (२५, ३०, ०)

एनपी [१०] = (२५, ३०, ०)

एनपी [११] = (२५, ३०, ०)

एनपी.लिखें ()

अगर (टी> 500) और (टी <= 600): #समय बदलें

एनपी [0] = (0, 0, 0)

एनपी[1] = (0, 0, 0)

एनपी[2] = (0, 0, 0)

एनपी [3] = (0, 0, 0)

एनपी [4] = (0, 0, 0)

एनपी [5] = (30, 30, 0)

एनपी [6] = (३०, ३०, ०)

एनपी [7] = (30, 30, 0)

एनपी [8] = (30, 30, 0)

एनपी [9] = (३०, ३०, ०)

एनपी [१०] = (३०, ३०, ०)

एनपी [११] = (३०, ३०, ०)

एनपी.लिखें ()

अगर (टी > ६००) और (टी <= ७००): #समय बदलें

एनपी [0] = (0, 0, 0)

एनपी[1] = (0, 0, 0)

एनपी[2] = (0, 0, 0)

एनपी [3] = (0, 0, 0)

एनपी [4] = (0, 0, 0)

एनपी [5] = (0, 0, 0)

एनपी [6] = (30, 25, 0)

एनपी [7] = (30, 25, 0)

एनपी [8] = (30, 25, 0)

एनपी [9] = (30, 25, 0)

एनपी [१०] = (३०, २५, ०)

एनपी [११] = (३०, २५, ०)

एनपी.लिखें ()

अगर (टी> 700) और (टी <= 800): #समय बदलें

एनपी [0] = (0, 0, 0)

एनपी[1] = (0, 0, 0)

एनपी[2] = (0, 0, 0)

एनपी [3] = (0, 0, 0)

एनपी [4] = (0, 0, 0)

एनपी [5] = (0, 0, 0)

एनपी [6] = (0, 0, 0)

एनपी [7] = (30, 20, 0)

एनपी [8] = (30, 20, 0)

एनपी [9] = (30, 20, 0)

एनपी [10] = (30, 20, 0)

एनपी [११] = (३०, २०, ०)

एनपी.लिखें ()

अगर (टी > ८००) और (टी <= ९००): #समय बदलें

एनपी [0] = (0, 0, 0)

एनपी[1] = (0, 0, 0)

एनपी[2] = (0, 0, 0)

एनपी [3] = (0, 0, 0)

एनपी [4] = (0, 0, 0)

एनपी [5] = (0, 0, 0)

एनपी [6] = (0, 0, 0)

एनपी [7] = (0, 0, 0)

एनपी [8] = (30, 15, 0)

एनपी [9] = (३०, १५, ०)

एनपी [१०] = (३०, १५, ०)

एनपी [११] = (३०, १५, ०)

एनपी.लिखें ()

अगर (टी> 900) और (टी <= 1000): #समय बदलें

एनपी [0] = (0, 0, 0)

एनपी[1] = (0, 0, 0)

एनपी[2] = (0, 0, 0)

एनपी [3] = (0, 0, 0)

एनपी [4] = (0, 0, 0)

एनपी [5] = (0, 0, 0)

एनपी [6] = (0, 0, 0)

एनपी [7] = (0, 0, 0)

एनपी [8] = (0, 0, 0)

एनपी [9] = (30, 10, 0)

एनपी [१०] = (३०, १०, ०)

एनपी [११] = (३०, १०, ०)

एनपी.लिखें ()

अगर (टी> 1000) और (टी <= 1100): #समय बदलें

एनपी [0] = (0, 0, 0)

एनपी[1] = (0, 0, 0)

एनपी[2] = (0, 0, 0)

एनपी [3] = (0, 0, 0)

एनपी [4] = (0, 0, 0)

एनपी [5] = (0, 0, 0)

एनपी [6] = (0, 0, 0)

एनपी [7] = (0, 0, 0)

एनपी [8] = (0, 0, 0)

एनपी [9] = (0, 0, 0)

एनपी [१०] = (३०, ५, ०)

एनपी [११] = (३०, ५, ०)

एनपी.लिखें ()

अगर (टी> 1100) और (टी <= 1200): #समय बदलें

एनपी [0] = (0, 0, 0)

एनपी[1] = (0, 0, 0)

एनपी[2] = (0, 0, 0)

एनपी [3] = (0, 0, 0)

एनपी [4] = (0, 0, 0)

एनपी [5] = (0, 0, 0)

एनपी [6] = (0, 0, 0)

एनपी [7] = (0, 0, 0)

एनपी [8] = (0, 0, 0)

एनपी [9] = (0, 0, 0)

एनपी [10] = (0, 0, 0)

एनपी [११] = (३०, ०, ०)

एनपी.लिखें ()

अगर टी>= 1300: #समय बदलें

टी = 0

एक्स = 0

चरण 7: फिनिशिंग टच

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

सिफारिश की: