# नजिकको पहिचान गर्नुहोस् - भर्चुअल IoT हार्डवेयर यस पाठको यस भागमा, तपाईं आफ्नो भर्चुअल IoT उपकरणमा एक नजिकको सेन्सर थप्नुहुनेछ, र यसबाट दूरी पढ्नुहुनेछ। ## हार्डवेयर भर्चुअल IoT उपकरणले सिमुलेट गरिएको दूरी सेन्सर प्रयोग गर्नेछ। भौतिक IoT उपकरणमा, तपाईंले लेजर रेंजिङ मोड्युल भएको सेन्सर प्रयोग गर्नुहुनेछ दूरी पत्ता लगाउन। ### CounterFit मा दूरी सेन्सर थप्नुहोस् भर्चुअल दूरी सेन्सर प्रयोग गर्न, तपाईंले यसलाई CounterFit एपमा थप्न आवश्यक छ। #### कार्य - CounterFit मा दूरी सेन्सर थप्नुहोस् CounterFit एपमा दूरी सेन्सर थप्नुहोस्। 1. VS Code मा `fruit-quality-detector` कोड खोल्नुहोस्, र सुनिश्चित गर्नुहोस् कि भर्चुअल वातावरण सक्रिय छ। 1. एक अतिरिक्त Pip प्याकेज स्थापना गर्नुहोस् जसले दूरी सेन्सरहरूसँग कुरा गर्न CounterFit shim स्थापना गर्दछ। यो [rpi-vl53l0x Pip प्याकेज](https://pypi.org/project/rpi-vl53l0x/) लाई सिमुलेट गरेर काम गर्छ, जुन [VL53L0X टाइम-अफ-फ्लाइट दूरी सेन्सर](https://wiki.seeedstudio.com/Grove-Time_of_Flight_Distance_Sensor-VL53L0X/) सँग अन्तरक्रिया गर्ने Python प्याकेज हो। सुनिश्चित गर्नुहोस् कि तपाईं यो भर्चुअल वातावरण सक्रिय भएको टर्मिनलबाट स्थापना गर्दै हुनुहुन्छ। ```sh pip install counterfit-shims-rpi-vl53l0x ``` 1. सुनिश्चित गर्नुहोस् कि CounterFit वेब एप चलिरहेको छ। 1. दूरी सेन्सर बनाउनुहोस्: 1. *Sensors* प्यानलको *Create sensor* बक्समा, *Sensor type* ड्रपडाउन गर्नुहोस् र *Distance* चयन गर्नुहोस्। 1. *Units* लाई `Millimeter` मा छोड्नुहोस्। 1. यो सेन्सर I²C सेन्सर हो, त्यसैले ठेगाना `0x29` मा सेट गर्नुहोस्। यदि तपाईंले भौतिक VL53L0X सेन्सर प्रयोग गर्नुभयो भने, यो ठेगाना हार्डकोड गरिएको हुनेछ। 1. दूरी सेन्सर बनाउन **Add** बटन चयन गर्नुहोस्। ![दूरी सेन्सर सेटिङहरू](../../../../../translated_images/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.ne.png) दूरी सेन्सर बनाइनेछ र सेन्सरहरूको सूचीमा देखिनेछ। ![दूरी सेन्सर बनाइएको](../../../../../translated_images/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.ne.png) ## दूरी सेन्सर प्रोग्राम गर्नुहोस् भर्चुअल IoT उपकरण अब सिमुलेट गरिएको दूरी सेन्सर प्रयोग गर्न प्रोग्राम गर्न सकिन्छ। ### कार्य - टाइम-अफ-फ्लाइट सेन्सर प्रोग्राम गर्नुहोस् 1. `fruit-quality-detector` प्रोजेक्टमा `distance-sensor.py` नामको नयाँ फाइल बनाउनुहोस्। > 💁 धेरै IoT उपकरणहरू सिमुलेट गर्न सजिलो तरिका भनेको प्रत्येकलाई फरक Python फाइलमा बनाउनु हो, त्यसपछि तिनीहरूलाई एकै समयमा चलाउनुहोस्। 1. निम्न कोडको साथ CounterFit सँग जडान सुरु गर्नुहोस्: ```python from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000) ``` 1. यसको तल निम्न कोड थप्नुहोस्: ```python import time from counterfit_shims_rpi_vl53l0x.vl53l0x import VL53L0X ``` यसले VL53L0X टाइम-अफ-फ्लाइट सेन्सरको लागि सेन्सर लाइब्रेरी शिम आयात गर्दछ। 1. यसको तल, सेन्सर पहुँच गर्न निम्न कोड थप्नुहोस्: ```python distance_sensor = VL53L0X() distance_sensor.begin() ``` यो कोडले दूरी सेन्सर घोषणा गर्दछ, त्यसपछि सेन्सर सुरु गर्दछ। 1. अन्तमा, दूरीहरू पढ्नको लागि एक अनन्त लूप थप्नुहोस्: ```python while True: distance_sensor.wait_ready() print(f'Distance = {distance_sensor.get_distance()} mm') time.sleep(1) ``` यो कोडले सेन्सरबाट मान पढ्न तयार भएको पर्खन्छ, त्यसपछि यसलाई कन्सोलमा प्रिन्ट गर्दछ। 1. यो कोड चलाउनुहोस्। > 💁 यो फाइल `distance-sensor.py` भनिन्छ! सुनिश्चित गर्नुहोस् कि तपाईं यसलाई Python मार्फत चलाउनुहुन्छ, `app.py` मार्फत होइन। 1. तपाईं कन्सोलमा दूरी मापनहरू देख्नुहुनेछ। CounterFit मा मान परिवर्तन गर्नुहोस् यो मान परिवर्तन भएको हेर्न, वा र्यान्डम मानहरू प्रयोग गर्नुहोस्। ```output (.venv) ➜ fruit-quality-detector python distance-sensor.py Distance = 37 mm Distance = 42 mm Distance = 29 mm ``` > 💁 तपाईं यो कोड [code-proximity/virtual-iot-device](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector/code-proximity/virtual-iot-device) फोल्डरमा फेला पार्न सक्नुहुन्छ। 😀 तपाईंको नजिकको सेन्सर प्रोग्राम सफल भयो! --- **अस्वीकरण**: यो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरेर अनुवाद गरिएको छ। हामी शुद्धताको लागि प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छ। यसको मूल भाषा मा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुने छैनौं।