विज्ञापन

मनुष्य स्वाभाविक रूप से सूर्योदय के साथ जागने के लिए प्रोग्राम किया जाता है; दुख की बात है कि आधुनिक जीवन एक मनमानी घड़ी द्वारा निर्धारित होता है, अक्सर जब कोई प्राकृतिक प्रकाश नहीं होता है तो हमें जागने के लिए मजबूर करता है। आज, हम एक सूर्योदय अलार्म घड़ी बना रहे हैं, जो एक आक्रामक शोर बनाने वाली मशीन का सहारा लिए बिना आपको धीरे और धीरे से जगाएगा।

यदि आपके लिए सूर्योदय अलार्म घड़ी बनाना थोड़ा बहुत है, तो इन iPhone को देखें और एंड्रॉयड ऍप्स बेहतर नींद के लिए इन ऐप्स का उपयोग करें [Android और iOS]एक हेक्टिक दिन के बाद, आप जो सबसे अच्छी चीज कर सकते हैं, वह है नींद की लाभकारी मात्रा प्राप्त करना। हमेशा नए अध्ययन दिखाई देते हैं जो यह साबित करते हैं कि किसी व्यक्ति के लिए वास्तव में नींद कितनी महत्वपूर्ण है, इसमें सुधार ... अधिक पढ़ें उस का पता लगाएं जब शरीर की गतिविधियों द्वारा आपको जगाना सबसे अच्छा है क्या एक ऐप वास्तव में आपको बेहतर नींद में मदद कर सकता है?मैं हमेशा नींद का एक छोटा सा प्रयोग करता रहा हूं, मेरे जीवन के बहुत से सपने एक स्वप्निल डायरी के रूप में रहे हैं और इस प्रक्रिया में सोने के बारे में जितना हो सके उतना अध्ययन किया। यहां एक है... अधिक पढ़ें

instagram viewer
यह सुनिश्चित करने के लिए कि आपको उस भयानक सपने से दूर नहीं किया गया है, लेकिन इसके बजाय, उज्ज्वल और ताज़ा महसूस करें - वे वास्तव में काम करते हैं।

परियोजना की रूपरेखा

परियोजना का मुख्य भाग बिस्तर के चारों ओर रखी गई 5 मीटर की एलईडी स्ट्रिप लाइट होगी। हम बाहरी 12 वोल्ट की आपूर्ति के साथ इनकी शक्ति प्राप्त करेंगे, कुछ MOSFET N ट्रांजिस्टर का उपयोग करते हुए। इस भाग के लिए सेटअप समान होगा गतिशील प्रकाश व्यवस्था एक मीडिया सेंटर के लिए अपनी खुद की गतिशील परिवेश प्रकाश व्यवस्था बनाएँयदि आप अपने पीसी या मीडिया सेंटर पर बहुत सारी फिल्में देखते हैं, तो मुझे यकीन है कि आपने लाइटिंग दुविधा का सामना किया है; क्या आप पूरी तरह से सभी लाइट बंद कर देते हैं? क्या आप उन्हें पूर्ण विस्फोट पर रखते हैं? या ... अधिक पढ़ें मैंने पहले बनाया था।

टाइमिंग एक मुद्दा होगा - चूंकि यह एक प्रोटोटाइप है, मैं जब भी रीसेट करूंगा, तब से काउंट करने के लिए Arduino सेट कर रहा हूं। सिद्धांत रूप में, हमें प्रत्येक दिन केवल एक या दो बार खोना चाहिए, लेकिन आदर्श रूप से हम इसे और अधिक मज़बूती से करने के लिए एक "वास्तविक समय घड़ी" चिप शामिल करेंगे। सूर्योदय अलार्म जागने के समय से 30 मिनट पहले शुरू होगा, और 100% चमक पर धीरे-धीरे आउटपुट स्तर बढ़ाएगा - यह हमें जगाने के लिए पर्याप्त होना चाहिए, हालांकि यह एक अच्छा विचार है कि अपने नियमित अलार्म घड़ी का उपयोग तब तक करते रहें जब तक कि आपके शरीर का उपयोग न हो जाए यह।

मुझे इस परियोजना में एक रात की रोशनी भी शामिल करनी होगी, जो आंदोलन का पता लगाती है और एक कम स्तर को सक्रिय करती है 3 मिनट के समय के साथ बिस्तर के नीचे प्रकाश, एलईडी रोशनी को अलग करें क्योंकि वे मेरी पत्नी और मुझे जगाने का कारण बनेंगे यूपी। अंडर-बेड लाइटिंग एक वाणिज्यिक साधन इकाई होगी, इसलिए मैं प्लग सॉकेट के अंदर एक रिले को हैक करूंगा ताकि इसे चालू और बंद किया जा सके। यदि आप किसी भी परिस्थिति में 110-240v एसी मेन पावर के साथ काम करने में सहज नहीं हैं एक अच्छा नियम है), फिर स्विचिंग सॉकेट के साथ एक 433 मेगाहर्ट्ज वायरलेस ट्रांसमीटर को वायर करें, जैसा कि उल्लिखित है रास्पबेरी पाई Arduino घर स्वचालन परियोजना रास्पबेरी पाई और Arduino के साथ होम ऑटोमेशन गाइडघर स्वचालन बाजार महंगी उपभोक्ता प्रणालियों से भरा हुआ है, एक दूसरे के साथ असंगत है और स्थापित करने के लिए महंगा है। यदि आपके पास रास्पबेरी पाई और एक Arduino है, तो आप मूल रूप से एक ही चीज़ प्राप्त कर सकते हैं ... अधिक पढ़ें .

भागों की सूची और योजनाबद्ध

  • Arduino
  • RGB LED स्ट्रिप लाइट्स का सेट
  • 12 वोल्ट बिजली की आपूर्ति
  • 3 x MOSFET N ट्रांजिस्टर (मैं टाइप STP16NF06FP का उपयोग करता हूं)
  • रिले और पावर सॉकेट, या वायरलेस नियंत्रित सॉकेट और उपयुक्त ट्रांसमीटर
  • नाइट लाइट की आपकी पसंद (प्लग के साथ संचालित नियमित साधन ठीक है)
  • पीर आंदोलन सेंसर (HC-SR501), या एक SC-04 सोनार (प्रभावी नहीं)
  • प्रकाश संवेदक
  • परियोजना क्रमांक - लेकिन यह सुनिश्चित करने के लिए पढ़ें कि आप सब कुछ कैसे अनुकूलित करते हैं।

यहाँ पूरा योजनाबद्ध है।

सूर्योदय-अलार्म सर्किट

एक रिले के ऊपर तारों

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

बिजली स्विच करने के लिए, आपके रिले को वोल्टेज के लिए रेट करना होगा - 110V या 240V ए.सी. इस पर निर्भर करता है कि आप कहां रहते हैं - और आपके द्वारा स्विच किए जा रहे कुल एम्परेज से अधिक। जो मैंने इस सेंसर पैक से उपयोग किया है (अस्वीकरण: यह मेरी दुकान है) है 250VAC / 10A, इसलिए हमें सुरक्षित होना चाहिए। रिले एक है कॉम पोर्ट, आमतौर पर केंद्र में, जो प्लग में आने वाले लाइव तार से जुड़ा होना चाहिए; फिर सॉकेट लाइव टर्मिनल से कनेक्ट करें नहीं (सामान्यत: खुला है)। मुझे आपको यह बताने की ज़रूरत नहीं है कि यह एक आउटलेट में प्लग नहीं किया गया है, या आप मरने वाले हैं। यदि आप मुख्य शक्ति के साथ खिलवाड़ करने से डरते हैं, तो इसके बजाय वायरलेस स्विच किए गए सॉकेट का उपयोग करें।

रिले तारों

पृथ्वी और तटस्थ केबल सीधे सॉकेट में जाना चाहिए और रिले को स्पर्श नहीं करेगा। आपके पास अमेरिका में एक पृथ्वी रेखा नहीं हो सकती है। आपके स्थानीय क्षेत्र में तारों के रंग कोडिंग को जानना आपकी ज़िम्मेदारी है - यदि आप अन्यथा अपने घर में एक नियमित सॉकेट तार नहीं करते हैं या प्लग को फिर से खोलते हैं, तो एक रिले को एम्बेड करने का प्रयास न करें!

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

सही समय पर हो रही है

नेटवर्क कनेक्शन या समर्पित के बिना समय और घड़ी के कार्य मुश्किल हैं वास्तविक समय घड़ी (इनमें मुख्य अर्डुइनो के पास कोई शक्ति नहीं होने पर भी घड़ी को चालू रखने के लिए अपनी बैटरी शामिल है)। लागत कम रखने के लिए, मैं धोखा देने जा रहा हूं। मैं Arduino के लिए इसकी उलटी गिनती शुरू करने के लिए एक शुरुआती समय में हार्डकॉकिंग करूंगा; इसलिए समय इस शुरुआत के सापेक्ष होगा। प्रत्येक 24 घंटे में, घड़ी रीसेट हो जाएगी। नीचे दिया गया फ़ंक्शन फ़ंक्शन कोड वैश्विक चर सुनिश्चित करता है currentMillis तथा currentMinutes प्रत्येक दिन सही होते हैं। Arduino को प्रत्येक 45 दिनों में कुछ सेकंड से अधिक नहीं खोना चाहिए; हालांकि, टाइमिंग की यह हार्ड-कोडेड शैली काफी सीमित है कि पावर कट या आकस्मिक रीसेट सब कुछ तोड़ देगा, इसलिए यह निश्चित रूप से एक क्षेत्र है जिसे बेहतर बनाया जा सकता है। यदि टाइमिंग सिंक से बाहर हो जाती है, तो बस अपने शुरुआती समय में Arduino को रीसेट करें।

कोड को समझना आसान होना चाहिए।

void घड़ी () {if (मिलिस) (= पिछलामिलीस + 86400000) {// एक पूरा दिन बीत चुका है, घड़ी रीसेट करें; पिछलामिलिस + = 86400000; } currentMillis = millis () - lastMillis; // यह हमारे currentMillis को हर दिन currentMinute = (currentMillis / 1000) / 60 रखता है; }

नाइट लाइट फंक्शन

मैं मुख्य लूपों को अलग-अलग कार्यों में अलग करता हूं, इसलिए इसे पढ़ना और निकालना या समायोजित करना आसान है। रात का चिराग़() फ़ंक्शन केवल उन घंटों के बीच संचालित होता है जब Arduino को रीसेट किया गया था (मैं मान रहा हूं कि आप शायद यह सोते समय या उसके आसपास करते हैं, जब यह अंधेरा होता है), और जब तक सूर्योदय अलार्म शुरू होने वाला नहीं होता है। मैंने शुरू में एक प्रकाश-निर्भर अवरोधक का उपयोग करने की कोशिश की थी, लेकिन वे नीली रोशनी के लिए बहुत संवेदनशील नहीं थे (जो कि रात के प्रकाश के लिए मेरे द्वारा उपयोग किए जाने वाले रंग है), और सही को कैलिब्रेट करना मुश्किल है। घड़ी का उपयोग करना और अधिक समझ में आता है, वैसे भी। हम वैश्विक उपयोग करेंगे currentMinutes चर, जो हर दिन रीसेट हो जाता है।

पीर सेंसर थोड़ा विचित्र हो सकता है यदि आपने पहले कभी भी इसका उपयोग नहीं किया है, हालांकि इसे वायरिंग करना मुश्किल नहीं है - आप पाएंगे VCC, GND, तथा बाहर स्पष्ट रूप से पीठ पर लेबल। आपके दो चर प्रतिरोधक भी हैं; एक लेबल वाला आरएक्स रेंज (लगभग 7 मीटर तक) निर्धारित करता है, और दूसरा लेबल वाला TX विलंब निर्धारित करता है। देरी इसकी सबसे कम सेटिंग पर 5 सेकंड है (पूरी तरह से एंटी-क्लॉकवाइज), और इसका मतलब है कि कोई भी क्षणिक गति सेंसर से कम से कम 5 सेकंड "चालू" स्थिति में होगी। हालाँकि, यह सक्रिय अवस्थाओं के बीच की देरी को भी निर्धारित करता है - इसलिए यदि 5 सेकंड बीत गए और कोई गति नहीं हुई पता लगाया, सेंसर कम से कम 5 सेकंड के लिए एक संकेत भेजेगा भले ही उस दौरान आंदोलन हो अवधि। यदि आपके पास देरी सेट लगभग 30 सेकंड पर वास्तव में उच्च है, तो ऐसा लग सकता है कि सेंसर टूट गया है।

पीर सेंसर

यदि आप अकेले सो रहे हैं और सूर्योदय अलार्म और रात की रोशनी दोनों के लिए एक ही RGB स्ट्रिप लाइट का उपयोग करने का मन नहीं है, तो आपको कोड को आसानी से समायोजित करने में सक्षम होना चाहिए।

शून्य रात () {// केवल रीसेट के घंटे के बीच काम करते हैं -> सूर्योदय। if (currentMinutes 

सनराइज अलार्म

सादगी के लिए, मैं गहरे पीले सूर्योदय के लिए RGB रंग मान 255,255,0 का उपयोग करूंगा - इस तरह दोनों रंग चैनलों पर वेतन वृद्धि समान होगी। यदि आप इसे बहुत जल्दी जागते हुए पाते हैं, तो एक गहरे लाल रंग से शुरू करने और पीले या सफेद रंग की ओर बढ़ने पर विचार करें। रैंप अप मैं सिर्फ रैखिक में इस्तेमाल किया है - आप चमक मूल्यों के लिए एक और अधिक प्राकृतिक वक्र का उपयोग कर जांच करना चाहते हो सकता है।

फ़ंक्शन सरल है - यह काम करता है कि 30 मिनट की अवधि के बाद प्रकाश को प्रत्येक दूसरे द्वारा कितना बढ़ाया जाना चाहिए, यह पूरी चमक पर है; फिर कई गुणा कि यह वर्तमान में सूर्योदय में है। यदि यह पहले से ही पूरी चमक में है, तो यह सुनिश्चित करने के लिए आगे 10 मिनट तक रहता है कि आप क्या कर रहे हैं (और यदि आप अभी भी नहीं उठे हैं, तो आपके पास संभवतः बैकअप अलार्म होना चाहिए)।

शून्य सनराइज़लर्म () {// 30 मिनट की अवधि के दौरान प्रत्येक सेकंड को रंग मान में वृद्धि करनी चाहिए: फ्लोट इंक्रीमेंट = (फ्लोट) 255 / (30 * 60); // लाल 255, हरा 255 हमें पूर्ण चमक पीला देता है अगर (करंट)> = मिनट यूटिलसुनराइज) {// सूर्योदय शुरू होता है! फ्लोट करेंटवैल = (फ्लोट) ((करंटमिलिस / १०००) - (मिनट यूंटिल्यूनराइज * ६०)) * वेतन वृद्धि; Serial.print ("सूर्योदय के लिए वर्तमान मूल्य:"); सिरियल.प्रिंटल (करेंटवैल); // रैंप अप के दौरान, मिनट की वर्तमान वैल्यू को लिखें X ब्राइट इन्क्रीमेंट अगर (currentVal <255) {analogWrite (RED, currentVal); एनालॉगवर्इट (GREEN, currentVal); } और यदि (currentMinutes - मिनटसुनीलसून <40) {// एक बार हम पूर्ण चमक पर हैं, तो रोशनी को 10 मिनट तक एनालॉगहाइट (लाल, 255) पर रखें; एनालॉगवर्इट (GREEN, 255); } और {// उसके बाद, हम उन्हें राज्य एनालॉग से वापस बंद कर रहे हैं (लाल, 0); एनालॉग वाइट (GREEN, 0); } } }

नुकसान और भविष्य के उन्नयन

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

सूर्योदय-अलार्म

इस परियोजना को बनाते समय, मुझे बड़ी संख्या से निपटने के कई मुद्दों का सामना करना पड़ा, इसलिए यदि आप कोड को संशोधित करने की योजना बनाते हैं तो कृपया इसे ध्यान में रखें। सी भाषा में, आपके चर का टाइप करना बहुत महत्वपूर्ण है - एक संख्या हमेशा एक संख्या नहीं होती है। उदाहरण के लिए, अहस्ताक्षरित लंबे चर का उपयोग सुपर बड़ी संख्याओं को संग्रहीत करने के लिए किया जाना चाहिए, जैसे कि जब हम मिलीसेकंड के बारे में बात करते हैं, लेकिन 60,000 के रूप में भी एक संख्या को एक पूर्णांक के रूप में संग्रहीत नहीं किया जा सकता है (एक अहस्ताक्षरित int 68,000 तक स्वीकार्य होगा). मुद्दा ये है, अपने चर प्रकारों पर पढ़ें बड़ी संख्या का उपयोग करते समय, और यदि आप अजीब बग ढूंढ रहे हैं, तो यह संभवत: इसलिए है क्योंकि आपके एक चर में पर्याप्त बिट्स नहीं हैं!

मुझे बहुत कम चमक वाले वोल्टेज लीक के साथ भी एक समस्या मिली है - तब भी जब सबसे अधिक प्रकाश उत्सर्जित किया जा रहा है डिजिटलवाइट (लाल, 0) सिग्नल उत्सर्जित होता है - मुझे नहीं लगता कि यह स्ट्रिप्स के साथ हार्डवेयर समस्या है क्योंकि वे आधिकारिक नियंत्रकों के साथ ठीक काम करते हैं। अगर कोई भी इस समस्या को हल कर सकता है, तो नीचे चित्र, मैं सबसे अधिक आभारी रहूंगा। मैंने प्रतिरोधों को नीचे खींचने की कोशिश की है, और Arduino पिन से आउटपुट वोल्टेज को सीमित किया है। मुझे एक साधारण बिजली स्विचिंग सर्किट को जोड़ने की आवश्यकता हो सकती है, केवल एलईडी पट्टी को वोल्टेज की आपूर्ति कर सकती है जब वास्तव में जरूरत होती है; या यह दोषपूर्ण MOSFETs हो सकता है।

प्रकाश रिसाव

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

क्या आपने यह कोशिश की, सुधार किया, या कोई अन्य विचार मिला? टिप्पणियों में क्या है मुझे जानने दें!

जेम्स के पास आर्टिफिशियल इंटेलिजेंस में बीएससी है, और कॉम्पिटिया ए + और नेटवर्क + प्रमाणित है। वह MakeUseOf के प्रमुख डेवलपर हैं, और अपना खाली समय वीआर पेंटबॉल और बोर्डगेम खेलने में बिताते हैं। वह पीसी का निर्माण कर रहा है क्योंकि वह एक बच्चा था।