# ਮਿੱਟੀ ਦੀ ਨਮੀ ਮਾਪੋ - ਵਰਚੁਅਲ IoT ਹਾਰਡਵੇਅਰ ਇਸ ਪਾਠ ਦੇ ਇਸ ਹਿੱਸੇ ਵਿੱਚ, ਤੁਸੀਂ ਆਪਣੇ ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਵਿੱਚ ਇੱਕ ਕੈਪੈਸਿਟਿਵ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਸ਼ਾਮਲ ਕਰੋਗੇ ਅਤੇ ਇਸ ਤੋਂ ਮੁੱਲ ਪੜ੍ਹੋਗੇ। ## ਵਰਚੁਅਲ ਹਾਰਡਵੇਅਰ ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਇੱਕ ਨਕਲੀ Grove ਕੈਪੈਸਿਟਿਵ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਦੀ ਵਰਤੋਂ ਕਰੇਗਾ। ਇਹ ਲੈਬ ਨੂੰ ਰਾਸਪਬੈਰੀ ਪਾਈ ਨਾਲ ਭੌਤਿਕ Grove ਕੈਪੈਸਿਟਿਵ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਸਮਾਨ ਰੱਖਦਾ ਹੈ। ਭੌਤਿਕ IoT ਡਿਵਾਈਸ ਵਿੱਚ, ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਇੱਕ ਕੈਪੈਸਿਟਿਵ ਸੈਂਸਰ ਹੁੰਦਾ ਹੈ ਜੋ ਮਿੱਟੀ ਦੀ ਨਮੀ ਨੂੰ ਮਾਪਦਾ ਹੈ ਮਿੱਟੀ ਦੀ ਕੈਪੈਸਿਟੈਂਸ ਦਾ ਪਤਾ ਲਗਾ ਕੇ, ਇੱਕ ਗੁਣ ਜੋ ਮਿੱਟੀ ਦੀ ਨਮੀ ਦੇ ਬਦਲਣ ਨਾਲ ਬਦਲਦਾ ਹੈ। ਜਿਵੇਂ ਜਿਵੇਂ ਮਿੱਟੀ ਦੀ ਨਮੀ ਵਧਦੀ ਹੈ, ਵੋਲਟੇਜ ਘਟਦਾ ਹੈ। ਇਹ ਇੱਕ ਐਨਾਲੌਗ ਸੈਂਸਰ ਹੈ, ਇਸ ਲਈ ਇਹ 1-1,023 ਦੇ ਮੁੱਲ ਦੀ ਰਿਪੋਰਟ ਕਰਨ ਲਈ ਨਕਲੀ 10-ਬਿਟ ADC ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ### CounterFit ਵਿੱਚ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਸ਼ਾਮਲ ਕਰੋ ਵਰਚੁਅਲ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਇਸਨੂੰ CounterFit ਐਪ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। #### ਟਾਸਕ - CounterFit ਵਿੱਚ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਸ਼ਾਮਲ ਕਰੋ CounterFit ਐਪ ਵਿੱਚ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਸ਼ਾਮਲ ਕਰੋ। 1. ਆਪਣੇ ਕੰਪਿਊਟਰ 'ਤੇ `soil-moisture-sensor` ਨਾਮਕ ਫੋਲਡਰ ਵਿੱਚ ਇੱਕ ਨਵਾਂ Python ਐਪ ਬਣਾਓ ਜਿਸ ਵਿੱਚ `app.py` ਨਾਮਕ ਇੱਕ ਫਾਈਲ ਹੋਵੇ ਅਤੇ ਇੱਕ Python ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਬਣਾਓ, ਅਤੇ CounterFit pip ਪੈਕੇਜ ਸ਼ਾਮਲ ਕਰੋ। > ⚠️ ਤੁਸੀਂ [ਪਾਠ 1 ਵਿੱਚ CounterFit Python ਪ੍ਰੋਜੈਕਟ ਬਣਾਉਣ ਅਤੇ ਸੈਟਅੱਪ ਕਰਨ ਦੇ ਨਿਰਦੇਸ਼ਾਂ](../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md) ਨੂੰ ਜ਼ਰੂਰਤ ਪੜਨ 'ਤੇ ਦੇਖ ਸਕਦੇ ਹੋ। 1. ਯਕੀਨੀ ਬਣਾਓ ਕਿ CounterFit ਵੈੱਬ ਐਪ ਚੱਲ ਰਿਹਾ ਹੈ। 1. ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਬਣਾਓ: 1. *Sensors* ਪੈਨ ਵਿੱਚ *Create sensor* ਬਾਕਸ ਵਿੱਚ, *Sensor type* ਡ੍ਰੌਪਡਾਊਨ ਬਾਕਸ ਵਿੱਚ *Soil Moisture* ਚੁਣੋ। 1. *Units* ਨੂੰ *NoUnits* 'ਤੇ ਹੀ ਰੱਖੋ। 1. ਯਕੀਨੀ ਬਣਾਓ ਕਿ *Pin* ਨੂੰ *0* 'ਤੇ ਸੈਟ ਕੀਤਾ ਗਿਆ ਹੈ। 1. **Add** ਬਟਨ ਚੁਣੋ ਤਾਂ ਜੋ *Soil Moisture* ਸੈਂਸਰ Pin 0 'ਤੇ ਬਣਾਇਆ ਜਾ ਸਕੇ। ![ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਸੈਟਿੰਗ](../../../../../translated_images/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.pa.png) ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਬਣਾਇਆ ਜਾਵੇਗਾ ਅਤੇ ਸੈਂਸਰਾਂ ਦੀ ਸੂਚੀ ਵਿੱਚ ਦਿਖਾਈ ਦੇਵੇਗਾ। ![ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਬਣਾਇਆ ਗਿਆ](../../../../../translated_images/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.pa.png) ## ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਐਪ ਪ੍ਰੋਗਰਾਮ ਕਰੋ ਹੁਣ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਐਪ ਨੂੰ CounterFit ਸੈਂਸਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪ੍ਰੋਗਰਾਮ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ### ਟਾਸਕ - ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਐਪ ਪ੍ਰੋਗਰਾਮ ਕਰੋ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਐਪ ਪ੍ਰੋਗਰਾਮ ਕਰੋ। 1. ਯਕੀਨੀ ਬਣਾਓ ਕਿ `soil-moisture-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_grove.adc import ADC ``` `import time` ਸਟੇਟਮੈਂਟ `time` ਮੌਡਿਊਲ ਨੂੰ ਇਮਪੋਰਟ ਕਰਦਾ ਹੈ ਜੋ ਇਸ ਅਸਾਈਨਮੈਂਟ ਵਿੱਚ ਬਾਅਦ ਵਿੱਚ ਵਰਤਿਆ ਜਾਵੇਗਾ। `from counterfit_shims_grove.adc import ADC` ਸਟੇਟਮੈਂਟ `ADC` ਕਲਾਸ ਨੂੰ ਇਮਪੋਰਟ ਕਰਦਾ ਹੈ ਜੋ CounterFit ਸੈਂਸਰ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਵਾਲੇ ਵਰਚੁਅਲ ਐਨਾਲੌਗ ਤੋਂ ਡਿਜਿਟਲ ਕਨਵਰਟਰ ਨਾਲ ਇੰਟਰਐਕਟ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਵੇਗਾ। 1. ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਇਸਦੇ ਹੇਠਾਂ ਸ਼ਾਮਲ ਕਰੋ ਤਾਂ ਜੋ `ADC` ਕਲਾਸ ਦਾ ਇੱਕ ਇੰਸਟੈਂਸ ਬਣਾਇਆ ਜਾ ਸਕੇ: ```python adc = ADC() ``` 1. ਇੱਕ ਅਨੰਤ ਲੂਪ ਸ਼ਾਮਲ ਕਰੋ ਜੋ Pin 0 'ਤੇ ਇਸ ADC ਤੋਂ ਪੜ੍ਹਦਾ ਹੈ ਅਤੇ ਨਤੀਜੇ ਨੂੰ ਕਨਸੋਲ 'ਤੇ ਲਿਖਦਾ ਹੈ। ਇਹ ਲੂਪ ਪੜ੍ਹਨ ਦੇ ਵਿਚਕਾਰ 10 ਸਕਿੰਟ ਲਈ ਸੌਂ ਸਕਦਾ ਹੈ। ```python while True: soil_moisture = adc.read(0) print("Soil moisture:", soil_moisture) time.sleep(10) ``` 1. CounterFit ਐਪ ਤੋਂ, ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਦਾ ਮੁੱਲ ਬਦਲੋ ਜੋ ਐਪ ਦੁਆਰਾ ਪੜ੍ਹਿਆ ਜਾਵੇਗਾ। ਤੁਸੀਂ ਇਹ ਦੋ ਤਰੀਕਿਆਂ ਵਿੱਚ ਕਰ ਸਕਦੇ ਹੋ: * ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਲਈ *Value* ਬਾਕਸ ਵਿੱਚ ਇੱਕ ਨੰਬਰ ਦਰਜ ਕਰੋ, ਫਿਰ **Set** ਬਟਨ ਚੁਣੋ। ਜੋ ਨੰਬਰ ਤੁਸੀਂ ਦਰਜ ਕਰਦੇ ਹੋ ਉਹ ਸੈਂਸਰ ਦੁਆਰਾ ਵਾਪਸ ਕੀਤਾ ਜਾਣ ਵਾਲਾ ਮੁੱਲ ਹੋਵੇਗਾ। * *Random* ਚੈਕਬਾਕਸ ਚੁਣੋ, ਅਤੇ *Min* ਅਤੇ *Max* ਮੁੱਲ ਦਰਜ ਕਰੋ, ਫਿਰ **Set** ਬਟਨ ਚੁਣੋ। ਹਰ ਵਾਰ ਜਦੋਂ ਸੈਂਸਰ ਮੁੱਲ ਪੜ੍ਹਦਾ ਹੈ, ਇਹ *Min* ਅਤੇ *Max* ਦੇ ਵਿਚਕਾਰ ਇੱਕ ਰੈਂਡਮ ਨੰਬਰ ਪੜ੍ਹੇਗਾ। 1. Python ਐਪ ਚਲਾਓ। ਤੁਸੀਂ ਕਨਸੋਲ 'ਤੇ ਮਿੱਟੀ ਨਮੀ ਦੇ ਮਾਪ ਦੇਖੋਗੇ। *Value* ਜਾਂ *Random* ਸੈਟਿੰਗਾਂ ਬਦਲੋ ਤਾਂ ਜੋ ਮੁੱਲ ਵਿੱਚ ਬਦਲਾਅ ਦੇਖਿਆ ਜਾ ਸਕੇ। ```output (.venv) ➜ soil-moisture-sensor $ python app.py Soil moisture: 615 Soil moisture: 612 Soil moisture: 498 Soil moisture: 493 Soil moisture: 490 Soil Moisture: 388 ``` > 💁 ਤੁਸੀਂ ਇਹ ਕੋਡ [code/virtual-device](../../../../../2-farm/lessons/2-detect-soil-moisture/code/virtual-device) ਫੋਲਡਰ ਵਿੱਚ ਪਾ ਸਕਦੇ ਹੋ। 😀 ਤੁਹਾਡਾ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਪ੍ਰੋਗਰਾਮ ਸਫਲ ਰਿਹਾ! --- **ਅਸਵੀਕਰਤੀ**: ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚੀਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਇਸ ਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।