You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/hi/2-farm/lessons/4-migrate-your-plant-to-the...
co-op-translator[bot] e83309237f
🌐 Update translations via Co-op Translator (#538)
4 weeks ago
..
README.md 🌐 Update translations via Co-op Translator (#538) 4 weeks ago
assignment.md 🌐 Update translations via Co-op Translator (#538) 4 weeks ago
single-board-computer-connect-hub.md 🌐 Update translations via Co-op Translator (#538) 4 weeks ago
wio-terminal-connect-hub.md 🌐 Update translations via Co-op Translator (#538) 4 weeks ago

README.md

अपने पौधे को क्लाउड पर माइग्रेट करें

इस पाठ का स्केच नोट

स्केच नोट नित्या नरसिम्हन द्वारा। बड़े संस्करण के लिए छवि पर क्लिक करें।

यह पाठ Microsoft Reactor के IoT for Beginners Project 2 - Digital Agriculture series का हिस्सा है।

अपने डिवाइस को Azure IoT Hub के साथ क्लाउड से कनेक्ट करें

प्री-लेक्चर क्विज़

प्री-लेक्चर क्विज़

परिचय

पिछले पाठ में, आपने सीखा कि अपने पौधे को MQTT ब्रॉकर से कैसे कनेक्ट करें और किसी सर्वर कोड से एक रिले को नियंत्रित करें जो लोकल रूप से चल रहा हो। यह उस प्रकार की इंटरनेट-कनेक्टेड स्वचालित सिंचाई प्रणाली का मूल है, जिसका उपयोग घर पर व्यक्तिगत पौधों से लेकर वाणिज्यिक खेतों तक किया जाता है।

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

इस पाठ में हम कवर करेंगे:

क्लाउड क्या है?

क्लाउड से पहले, जब कोई कंपनी अपने कर्मचारियों को सेवाएं प्रदान करना चाहती थी (जैसे डेटाबेस या फाइल स्टोरेज), या जनता को (जैसे वेबसाइट), तो वे एक डेटा सेंटर बनाते और चलाते थे। यह एक छोटे कमरे में कुछ कंप्यूटरों से लेकर एक इमारत में कई कंप्यूटरों तक हो सकता था। कंपनी सब कुछ प्रबंधित करती थी, जिसमें शामिल था:

  • कंप्यूटर खरीदना
  • हार्डवेयर रखरखाव
  • पावर और कूलिंग
  • नेटवर्किंग
  • सुरक्षा, जिसमें इमारत और कंप्यूटर पर सॉफ़्टवेयर की सुरक्षा शामिल है
  • सॉफ़्टवेयर इंस्टॉलेशन और अपडेट

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

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

किसी और का कंप्यूटर

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

Microsoft क्लाउड डेटा सेंटर Microsoft क्लाउड डेटा सेंटर का नियोजित विस्तार

ये डेटा सेंटर कई वर्ग किलोमीटर के आकार के हो सकते हैं। ऊपर की छवियां कुछ साल पहले एक Microsoft क्लाउड डेटा सेंटर में ली गई थीं, और प्रारंभिक आकार के साथ-साथ नियोजित विस्तार को दिखाती हैं। विस्तार के लिए साफ किया गया क्षेत्र 5 वर्ग किलोमीटर से अधिक है।

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

कुछ शोध करें: Microsoft का Azure या Google का GCP जैसे प्रमुख क्लाउड्स के बारे में पढ़ें। उनके पास कितने डेटा सेंटर हैं, और वे दुनिया में कहां स्थित हैं?

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

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

Microsoft Azure

Azure Microsoft का डेवलपर क्लाउड है, और यही क्लाउड आप इन पाठों के लिए उपयोग करेंगे। नीचे दिया गया वीडियो Azure का एक छोटा सा अवलोकन देता है:

Azure वीडियो का अवलोकन

क्लाउड सब्सक्रिप्शन बनाएं

क्लाउड में सेवाओं का उपयोग करने के लिए, आपको एक क्लाउड प्रदाता के साथ एक सब्सक्रिप्शन के लिए साइन अप करना होगा। इस पाठ के लिए, आप Microsoft Azure सब्सक्रिप्शन के लिए साइन अप करेंगे। यदि आपके पास पहले से ही एक Azure सब्सक्रिप्शन है, तो आप इस कार्य को छोड़ सकते हैं। यहां वर्णित सब्सक्रिप्शन विवरण लेखन के समय सही हैं, लेकिन बदल सकते हैं।

💁 यदि आप अपने स्कूल के माध्यम से इन पाठों तक पहुंच रहे हैं, तो आपके पास पहले से ही एक Azure सब्सक्रिप्शन उपलब्ध हो सकता है। अपने शिक्षक से जांचें।

Azure के दो अलग-अलग प्रकार के मुफ्त सब्सक्रिप्शन हैं जिनके लिए आप साइन अप कर सकते हैं:

  • Azure for Students - यह 18+ छात्रों के लिए डिज़ाइन किया गया एक सब्सक्रिप्शन है। साइन अप करने के लिए आपको क्रेडिट कार्ड की आवश्यकता नहीं है, और आप यह सत्यापित करने के लिए अपने स्कूल ईमेल पते का उपयोग करते हैं कि आप छात्र हैं। साइन अप करने पर आपको क्लाउड संसाधनों पर खर्च करने के लिए US$100 मिलते हैं, साथ ही मुफ्त सेवाएं जिनमें IoT सेवा का एक मुफ्त संस्करण शामिल है। यह 12 महीने तक चलता है, और आप हर साल नवीनीकरण कर सकते हैं जब तक आप छात्र बने रहते हैं।

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

💁 Microsoft 18 वर्ष से कम उम्र के छात्रों के लिए Azure for Students Starter सब्सक्रिप्शन प्रदान करता है, लेकिन लेखन के समय यह किसी भी IoT सेवाओं का समर्थन नहीं करता।

कार्य - एक मुफ्त क्लाउड सब्सक्रिप्शन के लिए साइन अप करें

यदि आप 18+ आयु के छात्र हैं, तो आप Azure for Students सब्सक्रिप्शन के लिए साइन अप कर सकते हैं। आपको स्कूल ईमेल पते के साथ सत्यापन करना होगा। आप इसे दो तरीकों में से एक में कर सकते हैं:

  • education.github.com/pack पर GitHub छात्र डेवलपर पैक के लिए साइन अप करें। यह आपको GitHub और Microsoft Azure सहित टूल और ऑफ़र तक पहुंच प्रदान करता है। एक बार जब आप डेवलपर पैक के लिए साइन अप कर लेते हैं, तो आप Azure for Students ऑफ़र को सक्रिय कर सकते हैं।

  • सीधे azure.microsoft.com/free/students पर Azure for Students खाते के लिए साइन अप करें।

⚠️ यदि आपका स्कूल ईमेल पता मान्यता प्राप्त नहीं है, तो इस रेपो में एक समस्या उठाएं और हम देखेंगे कि क्या इसे Azure for Students अनुमति सूची में जोड़ा जा सकता है।

यदि आप छात्र नहीं हैं, या आपके पास मान्य स्कूल ईमेल पता नहीं है, तो आप Azure फ्री सब्सक्रिप्शन के लिए साइन अप कर सकते हैं।

  • azure.microsoft.com/free पर Azure फ्री सब्सक्रिप्शन के लिए साइन अप करें।

क्लाउड IoT सेवाएं

आपने जो सार्वजनिक टेस्ट MQTT ब्रॉकर उपयोग किया है, वह सीखने के लिए एक शानदार उपकरण है, लेकिन व्यावसायिक सेटिंग में उपयोग करने के लिए इसमें कई कमियां हैं:

  • विश्वसनीयता - यह एक मुफ्त सेवा है जिसमें कोई गारंटी नहीं है, और इसे कभी भी बंद किया जा सकता है
  • सुरक्षा - यह सार्वजनिक है, इसलिए कोई भी आपके टेलीमेट्री को सुन सकता है या आपके हार्डवेयर को नियंत्रित करने के लिए कमांड भेज सकता है
  • प्रदर्शन - इसे केवल कुछ टेस्ट संदेशों के लिए डिज़ाइन किया गया है, इसलिए यह बड़ी संख्या में संदेशों को संभाल नहीं सकता
  • खोज - यह जानने का कोई तरीका नहीं है कि कौन से डिवाइस कनेक्टेड हैं

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

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

IoT डिवाइस या तो डिवाइस SDK (एक लाइब्रेरी जो सेवा की विशेषताओं के साथ काम करने के लिए कोड प्रदान करती है) का उपयोग करके, या सीधे MQTT या HTTP जैसे संचार प्रोटोकॉल के माध्यम से क्लाउड सेवा से कनेक्ट होते हैं। डिवाइस SDK आमतौर पर सबसे आसान तरीका होता है क्योंकि यह आपके लिए सब कुछ संभालता है, जैसे कि कौन से टॉपिक्स पर प्रकाशित करना है या सब्सक्राइब करना है, और सुरक्षा को कैसे संभालना है।

डिवाइस डिवाइस SDK का उपयोग करके सेवा से कनेक्ट होते हैं। सर्वर कोड भी SDK के माध्यम से सेवा से कनेक्ट होता है

आपका डिवाइस तब आपके एप्लिकेशन के अन्य भागों के साथ इस सेवा के माध्यम से संवाद करता है - उसी तरह जैसे आपने MQTT के माध्यम से टेलीमेट्री भेजी और कमांड प्राप्त किए। यह आमतौर पर सेवा SDK या एक समान लाइब्रेरी का उपयोग करके किया जाता है। संदेश आपके डिवाइस से सेवा तक आते हैं, जहां आपके एप्लिकेशन के अन्य घटक उन्हें पढ़ सकते हैं, और संदेश आपके डिवाइस पर वापस भेजे जा सकते हैं।

जिन डिवाइसों के पास वैध सीक्रेट की नहीं है, वे IoT सेवा से कनेक्ट नहीं हो सकते

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

कुछ शोध करें: एक खुली IoT सेवा होने का क्या नुकसान है जहां कोई भी डिवाइस या कोड कनेक्ट हो सकता है? क्या आप ऐसे विशिष्ट उदाहरण ढूंढ सकते हैं जहां हैकर्स ने इसका फायदा उठाया हो?

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

क्लाउड में एक IoT सेवा बनाएं

अब जब आपके पास Azure सदस्यता है, तो आप IoT सेवा के लिए साइन अप कर सकते हैं। Microsoft की IoT सेवा को Azure IoT Hub कहा जाता है।

Azure IoT Hub लोगो

नीचे दिया गया वीडियो Azure IoT Hub का संक्षिप्त परिचय देता है:

Azure IoT Hub वीडियो का परिचय

🎥 वीडियो देखने के लिए ऊपर दी गई छवि पर क्लिक करें

कुछ समय निकालें और Microsoft IoT Hub दस्तावेज़ में IoT Hub का परिचय पढ़ें।

Azure में उपलब्ध क्लाउड सेवाओं को वेब-आधारित पोर्टल या कमांड-लाइन इंटरफ़ेस (CLI) के माध्यम से कॉन्फ़िगर किया जा सकता है। इस कार्य के लिए, आप CLI का उपयोग करेंगे।

कार्य - Azure CLI इंस्टॉल करें

Azure CLI का उपयोग करने के लिए, पहले इसे आपके पीसी या मैक पर इंस्टॉल करना होगा।

  1. Azure CLI दस्तावेज़ में दिए गए निर्देशों का पालन करें और CLI इंस्टॉल करें।

  2. Azure CLI कई एक्सटेंशन का समर्थन करता है जो Azure सेवाओं की एक विस्तृत श्रृंखला को प्रबंधित करने की क्षमता जोड़ते हैं। निम्नलिखित कमांड को अपने कमांड लाइन या टर्मिनल से चलाकर IoT एक्सटेंशन इंस्टॉल करें:

    az extension add --name azure-iot
    
  3. अपने कमांड लाइन या टर्मिनल से निम्नलिखित कमांड चलाएं ताकि Azure CLI से अपनी Azure सदस्यता में लॉग इन कर सकें।

    az login
    

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

  4. यदि आपके पास कई Azure सदस्यताएँ हैं, जैसे कि स्कूल द्वारा प्रदान की गई और आपकी अपनी Azure for Students सदस्यता, तो आपको वह चुननी होगी जिसे आप उपयोग करना चाहते हैं। निम्नलिखित कमांड चलाएं ताकि आप उन सभी सदस्यताओं की सूची देख सकें जिन तक आपको पहुंच है:

    az account list --output table
    

    आउटपुट में, आपको प्रत्येक सदस्यता का नाम और उसका SubscriptionId दिखाई देगा।

    ➜  ~ az account list --output table
    Name                    CloudName    SubscriptionId                        State    IsDefault
    ----------------------  -----------  ------------------------------------  -------  -----------
    School-subscription     AzureCloud   cb30cde9-814a-42f0-a111-754cb788e4e1  Enabled  True
    Azure for Students      AzureCloud   fa51c31b-162c-4599-add6-781def2e1fbf  Enabled  False
    

    उस सदस्यता को चुनने के लिए जिसे आप उपयोग करना चाहते हैं, निम्नलिखित कमांड का उपयोग करें:

    az account set --subscription <SubscriptionId>
    

    <SubscriptionId> को उस सदस्यता के Id से बदलें जिसे आप उपयोग करना चाहते हैं। इस कमांड को चलाने के बाद, अपने खातों की सूची देखने के लिए कमांड को फिर से चलाएं। आप देखेंगे कि IsDefault कॉलम उस सदस्यता के लिए True के रूप में चिह्नित होगा जिसे आपने अभी सेट किया है।

कार्य - एक संसाधन समूह बनाएं

Azure सेवाओं, जैसे IoT Hub इंस्टेंस, वर्चुअल मशीन, डेटाबेस, या AI सेवाओं को संसाधन कहा जाता है। हर संसाधन को एक संसाधन समूह के अंदर रहना होता है, जो एक या अधिक संसाधनों का तार्किक समूह होता है।

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

  1. दुनिया भर में कई Azure डेटा केंद्र हैं, जो क्षेत्रों में विभाजित हैं। जब आप Azure संसाधन या संसाधन समूह बनाते हैं, तो आपको यह निर्दिष्ट करना होता है कि आप इसे कहाँ बनाना चाहते हैं। स्थानों की सूची प्राप्त करने के लिए निम्नलिखित कमांड चलाएं:

    az account list-locations --output table
    

    आपको स्थानों की एक सूची दिखाई देगी। यह सूची लंबी होगी।

    💁 लेखन के समय, आपके पास 65 स्थानों में तैनात करने का विकल्प है।

        ➜  ~ az account list-locations --output table
    DisplayName               Name                 RegionalDisplayName
    ------------------------  -------------------  -------------------------------------
    East US                   eastus               (US) East US
    East US 2                 eastus2              (US) East US 2
    South Central US          southcentralus       (US) South Central US
    ...
    

    अपने निकटतम क्षेत्र के Name कॉलम से मान को नोट करें। आप Azure भौगोलिक पृष्ठ पर मानचित्र पर क्षेत्रों को देख सकते हैं।

  2. soil-moisture-sensor नामक संसाधन समूह बनाने के लिए निम्नलिखित कमांड चलाएं। संसाधन समूह के नाम आपकी सदस्यता में अद्वितीय होने चाहिए।

    az group create --name soil-moisture-sensor \
                    --location <location>
    

    <location> को उस स्थान से बदलें जिसे आपने पिछले चरण में चुना था।

कार्य - एक IoT Hub बनाएं

अब आप अपने संसाधन समूह में एक IoT Hub संसाधन बना सकते हैं।

  1. अपने IoT Hub संसाधन बनाने के लिए निम्नलिखित कमांड का उपयोग करें:

    az iot hub create --resource-group soil-moisture-sensor \
                      --sku F1 \
                      --partition-count 2 \
                      --name <hub_name>
    

    <hub_name> को अपने हब के लिए एक नाम से बदलें। यह नाम वैश्विक रूप से अद्वितीय होना चाहिए - यानी किसी अन्य व्यक्ति द्वारा बनाए गए किसी भी IoT Hub का नाम समान नहीं हो सकता। इस नाम का उपयोग हब की ओर इशारा करने वाले URL में किया जाता है, इसलिए इसे अद्वितीय होना चाहिए। soil-moisture-sensor- जैसा कुछ उपयोग करें और अंत में एक अद्वितीय पहचानकर्ता जोड़ें, जैसे कुछ यादृच्छिक शब्द या आपका नाम।

    --sku F1 विकल्प इसे मुफ्त स्तर का उपयोग करने के लिए कहता है। मुफ्त स्तर प्रति दिन 8,000 संदेशों का समर्थन करता है और पूर्ण-कीमत स्तरों की अधिकांश सुविधाएँ प्रदान करता है।

    🎓 Azure सेवाओं के विभिन्न मूल्य स्तरों को स्तर कहा जाता है। प्रत्येक स्तर की अलग लागत होती है और यह विभिन्न सुविधाएँ या डेटा वॉल्यूम प्रदान करता है।

    💁 यदि आप मूल्य निर्धारण के बारे में अधिक जानना चाहते हैं, तो आप Azure IoT Hub मूल्य निर्धारण गाइड देख सकते हैं।

    --partition-count 2 विकल्प परिभाषित करता है कि IoT Hub कितने डेटा स्ट्रीम का समर्थन करता है। अधिक विभाजन डेटा अवरोधन को कम करते हैं जब कई चीजें IoT Hub से पढ़ती और लिखती हैं। विभाजन इन पाठों के दायरे से बाहर हैं, लेकिन मुफ्त स्तर IoT Hub बनाने के लिए इस मान को सेट करना आवश्यक है।

    💁 आप अपनी सदस्यता में केवल एक मुफ्त स्तर IoT Hub रख सकते हैं।

IoT Hub बनाया जाएगा। इसे पूरा होने में एक मिनट या उससे अधिक समय लग सकता है।

IoT Hub के साथ संवाद करें

पिछले पाठ में, आपने MQTT का उपयोग किया और विभिन्न विषयों पर संदेश भेजे और प्राप्त किए, प्रत्येक विषय का अलग उद्देश्य था। विभिन्न विषयों पर संदेश भेजने के बजाय, IoT Hub में डिवाइस और हब के बीच संवाद करने के लिए कई परिभाषित तरीके हैं।

💁 अंदर से, IoT Hub और आपके डिवाइस के बीच यह संवाद MQTT, HTTPS या AMQP का उपयोग कर सकता है।

  • डिवाइस से क्लाउड (D2C) संदेश - ये संदेश डिवाइस से IoT Hub को भेजे जाते हैं, जैसे टेलीमेट्री। इन्हें आपके एप्लिकेशन कोड द्वारा IoT Hub से पढ़ा जा सकता है।

    🎓 अंदर से, IoT Hub एक Azure सेवा का उपयोग करता है जिसे Event Hubs कहा जाता है। जब आप हब को भेजे गए संदेशों को पढ़ने के लिए कोड लिखते हैं, तो इन्हें अक्सर घटनाएँ कहा जाता है।

  • क्लाउड से डिवाइस (C2D) संदेश - ये संदेश एप्लिकेशन कोड से IoT Hub के माध्यम से IoT डिवाइस को भेजे जाते हैं।

  • डायरेक्ट मेथड रिक्वेस्ट - ये संदेश एप्लिकेशन कोड से IoT Hub के माध्यम से IoT डिवाइस को भेजे जाते हैं ताकि डिवाइस कुछ करे, जैसे एक एक्टुएटर को नियंत्रित करना। इन संदेशों को प्रतिक्रिया की आवश्यकता होती है ताकि आपका एप्लिकेशन कोड बता सके कि इसे सफलतापूर्वक संसाधित किया गया था या नहीं।

  • डिवाइस ट्विन्स - ये JSON दस्तावेज़ हैं जो डिवाइस और IoT Hub के बीच सिंक्रनाइज़ रहते हैं, और इन्हें डिवाइस द्वारा रिपोर्ट की गई सेटिंग्स या अन्य गुणों को संग्रहीत करने के लिए उपयोग किया जाता है, या IoT Hub द्वारा डिवाइस पर सेट किया जाना चाहिए (इसे इच्छित कहा जाता है)।

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

कुछ शोध करें: इन संदेश प्रकारों के बारे में अधिक पढ़ें डिवाइस-से-क्लाउड संचार मार्गदर्शन और क्लाउड-से-डिवाइस संचार मार्गदर्शन IoT Hub दस्तावेज़ में।

अपने डिवाइस को IoT सेवा से कनेक्ट करें

एक बार हब बन जाने के बाद, आपका IoT डिवाइस इससे कनेक्ट हो सकता है। केवल पंजीकृत डिवाइस ही सेवा से कनेक्ट हो सकते हैं, इसलिए आपको पहले अपने डिवाइस को पंजीकृत करना होगा। जब आप पंजीकरण करते हैं, तो आपको एक कनेक्शन स्ट्रिंग वापस मिल सकती है जिसे डिवाइस कनेक्ट करने के लिए उपयोग कर सकता है। यह कनेक्शन स्ट्रिंग डिवाइस विशिष्ट होती है, और इसमें IoT Hub, डिवाइस और एक गुप्त कुंजी के बारे में जानकारी होती है जो इस डिवाइस को कनेक्ट करने की अनुमति देती है।

🎓 कनेक्शन स्ट्रिंग एक सामान्य शब्द है जो एक टेक्स्ट के टुकड़े को संदर्भित करता है जिसमें कनेक्शन विवरण होते हैं। इनका उपयोग IoT Hubs, डेटाबेस और कई अन्य सेवाओं से कनेक्ट करने के लिए किया जाता है। इनमें आमतौर पर सेवा के लिए एक पहचानकर्ता होता है, जैसे कि URL, और सुरक्षा जानकारी जैसे गुप्त कुंजी। इन्हें सेवा से कनेक्ट करने के लिए SDKs को पास किया जाता है।

⚠️ कनेक्शन स्ट्रिंग को सुरक्षित रखा जाना चाहिए! सुरक्षा पर अधिक विस्तार से एक भविष्य के पाठ में चर्चा की जाएगी।

कार्य - अपने IoT डिवाइस को पंजीकृत करें

Azure CLI का उपयोग करके IoT डिवाइस को आपके IoT Hub के साथ पंजीकृत किया जा सकता है।

  1. डिवाइस को पंजीकृत करने के लिए निम्नलिखित कमांड चलाएं:

    az iot hub device-identity create --device-id soil-moisture-sensor \
                                      --hub-name <hub_name>
    

    <hub_name> को उस नाम से बदलें जिसे आपने अपने IoT Hub के लिए उपयोग किया था।

    यह soil-moisture-sensor के ID के साथ एक डिवाइस बनाएगा।

  2. जब आपका IoT डिवाइस SDK का उपयोग करके आपके IoT Hub से कनेक्ट होता है, तो उसे एक कनेक्शन स्ट्रिंग का उपयोग करना होगा जो हब का URL और एक गुप्त कुंजी देता है। कनेक्शन स्ट्रिंग प्राप्त करने के लिए निम्नलिखित कमांड चलाएं:

    az iot hub device-identity connection-string show --device-id soil-moisture-sensor \
                                                      --output table \
                                                      --hub-name <hub_name>
    

    <hub_name> को उस नाम से बदलें जिसे आपने अपने IoT Hub के लिए उपयोग किया था।

  3. आउटपुट में दिखाई देने वाली कनेक्शन स्ट्रिंग को सहेजें क्योंकि आपको इसकी बाद में आवश्यकता होगी।

कार्य - अपने IoT डिवाइस को क्लाउड से कनेक्ट करें

अपने IoT डिवाइस को क्लाउड से कनेक्ट करने के लिए संबंधित गाइड का अनुसरण करें:

कार्य - घटनाओं की निगरानी करें

अभी के लिए, आप अपने सर्वर कोड को अपडेट नहीं करेंगे। इसके बजाय आप Azure CLI का उपयोग करके अपने IoT डिवाइस से भेजे गए घटनाओं की निगरानी कर सकते हैं।

  1. सुनिश्चित करें कि आपका IoT डिवाइस चल रहा है और मिट्टी की नमी के टेलीमेट्री मान भेज रहा है।

  2. अपने IoT Hub को भेजे गए संदेशों की निगरानी के लिए अपने कमांड प्रॉम्प्ट या टर्मिनल में निम्नलिखित कमांड चलाएं:

    az iot hub monitor-events --hub-name <hub_name>
    

    <hub_name> को उस नाम से बदलें जिसे आपने अपने IoT Hub के लिए उपयोग किया था।

    जैसे ही आपका IoT डिवाइस संदेश भेजता है, आपको कंसोल आउटपुट में संदेश दिखाई देंगे।

    Starting event monitor, use ctrl-c to stop...
    {
        "event": {
            "origin": "soil-moisture-sensor",
            "module": "",
            "interface": "",
            "component": "",
            "payload": "{\"soil_moisture\": 376}"
        }
    },
    {
        "event": {
            "origin": "soil-moisture-sensor",
            "module": "",
            "interface": "",
            "component": "",
            "payload": "{\"soil_moisture\": 381}"
        }
    }
    

    payload की सामग्री आपके IoT डिवाइस द्वारा भेजे गए संदेश से मेल खाएगी।

    लेखन के समय, az iot एक्सटेंशन Apple Silicon पर पूरी तरह से काम नहीं कर रहा है। यदि आप Apple Silicon डिवाइस का उपयोग कर रहे हैं, तो आपको संदेशों की निगरानी किसी अन्य तरीके से करनी होगी, जैसे Azure IoT Tools for Visual Studio Code का उपयोग करना।

  3. इन संदेशों में कई गुण होते हैं जो स्वचालित रूप से जुड़े होते हैं, जैसे कि वे भेजे गए समय का टाइमस्टैम्प। इन्हें एनोटेशन कहा जाता है। सभी संदेश एनोटेशन देखने के लिए निम्नलिखित कमांड का उपयोग करें:

    az iot hub monitor-events --properties anno --hub-name <hub_name>
    

    <hub_name> को उस नाम से बदलें जिसे आपने अपने IoT Hub के लिए उपयोग किया था।

    जैसे ही आपका IoT डिवाइस संदेश भेजता है, आपको कंसोल आउटपुट में संदेश दिखाई देंगे।

    Starting event monitor, use ctrl-c to stop...
    {
        "event": {
            "origin": "soil-moisture-sensor",
            "module": "",
            "interface": "",
            "component": "",
            "properties": {},
            "annotations": {
                "iothub-connection-device-id": "soil-moisture-sensor",
                "iothub-connection-auth-method": "{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
                "iothub-connection-auth-generation-id": "637553997165220462",
                "iothub-enqueuedtime": 1619976150288,
                "iothub-message-source": "Telemetry",
                "x-opt-sequence-number": 1379,
                "x-opt-offset": "550576",
                "x-opt-enqueued-time": 1619976150277
            },
            "payload": "{\"soil_moisture\": 381}"
        }
    }
    

    एनोटेशन में समय मान UNIX समय में होते हैं, जो 1 जनवरी 1970 की मध्यरात्रि से सेकंड की संख्या का प्रतिनिधित्व करते हैं।

    जब आप समाप्त कर लें तो घटना मॉनिटर से बाहर निकलें।

कार्य - अपने IoT डिवाइस को नियंत्रित करें

आप Azure CLI का उपयोग करके अपने IoT डिवाइस पर डायरेक्ट मेथड कॉल कर सकते हैं।

  1. अपने IoT डिवाइस पर relay_on मेथड को कॉल करने के लिए अपने कमांड प्रॉम्प्ट या टर्मिनल में निम्नलिखित कमांड चलाएं:

    az iot hub invoke-device-method --device-id soil-moisture-sensor \
                                    --method-name relay_on \
                                    --method-payload '{}' \
                                    --hub-name <hub_name>
    

    <hub_name> के साथ अपने IoT Hub का नाम बदलें।

यह method-name द्वारा निर्दिष्ट विधि के लिए एक डायरेक्ट मेथड अनुरोध भेजता है। डायरेक्ट मेथड्स एक पेलोड ले सकते हैं जिसमें विधि के लिए डेटा होता है, और इसे method-payload पैरामीटर में JSON के रूप में निर्दिष्ट किया जा सकता है।

आप देखेंगे कि रिले चालू हो जाएगा, और आपके IoT डिवाइस से संबंधित आउटपुट दिखाई देगा:

    Direct method received -  relay_on
    ```

1. उपरोक्त चरण को दोहराएं, लेकिन `--method-name` को `relay_off` पर सेट करें। आप देखेंगे कि रिले बंद हो जाएगा और IoT डिवाइस से संबंधित आउटपुट दिखाई देगा।

---

## 🚀 चुनौती

IoT Hub का मुफ्त टियर एक दिन में 8,000 संदेशों की अनुमति देता है। आपने जो कोड लिखा है, वह हर 10 सेकंड में टेलीमेट्री संदेश भेजता है। हर 10 सेकंड में एक संदेश भेजने पर एक दिन में कितने संदेश होंगे?

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

## व्याख्यान के बाद का क्विज़

[व्याख्यान के बाद का क्विज़](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/16)

## समीक्षा और स्व-अध्ययन

IoT Hub SDK Arduino और Python दोनों के लिए ओपन सोर्स है। GitHub पर कोड रिपॉजिटरी में कई नमूने हैं जो दिखाते हैं कि विभिन्न IoT Hub सुविधाओं के साथ कैसे काम किया जाए।

* यदि आप Wio Terminal का उपयोग कर रहे हैं, तो [GitHub पर Arduino के नमूने](https://github.com/Azure/azure-iot-pal-arduino/tree/master/pal/samples) देखें।
* यदि आप Raspberry Pi या वर्चुअल डिवाइस का उपयोग कर रहे हैं, तो [GitHub पर Python के नमूने](https://github.com/Azure/azure-iot-sdk-python/tree/master/azure-iot-hub/samples) देखें।

## असाइनमेंट

[क्लाउड सेवाओं के बारे में जानें](assignment.md)

**अस्वीकरण**:  
यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को आधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।