विषयसूची:
- चरण 1: सिद्धांत
- चरण 2: डिजाइन
- चरण 3: तकनीकी विवरण: एपीआई
- चरण 4: तकनीकी विवरण: हार्डवेयर
- चरण 5: तकनीकी विवरण: बिंदुओं को जोड़ना | घर स्वचालन
- चरण 6: रैपिंग अप
वीडियो: रमजान लाइट्स - होम ऑटोमेशन IOT: 6 चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
जैसे ही रमजान दरवाजे पर दस्तक देता है, दुनिया भर के शहर रोशनी करते हैं और उपवास के महीने की तैयारी करते हैं। सार्वजनिक चौराहों और शहर की सड़कों के साथ-साथ घरों की बाहरी दीवारों पर रात में जब तक सूरज नहीं निकलता, तब तक रोशनी की जाती है।
इस परियोजना में, मैं अपना योगदान साझा करना चाहूंगा, जिसमें मैं अदन के समय के आधार पर इन सजावटों की रोशनी को स्वचालित कर रहा हूं और इसे अपने स्मार्ट होम सिस्टम में जोड़ रहा हूं।
चरण 1: सिद्धांत
मूल रूप से, उदाहरण के लिए, सूर्य के प्रकाश की तीव्रता के आधार पर प्रकाश को स्वचालित करना आसान और अधिक लागू होता है। हालाँकि, मैं चाहूंगा कि इसमें पवित्र महीने की भावना हो, यानी जब तक लोगों को उपवास के महीने में खाने की अनुमति है, तब तक रोशनी चालू रहेगी। विशेष रूप से, मग़रिब अज़ान से शुरू होकर फ़ज्र अज़ान तक प्रत्येक दिन बिना किसी मानवीय संपर्क के रोशनी होती है।
चरण 2: डिजाइन
नीचे मैं इस परियोजना की आवश्यकताओं/क्षमताओं की सूची दूंगा:
- सिस्टम को बूट अप पर स्वचालित रूप से संसाधित करने में सक्षम होना चाहिए।
- सिस्टम को समय-समय पर निर्णय (चालू/बंद) एल्गोरिथम निष्पादित करने में सक्षम होना चाहिए।
- सिस्टम को दैनिक आधार पर एपीआई को कॉल करने में सक्षम होना चाहिए।
- सिस्टम को अनियोजित पुनरारंभ से पुनर्प्राप्त करने में सक्षम होना चाहिए।
- डेटा तुरंत प्राप्त होने पर सिस्टम को निर्णय (चालू/बंद) एल्गोरिदम निष्पादित करना चाहिए।
- सिस्टम को ऑटोपायलट मोड (स्वचालित मोड) को चालू करने के लिए एक स्विच प्रदान करना चाहिए।
- सिस्टम को मैन्युअल रूप से रोशनी को चालू/बंद करने के लिए एक स्विच प्रदान करना चाहिए।
- मैन्युअल स्विच को ट्रिगर करने से मैन्युअल मोड को बंद पर सेट करना चाहिए।
- जब स्वचालित मोड चालू होता है, तो निर्णय एल्गोरिथम का परिणाम मैन्युअल स्विच चालू/बंद पर प्रतिबिंबित होना चाहिए।
चरण 3: तकनीकी विवरण: एपीआई
सिद्धांत को लागू करने के लिए, यह आवश्यक है कि दैनिक आधार पर अज़ान के समय को उसके चर के रूप में जाना जाए और उस पर रोशनी / सजावट को चालू / बंद करने के लिए कार्य किया जाए।
इस उद्देश्य के लिए, मैंने डेटा की सेवा के लिए स्थान-आधारित एपीआई का उपयोग करने का निर्णय लिया (आधान के लिए समय)
muslimsalat.com/api/#location
- यह एपीआई ऊपर दिए गए दस्तावेज़ीकरण लिंक में वर्णित विभिन्न प्रकार के विकल्प और कॉन्फ़िगरेशन पैरामीटर प्रदान करता है।
- अपने स्वयं के API_key का उपयोग करने की अनुशंसा की जाती है जो पंजीकरण पर निःशुल्क है।
- मेरे डिजाइन में, मुझे दैनिक समयरेखा में दिलचस्पी है।
- लौटाया गया समय 12 घंटे के प्रारूप (AM/PM) में है।
- स्थान के संदर्भ में, मैं चाहता हूं कि यह एपीआई भौगोलिक निर्देशांक प्रणाली (अक्षांश और देशांतर) निर्देशांक जैसे स्थानों के लिए अधिक सटीक विकल्प प्रदान कर सके। इस तरह, उदाहरण के लिए इस एपीआई को शहर का नाम दिया जा सकता है और यह ज्यादातर मामलों में काफी है। दुर्भाग्य से, मेरे विशिष्ट शहर के परिणाम कई परीक्षणों में काफी पक्षपाती थे और एपीआई परिणामों और मेरे शहर में अदन के वास्तविक समय के बीच अदन समय की तुलना करते समय कुछ मिनटों का अंतर था। दूसरी ओर, परिणाम पूरी तरह से मेल खाते थे जब मैंने उत्तर में एक करीबी शहर प्रदान किया और मैं उस पर कायम रहा!
- मैं जिस एपीआई यूआरएल का उपयोग कर रहा हूं वह है:https://muslimsalat.com/.json?key=
चरण 4: तकनीकी विवरण: हार्डवेयर
सादगी के लिए, मैं इन कार्यों को मेरे होम ऑटोमेशन सिस्टम को सौंपकर एपीआई और समय की गणना के साथ सिंक करने की प्रक्रिया से हार्डवेयर को छोड़ रहा हूं। अगर मैं एपीआई स्रोत और गणना के एल्गोरिदम को बदलना चाहता हूं तो यह मुझे और अधिक नियंत्रण देगा।
ऐसा कहने के बाद, मैंने वाईफ़ाई के माध्यम से स्थानीय नेटवर्क से कनेक्ट करने के लिए एक ईएसपी 8266 (एनओडीएमसीयू) और एक एक्ट्यूएटर के रूप में एक रिले मॉड्यूल का उपयोग किया। NodeMCU MQTT प्रोटोकॉल का उपयोग करेगा और रिले को चालू/बंद करने के लिए कमांड प्राप्त करने के लिए एक विशिष्ट विषय को सुनेगा। कि जैसे ही आसान!
चरण 5: तकनीकी विवरण: बिंदुओं को जोड़ना | घर स्वचालन
माई रास्पबेरीपी में एक नोडर्ड इंस्टेंस है जो मुझे इस परियोजना के लिए आवश्यक सभी चीजों को संभालने में सक्षम है। हमारे संदेशों को प्रकाशित करने के लिए इसमें एक MQTT सर्वर भी स्थापित है।
सबसे पहले, मैंने सोचा था कि मैं सुबह 9 बजे एपीआई डेटा प्राप्त कर सकता हूं और फज्र और महग्रिब अदन दोनों समय निकाल सकता हूं और इन चरों के साथ वर्तमान समय की तुलना कर सकता हूं:
प्रत्येक 30 सेकंड:
अगर: महग्रिब <अब <फज्र सच | रोशनी चालू करो | निर्दिष्ट MQTT विषय पर एक ON संदेश प्रकाशित करें अन्यथा: बंद करें
समय की तुलना करने के लिए, मैं एपीआई द्वारा प्रदान किए गए घंटों को hh:mm(AM/PM) से पूर्ण तिथि प्रारूप में परिवर्तित कर रहा हूं, इतिहास में एक नगण्य तिथि के लिए दिनांक भाग सेट करके जैसे (1/1/1970) क्योंकि हम समय की तुलना कर रहे हैं केवल वर्तमान समय के लिए (दिनांक भाग भी परिवर्तित किया जाता है)।
दुर्भाग्य से, यह केवल सीधे आगे के मामलों में काम करेगा। मान लीजिए कि जब विद्युत शक्ति कम हो जाती है या सिस्टम एक अनियोजित कारण से पुनरारंभ होता है। यदि यह मामला 12AM से पहले होता है तो हम अभी भी सुरक्षित पक्ष में हैं, लेकिन 12AM के बाद यह हमारे सरल एल्गोरिथम को विफल कर देगा।
एक उदाहरण देने के लिए, आइए शाम 7:30 बजे मगरिब अज़ान और 4:10 बजे फज्र करें। जब सिस्टम बूट हो जाता है तो यह पहले बताए गए डेटा को लाने के लिए एक नया अनुरोध भेजेगा। यदि अब समय 1:45 AM है, तो हम उम्मीद करते हैं कि हमारा एल्गोरिथ्म सच हो जाएगा, लेकिन वास्तव में ऐसा नहीं होगा क्योंकि 1:45 AM फज्र (4:10 AM) से कम है, लेकिन मगरिब (7:30 PM) से अधिक नहीं है। ऐसा इसलिए है क्योंकि हम सभी चर के बीच की तारीख को एकजुट करते हैं। नीचे एल्गोरिथम का अंतिम संस्करण है (अब तक):
प्रत्येक 30 सेकंड:
अगर ((magrib.getHours() >=12 && fajr.getHours() <=12) || फज्र <मग़रिब) {fajr.setDate(fajr.getDate()+1); // फैले हुए दिनों को संभालें एंडटाइम अगर (अब। getHours () <=12) { now.setDate (now.getDate () +1); // फैले हुए दिनों को संभालें currentTime } } // नीचे पिछला कोड ब्लॉक है अगर: महग्रिब <अब < फज्र सच | रोशनी चालू करो | निर्दिष्ट MQTT विषय पर एक ON संदेश प्रकाशित करें अन्यथा: असत्य | बंद करें
प्रक्रिया का पूरा प्रवाह उपरोक्त छवि में एनोटेट किया गया है।
UI के संदर्भ में, मैंने UI/इंटरफ़ेस में 2 स्विच जोड़े:
- इस प्रक्रिया को स्वचालित या मैनुअल चालू करने के लिए एक स्विच।
- मैन्युअल रूप से रोशनी चालू / बंद करने के लिए एक स्विच।
चरण 6: रैपिंग अप
समय उड़ जाता है जिसे कभी याद नहीं किया जाता। इस तरह के सरल 1-दिवसीय प्रोजेक्ट करने से आप इस तेज़ लेन में सांस ले सकते हैं और समय के साथ अपने सॉफ्ट स्किल्स को पुनर्जीवित करने में मदद कर सकते हैं।
मैंने इस परियोजना में इसे दुनिया भर में सरल और पुन: प्रयोज्य रखने के लिए बहुत कुछ करने की कोशिश की।
कृपया इस निर्देश के लिए वोट करें यदि आपको लगता है कि यह परियोजना योग्य है।
रमजान मुबारक!
सिफारिश की:
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): 8 चरण
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): अल्ट्रासोनिक ध्वनि ट्रांसड्यूसर L298N डीसी महिला एडाप्टर बिजली की आपूर्ति एक पुरुष डीसी पिन के साथ Arduino UNOBreadboardयह कैसे काम करता है: सबसे पहले, आप Arduino Uno पर कोड अपलोड करते हैं (यह डिजिटल से लैस एक माइक्रोकंट्रोलर है और कोड (C++) कन्वर्ट करने के लिए एनालॉग पोर्ट
आसान सीढ़ियाँ बैक लाइट ऑटोमेशन: 3 चरण
आसान सीढ़ियाँ बैक लाइट ऑटोमेशन: ASL Arduino Shield✔ 24 सीढ़ियों तक सेटअप उपलब्धता। ✔ फीका प्रभाव। पीडब्लूएम मॉडुलन। ✔ बाजार पर 20 से अधिक प्रमुख होम ऑटोमेशन नियंत्रकों के साथ वायरलेस तरीके से जोड़ा जा सकता है। ✔ स्केच का उपयोग करने के लिए तैयार। ✔ संयुक्त
इंटरएक्टिव यार्ड लाइट्स, वॉकवे लाइट्स: 3 कदम
इंटरएक्टिव यार्ड लाइट्स, वॉकवे लाइट्स: मैं अपने बैक यार्ड के लिए किसी तरह की इंटरेक्टिव यार्ड लाइट्स बनाना चाहता था। विचार यह था, जब कोई एक तरफ चलता है तो यह उस दिशा में एक एनीमेशन सेट करेगा जिस दिशा में आप चल रहे थे। मैंने डॉलर जनरल $1.00 सोलर लाइट्स के साथ शुरुआत की
आईआर रिमोट हैकिंग और ऑटोमेशन: 13 चरण (चित्रों के साथ)
IR रिमोट हैकिंग और ऑटोमेशन: नमस्कार दोस्तों, बचपन से ही मैं टीवी रिमोट कंट्रोलर के बारे में सोच रहा था और यह कैसे काम करता है। यह निर्देश कहानी बताता है कि कैसे मैं एक पुराने रिमोट कंट्रोलर को डिकोड / हैक करने में कामयाब रहा और इसे होम ऑटोमेशन के लिए इस्तेमाल किया। इस निर्देशयोग्य में
DIY क्रिसमस लाइट्स संगीत पर सेट - कोरियोग्राफ की गई हाउस लाइट्स: 15 कदम (चित्रों के साथ)
DIY क्रिसमस लाइट्स संगीत पर सेट - कोरियोग्राफ की गई हाउस लाइट्स: DIY क्रिसमस लाइट्स संगीत पर सेट - कोरियोग्राफ की गई हाउस लाइट्स यह एक शुरुआती DIY नहीं है। आपको विद्युत सुरक्षा के बारे में इलेक्ट्रॉनिक्स, सर्किटी, बेसिक प्रोग्रामिंग और सामान्य स्मार्ट पर एक मजबूत समझ की आवश्यकता होगी। यह DIY एक अनुभवी व्यक्ति के लिए है इसलिए