# रिले नियन्त्रण गर्नुहोस् - भर्चुअल IoT हार्डवेयर यस पाठको यस भागमा, तपाईंले माटोको चिस्यान सेन्सरको अतिरिक्त आफ्नो भर्चुअल IoT उपकरणमा रिले थप्नुहुनेछ, र माटोको चिस्यान स्तरको आधारमा यसलाई नियन्त्रण गर्नुहुनेछ। ## भर्चुअल हार्डवेयर भर्चुअल IoT उपकरणले सिमुलेट गरिएको Grove रिले प्रयोग गर्नेछ। यसले यो प्रयोगशाला भौतिक Grove रिले भएको Raspberry Pi प्रयोग गरेजस्तै बनाउँछ। भौतिक IoT उपकरणमा, रिले सामान्यत: खुला रिले हुनेछ (अर्थात् जब रिलेमा कुनै संकेत पठाइँदैन, आउटपुट सर्किट खुला वा डिस्कनेक्ट हुन्छ)। यस्तो रिलेले 250V र 10A सम्मको आउटपुट सर्किटलाई ह्यान्डल गर्न सक्छ। ### CounterFit मा रिले थप्नुहोस् भर्चुअल रिले प्रयोग गर्न, तपाईंले यसलाई CounterFit एपमा थप्न आवश्यक छ। #### कार्य CounterFit एपमा रिले थप्नुहोस्। 1. यदि `soil-moisture-sensor` प्रोजेक्ट VS Code मा खुला छैन भने, यसलाई अन्तिम पाठबाट खोल्नुहोस्। तपाईं यस प्रोजेक्टमा थप गर्दै हुनुहुन्छ। 1. सुनिश्चित गर्नुहोस् कि CounterFit वेब एप चलिरहेको छ। 1. रिले सिर्जना गर्नुहोस्: 1. *Actuators* प्यानको *Create actuator* बक्समा, *Actuator type* ड्रपडाउन गर्नुहोस् र *Relay* चयन गर्नुहोस्। 1. *Pin* लाई *5* मा सेट गर्नुहोस्। 1. **Add** बटन चयन गर्नुहोस् ताकि Pin 5 मा रिले सिर्जना होस्। ![रिले सेटिङहरू](../../../../../translated_images/counterfit-create-relay.fa7c40fd0f2f6afc33b35ea94fcb235085be4861e14e3fe6b9b7bcfc82d1c888.ne.png) रिले सिर्जना हुनेछ र actuators सूचीमा देखिनेछ। ![रिले सिर्जना गरिएको](../../../../../translated_images/counterfit-relay.bbf74c1dbdc8b9acd983367fcbd06703a402aefef6af54ddb28e11307ba8a12c.ne.png) ## रिले प्रोग्राम गर्नुहोस् अब माटोको चिस्यान सेन्सर एपले भर्चुअल रिले प्रयोग गर्न प्रोग्राम गर्न सकिन्छ। ### कार्य भर्चुअल उपकरण प्रोग्राम गर्नुहोस्। 1. यदि `soil-moisture-sensor` प्रोजेक्ट VS Code मा खुला छैन भने, यसलाई अन्तिम पाठबाट खोल्नुहोस्। तपाईं यस प्रोजेक्टमा थप गर्दै हुनुहुन्छ। 1. `app.py` फाइलमा रहेको आयातहरू तल निम्न कोड थप्नुहोस्: ```python from counterfit_shims_grove.grove_relay import GroveRelay ``` यो कथनले Grove Python शिम लाइब्रेरीबाट `GroveRelay` आयात गर्दछ ताकि भर्चुअल Grove रिलेसँग अन्तरक्रिया गर्न सकियोस्। 1. `ADC` वर्गको घोषणाको तल निम्न कोड थप्नुहोस् ताकि `GroveRelay` को उदाहरण सिर्जना गर्न सकियोस्: ```python relay = GroveRelay(5) ``` यसले **5** पिन प्रयोग गरेर रिले सिर्जना गर्दछ, जुन तपाईंले रिलेलाई जडान गर्नुभएको पिन हो। 1. रिले काम गरिरहेको छ कि छैन परीक्षण गर्न, `while True:` लूपमा निम्न कोड थप्नुहोस्: ```python relay.on() time.sleep(.5) relay.off() ``` कोडले रिले अन गर्छ, 0.5 सेकेन्ड पर्खन्छ, अनि रिले अफ गर्छ। 1. Python एप चलाउनुहोस्। रिले प्रत्येक 10 सेकेन्डमा अन र अफ हुनेछ, अन र अफको बीचमा आधा सेकेन्डको ढिलाइ हुनेछ। तपाईं CounterFit एपमा भर्चुअल रिले बन्द र खुला भएको देख्नुहुनेछ। ![भर्चुअल रिले अन र अफ हुँदै](../../../../../images/virtual-relay-turn-on-off.gif) ## माटोको चिस्यानबाट रिले नियन्त्रण गर्नुहोस् अब रिले काम गरिरहेको छ, यसलाई माटोको चिस्यान रिडिङको प्रतिक्रिया स्वरूप नियन्त्रण गर्न सकिन्छ। ### कार्य रिले नियन्त्रण गर्नुहोस्। 1. रिले परीक्षण गर्न थपिएको 3 लाइन कोड हटाउनुहोस्। यसको ठाउँमा निम्न कोड थप्नुहोस्: ```python if soil_moisture > 450: print("Soil Moisture is too low, turning relay on.") relay.on() else: print("Soil Moisture is ok, turning relay off.") relay.off() ``` यो कोडले माटोको चिस्यान सेन्सरबाट माटोको चिस्यान स्तर जाँच गर्दछ। यदि यो 450 भन्दा माथि छ भने, रिले अन गर्छ, र यदि यो 450 भन्दा तल छ भने अफ गर्छ। > 💁 याद गर्नुहोस् कि कैपेसिटिभ माटोको चिस्यान सेन्सरले माटोको चिस्यान स्तर कम देखाउँछ भने माटोमा बढी चिस्यान हुन्छ, र यसको विपरीत। 1. Python एप चलाउनुहोस्। तपाईंले माटोको चिस्यान स्तरको आधारमा रिले अन वा अफ भएको देख्नुहुनेछ। माटोको चिस्यान सेन्सरको *Value* वा *Random* सेटिङ परिवर्तन गरेर मान परिवर्तन हेर्नुहोस्। ```output Soil Moisture: 638 Soil Moisture is too low, turning relay on. Soil Moisture: 452 Soil Moisture is too low, turning relay on. Soil Moisture: 347 Soil Moisture is ok, turning relay off. ``` > 💁 तपाईं यो कोड [code-relay/virtual-device](../../../../../2-farm/lessons/3-automated-plant-watering/code-relay/virtual-device) फोल्डरमा पाउन सक्नुहुन्छ। 😀 तपाईंको भर्चुअल माटोको चिस्यान सेन्सरले रिले नियन्त्रण गर्ने प्रोग्राम सफल भयो! --- **अस्वीकरण**: यो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी यथासम्भव सटीकता सुनिश्चित गर्न प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादहरूमा त्रुटि वा अशुद्धता हुन सक्छ। यसको मूल भाषामा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्त्वपूर्ण जानकारीका लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुने छैनौं।