# वर्चुअल सिंगल-बोर्ड कंप्यूटर IoT डिवाइस, सेंसर और एक्टुएटर्स खरीदने के बजाय, आप अपने कंप्यूटर का उपयोग IoT हार्डवेयर को सिमुलेट करने के लिए कर सकते हैं। [CounterFit प्रोजेक्ट](https://github.com/CounterFit-IoT/CounterFit) आपको एक ऐप को लोकली चलाने की अनुमति देता है जो सेंसर और एक्टुएटर्स जैसे IoT हार्डवेयर को सिमुलेट करता है। आप लोकल Python कोड से इन सेंसर और एक्टुएटर्स तक पहुंच सकते हैं, ठीक उसी तरह जैसे आप फिजिकल हार्डवेयर का उपयोग करके Raspberry Pi पर कोड लिखते। ## सेटअप CounterFit का उपयोग करने के लिए, आपको अपने कंप्यूटर पर कुछ मुफ्त सॉफ़्टवेयर इंस्टॉल करने की आवश्यकता होगी। ### कार्य आवश्यक सॉफ़्टवेयर इंस्टॉल करें। 1. Python इंस्टॉल करें। Python का नवीनतम संस्करण इंस्टॉल करने के निर्देशों के लिए [Python डाउनलोड पेज](https://www.python.org/downloads/) देखें। 1. Visual Studio Code (VS Code) इंस्टॉल करें। यह वह एडिटर है जिसका उपयोग आप Python में वर्चुअल डिवाइस कोड लिखने के लिए करेंगे। VS Code इंस्टॉल करने के निर्देशों के लिए [VS Code डाक्यूमेंटेशन](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) देखें। > 💁 आप इन पाठों के लिए अपनी पसंदीदा टूल का उपयोग कर सकते हैं, लेकिन पाठों में VS Code का उपयोग करने के आधार पर निर्देश दिए जाएंगे। 1. VS Code Pylance एक्सटेंशन इंस्टॉल करें। यह VS Code के लिए एक एक्सटेंशन है जो Python भाषा समर्थन प्रदान करता है। इस एक्सटेंशन को VS Code में इंस्टॉल करने के निर्देशों के लिए [Pylance एक्सटेंशन डाक्यूमेंटेशन](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance) देखें। CounterFit ऐप को इंस्टॉल और कॉन्फ़िगर करने के निर्देश असाइनमेंट के प्रासंगिक समय पर दिए जाएंगे क्योंकि इसे प्रति-प्रोजेक्ट आधार पर इंस्टॉल किया जाता है। ## हेलो वर्ल्ड किसी नई प्रोग्रामिंग भाषा या तकनीक के साथ शुरुआत करते समय 'Hello World' एप्लिकेशन बनाना पारंपरिक है - एक छोटा एप्लिकेशन जो `"Hello World"` जैसा टेक्स्ट आउटपुट करता है ताकि यह सुनिश्चित किया जा सके कि सभी टूल सही तरीके से कॉन्फ़िगर किए गए हैं। वर्चुअल IoT हार्डवेयर के लिए Hello World ऐप यह सुनिश्चित करेगा कि आपने Python और Visual Studio Code सही तरीके से इंस्टॉल किया है। यह CounterFit से वर्चुअल IoT सेंसर और एक्टुएटर्स के लिए कनेक्ट करेगा। यह किसी हार्डवेयर का उपयोग नहीं करेगा, केवल यह साबित करने के लिए कनेक्ट करेगा कि सब कुछ काम कर रहा है। यह ऐप `nightlight` नामक एक फ़ोल्डर में होगा, और इसे इस असाइनमेंट के बाद के भागों में नाइटलाइट एप्लिकेशन बनाने के लिए अलग-अलग कोड के साथ पुनः उपयोग किया जाएगा। ### Python वर्चुअल एनवायरनमेंट कॉन्फ़िगर करें Python की एक शक्तिशाली विशेषता [Pip पैकेज](https://pypi.org) इंस्टॉल करने की क्षमता है - ये अन्य लोगों द्वारा लिखे गए कोड के पैकेज हैं जो इंटरनेट पर प्रकाशित किए गए हैं। आप एक कमांड के साथ अपने कंप्यूटर पर Pip पैकेज इंस्टॉल कर सकते हैं, फिर उस पैकेज का उपयोग अपने कोड में कर सकते हैं। आप CounterFit से बात करने के लिए एक पैकेज इंस्टॉल करने के लिए Pip का उपयोग करेंगे। डिफ़ॉल्ट रूप से जब आप एक पैकेज इंस्टॉल करते हैं तो यह आपके कंप्यूटर पर हर जगह उपलब्ध होता है, और यह पैकेज संस्करणों के साथ समस्याओं का कारण बन सकता है - जैसे कि एक एप्लिकेशन एक पैकेज के एक संस्करण पर निर्भर करता है जो तब टूट जाता है जब आप किसी अन्य एप्लिकेशन के लिए एक नया संस्करण इंस्टॉल करते हैं। इस समस्या को हल करने के लिए, आप [Python वर्चुअल एनवायरनमेंट](https://docs.python.org/3/library/venv.html) का उपयोग कर सकते हैं, जो मूल रूप से एक समर्पित फ़ोल्डर में Python की एक प्रति है। जब आप Pip पैकेज इंस्टॉल करते हैं तो वे केवल उस फ़ोल्डर में इंस्टॉल होते हैं। > 💁 यदि आप Raspberry Pi का उपयोग कर रहे हैं तो आपने उस डिवाइस पर Pip पैकेज प्रबंधित करने के लिए वर्चुअल एनवायरनमेंट सेटअप नहीं किया है। इसके बजाय आप ग्लोबल पैकेज का उपयोग कर रहे हैं, क्योंकि Grove पैकेज इंस्टॉलर स्क्रिप्ट द्वारा ग्लोबल रूप से इंस्टॉल किए गए हैं। #### कार्य - Python वर्चुअल एनवायरनमेंट कॉन्फ़िगर करें Python वर्चुअल एनवायरनमेंट कॉन्फ़िगर करें और CounterFit के लिए Pip पैकेज इंस्टॉल करें। 1. अपने टर्मिनल या कमांड लाइन से, एक नई डायरेक्टरी बनाने और उसमें नेविगेट करने के लिए निम्नलिखित कमांड चलाएं: ```sh mkdir nightlight cd nightlight ``` 1. अब `.venv` फ़ोल्डर में वर्चुअल एनवायरनमेंट बनाने के लिए निम्नलिखित कमांड चलाएं: ```sh python3 -m venv .venv ``` > 💁 आपको वर्चुअल एनवायरनमेंट बनाने के लिए स्पष्ट रूप से `python3` कॉल करना होगा, ताकि यह सुनिश्चित हो सके कि आपके पास Python 2 के साथ-साथ Python 3 (नवीनतम संस्करण) इंस्टॉल है। यदि आपके पास Python 2 इंस्टॉल है तो `python` कॉल करने पर Python 2 का उपयोग होगा बजाय Python 3 के। 1. वर्चुअल एनवायरनमेंट को सक्रिय करें: * Windows पर: * यदि आप Command Prompt या Windows Terminal के माध्यम से Command Prompt का उपयोग कर रहे हैं, तो निम्नलिखित चलाएं: ```cmd .venv\Scripts\activate.bat ``` * यदि आप PowerShell का उपयोग कर रहे हैं, तो निम्नलिखित चलाएं: ```powershell .\.venv\Scripts\Activate.ps1 ``` > यदि आपको इस सिस्टम पर स्क्रिप्ट चलाने के लिए अक्षम होने के बारे में कोई त्रुटि मिलती है, तो आपको उपयुक्त निष्पादन नीति सेट करके स्क्रिप्ट चलाने को सक्षम करना होगा। आप इसे PowerShell को एडमिनिस्ट्रेटर के रूप में लॉन्च करके और निम्नलिखित कमांड चलाकर कर सकते हैं: ```powershell Set-ExecutionPolicy -ExecutionPolicy Unrestricted ``` पुष्टि करने के लिए `Y` दर्ज करें। फिर PowerShell को पुनः लॉन्च करें और पुनः प्रयास करें। यदि आवश्यक हो तो आप बाद में इस निष्पादन नीति को रीसेट कर सकते हैं। आप Microsoft Docs पर [Execution Policies पेज](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_execution_policies?WT.mc_id=academic-17441-jabenn) में इसके बारे में अधिक पढ़ सकते हैं। * macOS या Linux पर, निम्नलिखित चलाएं: ```cmd source ./.venv/bin/activate ``` > 💁 ये कमांड उसी स्थान से चलाए जाने चाहिए जहां आपने वर्चुअल एनवायरनमेंट बनाने का कमांड चलाया था। आपको `.venv` फ़ोल्डर में नेविगेट करने की आवश्यकता नहीं होगी। आपको हमेशा सक्रिय कमांड और पैकेज इंस्टॉल करने या कोड चलाने के लिए उसी फ़ोल्डर से कमांड चलानी चाहिए जहां आपने वर्चुअल एनवायरनमेंट बनाया था। 1. एक बार वर्चुअल एनवायरनमेंट सक्रिय हो जाने के बाद, डिफ़ॉल्ट `python` कमांड उस संस्करण को चलाएगा जिसका उपयोग वर्चुअल एनवायरनमेंट बनाने के लिए किया गया था। संस्करण प्राप्त करने के लिए निम्नलिखित चलाएं: ```sh python --version ``` आउटपुट में निम्नलिखित शामिल होना चाहिए: ```output (.venv) ➜ nightlight python --version Python 3.9.1 ``` > 💁 आपका Python संस्करण अलग हो सकता है - जब तक यह संस्करण 3.6 या उच्चतर है, आप ठीक हैं। यदि नहीं, तो इस फ़ोल्डर को हटा दें, Python का नया संस्करण इंस्टॉल करें और पुनः प्रयास करें। 1. CounterFit के लिए Pip पैकेज इंस्टॉल करने के लिए निम्नलिखित कमांड चलाएं। इन पैकेजों में मुख्य CounterFit ऐप और Grove हार्डवेयर के लिए शिम्स शामिल हैं। ये शिम्स आपको ऐसा कोड लिखने की अनुमति देते हैं जैसे आप Grove इकोसिस्टम के फिजिकल सेंसर और एक्टुएटर्स का उपयोग करके प्रोग्रामिंग कर रहे हों, लेकिन वर्चुअल IoT डिवाइस से जुड़े हों। ```sh pip install CounterFit pip install counterfit-connection pip install counterfit-shims-grove ``` ये Pip पैकेज केवल वर्चुअल एनवायरनमेंट में इंस्टॉल किए जाएंगे और इसके बाहर उपलब्ध नहीं होंगे। ### कोड लिखें एक बार Python वर्चुअल एनवायरनमेंट तैयार हो जाने के बाद, आप 'Hello World' एप्लिकेशन के लिए कोड लिख सकते हैं। #### कार्य - कोड लिखें कंसोल में `"Hello World"` प्रिंट करने के लिए एक Python एप्लिकेशन बनाएं। 1. वर्चुअल एनवायरनमेंट के अंदर, एक Python फ़ाइल `app.py` बनाने के लिए निम्नलिखित चलाएं: * Windows पर: ```cmd type nul > app.py ``` * macOS या Linux पर: ```cmd touch app.py ``` 1. वर्तमान फ़ोल्डर को VS Code में खोलें: ```sh code . ``` > 💁 यदि आपका टर्मिनल macOS पर `command not found` लौटाता है, तो इसका मतलब है कि VS Code को आपके PATH में नहीं जोड़ा गया है। आप [VS Code डाक्यूमेंटेशन](https://code.visualstudio.com/docs/setup/mac?WT.mc_id=academic-17441-jabenn#_launching-from-the-command-line) के "Launching from the command line" सेक्शन में दिए गए निर्देशों का पालन करके VS Code को अपने PATH में जोड़ सकते हैं और फिर कमांड चला सकते हैं। Windows और Linux पर VS Code डिफ़ॉल्ट रूप से आपके PATH में इंस्टॉल होता है। 1. जब VS Code लॉन्च होता है, तो यह Python वर्चुअल एनवायरनमेंट को सक्रिय करेगा। चयनित वर्चुअल एनवायरनमेंट नीचे की स्टेटस बार में दिखाई देगा: ![VS Code में चयनित वर्चुअल एनवायरनमेंट दिखा रहा है](../../../../../translated_images/vscode-virtual-env.8ba42e04c3d533cf677e16cbe5ed9a3b80f62c6964472dc84b6f940800f0909f.hi.png) 1. यदि VS Code टर्मिनल पहले से चल रहा है जब VS Code शुरू होता है, तो इसमें वर्चुअल एनवायरनमेंट सक्रिय नहीं होगा। सबसे आसान तरीका है टर्मिनल को **Kill the active terminal instance** बटन का उपयोग करके बंद करना: ![VS Code Kill the active terminal instance बटन](../../../../../translated_images/vscode-kill-terminal.1cc4de7c6f25ee08f423f0ead714e61d069fac1eb2089e97b8a7bbcb3d45fe5e.hi.png) आप यह बता सकते हैं कि टर्मिनल में वर्चुअल एनवायरनमेंट सक्रिय है क्योंकि टर्मिनल प्रॉम्प्ट पर वर्चुअल एनवायरनमेंट का नाम एक प्रीफिक्स होगा। उदाहरण के लिए, यह हो सकता है: ```sh (.venv) ➜ nightlight ``` यदि आपके प्रॉम्प्ट पर `.venv` प्रीफिक्स नहीं है, तो टर्मिनल में वर्चुअल एनवायरनमेंट सक्रिय नहीं है। 1. *Terminal -> New Terminal* चुनकर या `` CTRL+` `` दबाकर एक नया VS Code टर्मिनल लॉन्च करें। नया टर्मिनल वर्चुअल एनवायरनमेंट लोड करेगा, और इसे सक्रिय करने के लिए कॉल टर्मिनल में दिखाई देगा। प्रॉम्प्ट में वर्चुअल एनवायरनमेंट का नाम (`.venv`) होगा: ```output ➜ nightlight source .venv/bin/activate (.venv) ➜ nightlight ``` 1. VS Code एक्सप्लोरर से `app.py` फ़ाइल खोलें और निम्नलिखित कोड जोड़ें: ```python print('Hello World!') ``` `print` फ़ंक्शन जो भी इसे पास किया जाता है उसे कंसोल में प्रिंट करता है। 1. VS Code टर्मिनल से, अपने Python ऐप को चलाने के लिए निम्नलिखित चलाएं: ```sh python app.py ``` आउटपुट में निम्नलिखित होगा: ```output (.venv) ➜ nightlight python app.py Hello World! ``` 😀 आपका 'Hello World' प्रोग्राम सफल रहा! ### 'हार्डवेयर' कनेक्ट करें दूसरे 'Hello World' चरण के रूप में, आप CounterFit ऐप चलाएंगे और अपने कोड को इससे कनेक्ट करेंगे। यह IoT हार्डवेयर को किसी डेव किट में प्लग इन करने के वर्चुअल समकक्ष है। #### कार्य - 'हार्डवेयर' कनेक्ट करें 1. VS Code टर्मिनल से, निम्नलिखित कमांड के साथ CounterFit ऐप लॉन्च करें: ```sh counterfit ``` ऐप चलना शुरू करेगा और आपके वेब ब्राउज़र में खुलेगा: ![ब्राउज़र में चल रहा Counter Fit ऐप](../../../../../translated_images/counterfit-first-run.433326358b669b31d0e99c3513cb01bfbb13724d162c99cdcc8f51ecf5f9c779.hi.png) इसे *Disconnected* के रूप में चिह्नित किया जाएगा, और शीर्ष-दाएं कोने में LED बंद होगा। 1. `app.py` के शीर्ष पर निम्नलिखित कोड जोड़ें: ```python from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000) ``` यह कोड `counterfit_connection` मॉड्यूल से `CounterFitConnection` क्लास को इंपोर्ट करता है, जो पहले इंस्टॉल किए गए `counterfit-connection` Pip पैकेज से आता है। फिर यह `127.0.0.1` पर चल रहे CounterFit ऐप से कनेक्शन को इनिशियलाइज़ करता है, जो आपके लोकल कंप्यूटर (अक्सर *localhost* कहा जाता है) तक पहुंचने के लिए हमेशा उपयोग किया जा सकता है, पोर्ट 5000 पर। > 💁 यदि आपके पास पोर्ट 5000 पर अन्य ऐप्स चल रहे हैं, तो आप कोड में पोर्ट को अपडेट करके इसे बदल सकते हैं, और CounterFit को `CounterFit --port ` चलाकर लॉन्च कर सकते हैं, `` को उस पोर्ट से बदलें जिसे आप उपयोग करना चाहते हैं। 1. आपको **Create a new integrated terminal** बटन चुनकर एक नया VS Code टर्मिनल लॉन्च करना होगा। ऐसा इसलिए है क्योंकि वर्तमान टर्मिनल में CounterFit ऐप चल रहा है। ![VS Code Create a new integrated terminal बटन](../../../../../translated_images/vscode-new-terminal.77db8fc0f9cd31824b0e49a201beafe4ae4616d6c7339992cb2819e789b3eff9.hi.png) 1. इस नए टर्मिनल में, पहले की तरह `app.py` फ़ाइल चलाएं। CounterFit की स्थिति **Connected** में बदल जाएगी और LED जल उठेगा। ![Counter Fit कनेक्टेड दिखा रहा है](../../../../../translated_images/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.hi.png) > 💁 आप इस कोड को [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device) फ़ोल्डर में पा सकते हैं। 😀 आपका हार्डवेयर से कनेक्शन सफल रहा! **अस्वीकरण**: यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता सुनिश्चित करने का प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को आधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं।