# तापक्रम मापन गर्नुहोस् - भर्चुअल IoT हार्डवेयर यस पाठको यस भागमा, तपाईं आफ्नो भर्चुअल IoT उपकरणमा तापक्रम सेन्सर थप्नुहुनेछ। ## भर्चुअल हार्डवेयर भर्चुअल IoT उपकरणले Grove Digital Humidity र Temperature सेन्सरको सिमुलेटेड संस्करण प्रयोग गर्नेछ। यसले यो प्रयोगशालालाई Raspberry Pi र भौतिक Grove DHT11 सेन्सर प्रयोग गरेजस्तै बनाउँछ। यो सेन्सरले **तापक्रम सेन्सर** र **आर्द्रता सेन्सर**लाई संयोजन गर्दछ, तर यस प्रयोगशालामा तपाईं केवल तापक्रम सेन्सर कम्पोनेन्टमा मात्र चासो राख्नुहुन्छ। भौतिक IoT उपकरणमा, तापक्रम सेन्सर [थर्मिस्टर](https://wikipedia.org/wiki/Thermistor) हुनेछ, जसले तापक्रम परिवर्तन हुँदा प्रतिरोधमा हुने परिवर्तनलाई मापन गर्दछ। तापक्रम सेन्सरहरू प्रायः डिजिटल सेन्सरहरू हुन्छन्, जसले भित्रै प्रतिरोधलाई डिग्री सेल्सियस (वा केल्विन, वा फारेनहाइट) मा तापक्रममा रूपान्तरण गर्छन्। ### CounterFit मा सेन्सरहरू थप्नुहोस् भर्चुअल आर्द्रता र तापक्रम सेन्सर प्रयोग गर्न, तपाईंले CounterFit एपमा यी दुई सेन्सरहरू थप्नुपर्नेछ। #### कार्य - CounterFit मा सेन्सरहरू थप्नुहोस् CounterFit एपमा आर्द्रता र तापक्रम सेन्सरहरू थप्नुहोस्। 1. आफ्नो कम्प्युटरमा `temperature-sensor` नामक फोल्डरमा एउटा नयाँ Python एप बनाउनुहोस्, जसमा `app.py` नामक एकल फाइल र Python भर्चुअल वातावरण होस्, र CounterFit का pip प्याकेजहरू थप्नुहोस्। > ⚠️ [CounterFit Python प्रोजेक्ट बनाउने र सेटअप गर्ने निर्देशनहरू पाठ १ मा हेर्न सक्नुहुन्छ](../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md)। 1. DHT11 सेन्सरको लागि CounterFit shim स्थापना गर्न थप Pip प्याकेज स्थापना गर्नुहोस्। यो सुनिश्चित गर्नुहोस् कि तपाईंले यो भर्चुअल वातावरण सक्रिय भएको टर्मिनलबाट स्थापना गर्दै हुनुहुन्छ। ```sh pip install counterfit-shims-seeed-python-dht ``` 1. CounterFit वेब एप चलिरहेको सुनिश्चित गर्नुहोस्। 1. आर्द्रता सेन्सर बनाउनुहोस्: 1. *Sensors* प्यानलको *Create sensor* बक्समा, *Sensor type* ड्रपडाउन गर्नुहोस् र *Humidity* चयन गर्नुहोस्। 1. *Units* लाई *Percentage* मा छोड्नुहोस्। 1. *Pin* लाई *5* मा सेट गर्नुहोस्। 1. **Add** बटन चयन गरेर पिन 5 मा आर्द्रता सेन्सर बनाउनुहोस्। ![आर्द्रता सेन्सर सेटिङहरू](../../../../../translated_images/ne/counterfit-create-humidity-sensor.2750e27b6f30e09c.webp) आर्द्रता सेन्सर बनाइनेछ र सेन्सरहरूको सूचीमा देखिनेछ। ![आर्द्रता सेन्सर बनाइएको](../../../../../translated_images/ne/counterfit-humidity-sensor.7b12f7f339e430cb.webp) 1. तापक्रम सेन्सर बनाउनुहोस्: 1. *Sensors* प्यानलको *Create sensor* बक्समा, *Sensor type* ड्रपडाउन गर्नुहोस् र *Temperature* चयन गर्नुहोस्। 1. *Units* लाई *Celsius* मा छोड्नुहोस्। 1. *Pin* लाई *6* मा सेट गर्नुहोस्। 1. **Add** बटन चयन गरेर पिन 6 मा तापक्रम सेन्सर बनाउनुहोस्। ![तापक्रम सेन्सर सेटिङहरू](../../../../../translated_images/ne/counterfit-create-temperature-sensor.199350ed34f7343d.webp) तापक्रम सेन्सर बनाइनेछ र सेन्सरहरूको सूचीमा देखिनेछ। ![तापक्रम सेन्सर बनाइएको](../../../../../translated_images/ne/counterfit-temperature-sensor.f0560236c96a9016.webp) ## तापक्रम सेन्सर एप प्रोग्राम गर्नुहोस् अब CounterFit सेन्सरहरू प्रयोग गरेर तापक्रम सेन्सर एप प्रोग्राम गर्न सकिन्छ। ### कार्य - तापक्रम सेन्सर एप प्रोग्राम गर्नुहोस् तापक्रम सेन्सर एप प्रोग्राम गर्नुहोस्। 1. सुनिश्चित गर्नुहोस् कि `temperature-sensor` एप VS Code मा खुला छ। 1. `app.py` फाइल खोल्नुहोस्। 1. CounterFit सँग एपलाई जडान गर्न `app.py` को माथिल्लो भागमा निम्न कोड थप्नुहोस्: ```python from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000) ``` 1. आवश्यक लाइब्रेरीहरू आयात गर्न `app.py` फाइलमा निम्न कोड थप्नुहोस्: ```python import time from counterfit_shims_seeed_python_dht import DHT ``` `from seeed_dht import DHT` स्टेटमेन्टले `DHT` सेन्सर क्लास आयात गर्दछ, जसले `counterfit_shims_seeed_python_dht` मोड्युलबाट शिम प्रयोग गरेर भर्चुअल Grove तापक्रम सेन्सरसँग अन्तरक्रिया गर्न मद्दत गर्दछ। 1. भर्चुअल आर्द्रता र तापक्रम सेन्सर व्यवस्थापन गर्ने क्लासको उदाहरण बनाउन माथिको कोडपछि निम्न कोड थप्नुहोस्: ```python sensor = DHT("11", 5) ``` यसले **D**igital **H**umidity र **T**emperature सेन्सर व्यवस्थापन गर्ने `DHT` क्लासको उदाहरण घोषणा गर्दछ। पहिलो प्यारामिटरले कोडलाई प्रयोग भइरहेको सेन्सर भर्चुअल *DHT11* हो भनेर बताउँछ। दोस्रो प्यारामिटरले सेन्सर पिन `5` मा जडान भएको छ भनेर बताउँछ। > 💁 CounterFit ले यो संयुक्त आर्द्रता र तापक्रम सेन्सरलाई दुई सेन्सरहरूसँग जडान गरेर सिमुलेट गर्दछ, पिन 5 मा आर्द्रता सेन्सर र त्यसको अर्को पिनमा तापक्रम सेन्सर। यदि आर्द्रता सेन्सर पिन 5 मा छ भने, शिमले तापक्रम सेन्सरलाई पिन 6 मा अपेक्षा गर्दछ। 1. तापक्रम सेन्सरको मान पोल गर्न र कन्सोलमा प्रिन्ट गर्न माथिको कोडपछि अनन्त लूप थप्नुहोस्: ```python while True: _, temp = sensor.read() print(f'Temperature {temp}°C') ``` `sensor.read()` को कलले आर्द्रता र तापक्रमको ट्युपल फर्काउँछ। तपाईंलाई केवल तापक्रम मान चाहिन्छ, त्यसैले आर्द्रतालाई बेवास्ता गरिन्छ। त्यसपछि तापक्रम मान कन्सोलमा प्रिन्ट गरिन्छ। 1. `loop` को अन्त्यमा १० सेकेन्डको सानो सुत्ने समय थप्नुहोस्, किनभने तापक्रम स्तरहरू निरन्तर जाँच गर्न आवश्यक छैन। सुताइले उपकरणको पावर खपत घटाउँछ। ```python time.sleep(10) ``` 1. सक्रिय भर्चुअल वातावरण भएको VS Code टर्मिनलबाट आफ्नो Python एप चलाउन निम्न कमाण्ड चलाउनुहोस्: ```sh python app.py ``` 1. CounterFit एपबाट, एपले पढ्ने तापक्रम सेन्सरको मान परिवर्तन गर्नुहोस्। तपाईंले यो दुई तरिकामा गर्न सक्नुहुन्छ: * तापक्रम सेन्सरको *Value* बक्समा एउटा संख्या प्रविष्ट गर्नुहोस्, त्यसपछि **Set** बटन चयन गर्नुहोस्। तपाईंले प्रविष्ट गर्नुभएको संख्या सेन्सरले फर्काउने मान हुनेछ। * *Random* चेकबक्स जाँच गर्नुहोस्, र *Min* र *Max* मान प्रविष्ट गर्नुहोस्, त्यसपछि **Set** बटन चयन गर्नुहोस्। प्रत्येक पटक सेन्सरले मान पढ्छ, यो *Min* र *Max* बीचको एक र्यान्डम संख्या हुनेछ। तपाईंले सेट गरेका मानहरू कन्सोलमा देखिनु पर्छ। *Value* वा *Random* सेटिङहरू परिवर्तन गरेर मान परिवर्तन हेर्नुहोस्। ```output (.venv) ➜ temperature-sensor python app.py Temperature 28.25°C Temperature 30.71°C Temperature 25.17°C ``` > 💁 तपाईंले यो कोड [code-temperature/virtual-device](../../../../../2-farm/lessons/1-predict-plant-growth/code-temperature/virtual-device) फोल्डरमा फेला पार्न सक्नुहुन्छ। 😀 तपाईंको तापक्रम सेन्सर प्रोग्राम सफल भयो! --- **अस्वीकरण**: यो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरेर अनुवाद गरिएको छ। हामी शुद्धताको लागि प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादहरूमा त्रुटि वा अशुद्धता हुन सक्छ। यसको मूल भाषा मा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुने छैनौं।