~ SMAK ~ - MicroPython पर asyncio लाइब्रेरी का उपयोग करके स्मार्ट होमस्टैड्स के लिए प्रोग्राम करने योग्य नियंत्रक



प्रस्तावना


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

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

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



सामान्य पहूंच


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

नियंत्रक में पहले से ही अधिक शक्तिशाली संचार चैनल हो सकते हैं और इंटरनेट के बाद के उपयोग के साथ एक स्थिर मेष नेटवर्क ग्राफ को व्यवस्थित करने के लिए MQTT या ZigBee जैसे अधिक उन्नत प्रोटोकॉल का उपयोग कर सकते हैं।

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

  • ग्रीनहाउस - तापमान, प्रकाश व्यवस्था, मिट्टी और वायु आर्द्रता
  • उद्यान - पानी, मिट्टी की नमी
  • इनक्यूबेटर - तापमान, आर्द्रता, ट्रे रोटेशन, ध्वनि
  • ब्रूडर - तापमान, आर्द्रता और प्रकाश
  • कॉप - तापमान, प्रकाश व्यवस्था
  • बीहाइव - तापमान, आर्द्रता, वजन और ध्वनि (झुंड)
  • – , ,
  • – ,
  • – ,
  • – ,
  • – ,
  • – ( ) (, )

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

इस भाग में, मेटलंगेज आपको प्रोजेक्ट के विवरण को एक पठनीय रूप में पढ़ने की अनुमति देता है, जो प्रलेखन उत्पन्न करने के साथ-साथ मुद्रित सर्किट बोर्डों में व्यक्त हार्डवेयर उपकरणों और तर्क की एक सूची के लिए उपयोगी होगा, जिस पर या जिस पर ये हार्डवेयर डिवाइस कनेक्ट होने चाहिए।

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

जैसा कि आप एक विचार कहते हैं, कि यह कैसे फ़्लोट करेगा, इसलिए स्मार्ट मनोर एक स्मार्ट होमस्टेड है, एक विचार का जन्मस्थान अल्ताई है, हालांकि, स्वचालन भी उपयुक्त है, हालांकि यह स्मार्ट की परिभाषा के संदर्भ में इस तरह का एक प्रकार का शब्द है और निश्चित रूप से, प्रोग्रामेबल कंट्रोलर का उपयोग करके। । अपरकेस अक्षरों को मिलाकर और अंग्रेजी और रूसी शब्दों को मिलाकर, यह निकला - ~ SMAK ~ , लेकिन सिस्टम विवरण की मेटा भाषा, क्रमशः, ~ MEAT ~ । इस पाक अवधारणा से बाहर आया - आवेदन ~ SMAK ~ ~ MEAT ~ का उपयोग कर । वैसे, नियंत्रक और उपकरणों की बातचीत के लिए आदिम वायरलेस प्रोटोकॉल जो पहले से अपने स्वयं के प्रोटोकॉल के साथ संपन्न नहीं हैं, मैंने ~ JuJu ~ कहा

RFP + या अन्य के साथ ESP8266 और Arduino की क्षमताओं का उपयोग करके हार्डवेयर कार्यान्वयन की कल्पना की गई है, या अधिक आधुनिक, लेकिन सेंसर और एक्ट्यूएटर्स के लिए कोई कम सस्ता नहीं है - रिले, वाल्व, स्विच, आदि, यदि वे किसी भी कारण से सीधे कनेक्ट नहीं किए जा सकते हैं, तो तर्क ही। नियंत्रक को ESP32 पर रखने का प्रयास करें, और यदि यह विफल रहता है, तो STM32 पर। लोहे की लागत को कम करना लक्ष्य है। मैं हिस्टैरिसीस या वायु गुणवत्ता मापने वाले उपकरणों के साथ तापमान नियंत्रकों जैसे कई प्रक्रियाओं के हार्डवेयर कार्यान्वयन का उपयोग स्वीकार करता हूं, लेकिन जब से मैं इलेक्ट्रॉनिक्स इंजीनियर नहीं हूं, कैपेसिटर, प्रतिरोधों और ट्रांजिस्टर का उपयोग करके सर्किट विकसित करना मेरे लिए दर्दनाक है और यह हार्डवेयर और सॉफ्टवेयर कार्यान्वयन के बीच एक उचित संतुलन निर्धारित करता है, और प्रत्यक्ष भागीदारी की भी इच्छा,या कम से कम नियंत्रक में क्या हो रहा है का चिंतन।

सॉफ्टवेयर कार्यान्वयन मेटलंगेज ~ एमईएटी ~ , एसिंको लाइब्रेरी और संबंधित एल्गोरिदम के सिंटैक्स पर आधारित है, सामान्य तर्क ~ SMAK ~ नीचे वर्णित है। सुविधा में होने वाली प्रक्रियाओं को नियंत्रित करने का उद्देश्य कुछ ऑपरेटिंग परिस्थितियों को बनाए रखने के साथ-साथ विचलन की स्थिति में इन स्थितियों को बहाल करना है, इसके अलावा, एक मजबूत विचलन के साथ, अधिक ऊर्जावान कार्यों का उपयोग किया जा सकता है, साथ ही आपातकालीन स्थितियों के लिए प्रतिक्रिया भी हो सकती है।

भविष्य में, निम्नलिखित शब्दावली का उपयोग पाठ में किया जाएगा:

स्रोत (स्रोत) - सेंसर, आने वाले संचार चैनल
उपभोक्ता - कार्यकारी उपकरण, आउटगोइंग संचार चैनल

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

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

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

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

डिवाइस के प्रकार के आधार पर, ड्राइवर एक से अधिक सूचना चैनल का उपयोग कर सकता है, उदाहरण के लिए, एक DHT तापमान और आर्द्रता सेंसर तापमान और आर्द्रता संचारित करने के लिए 2 चैनलों का उपयोग करता है, और DS18B20 डिवाइस गर्म मंजिल के कलेक्टर को नियंत्रित करने के लिए एक आम बस से जुड़ा हुआ है - और भी, या एक एकीकृत सर्वो ड्राइव, एक ही समय में कई मोटर्स या वाल्व को नियंत्रित करना।

ड्राइवर की विशेषताओं में डिवाइस के लिए विशिष्ट अनुरोधों और आदेशों का एक सेट शामिल है, उनके निष्पादन के लिए देरी का समय, साथ ही संचार का प्रकार जिसके माध्यम से एक संकेत प्रेषित होता है, जो हार्डवेयर हो सकता है (1वायर, I2C, एसपीआई, UART, आदि)। वायरलेस (वाईफाई, आरएफ-रेडियो, बीटी, आदि), जो अनुरोधों और आदेशों को प्रेषित करने के तरीकों का अनुपालन करता है। इसके अलावा, ड्राइवर लोड होने पर सेल्फ डायग्नोस्टिक मोड प्रदान करता है, इसे बंद करने पर कार्रवाई करता है, और एसिंक्रोनस मोड में सामान्य ऑपरेशन के दौरान अप्रत्याशित परिस्थितियों का निदान करता है। ड्राइवर कई अतुल्यकालिक कार्यों को चला सकता है, उदाहरण के लिए, यदि डिवाइस की स्थिति पर प्रतिक्रिया आवश्यक है।

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

योजनाओं में आगे पहले से संचित और निर्मित का प्रकाशन है:

  • ~ SMAK ~ - सामान्य कार्यप्रणाली एल्गोरिदम का विवरण
  • ~ SMAK ~ - मेटलुंगेज का वर्णन ~ MEAT ~
  • ~ SMAK ~ - प्रोटोकॉल विवरण ~ JuJu ~
  • ~ SMAK ~ - ~ SMAK ~ में डिवाइस ड्राइवर बनाने के लिए आवश्यकताओं का विवरण
  • ~ SMAK ~ - अनुप्रयोग अभ्यास

Source: https://habr.com/ru/post/undefined/


All Articles