# ਮਿੱਟੀ ਦੀ ਨਮੀ ਮਾਪੋ - ਰਾਸਪਬੈਰੀ ਪਾਈ ਇਸ ਪਾਠ ਦੇ ਇਸ ਹਿੱਸੇ ਵਿੱਚ, ਤੁਸੀਂ ਰਾਸਪਬੈਰੀ ਪਾਈ ਨਾਲ ਇੱਕ ਕੈਪੈਸਿਟਿਵ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਜੋੜੋਗੇ ਅਤੇ ਇਸ ਤੋਂ ਮੁੱਲ ਪੜ੍ਹੋਗੇ। ## ਹਾਰਡਵੇਅਰ ਰਾਸਪਬੈਰੀ ਪਾਈ ਨੂੰ ਇੱਕ ਕੈਪੈਸਿਟਿਵ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਦੀ ਲੋੜ ਹੈ। ਤੁਸੀਂ ਜੋ ਸੈਂਸਰ ਵਰਤੋਂਗੇ ਉਹ ਹੈ [Capacitive Soil Moisture Sensor](https://www.seeedstudio.com/Grove-Capacitive-Moisture-Sensor-Corrosion-Resistant.html), ਜੋ ਮਿੱਟੀ ਦੀ ਨਮੀ ਨੂੰ ਮਿੱਟੀ ਦੀ ਕੈਪੈਸਿਟੈਂਸ ਦਾ ਪਤਾ ਲਗਾ ਕੇ ਮਾਪਦਾ ਹੈ। ਇਹ ਗੁਣ ਮਿੱਟੀ ਦੀ ਨਮੀ ਦੇ ਬਦਲਣ ਨਾਲ ਬਦਲਦਾ ਹੈ। ਜਿਵੇਂ ਜਿਵੇਂ ਮਿੱਟੀ ਦੀ ਨਮੀ ਵਧਦੀ ਹੈ, ਵੋਲਟੇਜ ਘਟਦਾ ਹੈ। ਇਹ ਇੱਕ ਐਨਾਲੌਗ ਸੈਂਸਰ ਹੈ, ਇਸ ਲਈ ਇਹ ਐਨਾਲੌਗ ਪਿਨ ਵਰਤਦਾ ਹੈ ਅਤੇ ਪਾਈ ਦੇ ਗ੍ਰੋਵ ਬੇਸ ਹੈਟ ਵਿੱਚ 10-ਬਿਟ ADC ਵੋਲਟੇਜ ਨੂੰ ਡਿਜੀਟਲ ਸਿਗਨਲ (1-1,023) ਵਿੱਚ ਬਦਲਣ ਲਈ ਵਰਤਦਾ ਹੈ। ਇਹ ਸਿਗਨਲ ਫਿਰ ਪਾਈ ਦੇ GPIO ਪਿਨਾਂ ਰਾਹੀਂ I²C ਦੇ ਜ਼ਰੀਏ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ। ### ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਨੂੰ ਜੋੜੋ ਗ੍ਰੋਵ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਨੂੰ ਰਾਸਪਬੈਰੀ ਪਾਈ ਨਾਲ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ। #### ਕੰਮ - ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਨੂੰ ਜੋੜੋ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਨੂੰ ਜੋੜੋ। ![ਗ੍ਰੋਵ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ](../../../../../translated_images/grove-capacitive-soil-moisture-sensor.e7f0776cce30e78be5cc5a07839385fd6718857f31b5bf5ad3d0c73c83b2f0ef.pa.png) 1. ਗ੍ਰੋਵ ਕੇਬਲ ਦੇ ਇੱਕ ਸਿਰੇ ਨੂੰ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਦੇ ਸਾਕਟ ਵਿੱਚ ਪਾਓ। ਇਹ ਸਿਰਫ਼ ਇੱਕ ਹੀ ਦਿਸ਼ਾ ਵਿੱਚ ਜਾਵੇਗਾ। 1. ਰਾਸਪਬੈਰੀ ਪਾਈ ਨੂੰ ਬੰਦ ਰੱਖਦੇ ਹੋਏ, ਗ੍ਰੋਵ ਕੇਬਲ ਦੇ ਦੂਜੇ ਸਿਰੇ ਨੂੰ ਗ੍ਰੋਵ ਬੇਸ ਹੈਟ ਦੇ ਐਨਾਲੌਗ ਸਾਕਟ **A0** ਵਿੱਚ ਜੋੜੋ। ਇਹ ਸਾਕਟ GPIO ਪਿਨਾਂ ਦੇ ਕੋਲ ਵਾਲੀ ਕਤਾਰ ਵਿੱਚ ਸੱਜੇ ਪਾਸੇ ਤੋਂ ਦੂਜਾ ਹੈ। ![A0 ਸਾਕਟ ਨਾਲ ਜੁੜਿਆ ਗ੍ਰੋਵ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ](../../../../../translated_images/pi-soil-moisture-sensor.fdd7eb2393792cf6739cacf1985d9f55beda16d372f30d0b5a51d586f978a870.pa.png) 1. ਮਿੱਟੀ ਵਿੱਚ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਪਾਓ। ਇਸ 'ਤੇ ਇੱਕ 'ਸਭ ਤੋਂ ਉੱਚੀ ਸਥਿਤੀ ਲਾਈਨ' ਹੈ - ਸੈਂਸਰ 'ਤੇ ਇੱਕ ਚਿੱਟੀ ਲਾਈਨ। ਸੈਂਸਰ ਨੂੰ ਇਸ ਲਾਈਨ ਤੱਕ ਪਾਓ ਪਰ ਇਸ ਤੋਂ ਪਾਰ ਨਾ ਕਰੋ। ![ਮਿੱਟੀ ਵਿੱਚ ਗ੍ਰੋਵ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ](../../../../../translated_images/soil-moisture-sensor-in-soil.bfad91002bda5e960f8c51ee64b02ee59b32c8c717e3515a2c945f33e614e403.pa.png) ## ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਕਰੋ ਹੁਣ ਰਾਸਪਬੈਰੀ ਪਾਈ ਨੂੰ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਵਰਤਣ ਲਈ ਪ੍ਰੋਗਰਾਮ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ### ਕੰਮ - ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਕਰੋ ਜੰਤਰ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਕਰੋ। 1. ਪਾਈ ਨੂੰ ਚਾਲੂ ਕਰੋ ਅਤੇ ਇਸ ਦੇ ਬੂਟ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰੋ। 1. VS Code ਚਲਾਓ, ਚਾਹੇ ਸਿੱਧੇ ਪਾਈ 'ਤੇ ਜਾਂ ਰਿਮੋਟ SSH ਐਕਸਟੈਂਸ਼ਨ ਰਾਹੀਂ ਕਨੈਕਟ ਕਰਕੇ। > ⚠️ ਤੁਸੀਂ [ਨਾਈਟਲਾਈਟ - ਪਾਠ 1 ਵਿੱਚ VS Code ਸੈਟਅੱਪ ਅਤੇ ਚਲਾਉਣ ਲਈ ਹਦਾਇਤਾਂ](../../../1-getting-started/lessons/1-introduction-to-iot/pi.md) ਨੂੰ ਜ਼ਰੂਰਤ ਪੈਣ 'ਤੇ ਵੇਖ ਸਕਦੇ ਹੋ। 1. ਟਰਮੀਨਲ ਤੋਂ, `pi` ਯੂਜ਼ਰ ਦੇ ਹੋਮ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਇੱਕ ਨਵਾਂ ਫੋਲਡਰ ਬਣਾਓ ਜਿਸਦਾ ਨਾਮ `soil-moisture-sensor` ਰੱਖੋ। ਇਸ ਫੋਲਡਰ ਵਿੱਚ ਇੱਕ ਫਾਈਲ ਬਣਾਓ ਜਿਸਦਾ ਨਾਮ `app.py` ਹੋਵੇ। 1. ਇਸ ਫੋਲਡਰ ਨੂੰ VS Code ਵਿੱਚ ਖੋਲ੍ਹੋ। 1. `app.py` ਫਾਈਲ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ ਤਾਂ ਜੋ ਕੁਝ ਲੋੜੀਂਦੇ ਲਾਇਬ੍ਰੇਰੀਜ਼ ਨੂੰ ਇੰਪੋਰਟ ਕੀਤਾ ਜਾ ਸਕੇ: ```python import time from grove.adc import ADC ``` `import time` ਕਮਾਂਡ `time` ਮੋਡੀਊਲ ਨੂੰ ਇੰਪੋਰਟ ਕਰਦੀ ਹੈ ਜੋ ਇਸ ਅਸਾਈਨਮੈਂਟ ਵਿੱਚ ਬਾਅਦ ਵਿੱਚ ਵਰਤੀ ਜਾਵੇਗੀ। `from grove.adc import ADC` ਕਮਾਂਡ ਗ੍ਰੋਵ ਪਾਈਥਨ ਲਾਇਬ੍ਰੇਰੀਜ਼ ਤੋਂ `ADC` ਨੂੰ ਇੰਪੋਰਟ ਕਰਦੀ ਹੈ। ਇਹ ਲਾਇਬ੍ਰੇਰੀ ਪਾਈ ਬੇਸ ਹੈਟ ਦੇ ਐਨਾਲੌਗ ਤੋਂ ਡਿਜੀਟਲ ਕਨਵਰਟਰ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਨ ਅਤੇ ਐਨਾਲੌਗ ਸੈਂਸਰਾਂ ਤੋਂ ਵੋਲਟੇਜ ਪੜ੍ਹਨ ਲਈ ਕੋਡ ਰੱਖਦੀ ਹੈ। 1. ਹੇਠਾਂ ਦਿੱਤੇ ਕੋਡ ਨੂੰ ਇਸ ਦੇ ਹੇਠਾਂ ਸ਼ਾਮਲ ਕਰੋ ਤਾਂ ਜੋ `ADC` ਕਲਾਸ ਦਾ ਇੱਕ ਇੰਸਟੈਂਸ ਬਣਾਇਆ ਜਾ ਸਕੇ: ```python adc = ADC() ``` 1. ਇੱਕ ਅਨੰਤ ਲੂਪ ਸ਼ਾਮਲ ਕਰੋ ਜੋ A0 ਪਿਨ 'ਤੇ ਇਸ ADC ਤੋਂ ਪੜ੍ਹਦਾ ਹੈ ਅਤੇ ਨਤੀਜੇ ਨੂੰ ਕਨਸੋਲ 'ਤੇ ਲਿਖਦਾ ਹੈ। ਇਹ ਲੂਪ ਪੜ੍ਹਨ ਦੇ ਵਿਚਕਾਰ 10 ਸਕਿੰਟ ਲਈ ਸੌਂ ਸਕਦਾ ਹੈ। ```python while True: soil_moisture = adc.read(0) print("Soil moisture:", soil_moisture) time.sleep(10) ``` 1. ਪਾਈਥਨ ਐਪ ਚਲਾਓ। ਤੁਸੀਂ ਮਿੱਟੀ ਦੀ ਨਮੀ ਦੇ ਮਾਪ ਕਨਸੋਲ 'ਤੇ ਲਿਖੇ ਹੋਏ ਦੇਖੋਗੇ। ਮਿੱਟੀ ਵਿੱਚ ਕੁਝ ਪਾਣੀ ਸ਼ਾਮਲ ਕਰੋ ਜਾਂ ਸੈਂਸਰ ਨੂੰ ਮਿੱਟੀ ਤੋਂ ਹਟਾਓ ਅਤੇ ਮੁੱਲ ਬਦਲਦੇ ਦੇਖੋ। ```output pi@raspberrypi:~/soil-moisture-sensor $ python3 app.py Soil moisture: 615 Soil moisture: 612 Soil moisture: 498 Soil moisture: 493 Soil moisture: 490 Soil Moisture: 388 ``` ਉਪਰੋਕਤ ਉਦਾਹਰਣ ਨਤੀਜੇ ਵਿੱਚ, ਤੁਸੀਂ ਪਾਣੀ ਸ਼ਾਮਲ ਕਰਨ 'ਤੇ ਵੋਲਟੇਜ ਨੂੰ ਘਟਦੇ ਹੋਏ ਦੇਖ ਸਕਦੇ ਹੋ। > 💁 ਤੁਸੀਂ ਇਹ ਕੋਡ [code/pi](../../../../../2-farm/lessons/2-detect-soil-moisture/code/pi) ਫੋਲਡਰ ਵਿੱਚ ਲੱਭ ਸਕਦੇ ਹੋ। 😀 ਤੁਹਾਡਾ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਪ੍ਰੋਗਰਾਮ ਸਫਲ ਰਿਹਾ! --- **ਅਸਵੀਕਾਰਨਾ**: ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚੀਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼, ਜੋ ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਹੈ, ਨੂੰ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤ ਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।