# ਰਿਲੇ ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ - ਰਾਸਪਬੇਰੀ ਪਾਈ ਇਸ ਪਾਠ ਦੇ ਇਸ ਭਾਗ ਵਿੱਚ, ਤੁਸੀਂ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਦੇ ਨਾਲ ਆਪਣੇ ਰਾਸਪਬੇਰੀ ਪਾਈ ਵਿੱਚ ਇੱਕ ਰਿਲੇ ਸ਼ਾਮਲ ਕਰੋਗੇ ਅਤੇ ਇਸਨੂੰ ਮਿੱਟੀ ਦੀ ਨਮੀ ਦੇ ਪੱਧਰ ਦੇ ਆਧਾਰ 'ਤੇ ਕੰਟਰੋਲ ਕਰੋਗੇ। ## ਹਾਰਡਵੇਅਰ ਰਾਸਪਬੇਰੀ ਪਾਈ ਨੂੰ ਇੱਕ ਰਿਲੇ ਦੀ ਲੋੜ ਹੈ। ਤੁਸੀਂ ਜੋ ਰਿਲੇ ਵਰਤੋਗੇ ਉਹ [ਗ੍ਰੋਵ ਰਿਲੇ](https://www.seeedstudio.com/Grove-Relay.html) ਹੈ, ਜੋ ਇੱਕ ਨਾਰਮਲੀ-ਓਪਨ ਰਿਲੇ ਹੈ (ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਜਦੋਂ ਰਿਲੇ ਨੂੰ ਕੋਈ ਸਿਗਨਲ ਨਹੀਂ ਭੇਜਿਆ ਜਾਂਦਾ, ਤਾਂ ਆਉਟਪੁੱਟ ਸਰਕਿਟ ਖੁੱਲ੍ਹਾ ਜਾਂ ਡਿਸਕਨੈਕਟ ਹੁੰਦਾ ਹੈ) ਜੋ 250V ਅਤੇ 10A ਤੱਕ ਦੇ ਆਉਟਪੁੱਟ ਸਰਕਿਟ ਨੂੰ ਸੰਭਾਲ ਸਕਦਾ ਹੈ। ਇਹ ਇੱਕ ਡਿਜ਼ੀਟਲ ਐਕਚੁਏਟਰ ਹੈ, ਇਸ ਲਈ ਇਹ ਗ੍ਰੋਵ ਬੇਸ ਹੈਟ ਦੇ ਡਿਜ਼ੀਟਲ ਪਿਨ ਨਾਲ ਜੁੜਦਾ ਹੈ। ### ਰਿਲੇ ਨੂੰ ਜੁੜੋ ਗ੍ਰੋਵ ਰਿਲੇ ਨੂੰ ਰਾਸਪਬੇਰੀ ਪਾਈ ਨਾਲ ਜੁੜਿਆ ਜਾ ਸਕਦਾ ਹੈ। #### ਕੰਮ ਰਿਲੇ ਨੂੰ ਜੁੜੋ। ![ਗ੍ਰੋਵ ਰਿਲੇ](../../../../../translated_images/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.pa.png) 1. ਗ੍ਰੋਵ ਕੇਬਲ ਦੇ ਇੱਕ ਸਿਰੇ ਨੂੰ ਰਿਲੇ ਦੇ ਸਾਕਟ ਵਿੱਚ ਪਾਓ। ਇਹ ਸਿਰਫ ਇੱਕ ਹੀ ਦਿਸ਼ਾ ਵਿੱਚ ਜਾਵੇਗਾ। 1. ਰਾਸਪਬੇਰੀ ਪਾਈ ਨੂੰ ਬੰਦ ਰੱਖਦੇ ਹੋਏ, ਗ੍ਰੋਵ ਕੇਬਲ ਦੇ ਦੂਜੇ ਸਿਰੇ ਨੂੰ ਗ੍ਰੋਵ ਬੇਸ ਹੈਟ ਦੇ **D5** ਨਾਲ ਚਿੰਨ੍ਹਿਤ ਡਿਜ਼ੀਟਲ ਸਾਕਟ ਵਿੱਚ ਜੁੜੋ। ਇਹ ਸਾਕਟ GPIO ਪਿਨ ਦੇ ਕੋਲ ਵਾਲੀ ਕਤਾਰ ਵਿੱਚ ਖੱਬੇ ਪਾਸੇ ਤੋਂ ਦੂਜਾ ਹੈ। ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਨੂੰ **A0** ਸਾਕਟ ਨਾਲ ਜੁੜਿਆ ਰਹਿਣ ਦਿਓ। ![ਗ੍ਰੋਵ ਰਿਲੇ D5 ਸਾਕਟ ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ, ਅਤੇ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ A0 ਸਾਕਟ ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ](../../../../../translated_images/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.pa.png) 1. ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਨੂੰ ਮਿੱਟੀ ਵਿੱਚ ਪਾਓ, ਜੇਕਰ ਇਹ ਪਹਿਲੇ ਪਾਠ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਨਹੀਂ ਪਾਇਆ ਗਿਆ। ## ਰਿਲੇ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਕਰੋ ਹੁਣ ਰਾਸਪਬੇਰੀ ਪਾਈ ਨੂੰ ਜੁੜੇ ਹੋਏ ਰਿਲੇ ਨੂੰ ਵਰਤਣ ਲਈ ਪ੍ਰੋਗਰਾਮ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ### ਕੰਮ ਡਿਵਾਈਸ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਕਰੋ। 1. ਪਾਈ ਨੂੰ ਚਾਲੂ ਕਰੋ ਅਤੇ ਇਸਨੂੰ ਬੂਟ ਹੋਣ ਦਿਓ। 1. ਪਿਛਲੇ ਪਾਠ ਤੋਂ `soil-moisture-sensor` ਪ੍ਰੋਜੈਕਟ ਨੂੰ VS Code ਵਿੱਚ ਖੋਲ੍ਹੋ ਜੇਕਰ ਇਹ ਪਹਿਲਾਂ ਹੀ ਨਹੀਂ ਖੁੱਲ੍ਹਿਆ। ਤੁਸੀਂ ਇਸ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਕੁਝ ਸ਼ਾਮਲ ਕਰੋਗੇ। 1. ਮੌਜੂਦਾ ਇੰਪੋਰਟਸ ਦੇ ਹੇਠਾਂ `app.py` ਫਾਈਲ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ: ```python from grove.grove_relay import GroveRelay ``` ਇਹ ਕਮਾਂਡ ਗ੍ਰੋਵ ਪਾਈਥਨ ਲਾਇਬ੍ਰੇਰੀਜ਼ ਤੋਂ `GroveRelay` ਨੂੰ ਰਿਲੇ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਨ ਲਈ ਇੰਪੋਰਟ ਕਰਦੀ ਹੈ। 1. `ADC` ਕਲਾਸ ਦੇ ਐਲਾਨ ਦੇ ਹੇਠਾਂ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ: ```python relay = GroveRelay(5) ``` ਇਹ **D5** ਪਿਨ (ਜਿਸ ਡਿਜ਼ੀਟਲ ਪਿਨ ਨਾਲ ਤੁਸੀਂ ਰਿਲੇ ਨੂੰ ਜੁੜਿਆ ਹੈ) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਰਿਲੇ ਬਣਾਉਂਦਾ ਹੈ। 1. ਰਿਲੇ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ, ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ `while True:` ਲੂਪ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ: ```python relay.on() time.sleep(.5) relay.off() ``` ਇਹ ਕੋਡ ਰਿਲੇ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ, 0.5 ਸਕਿੰਟ ਲਈ ਰੁਕਦਾ ਹੈ, ਅਤੇ ਫਿਰ ਰਿਲੇ ਨੂੰ ਬੰਦ ਕਰਦਾ ਹੈ। 1. ਪਾਈਥਨ ਐਪ ਚਲਾਓ। ਰਿਲੇ ਹਰ 10 ਸਕਿੰਟ ਵਿੱਚ ਚਾਲੂ ਅਤੇ ਬੰਦ ਹੋਵੇਗਾ, ਚਾਲੂ ਅਤੇ ਬੰਦ ਹੋਣ ਦੇ ਵਿਚਕਾਰ ਅੱਧਾ ਸਕਿੰਟ ਦੇਰੀ ਹੋਵੇਗੀ। ਤੁਸੀਂ ਸੁਣੋਗੇ ਕਿ ਰਿਲੇ ਕਲਿੱਕ ਕਰਦਾ ਹੈ ਅਤੇ ਫਿਰ ਬੰਦ ਹੁੰਦਾ ਹੈ। ਜਦੋਂ ਰਿਲੇ ਚਾਲੂ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਗ੍ਰੋਵ ਬੋਰਡ 'ਤੇ ਇੱਕ ਐਲਈਡੀ ਜਲਦੀ ਹੈ ਅਤੇ ਬੰਦ ਹੋਣ 'ਤੇ ਬੁਝ ਜਾਂਦੀ ਹੈ। ![ਰਿਲੇ ਚਾਲੂ ਅਤੇ ਬੰਦ ਹੋ ਰਿਹਾ ਹੈ](../../../../../images/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. ਪਾਈਥਨ ਐਪ ਚਲਾਓ। ਤੁਸੀਂ ਦੇਖੋਗੇ ਕਿ ਰਿਲੇ ਮਿੱਟੀ ਦੀ ਨਮੀ ਦੇ ਪੱਧਰ ਦੇ ਅਨੁਸਾਰ ਚਾਲੂ ਜਾਂ ਬੰਦ ਹੁੰਦਾ ਹੈ। ਸੁੱਕੀ ਮਿੱਟੀ ਵਿੱਚ ਕੋਸ਼ਿਸ਼ ਕਰੋ, ਫਿਰ ਪਾਣੀ ਸ਼ਾਮਲ ਕਰੋ। ```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/pi](../../../../../2-farm/lessons/3-automated-plant-watering/code-relay/pi) ਫੋਲਡਰ ਵਿੱਚ ਲੱਭ ਸਕਦੇ ਹੋ। 😀 ਤੁਹਾਡਾ ਮਿੱਟੀ ਨਮੀ ਸੈਂਸਰ ਰਿਲੇ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਵਾਲਾ ਪ੍ਰੋਗਰਾਮ ਸਫਲ ਰਿਹਾ! --- **ਅਸਵੀਕਰਤੀ**: ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਹਾਲਾਂਕਿ ਅਸੀਂ ਸਹੀਅਤ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।