# వర్చువల్ సింగిల్-బోర్డ్ కంప్యూటర్ ఒక IoT డివైస్, సెన్సార్లు మరియు యాక్చ్యుయేటర్లను కొనుగోలు చేసే బదులు, మీరు మీ కంప్యూటర్‌ను ఉపయోగించి IoT హార్డ్‌వేర్‌ను సిమ్యులేట్ చేయవచ్చు. [CounterFit ప్రాజెక్ట్](https://github.com/CounterFit-IoT/CounterFit) మీకు IoT హార్డ్‌వేర్‌లను, ఉదా: సెన్సార్లు మరియు యాక్చ్యుయేటర్లను సిమ్యులేట్ చేసే ఒక యాప్‌ను స్థానీయంగా నడపడానికి మరియు రాస్బెర్రీ పైతో రాసే కోడ్‌లా స్థానీయ Python కోడ్ నుండి ఆ సెన్సార్లు మరియు యాక్చ్యుయేటర్లను యాక్సెస్ చేయడానికి వీలుగా చేస్తుంది. ## సెటప్ 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 భాషా మద్దతు అందించే ఎక్స్‌టెన్షన్. ఈ ఎక్స్‌టెన్షన్ ఇన్స్టాల్ చేసే సూచనల కోసం [Pylance ఎక్స్‌టెన్షన్ డాక్యుమెంటేషన్](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance)ను చూడండి. CounterFit యాప్‌ను ఇన్స్టాల్ చేసి కాన్ఫిగర్ చేయడం సంబంధిత ప్రాజెక్ట్ సూచనలలో విడిపెట్టబడినప్పుడు వివరించబడుతుంది. ## హెల్లో వరల్డ్ కొత్త ప్రోగ్రామింగ్ భాష లేదా సాంకేతికత మొదలుపెట్టేటప్పుడు సాధారణంగా 'హెల్లో వరల్డ్' అనువర్తనం సృష్టిస్తారు - `"Hello World"` లాంటి పాఠం ప్రింట్ చేసే చిన్న యాప్, అన్ని సాధనాలు సరిగా సెటప్ అయ్యాయని చూపిస్తుంది. వర్చువల్ IoT హార్డ్‌వేర్ కోసం హెల్లో వరల్డ్ యాప్ Python మరియు Visual Studio Code సరిగ్గా ఉంటాయని నిర్ధారిస్తుంది. ఇది CounterFit కు కనెక్ట్ అవుతుంది కానీ ఏ హార్డ్‌వేర్‌ను ఉపయోగించదు, కేవలం అన్ని సరిగ్గా పని చేస్తున్నాయని సాక్ష్యం చేస్తుంది. ఈ యాప్ `nightlight` అనే ఫోల్డర్లో ఉంటుంది, ఈ అస్సైన్మెంట్ లో పైన భాగాల్లో వేరే కోడ్‌తో రియూస్ చేస్తారు. ### Python వర్చువల్ ఎన్విరాన్‌మెంట్ కాన్ఫిగర్ చేయండి Python యొక్క శక్తివంతమైన లక్షణాలలో ఒకటి [Pip ప్యాకేజీలను](https://pypi.org) ఇన్స్టాల్ చేయగలగడం. ఇవి ఇతరుల రాసిన, ఇంటర్నెట్‌లో ప్రచురించిన కోడ్ ప్యాకేజీలు. మీరు ఒక కమాండ్ తో ఒక Pip ప్యాకేజీని ఇన్స్టాల్ చేసి, దాన్ని మీ కోడ్‌లో ఉపయోగించవచ్చు. మీరు CounterFit తో మాట్లాడడానికి ఒక ప్యాకేజీ ఇన్స్టాల్ చేసేందుకు Pip ఉపయోగిస్తారు. సాధారణంగా ఒక ప్యాకేజీ మీరు ఇన్స్టాల్ చేసిన ప్రదేశంలో అన్నీ యాక్సెస్ చేస్తుంది, ఇది ప్యాకేజీ వెర్షన్ల సమస్యలకు దారి తీస్తుంది - ఉదా: ఒక యాప్ ఒక వెర్షన్ పై ఆధారపడితే, మరొక యాప్ కొత్త వెర్షన్ ఇన్స్టాల్ చేస్తే దెబ్బతింటుంది. ఈ సమస్యను తప్పించేందుకు మీరు [Python వర్చువల్ ఎన్విరాన్‌మెంట్](https://docs.python.org/3/library/venv.html) ఉపయోగిస్తారు, ఇది ప్రత్యేక ఫోల్డర్లో Python యొక్క ప్రతిరూపం. ఈ వర్చువల్ ఎన్విరాన్‌మెంట్ లో మీరు ఇన్స్టాల్ చేసే అన్ని ప్యాకేజీలు ఆ ఫోల్డర్లోనే ఉంటాయి. > 💁 మీరు Raspberry Pi ఉపయోగిస్తుంటే, అక్కడ మీరు వర్చువల్ ఎన్విరాన్‌మెంట్ సెట్ చేయలేదు, గ్లోవ్ ప్యాకేజీలు గ్లోబల్ గా ఇన్స్టాల్ అయ్యాయి కనుక మీరు గ్లోబల్ ప్యాకేజీలు ఉపయోగిస్తున్నారు. #### పని - Python వర్చువల్ ఎన్విరాన్‌మెంట్ సెటప్ Python వర్చువల్ ఎన్విరాన్‌మెంట్ సెటప్ చేసి CounterFit కి అవసరమైన Pip ప్యాకేజీలను ఇన్స్టాల్ చేయండి. 1. టెర్మినల్ లేదా కమాండ్ లైన్ నుండి మీకు అనుకూలమైన స్థలంలో క్రింది ఆదేశాలను నడపండి, కొత్త డైరెక్టరీ సృష్టించి దానికి వెళ్లేందుకు: ```sh mkdir nightlight cd nightlight ``` 1. ఇప్పుడు క్రింద ఉన్న ఆదేశంతో `.venv` ఫోల్డర్లో వర్చువల్ ఎన్విరాన్‌మెంట్ సృష్టించండి ```sh python3 -m venv .venv ``` > 💁 Python 2 కూడా ఇన్స్టాల్ అయి ఉంటే, `python3` ను స్పష్టంగా పిలవాలి, లేకపోతే `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 హార్డ్‌వేర్ కోసం షిమ్స్‌ను కలిగి ఉంటాయి. ఫిజికల్ Grove సెన్సార్లు మరియు యాక్చ్యుయేటర్లతో వంట‌ను మీరు వర్చువల్ IoT డివైస్‌లతో ప్రోగ్రామ్ చేయడం కోసం ఇవి అవసరం. ```sh pip install CounterFit pip install counterfit-connection pip install counterfit-shims-grove ``` ఈ pip ప్యాకేజీలు వర్చువల్ ఎన్విరాన్‌మెంట్ లోనే ఇన్స్టాల్ అవుతాయి, బాహ్యంగా అందుబాటులో ఉండవు. ### కోడ్ రాయండి Python వర్చువల్ ఎన్విరాన్‌మెంట్ సిద్ధంగా ఉన్న తర్వాత, 'హెల్లో వరల్డ్' యాప్ కోడ్ రాయండి #### పని - కోడ్ రాయండి కన్సోల్ లో `"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 డాక్యుమెంటేషన్ లో 'Launching from the command line' విభాగాన్ని](https://code.visualstudio.com/docs/setup/mac?WT.mc_id=academic-17441-jabenn#_launching-from-the-command-line) అనుసరించి PATHలో జోడించండి. 1. VS Code ప్రదర్శనలో Python వర్చువల్ ఎన్విరాన్‌మెంట్ ఆటోమేటిగ్గా యాక్టివేట్ అవుతుంది. దిగువ స్టేటస్ బార్ లో ఎంపిక చేసిన వర్చువల్ ఎన్విరాన్‌మెంట్ కనిపించాలి: ![VS Code showing the selected virtual environment](../../../../../translated_images/te/vscode-virtual-env.8ba42e04c3d533cf.webp) 1. VS Code టెర్మినల్ ఇప్పటికే నడుస్తుంటే వర్చువల్ ఎన్విరాన్‌మెంట్ యాక్టివేట్ కావచ్చు లేదు. ఈ పరిస్థితిలో టెర్మినల్‌ను **Kill the active terminal instance** బటన్ ద్వారా ముగించండి: ![VS Code Kill the active terminal instance button](../../../../../translated_images/te/vscode-kill-terminal.1cc4de7c6f25ee08.webp) వర్చువల్ ఎన్విరాన్‌మెంట్ యాక్టివేట్ ఉన్నప్పుడే టెర్మినల్ ప్రాంప్ట్ కు ముందుగా వర్చువల్ ఎన్విరాన్‌మెంట్ పేరు ఉంటుంది, ఉదా: `.venv` ```sh (.venv) ➜ nightlight ``` మీరు ప్రాంప్ట్ ముందు `.venv` లేకపోతే వర్చువల్ ఎన్విరాన్‌మెంట్ యాక్టివ్ కాలేదని అర్థం. 1. VS Code లో కొత్త టెర్మినల్ సృష్టించండి: *Terminal -> New Terminal* లేదా `` CTRL+` `` నొక్కండి. కొత్త టెర్మినల్ వర్చువల్ ఎన్విరాన్‌మెంట్ ను లోడ్ చేసి యాక్టివేట్ చేస్తుంది. ప్రాంప్ట్ లో `.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' ప్రోగ్రామ్ విజయవంతమైంది! ### 'హార్డ్‌వేర్' కనెక్ట్ చేయండి రెండవ 'హెల్లో వరల్డ్' దశగా, CounterFit యాప్ ను నడిపి, మీ కోడ్ తో కనెక్ట్ అవ్వండి. ఇది ఒక IoT హార్డ్‌వేర్ ను dev కిట్ కు కనెక్ట్ చేయడం వంటిది. #### పని - 'హార్డ్‌వేర్' కనెక్ట్ చేయండి 1. VS Code టెర్మినల్ లో క్రింది కమాండ్ తో CounterFit యాప్ నడపండి: ```sh counterfit ``` యాప్ నడవడం ప్రారంభించి మీ బ్రౌజర్ లో తెరవబడుతుంది: ![The Counter Fit app running in a browser](../../../../../translated_images/te/counterfit-first-run.433326358b669b31.webp) ఇది *Disconnected*గా చూపిస్తుంది, టాప్-కుడి మూలలో LED ఆఫ్ ఉంటుంది. 1. `app.py` ఫైల్ టాప్ లో క్రింది కోడ్ జత చేయండి: ```python from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000) ``` ఈ కోడ్, మీరు ముందుగా ఇన్స్టాల్ చేసిన `counterfit-connection` pip ప్యాకేజీ నుండి `counterfit_connection` మాడ్యూల్ లోని `CounterFitConnection` తరగతిని ఇంపోర్ట్ చేస్తుంది. తర్వాత `127.0.0.1` (localhost) IP లో 5000 పోర్ట్ తో CounterFit యాప్ కు కనెక్షన్ ఇనిషియలైజ్ చేస్తుంది. > 💁 మీరు ఇతర యాప్స్ 5000 పోర్ట్ పై నడుచుకుంటే, కోడ్ లో పోర్టు మార్చి, CounterFit ను `CounterFit --port ` తో ప్రారంభించండి. 1. CounterFit యాప్ ఇప్పటి టెర్మినల్ లో నడుస్తున్నందున, VS Code లో కొత్త టెర్మినల్ తెరవాలి: **Create a new integrated terminal** బటన్ ను నొక్కండి: ![VS Code Create a new integrated terminal button](../../../../../translated_images/te/vscode-new-terminal.77db8fc0f9cd3182.webp) 1. కొత్త టెర్మినల్ లో `app.py` ను మళ్ళీ నడపండి. CounterFit స్టేటస్ **Connected** గా మారి LED వెలుతురు ఆ పూట కనిపిస్తుంది. ![Counter Fit showing as connected](../../../../../translated_images/te/counterfit-connected.ed30b46d8f79b092.webp) > 💁 ఈ కోడ్ ను మీరు [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) ఉపయోగించి అనువదించబడింది. మేము ఖచ్చితత్వానికి ప్రయత్నించినప్పటికీ, ఆటోమేటెడ్ అనువాదాలలో పొరపాట్లు లేదా లోపాలు ఉండవచ్చు అని దయచేసి గమనించండి. మౌలిక భాషలో ఉన్న అసలు పత్రాన్ని అధికారిక మూలంగా పరిగణించాలి. ముఖ్యమైన సమాచారానికి, ప్రొఫెషనల్ మానవ అనువాదాన్ని సిఫార్సు చేయబడుతుంది. ఈ అనువాదం వాడకం ద్వారా కలిగే ఏవైనా అపార్థాలు లేదా తప్పుదిద్దుబాట్ల కోసం మేము బాధ్యత వహించము.