# IoT में गहराई से अध्ययन करें ![इस पाठ का एक संक्षिप्त विवरण](https://github.com/microsoft/IoT-For-Beginners/blob/main/sketchnotes/lesson-2.jpg?raw=true) > स्केचनोट [नित्य नरसिम्हन](https://github.com/nitya) द्वारा बनाया गया है। एक बड़े संस्करण के लिए छवि पर क्लिक करें। यह पाठ [Hello IoT series](https://youtube.com/playlist?list=PLmsFUfdnGr3xRts0TIwyaHyQuHaNQcb6-) के हिस्से के रूप में [Microsoft Reactor](https://developer.microsoft.com/reactor/?WT.mc_id=अकादमिक-17441-jabenn) से पढ़ाया गया था। पाठ को 2 वीडियो में पढ़ाया गया था - 1 घंटे का पाठ, और 1 घंटे का कार्यालय समय जिसमे पाठ के कुछ हिस्सों में गहराई से अध्ययन करते हैं और सवालों के जवाब देते हैं। [![पाठ 2: IoT में एक गहरी डुबकी](https://img.youtube.com/vi/t0SySWw3z9M/0.jpg)](https://youtu.be/t0SySWw3z9M) [![पाठ 2: IoT - कार्यालय समय में एक गहरी गोता](https://img.youtube.com/vi/tTZYf9EST1E/0.jpg)](https://youtu.be/tTZYf9EST1E) > वीडियो देखने के लिए ऊपर की छवियों पर क्लिक करें ## पूर्व व्याख्यान प्रश्नोत्तरी [व्याख्यान पूर्व प्रश्नोत्तरी](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/3) ## परिचय यह पाठ पिछले पाठ में शामिल कुछ अवधारणाओं में गहराई से अध्ययन करता है। इस पाठ में हम कवर करेंगे: * [एक IoT एप्लिकेशन के अंश](#एक-IoT-एप्लिकेशन-के-अंश) * [माइक्रोकंट्रोलर्स में गहराई से अध्ययन करें](#माइक्रोकंट्रोलर-में-गहराई-से-अध्ययन-करें) * [सिंगल-बोर्ड कंप्यूटरों में गहराई से अध्ययन करें](#सिंगल-बोर्ड-कंप्यूटर-में-गहराई-से-अध्ययन-करें) ## एक IoT एप्लिकेशन के अंश IoT एप्लिकेशन के दो घटक हैं *इंटरनेट* और *थिंग*। आइए इन दो अंशों को थोड़ा और विस्तार से देखें। ### थिंग ![एक रास्पबेरी पाई 4](https://github.com/microsoft/IoT-For-Beginners/raw/main/images/raspberry-pi-4.jpg) IoT का **थिंग** भाग एक ऐसे उपकरण को संदर्भित करता है जो भौतिक दुनिया के साथ इंटरैक्ट कर सकता है। ये उपकरण आमतौर पर छोटे, कम कीमत वाले कंप्यूटर होते हैं, जो कम गति पर चलते हैं और कम शक्ति का उपयोग करते हैं - उदाहरण के लिए, किलोबाइट रैम के साथ साधारण माइक्रोकंट्रोलर (पीसी में गीगाबाइट के विपरीत) केवल कुछ सौ मेगाहर्ट्ज़ पर चल रहे हैं (पीसी में गीगाहर्ट्ज़ के विपरीत), लेकिन कभी-कभी इतनी कम बिजली की खपत करते हुए कि वे बैटरी पर हफ्तों, महीनों या वर्षों तक चल सकते हैं। ये उपकरण भौतिक दुनिया के साथ बातचीत करते हैं, या तो सेंसर का उपयोग करके अपने आसपास से डेटा इकट्ठा करते हैं या भौतिक परिवर्तन करने के लिए आउटपुट या एक्चुएटर्स को नियंत्रित करते हैं। इसका विशिष्ट उदाहरण एक स्मार्ट थर्मोस्टेट है - एक उपकरण जिसमें एक तापमान सेंसर होता है, एक वांछित तापमान जैसे डायल या टचस्क्रीन सेट करने का साधन, और एक हीटिंग या कूलिंग सिस्टम से एक कनेक्शन जिसे तापमान का पता चलने पर चालू किया जा सकता है वांछित सीमा से बाहर है। तापमान संवेदक यह पता लगाता है कि कमरा बहुत ठंडा है और एक एक्चुएटर हीटिंग को चालू कर देता है। ![एक IoT डिवाइस के इनपुट के रूप में तापमान और एक डायल, और आउटपुट के रूप में हीटर का नियंत्रण दिखाने वाला एक आरेख](https://github.com/microsoft/IoT-For-Beginners/raw/main/images/basic-thermostat.png) विभिन्न चीजों की एक विशाल श्रृंखला है जो IoT उपकरणों के रूप में कार्य कर सकती है, समर्पित हार्डवेयर से जो एक चीज को समझती है, सामान्य प्रयोजन के उपकरणों तक, यहां तक ​​कि आपका स्मार्टफोन भी! एक स्मार्टफोन अपने आसपास की दुनिया का पता लगाने के लिए सेंसर का उपयोग कर सकता है, और दुनिया के साथ बातचीत करने के लिए एक्ट्यूएटर्स का उपयोग कर सकता है - उदाहरण के लिए आपके स्थान का पता लगाने के लिए एक जीपीएस सेंसर का उपयोग करना और एक स्पीकर का उपयोग करके आपको गंतव्य पर नेविगेशन निर्देश देना। ✅अपने आस-पास मौजूद अन्य प्रणालियों के बारे में सोचें जो सेंसर से डेटा पढ़ती हैं और निर्णय लेने के लिए इसका उपयोग करती हैं। एक उदाहरण ओवन पर थर्मोस्टैट होगा। क्या आप और खोज सकते हैं? ### इंटरनेट IoT एप्लिकेशन के **इंटरनेट** पक्ष में ऐसे एप्लिकेशन होते हैं जिन्हें IoT डिवाइस डेटा भेजने और प्राप्त करने के लिए कनेक्ट कर सकता है, साथ ही अन्य एप्लिकेशन जो IoT डिवाइस से डेटा को प्रोसेस कर सकते हैं और IoT डिवाइस एक्ट्यूएटर्स को कौन से अनुरोध भेजने के लिए निर्णय लेने में मदद करते हैं। एक विशिष्ट सेटअप में किसी प्रकार की क्लाउड सेवा होगी जिससे IoT डिवाइस कनेक्ट होता है, और यह क्लाउड सेवा सुरक्षा जैसी चीज़ों को संभालती है, साथ ही IoT डिवाइस से संदेश प्राप्त करती है, और डिवाइस पर संदेश वापस भेजती है। यह क्लाउड सेवा तब अन्य अनुप्रयोगों से कनेक्ट होगी जो सेंसर डेटा को संसाधित या संग्रहीत कर सकते हैं, या निर्णय लेने के लिए अन्य सिस्टम के डेटा के साथ सेंसर डेटा का उपयोग कर सकते हैं। डिवाइस हमेशा वाई-फ़ाई या वायर्ड कनेक्शन के माध्यम से सीधे इंटरनेट से कनेक्ट नहीं होते हैं। कुछ डिवाइस ब्लूटूथ जैसी तकनीकों पर एक-दूसरे से बात करने के लिए जाल नेटवर्किंग का उपयोग करते हैं, एक हब डिवाइस के माध्यम से जुड़ते हैं जिसमें इंटरनेट कनेक्शन होता है। एक स्मार्ट थर्मोस्टेट के उदाहरण के साथ, थर्मोस्टैट होम वाईफाई का उपयोग करके क्लाउड में चल रही क्लाउड सेवा से जुड़ जाएगा। यह इस क्लाउड सेवा को तापमान डेटा भेजेगा, और वहां से इसे किसी प्रकार के डेटाबेस में लिखा जाएगा जिससे मकान मालिक फोन ऐप का उपयोग करके वर्तमान और पिछले तापमान की जांच कर सके। क्लाउड में एक अन्य सेवा को पता होगा कि मकान मालिक को कौन सा तापमान चाहिए, और हीटिंग सिस्टम को चालू या बंद करने के लिए कहने के लिए क्लाउड सेवा के माध्यम से IoT डिवाइस पर संदेश वापस भेजें। ![एक आईओटी डिवाइस के इनपुट के रूप में तापमान और एक डायल दिखाने वाला एक आरेख, आईओटी डिवाइस क्लाउड से 2 तरह से संचार करता है, जो बदले में एक फोन के लिए 2-तरफा संचार होता है, और आईओटी से आउटपुट के रूप में हीटर का नियंत्रण होता है। डिवाइस](https://github.com/microsoft/IoT-For-Beginners/raw/main/images/mobile-controlled-thermostat.png) एक और भी स्मार्ट संस्करण क्लाउड में AI का उपयोग अन्य IoT उपकरणों से जुड़े अन्य सेंसर से डेटा के साथ कर सकता है जैसे कि ऑक्यूपेंसी सेंसर जो यह पता लगाते हैं कि कौन से कमरे उपयोग में हैं, साथ ही डेटा जैसे मौसम और यहां तक ​​​​कि आपका कैलेंडर, इस पर निर्णय लेने के लिए कि कैसे तापमान को स्मार्ट तरीके से सेट करें। उदाहरण के लिए, यदि यह आपके कैलेंडर से पढ़ता है कि आप छुट्टी पर हैं, तो यह आपके हीटिंग को बंद कर सकता है, या आपके द्वारा उपयोग किए जाने वाले कमरों के आधार पर कमरे-दर-कमरे के आधार पर हीटिंग को बंद कर सकता है, डेटा से अधिक से अधिक सटीक होना सीखता है अधिक समय तक। ![एक आईओटी डिवाइस के इनपुट के रूप में कई तापमान सेंसर और एक डायल दिखाते हुए एक आरेख, क्लाउड के लिए 2-तरफा संचार वाला आईओटी डिवाइस, जिसके बदले में फोन, कैलेंडर और मौसम सेवा के लिए 2-तरफा संचार होता है, और IoT डिवाइस से आउटपुट के रूप में हीटर का नियंत्रण](https://github.com/microsoft/IoT-For-Beginners/raw/main/images/smarter-thermostat.png) ✅कौन सा अन्य डेटा इंटरनेट से जुड़े थर्मोस्टेट को स्मार्ट बनाने में मदद कर सकता है? ### किनारे पर IoT हालाँकि IoT में I का अर्थ इंटरनेट है, इन उपकरणों को इंटरनेट से कनेक्ट करने की आवश्यकता नहीं है। कुछ मामलों में, डिवाइस 'एज' डिवाइस से कनेक्ट हो सकते हैं - गेटवे डिवाइस जो आपके स्थानीय नेटवर्क पर चलते हैं, जिसका अर्थ है कि आप इंटरनेट पर कॉल किए बिना डेटा को प्रोसेस कर सकते हैं। यह तब तेज हो सकता है जब आपके पास बहुत अधिक डेटा या धीमा इंटरनेट कनेक्शन हो, यह आपको ऑफ़लाइन चलाने की अनुमति देता है जहां इंटरनेट कनेक्टिविटी संभव नहीं है जैसे कि जहाज पर या आपदा क्षेत्र में मानवीय संकट का जवाब देते समय, और आपको डेटा को निजी रखें। कुछ उपकरणों में क्लाउड टूल्स का उपयोग करके बनाए गए प्रोसेसिंग कोड होंगे और निर्णय लेने के लिए इंटरनेट कनेक्शन का उपयोग किए बिना डेटा एकत्र करने और प्रतिक्रिया देने के लिए इसे स्थानीय रूप से चलाएंगे। इसका एक उदाहरण ऐप्पल होमपॉड, अमेज़ॅन एलेक्सा, या Google होम जैसे स्मार्ट होम डिवाइस हैं, जो क्लाउड में प्रशिक्षित एआई मॉडल का उपयोग करके आपकी आवाज सुनेंगे, लेकिन डिवाइस पर स्थानीय रूप से चल रहे हैं। जब कोई निश्चित शब्द या वाक्यांश बोला जाता है तो ये उपकरण 'जागृत' होंगे, और उसके बाद ही प्रसंस्करण के लिए इंटरनेट पर अपना भाषण भेजेंगे। डिवाइस उचित बिंदु पर भाषण भेजना बंद कर देगा जैसे कि जब यह आपके भाषण में विराम का पता लगाता है। वेक शब्द के साथ डिवाइस को जगाने से पहले आप जो कुछ भी कहते हैं, और डिवाइस के सुनना बंद करने के बाद आप जो कुछ भी कहते हैं वह इंटरनेट पर डिवाइस प्रदाता को नहीं भेजा जाएगा, और इसलिए निजी होगा। ✅अन्य परिदृश्यों के बारे में सोचें जहां गोपनीयता महत्वपूर्ण है इसलिए डेटा का प्रसंस्करण क्लाउड के बजाय किनारे पर बेहतर ढंग से किया जाएगा। एक संकेत के रूप में - उन IoT उपकरणों के बारे में सोचें जिनमें कैमरे या अन्य इमेजिंग डिवाइस हैं। ### आईओटी सुरक्षा किसी भी इंटरनेट कनेक्शन के साथ, सुरक्षा एक महत्वपूर्ण विचार है। एक पुराना मजाक है कि 'आईओटी में एस सुरक्षा के लिए खड़ा है' - आईओटी में कोई 'एस' नहीं है, जिसका अर्थ है कि यह सुरक्षित नहीं है। IoT डिवाइस क्लाउड सेवा से कनेक्ट होते हैं, और इसलिए केवल उस क्लाउड सेवा की तरह ही सुरक्षित होते हैं - यदि आपकी क्लाउड सेवा किसी डिवाइस को कनेक्ट करने की अनुमति देती है तो दुर्भावनापूर्ण डेटा भेजा जा सकता है, या वायरस के हमले हो सकते हैं। इसके बहुत ही वास्तविक दुनिया के परिणाम हो सकते हैं क्योंकि IoT डिवाइस अन्य उपकरणों को इंटरैक्ट और नियंत्रित करते हैं। उदाहरण के लिए, [स्टक्सनेट वर्म](https://wikipedia.org/wiki/Stuxnet) ने सेंट्रीफ्यूज में वाल्वों को खराब करने के लिए हेरफेर किया। हैकर्स ने [बेबी मॉनिटर तक पहुंचने के लिए खराब सुरक्षा](https://www.npr.org/sections/thetwo-way/2018/06/05/617196788/s-c-mom-says-baby-monitor-was-hacked-experts-say-many-devices-are-vulnerable) का भी फायदा उठाया है और अन्य घरेलू निगरानी उपकरण। > 💁कभी-कभी IoT डिवाइस और एज डिवाइस डेटा को निजी और सुरक्षित रखने के लिए इंटरनेट से पूरी तरह से अलग नेटवर्क पर चलते हैं। इसे [एयर-गैपिंग](https://wikipedia.org/wiki/Air_gap_(networking)) के नाम से जाना जाता है। ## माइक्रोकंट्रोलर में गहराई से अध्ययन करें पिछले पाठ में, हमने माइक्रोकंट्रोलर पेश किए थे। आइए अब उनमें गहराई से देखें। ### सी पी यू सीपीयू माइक्रोकंट्रोलर का 'दिमाग' है। यह प्रोसेसर है जो आपके कोड को चलाता है और किसी भी कनेक्टेड डिवाइस से डेटा भेज सकता है और डेटा प्राप्त कर सकता है। सीपीयू में एक या अधिक कोर हो सकते हैं - अनिवार्य रूप से एक या अधिक सीपीयू जो आपके कोड को चलाने के लिए एक साथ काम कर सकते हैं। सीपीयू एक सेकंड में कई लाख या अरबों बार टिक करने के लिए एक घड़ी पर भरोसा करते हैं। प्रत्येक टिक, या चक्र, सीपीयू द्वारा की जाने वाली क्रियाओं को सिंक्रनाइज़ करता है। प्रत्येक टिक के साथ, सीपीयू एक प्रोग्राम से एक निर्देश निष्पादित कर सकता है, जैसे बाहरी डिवाइस से डेटा पुनर्प्राप्त करना या गणितीय गणना करना। यह नियमित चक्र अगले निर्देश के संसाधित होने से पहले सभी कार्यों को पूरा करने की अनुमति देता है। घड़ी का चक्र जितना तेज़ होता है, उतने ही अधिक निर्देश जो प्रत्येक सेकंड में संसाधित किए जा सकते हैं, और इसलिए सीपीयू जितना तेज़ होता है। CPU की गति [Hertz (Hz)](https://wikipedia.org/wiki/Hertz) में मापी जाती है, एक मानक इकाई जहां 1 Hz का अर्थ है प्रति सेकंड एक चक्र या घड़ी का टिक। > 🎓CPU की गति अक्सर MHz या GHz में दी जाती है। 1MHz 1 मिलियन हर्ट्ज है, 1GHz 1 बिलियन हर्ट्ज है। > 💁 CPU [fetch-decode-execute cycle](https://wikipedia.org/wiki/Instruction_cycle) का उपयोग करके प्रोग्राम निष्पादित करते हैं। प्रत्येक घड़ी की टिक के लिए, सीपीयू मेमोरी से अगला निर्देश प्राप्त करेगा, इसे डीकोड करेगा, फिर इसे निष्पादित करेगा जैसे कि 2 नंबर जोड़ने के लिए अंकगणितीय तर्क इकाई (एएलयू) का उपयोग करना। कुछ निष्पादन चलाने के लिए कई टिक लगेंगे, इसलिए अगला चक्र निर्देश पूरा होने के बाद अगले टिक पर चलेगा। ![फ़ेच डिकोड, रैम में संग्रहीत प्रोग्राम से फ़ेच लेने का निर्देश दिखाते हुए चक्रों को निष्पादित करता है, फिर इसे सीपीयू पर डिकोडिंग और निष्पादित करता है](https://github.com/microsoft/IoT-For-Beginners/raw/main/images/fetch-decode-execute.png) माइक्रोकंट्रोलर की घड़ी की गति डेस्कटॉप या लैपटॉप कंप्यूटर, या यहां तक ​​कि अधिकांश स्मार्टफ़ोन की तुलना में बहुत कम होती है। उदाहरण के लिए वाईओ टर्मिनल में एक सीपीयू है जो 120 मेगाहट्र्ज या 120,000,000 चक्र प्रति सेकेंड पर चलता है। ✅एक औसत पीसी या मैक में कई गीगाहर्ट्ज़ पर चलने वाले कई कोर के साथ एक सीपीयू होता है, जिसका अर्थ है कि घड़ी एक सेकंड में अरबों बार टिकती है। अपने कंप्यूटर की घड़ी की गति पर शोध करें और तुलना करें कि यह Wio टर्मिनल से कितनी बार तेज है। प्रत्येक घड़ी चक्र शक्ति खींचता है और गर्मी उत्पन्न करता है। जितनी तेजी से टिक होते हैं, उतनी ही अधिक बिजली की खपत होती है और अधिक गर्मी उत्पन्न होती है। पीसी में गर्मी को दूर करने के लिए हीट सिंक और पंखे होते हैं, जिसके बिना वे गर्म हो जाते हैं और सेकंड के भीतर बंद हो जाते हैं। माइक्रोकंट्रोलर के पास अक्सर न तो होता है क्योंकि वे अधिक कूलर चलाते हैं और इसलिए बहुत धीमे होते हैं। पीसी की रन ऑफ मेन पावर या बड़ी बैटरी कुछ घंटों के लिए, माइक्रोकंट्रोलर छोटी बैटरी से दिनों, महीनों या वर्षों तक चल सकते हैं। माइक्रोकंट्रोलर में कोर भी हो सकते हैं जो अलग-अलग गति से चलते हैं, जब बिजली की खपत कम करने के लिए सीपीयू की मांग कम होती है, तो धीमी कम पावर कोर पर स्विच किया जाता है। > 💁 कुछ पीसी और मैक तेज हाई पावर कोर और धीमी लो पावर कोर के समान मिश्रण को अपना रहे हैं, बैटरी बचाने के लिए स्विच कर रहे हैं। उदाहरण के लिए, नवीनतम Apple लैपटॉप में M1 चिप चल रहे कार्य के आधार पर बैटरी जीवन या गति को अनुकूलित करने के लिए 4 प्रदर्शन कोर और 4 दक्षता कोर के बीच स्विच कर सकती है। ✅थोड़ा शोध करें: सीपीयू के बारे में [विकिपीडिया सीपीयू लेख](https://wikipedia.org/wiki/Central_processing_unit) पर पढ़ें। #### टास्क वाईओ टर्मिनल की जांच करें। यदि आप इन पाठों के लिए Wio Terminal का उपयोग कर रहे हैं, तो CPU खोजने का प्रयास करें। इंटर्नल की तस्वीर के लिए [Wio Terminal उत्पाद पृष्ठ](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) का *हार्डवेयर ओव्हरव्यू* अनुभाग ढूंढें और पीछे की ओर स्पष्ट प्लास्टिक विंडो के माध्यम से CPU को खोजने का प्रयास करें। ### मेमरी माइक्रोकंट्रोलर में आमतौर पर दो प्रकार की मेमोरी होती है - प्रोग्राम मेमोरी और रैंडम-एक्सेस मेमोरी (RAM)। प्रोग्राम मेमोरी गैर-वाष्पशील होती है, जिसका अर्थ है कि इसमें जो कुछ भी लिखा जाता है वह तब रहता है जब डिवाइस में कोई शक्ति नहीं होती है। यह वह मेमोरी है जो आपके प्रोग्राम कोड को स्टोर करती है। RAM प्रोग्राम द्वारा चलाने के लिए उपयोग की जाने वाली मेमोरी है, जिसमें आपके प्रोग्राम द्वारा आवंटित चर और बाह्य उपकरणों से एकत्रित डेटा होता है। रैम अस्थिर है, जब बिजली चली जाती है तो सामग्री खो जाती है, प्रभावी रूप से आपके प्रोग्राम को रीसेट कर देती है। > 🎓प्रोग्राम मेमोरी आपके कोड को स्टोर करती है और पावर न होने पर रहती है। > 🎓RAM का उपयोग आपके प्रोग्राम को चलाने के लिए किया जाता है और बिजली न होने पर रीसेट हो जाता है सीपीयू की तरह, एक माइक्रोकंट्रोलर पर मेमोरी एक पीसी या मैक से छोटे परिमाण के आदेश हैं। एक सामान्य पीसी में 8 गीगाबाइट (GB) RAM, या 8,000,000,000 बाइट्स हो सकते हैं, प्रत्येक बाइट में एक अक्षर या 0-255 की संख्या को संग्रहीत करने के लिए पर्याप्त स्थान होता है। एक माइक्रोकंट्रोलर में केवल किलोबाइट (KB) RAM होगी, जिसमें एक किलोबाइट 1,000 बाइट्स होगा। ऊपर बताए गए Wio टर्मिनल में 192KB RAM या 192,000 बाइट्स हैं - एक औसत PC से 40,000 गुना कम! नीचे दिया गया चित्र 192KB और 8GB के बीच के सापेक्ष आकार के अंतर को दर्शाता है - केंद्र में छोटा बिंदु 192KB का प्रतिनिधित्व करता है। ![192KB और 8GB के बीच की तुलना - 40,000 गुना से अधिक बड़ी](https://github.com/microsoft/IoT-For-Beginners/raw/main/images/ram-comparison.png) प्रोग्राम स्टोरेज भी पीसी से छोटा होता है। एक विशिष्ट पीसी में प्रोग्राम स्टोरेज के लिए 500GB हार्ड ड्राइव हो सकती है, जबकि एक माइक्रोकंट्रोलर में केवल किलोबाइट्स या शायद कुछ मेगाबाइट्स (MB) स्टोरेज (1MB 1,000KB, या 1,000,000 बाइट्स) हो सकता है। Wio टर्मिनल में 4MB प्रोग्राम स्टोरेज है। ✅ थोड़ा शोध करें: इसे पढ़ने के लिए आप जिस कंप्यूटर का उपयोग कर रहे हैं उसमें कितनी रैम और स्टोरेज है? यह एक माइक्रोकंट्रोलर से कैसे तुलना करता है? ### इनपुट आउटपुट माइक्रोकंट्रोलर्स को सेंसर से डेटा पढ़ने और एक्चुएटर्स को कंट्रोल सिग्नल भेजने के लिए इनपुट और आउटपुट (I/O) कनेक्शन की जरूरत होती है। उनमें आमतौर पर कई सामान्य-उद्देश्य इनपुट/आउटपुट (GPIO) पिन होते हैं। इन पिनों को सॉफ्टवेयर में इनपुट के रूप में कॉन्फ़िगर किया जा सकता है (अर्थात वे एक संकेत प्राप्त करते हैं), या आउटपुट (वे एक संकेत भेजते हैं)। ️🧠⬅️सेंसर से मूल्यों को पढ़ने के लिए इनपुट पिन का उपयोग किया जाता है ️🧠➡️आउटपुट पिन एक्चुएटर्स को निर्देश भेजते हैं ✅आप इसके बारे में अगले पाठ में और जानेंगे। #### टास्क वाईओ टर्मिनल की जांच करें। यदि आप इन पाठों के लिए Wio Terminal का उपयोग कर रहे हैं, तो GPIO पिन खोजें। यह जानने के लिए कि कौन से पिन कौन से हैं, [Wio Terminal उत्पाद पृष्ठ](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) के *पिनआउट डायग्राम* अनुभाग खोजें। Wio Terminal एक स्टिकर के साथ आता है जिसे आप पिन नंबर के साथ पीछे की तरफ माउंट कर सकते हैं, इसलिए इसे अभी जोड़ें यदि आपने पहले से नहीं किया है। ### भौतिक माप माइक्रोकंट्रोलर आमतौर पर आकार में छोटे होते हैं, सबसे छोटे के साथ, [फ़्रीस्केल काइनेटिस KL03 MCU गोल्फ़ बॉल के डिंपल में फ़िट होने के लिए पर्याप्त छोटा होता है](https://www.edn.com/tiny-arm-cortex-m0-based-mcu-shrinks-package/)। बस एक पीसी में सीपीयू 40 मिमी x 40 मिमी माप सकता है, और इसमें हीट सिंक और पंखे शामिल नहीं हैं जो यह सुनिश्चित करने के लिए आवश्यक हैं कि सीपीयू बिना ओवरहीटिंग के कुछ सेकंड से अधिक समय तक चल सके, एक पूर्ण माइक्रोकंट्रोलर से काफी बड़ा। माइक्रोकंट्रोलर, केस, स्क्रीन, और कनेक्शन और घटकों की एक श्रृंखला के साथ Wio टर्मिनल डेवलपर किट एक खुला हुआ Intel i9 CPU से बहुत बड़ा नहीं है, और एक हीट सिंक और पंखे के साथ CPU से काफी छोटा है! | डिवाइस | आकार | | ----------------------------- | --------------------- | | फ्रीस्केल काइनेटिस KL03 | 1.6 मिमी x 2 मिमी x 1 मिमी | | वाईओ टर्मिनल | 72मिमी x 57मिमी x 12मिमी | | इंटेल i9 सीपीयू, हीट सिंक और पंखा | 136 मिमी x 145 मिमी x 103 मिमी | ### फ्रेमवर्क और ऑपरेटिंग सिस्टम उनकी कम गति और स्मृति आकार के कारण, माइक्रोकंट्रोलर शब्द के डेस्कटॉप अर्थ में एक ऑपरेटिंग सिस्टम (OS) नहीं चलाते हैं। ऑपरेटिंग सिस्टम जो आपके कंप्यूटर को चलाता है (Windows, Linux, या macOS) को माइक्रोकंट्रोलर के लिए पूरी तरह से अनावश्यक कार्यों को चलाने के लिए बहुत अधिक मेमोरी और प्रोसेसिंग पावर की आवश्यकता होती है। याद रखें कि माइक्रोकंट्रोलर्स को आमतौर पर एक या अधिक विशिष्ट कार्यों को करने के लिए प्रोग्राम किया जाता है, पीसी या मैक जैसे सामान्य-उद्देश्य वाले कंप्यूटर के विपरीत, जिसे उपयोगकर्ता इंटरफ़ेस का समर्थन करने, संगीत या फिल्में चलाने, दस्तावेज़ या कोड लिखने, गेम खेलने के लिए उपकरण प्रदान करने की आवश्यकता होती है, या इंटरनेट ब्राउज़ करें। ओएस के बिना माइक्रोकंट्रोलर प्रोग्राम करने के लिए आपको कुछ टूलिंग की आवश्यकता होती है ताकि आप अपना कोड इस तरह से बना सकें कि माइक्रोकंट्रोलर चल सके, एपीआई का उपयोग करके जो किसी भी बाह्य उपकरणों से बात कर सके। प्रत्येक माइक्रोकंट्रोलर अलग होता है, इसलिए निर्माता सामान्य रूप से मानक ढांचे का समर्थन करते हैं जो आपको अपना कोड बनाने के लिए एक मानक 'नुस्खा' का पालन करने की अनुमति देते हैं और इसे किसी भी माइक्रोकंट्रोलर पर चलाते हैं जो उस ढांचे का समर्थन करता है। आप ओएस का उपयोग करके माइक्रोकंट्रोलर प्रोग्राम कर सकते हैं - जिसे अक्सर रीयल-टाइम ऑपरेटिंग सिस्टम (आरटीओएस) के रूप में संदर्भित किया जाता है, क्योंकि इन्हें रीयल-टाइम में बाह्य उपकरणों से डेटा भेजने के लिए डिज़ाइन किया गया है। ये ऑपरेटिंग सिस्टम बहुत हल्के होते हैं और इस तरह की सुविधाएँ प्रदान करते हैं: * मल्टी-थ्रेडिंग, आपके कोड को एक ही समय में कोड के एक से अधिक ब्लॉक चलाने की अनुमति देता है, या तो कई कोर पर या एक कोर को चालू करके * इंटरनेट पर सुरक्षित रूप से संचार करने की अनुमति देने के लिए नेटवर्किंग * स्क्रीन वाले उपकरणों पर यूजर इंटरफेस (यूआई) के निर्माण के लिए ग्राफिकल यूजर इंटरफेस (जीयूआई) घटक। ✅ कुछ अलग RTOS के बारे में पढ़ें: [Azure RTOS](https://azure.microsoft.com/services/rtos/?WT.mc_id=academic-17441-jabenn), [FreeRTOS](https://www.freertos.org), [ज़ेफिर](https://www.zephyrproject.org) #### अरुडिनो ![Arduino logo](https://github.com/microsoft/IoT-For-Beginners/raw/main/images/arduino-logo.svg) [Arduino](https://www.arduino.cc) शायद सबसे लोकप्रिय माइक्रोकंट्रोलर फ्रेमवर्क है, खासकर छात्रों, शौक़ीन लोगों और निर्माताओं के बीच। Arduino एक ओपन-सोर्स इलेक्ट्रॉनिक्स प्लेटफॉर्म है जो सॉफ्टवेयर और हार्डवेयर को मिलाता है। आप Arduino से स्वयं या अन्य निर्माताओं से Arduino संगत बोर्ड खरीद सकते हैं, फिर Arduino फ्रेमवर्क का उपयोग करके कोड कर सकते हैं। Arduino बोर्डों को C या C++ में कोड किया गया है। C या C++ का उपयोग करने से आपके कोड को बहुत छोटा संकलित किया जा सकता है और तेजी से चलाया जा सकता है, एक सीमित डिवाइस जैसे कि माइक्रोकंट्रोलर पर कुछ आवश्यक है। एक Arduino एप्लिकेशन के मूल को एक स्केच के रूप में संदर्भित किया जाता है और 2 कार्यों के साथ C/C++ कोड है - `setup` और `loop`। जब बोर्ड शुरू होता है, तो Arduino फ्रेमवर्क कोड एक बार `setup` फ़ंक्शन चलाएगा, फिर यह `loop` फ़ंक्शन को बार-बार चलाएगा, इसे तब तक लगातार चलाएगा जब तक कि बिजली बंद न हो जाए। आप अपना setup कोड `setup` फ़ंक्शन में लिखेंगे, जैसे कि वाईफाई और क्लाउड सेवाओं से कनेक्ट करना या इनपुट और आउटपुट के लिए पिन इनिशियलाइज़ करना। तब आपके लूप कोड में प्रोसेसिंग कोड होगा, जैसे सेंसर से पढ़ना और मान को क्लाउड पर भेजना। आप सामान्य रूप से प्रत्येक लूप में देरी शामिल करेंगे, उदाहरण के लिए, यदि आप चाहते हैं कि हर 10 सेकंड में केवल सेंसर डेटा भेजा जाए तो आप लूप के अंत में 10 सेकंड की देरी जोड़ देंगे ताकि माइक्रोकंट्रोलर सो सके, बिजली बचा सके, फिर 10 सेकंड बाद जरूरत पड़ने पर लूप को फिर से चला सकें। ![पहले एक Arduino स्केच रनिंग सेटअप, फिर बार-बार लूप चलाना](https://github.com/microsoft/IoT-For-Beginners/raw/main/images/arduino-sketch.png) ✅इस प्रोग्राम के आर्किटेक्चर को *इवेंट लूप* या *मैसेज लूप* के रूप में जाना जाता है। कई एप्लिकेशन हुड के तहत इसका उपयोग करते हैं और अधिकांश डेस्कटॉप एप्लिकेशन के लिए मानक हैं जो विंडोज, मैकओएस या लिनक्स जैसे ओएस पर चलते हैं। `loop` उपयोगकर्ता इंटरफ़ेस घटकों जैसे बटन, या कीबोर्ड जैसे उपकरणों के संदेशों को सुनता है, और उनका जवाब देता है। आप इस [इवेंट लूप पर लेख](https://wikipedia.org/wiki/Event_loop) में और अधिक पढ़ सकते हैं। Arduino माइक्रोकंट्रोलर और I/O पिन के साथ इंटरैक्ट करने के लिए मानक पुस्तकालय प्रदान करता है, विभिन्न माइक्रोकंट्रोलर पर चलने के लिए हुड के तहत विभिन्न कार्यान्वयन के साथ। उदाहरण के लिए, [`delay` फ़ंक्शन](https://www.arduino.cc/reference/en/language/functions/time/delay/) एक निश्चित अवधि के लिए कार्यक्रम को रोक देगा, [`digitalRead` फ़ंक्शन](https://www.arduino.cc/reference/en/language/functions/digital-io/digitalread/) दिए गए पिन से `HIGH` या `LOW` का मान पढ़ेगा, चाहे किसी भी बोर्ड पर कोड चालू है। इन मानक पुस्तकालयों का मतलब है कि एक बोर्ड के लिए लिखे गए Arduino कोड को किसी अन्य Arduino बोर्ड के लिए पुन: संकलित किया जा सकता है और यह मानते हुए चलेगा कि पिन समान हैं और बोर्ड समान सुविधाओं का समर्थन करते हैं। तृतीय-पक्ष Arduino पुस्तकालयों का एक बड़ा पारिस्थितिकी तंत्र है जो आपको अपने Arduino प्रोजेक्ट्स में अतिरिक्त सुविधाएँ जोड़ने की अनुमति देता है, जैसे सेंसर और एक्चुएटर्स का उपयोग करना या क्लाउड IoT सेवाओं से जुड़ना। ##### टास्क वाईओ टर्मिनल की जांच करें। यदि आप इन पाठों के लिए Wio Terminal का उपयोग कर रहे हैं, तो पिछले पाठ में आपके द्वारा लिखे गए कोड को दोबारा पढ़ें। `setup` और `loop` फ़ंक्शन ढूंढें। लूप फ़ंक्शन को बार-बार कॉल करने के लिए सीरियल आउटपुट की निगरानी करें। सीरियल पोर्ट पर लिखने के लिए `setup` फ़ंक्शन में कोड जोड़ने का प्रयास करें और देखें कि यह कोड केवल एक बार रीबूट करने पर ही कॉल किया जाता है। अपने डिवाइस को साइड में पावर स्विच के साथ रीबूट करने का प्रयास करें यह दिखाने के लिए कि हर बार डिवाइस रीबूट होने पर इसे कहा जाता है। ## सिंगल-बोर्ड कंप्यूटर में गहराई से अध्ययन करें पिछले पाठ में, हमने सिंगल-बोर्ड कंप्यूटर पेश किए थे। आइए अब उनमें गहराई से देखें। ### रास्पबेरी पाई ![रास्पबेरी पाई लोगो](https://github.com/microsoft/IoT-For-Beginners/raw/main/images/raspberry-pi-logo.png) [रास्पबेरी पाई फाउंडेशन](https://www.raspberrypi.org) यूके की एक चैरिटी है जिसकी स्थापना 2009 में कंप्यूटर विज्ञान के अध्ययन को बढ़ावा देने के लिए की गई थी, खासकर स्कूल स्तर पर। इस मिशन के हिस्से के रूप में, उन्होंने एक सिंगल-बोर्ड कंप्यूटर विकसित किया, जिसे रास्पबेरी पाई कहा जाता है। रास्पबेरी पाई वर्तमान में 3 प्रकारों में उपलब्ध है - एक पूर्ण आकार का संस्करण, छोटा पाई ज़ीरो, और एक गणना मॉड्यूल जिसे आपके अंतिम IoT डिवाइस में बनाया जा सकता है। ![एक रास्पबेरी पाई 4](https://github.com/microsoft/IoT-For-Beginners/raw/main/images/raspberry-pi-4.jpg) पूर्ण आकार के रास्पबेरी पाई का नवीनतम पुनरावृत्ति रास्पबेरी पाई 4 बी है। इसमें एक क्वाड-कोर (4 कोर) सीपीयू है जो 1.5GHz, 2, 4, या 8GB RAM, गीगाबिट ईथरनेट, वाईफाई, 4k स्क्रीन को सपोर्ट करने वाले 2 HDMI पोर्ट, एक ऑडियो और कम्पोजिट वीडियो आउटपुट पोर्ट, USB पोर्ट (2 USB) पर चलता है। 2.0, 2 यूएसबी 3.0), 40 जीपीआईओ पिन, रास्पबेरी पाई कैमरा मॉड्यूल के लिए एक कैमरा कनेक्टर और एक एसडी कार्ड स्लॉट। यह सब एक बोर्ड पर है जो 88mm x 58mm x 19.5mm है और यह 3A USB-C बिजली की आपूर्ति द्वारा संचालित है। ये 35 अमेरिकी डॉलर से शुरू होते हैं, जो पीसी या मैक से काफी सस्ता है। > 💁एक कीबोर्ड में निर्मित Pi4 के साथ एक सभी कंप्यूटर में एक Pi400 भी है। ![एक रास्पबेरी पाई ज़ीरो](https://github.com/microsoft/IoT-For-Beginners/raw/main/images/raspberry-pi-zero.jpg) पाई ज़ीरो बहुत छोटा है, कम शक्ति के साथ। इसमें सिंगल-कोर 1GHz CPU, 512MB RAM, WiFi (ज़ीरो W मॉडल में), एक सिंगल HDMI पोर्ट, एक माइक्रो-USB पोर्ट, 40 GPIO पिन, एक रास्पबेरी पाई कैमरा मॉड्यूल के लिए एक कैमरा कनेक्टर और एक SD है। कार्ड का स्थान। यह 65 मिमी x 30 मिमी x 5 मिमी मापता है, और बहुत कम शक्ति खींचता है। ज़ीरो यूएस $ 5 है, वाई-फाई यूएस $ 10 के साथ डब्ल्यू संस्करण के साथ। >🎓 इन दोनों में सीपीयू एआरएम प्रोसेसर हैं, इंटेल/एएमडी x86 या x64 प्रोसेसर के विपरीत जो आपको अधिकांश पीसी और मैक में मिलते हैं। ये कुछ माइक्रोकंट्रोलर्स के साथ-साथ लगभग सभी मोबाइल फोन, माइक्रोसॉफ्ट सर्फेस एक्स और नए ऐप्पल सिलिकॉन-आधारित ऐप्पल मैक में पाए जाने वाले सीपीयू के समान हैं। रास्पबेरी पाई के सभी वेरिएंट रास्पबेरी पाई ओएस नामक डेबियन लिनक्स का एक संस्करण चलाते हैं। यह बिना डेस्कटॉप के एक लाइट संस्करण के रूप में उपलब्ध है, जो 'हेडलेस' परियोजनाओं के लिए एकदम सही है, जहां आपको स्क्रीन की आवश्यकता नहीं है, या एक पूर्ण डेस्कटॉप वातावरण के साथ एक पूर्ण संस्करण, एक वेब ब्राउज़र, कार्यालय अनुप्रयोगों, कोडिंग टूल, और खेल चूंकि ओएस डेबियन लिनक्स का एक संस्करण है, आप डेबियन पर चलने वाले किसी भी एप्लिकेशन या टूल को इंस्टॉल कर सकते हैं और पीआई के अंदर एआरएम प्रोसेसर के लिए बनाया गया है। #### टास्क रास्पबेरी पाई की जांच करें। यदि आप इन पाठों के लिए रास्पबेरी पाई का उपयोग कर रहे हैं, तो बोर्ड पर विभिन्न हार्डवेयर घटकों के बारे में पढ़ें। * आप [रास्पबेरी पाई हार्डवेयर डॉक्यूमेंटेशन पेज](https://www.raspberrypi.org/documentation/hardware/raspberrypi/) पर इस्तेमाल किए गए प्रोसेसर के बारे में जानकारी पा सकते हैं। आप जिस पाई का उपयोग कर रहे हैं उसमें प्रयुक्त प्रोसेसर के बारे में पढ़ें। * GPIO पिन का पता लगाएँ। [रास्पबेरी पाई GPIO दस्तावेज़ीकरण](https://www.raspberrypi.org/documentation/hardware/raspberrypi/gpio/README.md) पर उनके बारे में और पढ़ें। अपने पाई पर अलग-अलग पिन की पहचान करने के लिए [GPIO पिन यूसेज गाइड](https://www.raspberrypi.org/documentation/usage/gpio/README.md) का इस्तेमाल करें। ### प्रोग्रामिंग सिंगल-बोर्ड कंप्यूटर सिंगल-बोर्ड कंप्यूटर पूर्ण कंप्यूटर हैं, जो एक पूर्ण OS चला रहे हैं। इसका मतलब यह है कि माइक्रोकंट्रोलर के विपरीत प्रोग्रामिंग भाषाओं, ढांचे और टूल की एक विस्तृत श्रृंखला है जिसका उपयोग आप उन्हें कोड करने के लिए कर सकते हैं, जो Arduino जैसे ढांचे में बोर्ड के समर्थन पर भरोसा करते हैं। अधिकांश प्रोग्रामिंग भाषाओं में पुस्तकालय होते हैं जो सेंसर और एक्चुएटर्स से डेटा भेजने और प्राप्त करने के लिए GPIO पिन तक पहुंच सकते हैं। ✅ आप किन प्रोग्रामिंग भाषाओं से परिचित हैं? क्या वे लिनक्स पर समर्थित हैं? रास्पबेरी पाई पर IoT अनुप्रयोगों के निर्माण के लिए सबसे आम प्रोग्रामिंग भाषा पायथन है। पाई के लिए डिज़ाइन किए गए हार्डवेयर का एक विशाल पारिस्थितिकी तंत्र है, और इनमें से लगभग सभी में संबंधित कोड शामिल हैं जो उन्हें पायथन पुस्तकालयों के रूप में उपयोग करने के लिए आवश्यक हैं। इनमें से कुछ पारिस्थितिक तंत्र 'टोपी' पर आधारित होते हैं - तथाकथित क्योंकि वे एक टोपी की तरह पाई के ऊपर बैठते हैं और एक बड़े सॉकेट से 40 GPIO पिन से जुड़ते हैं। ये टोपियां अतिरिक्त क्षमताएं प्रदान करती हैं, जैसे स्क्रीन, सेंसर, रिमोट-नियंत्रित कार, या एडेप्टर आपको मानकीकृत केबल के साथ सेंसर प्लग-इन करने की अनुमति देते हैं ### पेशेवर IoT परिनियोजन में सिंगल-बोर्ड कंप्यूटर का उपयोग एकल-बोर्ड कंप्यूटर का उपयोग पेशेवर IoT परिनियोजन के लिए किया जाता है, न कि केवल डेवलपर किट के रूप में। वे हार्डवेयर को नियंत्रित करने और मशीन लर्निंग मॉडल चलाने जैसे जटिल कार्यों को चलाने के लिए एक शक्तिशाली तरीका प्रदान कर सकते हैं। उदाहरण के लिए, एक [रास्पबेरी पाई 4 कंप्यूट मॉड्यूल](https://www.raspberrypi.org/blog/raspberry-pi-compute-module-4/) है जो रास्पबेरी पाई 4 की सारी शक्ति प्रदान करता है लेकिन एक में अधिकांश पोर्ट के बिना कॉम्पैक्ट और सस्ता फॉर्म फैक्टर, जिसे कस्टम हार्डवेयर में स्थापित करने के लिए डिज़ाइन किया गया है। --- ## 🚀चुनौती पिछले पाठ में चुनौती थी कि आप अपने घर, स्कूल या कार्यस्थल में जितने हो सके उतने IoT उपकरणों को सूचीबद्ध करें। इस सूची में प्रत्येक डिवाइस के लिए, क्या आपको लगता है कि वे माइक्रोकंट्रोलर या सिंगल-बोर्ड कंप्यूटर, या यहां तक ​​कि दोनों के मिश्रण के आसपास बनाए गए हैं? ## व्याख्यान के बाद प्रश्नोत्तरी [व्याख्यान के बाद प्रश्नोत्तरी](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/4) ## समीक्षा और आत्म अध्ययन * Arduino प्लेटफॉर्म के बारे में अधिक समझने के लिए [Arduino गेटिंग स्टार्ट गाइड](https://www.arduino.cc/en/Guide/Introduction) पढ़ें। * रास्पबेरी पाई के बारे में अधिक जानने के लिए [रास्पबेरी पाई 4 का परिचय](https://www.raspberrypi.org/products/raspberry-pi-4-model-b/) पढ़ें। * [इलेक्ट्रिकल इंजीनियरिंग जर्नल में सीपीयू, एमपीयू, एमसीयू और जीपीयू के अक्सर पूछे जाने वाले सवाल क्या हैं](https://www.eejournal.com/article/what-the-faq-are-cpus-mpus-mcus-and-gpus/) में कुछ अवधारणाओं और शब्दों के बारे में और जानें। ✅आप किस हार्डवेयर प्लेटफॉर्म का उपयोग करना चाहते हैं, या यदि आप इसके बजाय यह तय करने के लिए [हार्डवेयर गाइड](https://github.com/microsoft/IoT-For-Beginners/blob/main/hardware.md) में लिंक का पालन करके दिखाए गए लागतों के साथ इन गाइड का उपयोग करें वर्चुअल डिवाइस का उपयोग करें। ## कार्यभार [माइक्रोकंट्रोलर और सिंगल-बोर्ड कंप्यूटरों की तुलना और तुलना करें](https://github.com/microsoft/IoT-For-Beginners/blob/main/1-getting-started/lessons/2-deeper-dive/assignment.md)