# भर्चुअल सिंगल-बोर्ड कम्प्युटर 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) मा हेर्नुहोस्। > 💁 तपाईंलाई कुनै पनि Python IDE वा सम्पादक प्रयोग गर्न स्वतन्त्रता छ यदि तपाईंलाई मनपर्ने उपकरण छ भने, तर पाठहरूले 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` कल गर्दा Python 2 प्रयोग हुनेछ। 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` आदेशले भर्चुअल वातावरण सिर्जना गर्न प्रयोग गरिएको Python संस्करण चलाउनेछ। संस्करण प्राप्त गर्न निम्न आदेश चलाउनुहोस्: ```sh python --version ``` आउटपुटमा निम्न समावेश हुनेछ: ```output (.venv) ➜ nightlight python --version Python 3.9.1 ``` > 💁 तपाईंको Python संस्करण फरक हुन सक्छ - जबसम्म यो संस्करण 3.6 वा उच्च छ तपाईं ठीक हुनुहुन्छ। यदि छैन भने, यो फोल्डर मेटाउनुहोस्, Python को नयाँ संस्करण स्थापना गर्नुहोस् र फेरि प्रयास गर्नुहोस्। 1. CounterFit को लागि Pip प्याकेजहरू स्थापना गर्न निम्न आदेशहरू चलाउनुहोस्। यी प्याकेजहरूमा मुख्य CounterFit एप्लिकेसन साथै Grove हार्डवेयरको लागि शिमहरू समावेश छन्। यी शिमहरूले तपाईंलाई भौतिक सेन्सर र एक्ट्युएटरहरू प्रयोग गरेर कोड लेखे जस्तै कोड लेख्न अनुमति दिन्छन् तर भर्चुअल IoT उपकरणहरूमा जडान गरिएका। ```sh pip install CounterFit pip install counterfit-connection pip install counterfit-shims-grove ``` यी Pip प्याकेजहरू केवल भर्चुअल वातावरणमा स्थापना गरिनेछ, र बाहिर उपलब्ध हुने छैन। ### कोड लेख्नुहोस् Python भर्चुअल वातावरण तयार भएपछि, तपाईं 'Hello World' एप्लिकेसनको लागि कोड लेख्न सक्नुहुन्छ। #### कार्य - कोड लेख्नुहोस् कन्सोलमा `"Hello World"` प्रिन्ट गर्ने Python एप्लिकेसन बनाउनुहोस्। 1. भर्चुअल वातावरण भित्र, आफ्नो टर्मिनल वा कमाण्ड लाइनबाट निम्न आदेश चलाएर `app.py` नामक Python फाइल बनाउनुहोस्: * 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) मा निर्देशनहरू पालना गरेर VS Code लाई PATH मा थप्न सक्नुहुन्छ र त्यसपछि आदेश चलाउन सक्नुहुन्छ। Windows र Linux मा VS Code डिफल्ट रूपमा PATH मा स्थापना गरिएको हुन्छ। 1. जब VS Code सुरु हुन्छ, यसले Python भर्चुअल वातावरण सक्रिय गर्नेछ। चयन गरिएको भर्चुअल वातावरण तलको स्टाटस बारमा देखिनेछ: ![VS Code मा चयन गरिएको भर्चुअल वातावरण देखाउँदै](../../../../../translated_images/vscode-virtual-env.8ba42e04c3d533cf677e16cbe5ed9a3b80f62c6964472dc84b6f940800f0909f.ne.png) 1. यदि VS Code टर्मिनल VS Code सुरु हुँदा पहिले नै चलिरहेको छ भने, यसमा भर्चुअल वातावरण सक्रिय हुनेछैन। सबैभन्दा सजिलो कुरा भनेको **Kill the active terminal instance** बटन प्रयोग गरेर टर्मिनललाई बन्द गर्नु हो: ![VS Code Kill the active terminal instance बटन](../../../../../translated_images/vscode-kill-terminal.1cc4de7c6f25ee08f423f0ead714e61d069fac1eb2089e97b8a7bbcb3d45fe5e.ne.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.ne.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 एप्लिकेसनमा जडान सुरु गर्छ, जुन तपाईंको स्थानीय कम्प्युटरमा पहुँच गर्न सधैं प्रयोग गर्न सकिने IP ठेगाना हो (*localhost* भनेर चिनिन्छ), पोर्ट 5000 मा। > 💁 यदि तपाईंको पोर्ट 5000 मा अन्य एप्लिकेसनहरू चलिरहेका छन् भने, तपाईं यसलाई कोडमा पोर्ट अपडेट गरेर परिवर्तन गर्न सक्नुहुन्छ, र CounterFit `CounterFit --port ` चलाएर, `` लाई तपाईं प्रयोग गर्न चाहनुभएको पोर्टले प्रतिस्थापन गरेर। 1. तपाईंले नयाँ VS Code टर्मिनल सुरु गर्नुपर्नेछ **Create a new integrated terminal** बटन चयन गरेर। यो किनभने CounterFit एप्लिकेसन हालको टर्मिनलमा चलिरहेको छ। ![VS Code Create a new integrated terminal बटन](../../../../../translated_images/vscode-new-terminal.77db8fc0f9cd31824b0e49a201beafe4ae4616d6c7339992cb2819e789b3eff9.ne.png) 1. यस नयाँ टर्मिनलमा, पहिलेको जस्तै `app.py` फाइल चलाउनुहोस्। CounterFit को स्थिति **Connected** मा परिवर्तन हुनेछ र LED बत्ती बल्नेछ। ![Counter Fit जडान भएको देखाउँदै](../../../../../translated_images/counterfit-connected.ed30b46d8f79b0921f3fc70be10366e596a89dca3f80c2224a9d9fc98fccf884.ne.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) प्रयोग गरेर अनुवाद गरिएको छ। हामी शुद्धताको लागि प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छ। यसको मूल भाषा मा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुने छैनौं।