# ఆటోమేటెడ్ ప్లాంట్ వాటరింగ్ ![ఈ పాఠం యొక్క స్కెచ్‌నోట్ అవలోకనం](../../../../../translated_images/te/lesson-7.30b5f577d3cb8e03.webp) > స్కెచ్‌నోట్ [నిత్య నరసింహన్](https://github.com/nitya) అందించారు. పెద్ద వెర్షన్ కోసం చిత్రాన్ని క్లిక్ చేయండి. ఈ పాఠం [IoT ఫర్ బిగినర్స్ ప్రాజెక్ట్ 2 - డిజిటల్ వ్యవసాయం సిరీస్](https://youtube.com/playlist?list=PLmsFUfdnGr3yCutmcVg6eAUEfsGiFXgcx) నుండి [మైక్రోసాఫ్ట్ రియాక్టర్](https://developer.microsoft.com/reactor/?WT.mc_id=academic-17441-jabenn) భాగంగా బోధించబడింది. [![IoT ఆధారిత ఆటోమేటెడ్ ప్లాంట్ వాటరింగ్](https://img.youtube.com/vi/g9FfZwv9R58/0.jpg)](https://youtu.be/g9FfZwv9R58) ## పాఠం ముందు క్విజ్ [పాఠం ముందు క్విజ్](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/13) ## పరిచయం గత పాఠంలో, మీరు మట్టి తేమను నిరীক্ষించటం ఎలా తెలుసుకున్నారు. ఈ పాఠంలో మీరు మట్టి తేమకు స్పందించే ఆటోమేటెడ్ వాటరింగ్ వ్యవస్థ యొక్క ప్రాథమిక భాగాలను ఎలా నిర్మించాలో నేర్చుకోగలరు. మీరు టైమింగ్ గురించి కూడా తెలుసుకుంటారు - సెన్సార్లకు మార్పులకు స్పందించడానికి కొంత సమయం పడుతుంది, అలాగే యాక్స్యూటర్‌లు సెన్సార్ల ద్వారా కొలవబడే లక్షణాలను మార్చడానికి సమయం తీసుకుంటాయి. ఈ పాఠంలో మనం కవర్ చేసే అంశాలు: * [తక్కువ విద్యుత్ వినియోగ IoT పరికరం నుండి అధిక విద్యుత్ పరికరాలను నియంత్రించటం](../../../../../2-farm/lessons/3-automated-plant-watering) * [రెలే నియంత్రణ](../../../../../2-farm/lessons/3-automated-plant-watering) * [మీ మొక్కను MQTT ద్వారా నియంత్రించటం](../../../../../2-farm/lessons/3-automated-plant-watering) * [సెన్సార్ మరియు యాక్స్యూటర్ టైమింగ్](../../../../../2-farm/lessons/3-automated-plant-watering) * [మీ మొక్క నియంత్రణ సర్వర్‌కు టైమింగ్ చేర్చటం](../../../../../2-farm/lessons/3-automated-plant-watering) ## తక్కువ విద్యుత్ వినియోగ IoT పరికరం నుండి అధిక విద్యుత్ పరికరాలను నియంత్రించటం IoT పరికరాలు తక్కువ వోల్టేజ్ ఉపయోగిస్తాయి. ఇది LEDs వంటి తక్కువ శక్తి యాక్స్యూటర్‌లకు మరియు సెన్సార్లకు సరిపోతుంది, కానీ పెద్ద హార్డ్‌వేర్‌ను నియంత్రించడానికి తక్కువ వోల్టేజ్ మించి ఉంటుంది, ఉదాహరణకు నీటి పంపుకి ఉపయోగించే పంపు. ఇళ్ల మొక్కల కోసం ఉపయోగించే చిన్న పంపులు కూడా IoT డెవ్ కిట్ కనీస విద్యుత్ పారుదలకు తక్కువ, మరియు బోర్డును దహనం చేయగలవు. > 🎓 కరెంట్ ను యాంపియర్ (A)లో కొలతారు, ఇది సర్క్యూట్‌లో ఎలక్ట్రిసిటీ ప్రవాహం యొక్క పరిమాణం. వోల్టేజ్ ప్రేరణను ఇస్తుంది, కరెంట్ ఎంతగా ప్రేరేపించబడుతుందో చూపిస్తుంది. మీరు కరెంట్ గురించి మరింత తెలుసుకోవడానికి [వికీపీడియాలో విద్యుత్ కరెంట్ పేజీ](https://wikipedia.org/wiki/Electric_current) చూడొచ్చు. ఇది పరిష్కరించేందుకు, పంపును బాహ్య విద్యుత్ సరఫరాకు కనెక్ట్ చేయాలి, మరియు యాక్స్యూటర్ ఉపయోగించి పంపును ఆన్ చేయాలి, లైట్ స్విచ్ ఆన్ చేసే విధానంలోనే. మీ వేలి ఒక స్విచ్‌ను ఫ్లిప్ చేయడానికి తక్కువ శక్తి (మీ శరీరంలో శక్తి రూపంలో) అవసరం అవుతుంది, ఇది లైట్‌ను 110 వోల్ట్/240 వోల్ట్ ప్రధాన విద్యుత్తుకు కనెక్ట్ చేస్తుంది. ![ఒక లైట్ స్విచ్ పవర్‌ను లైట్‌కు ఆన్ చేస్తోంది](../../../../../translated_images/te/light-switch.760317ad6ab8bd6d.webp) > 🎓 [ప్రధాన విద్యుత్](https://wikipedia.org/wiki/Mains_electricity) అనగా ఇళ్లు, వ్యాపారాలకు జాతీయ మౌలిక వసతుల ద్వారా సరఫరా అయ్యే విద్యుత్. ✅ IoT పరికరాలు సాధారణంగా 3.3V లేదా 5V, 1 ఆంపియర్ కంటే తక్కువ కరెంట్ అందిస్తుంది. దీన్ని 230V (ఉత్తర అమెరికా లో 120V, జపాన్ లో 100V) సాధారణంగా ఉన్న ప్రధాన విద్యుత్ తో పోల్చండి, ఇది 30A వరకు కరెంట్ సరఫరా చేయగలదు. ఇలా చేయగల యాక్స్యూటర్‌లలో చాలా ఉన్నాయి, అలాగే మీ ఇష్టమైన స్విచ్‌లను మిమికీ చేసే మెకానికల్ పరికరాలు కూడా ఉంటాయి. అత్యంత ప్రాచుర్యం ఉన్నది ఒక రెలే. ### రెలేలు రెలే ఒక ఎలక్ట్రోమెకానికల్ స్విచ్, ఇది ఒక ఎలక్ట్రికల్ సిగ్నల్ ను మెకానికల్ మూవ్‌మెంట్‌గా మారుస్తుంది, ఇది స్విచ్‌ను ఆన్ చేస్తుంది. రెలే యొక్క కోరు ఒక ఎలక్ట్రోమాగ్నెట్. > 🎓 [ఎలక్ట్రోమాగ్నెట్లు](https://wikipedia.org/wiki/Electromagnet) అనేవి వైర్ కాయిల్ ద్వారా విద్యుత్ పంపించి సృష్టించే క్షిప్ర లోకాలు. విద్యుత్ ఆన్ చేస్తే కాయిల్ చుంబకమవుతుంది, విద్యుత్ ఆఫ్ చేస్తే చుంబకత్వం పోయిపోతుంది. ![ఆన్ ఉన్నప్పుడు, ఎలక్ట్రోమాగ్నెట్ ఒక చుంబకక్షేత్రాన్ని సృష్టించి అవుట్‌పుట్ సర్క్యూట్ స్విచ్‌ను ఆన్ చేస్తుంది](../../../../../translated_images/te/relay-on.4db16a0fd6b66926.webp) ఒక రెలేలో, ఒక నియంత్రణ సర్క్యూట్ ఎలక్ట్రోమాగ్నెట్‌కు విద్యుత్ అందిస్తుంది. ఎలక్ట్రోమాగ్నెట్ ఆన్ ఉన్నప్పుడు, అది ఒక లేవర్‌ను తీయించి ఒక స్విచ్‌ను కదిలించి ఆ అవుట్‌పుట్ సర్క్యూట్‌ను పూర్తిచేస్తుంది. ![ఆఫ్ ఉన్నప్పుడు, ఎలక్ట్రోమాగ్నెట్ చుంబకక్షేత్రం సృష్టించడు, అవుట్‌పుట్ సర్క్యూట్ స్విచ్ ఆఫ్ అవుతుంది](../../../../../translated_images/te/relay-off.c34a178a2960fecd.webp) నియంత్రణ సర్క్యూట్ ఆఫ్ ఉన్నప్పుడు, ఎలక్ట్రోమాగ్నెట్ ఆఫ్ అవుతుంది, లేవర్ విడుదలవుతుంది మరియు కాంటాక్ట్స్ తెరుస్తుంది, అవుట్‌పుట్ సర్క్యూట్ ఆఫ్ అవుతుంది. రెలేలు డిజిటల్ యాక్స్యూటర్‌లు - రెలేకు హై సిగ్నల్ ఇవ్వడం అంటే ఆన్ చేయడం, లో సిగ్నల్ అంటే ఆఫ్ చేయడం. ఆుట్‌పుట్ సర్క్యూట్ అదనపు హార్డ్‌వేర్, ఉదాహరణకు, సాగునీటి వ్యవస్థకు విద్యుత్ అందించడానికి ఉపయోగించవచ్చు. IoT పరికరం రెలే ఆన్ చేసి, ఉండకుండానే పవర్‌ను పంపుతుంది, మొక్కలకు నీరు పోవడానికి సహాయం చేస్తుంది. ఆ తర్వాత, IoT పరికరం రెలే ఆఫ్ చేసి, సాగునీటి వ్యవస్థకు విద్యుత్ సరఫరాను నిలిపేస్తుంది, నీరు ఆపుతుంది. ![ఒక రెలే ఆన్ అవుతోంది, పంపును ఆన్ చేసి నీరు మొక్కకు పంపిస్తోంది](../../../../../images/strawberry-pump.gif) పై వీడియోలో, రెలే ఆన్ అయింది. రెలే上的 LED ఆన్ ఉన్నట్లు తెలియజేస్తుంది (కొన్ని రెలే బోర్డుల్లో రెలే ఆన్ లేదా ఆఫ్ అని సూచించే LEDలు ఉంటాయి) మరియు పంపుకు విద్యుత్ పంపుతోంది, పంపు ఆన్ అయి మొక్కకు నీరు పంపిస్తోంది. > 💁 రెలేలు రెండు అవుట్‌పుట్ సర్క్యూట్ల మధ్య స్విచ్ చేయడానికి కూడా ఉపయోగించవచ్చు, ఒకదాన్ని ఆన్/ఆఫ్ చేయడం కాకుండా. లేవర్ కదలుతుంది, ఒక అవుట్‌పుట్ సర్క్యూట్ నుంచి మరొక అవుట్‌పుట్ సర్క్యూట్‌కు స్విచ్‌ను మార్చి, సాధారణ పవర్ కనెక్షన్ లేదా గ్రౌండ్‌ను భాగం పెడుతుంది. ✅ కొంత పరిశోధన చేయండి: రెలేలకు అనేక రకాలు ఉన్నాయి, అవి నియంత్రణ సర్క్యూట్ పవర్ అందించినప్పుడు రెలే ఆన్/ఆఫ్ అవుతుందా లేదా, లేదా బహుళ అవుట్‌పుట్ సర్క్యూట్‌లతో ఉంటాయా వంటి తేడాలు ఉంటాయి. ఈ రకాలను తెలుసుకోండి. లేవర్ కదలുമ്പോటం వినిపించే క్లిక్ శబ్దం ఉంటుంది, ఇది ఎలక్ట్రోమాగ్నెట్తో కాంటాక్ట్ అవుతుంది. > 💁 రెలే ఒక విధంగా వైర్లింగ్ చేస్తే, కనెక్షన్ చేయడం తో రెలే పవర్ బ్రేక్ అయ్యి ఆఫ్ అవుతుంది, అది తిరిగి ఆన్ అవుతుంది, ఇలా తిరుగుతూనే ఉంటుంది, ఇది చాలా వేగంగా క్లిక్ చేస్తూ బజ్జింగ్ శబ్దం చేస్తుంది. ఇది కొన్ని మొదటి ఎలక్ట్రిక్ డోర్బెల్ బజ్జర్‌ల పని విధానమే. ### రెలే పవర్ ఎలక్ట్రోమాగ్నెట్ లేవర్‌ను ఆకర్షించడానికి ఎక్కువ శక్తి అవసరం లేదు, ఇది IoT డెవ్ కిట్ నుండి 3.3V లేదా 5V అవుట్‌పుట్ తో నియంత్రించవచ్చు. అవుట్‌పుట్ సర్క్యూట్ ఎక్కువ విద్యుత్ సరఫరా చేయగలదు, రెలేపై ఆధారపడి, ప్రధాన వోల్టేజ్ లేదా అంతే కాదు, ఎక్కువ శక్తి స్థాయిలకు కూడా అనుకూలం. ఈ విధంగా IoT డెవ్ కిట్ ఒక చిన్న మొక్కకు పంపుతో నాగరిక సాగునీటి వ్యవస్థ నుండి ఆర్థికంగా పెద్ద రైతు వ్యవసాయం వరకు నియంత్రించగలదు. ![కంట్రోల్ సర్క్యూట్, అవుట్‌పుట్ సర్క్యూట్ మరియు రెలే ప్యాకేజీతో గ్రోవ్ రెలే](../../../../../translated_images/te/grove-relay-labelled.293e068f5c3c2a19.webp) పై చిత్రం గ్రోవ్ రెలే చూపిస్తుంది. కంట్రోల్ సర్క్యూట్ ఒక IoT పరికరానికి కనెక్ట్ అవుతుంది మరియు 3.3V లేదా 5V ఉపయోగించి రెలే ఆన్ లేదా ఆఫ్ చేస్తుంది. అవుట్‌పుట్ సర్క్యూట్ రెండు టెర్మినల్స్ కలిగి ఉంటుంది, వీటిలో ఏదైనా పవర్ లేదా గ్రౌండ్ కావచ్చు. అవుట్‌పుట్ సర్క్యూట్ 250V వద్ద 10A వరకు హ్యాండిల్ చేయగలదు, ఇది వివిధ ప్రధాన విద్యుత్ పరికరాలకు సరిపోతుంది. మీరు కూడా ఎక్కువ పవర్ స్థాయిల వరకు హ్యాండిల్ చేసే రెలే పొందవచ్చు. ![రెలే ద్వారా વાયરింగ్ చెయ్యబడిన పంపు](../../../../../translated_images/te/pump-wired-to-relay.66c5cfc0d8918990.webp) పైన చిత్రంలో, ఒక రెలే ద్వారా పంపుకు విద్యుత్ సరఫరా చేయబడింది. +5V USB పవర్ సరఫరా టెర్మినల్ నుండి అవుట్‌పుట్ సర్క్యూట్ టెర్మినల్‌కు ఒక ఎరుపు వైర్ కలవబడి ఉంది, మరొక ఎరుపు వైర్ అవుట్‌పుట్ సర్క్యూట్ మరో టెర్మినల్ నుండి పంపుకు కలిపింది. ఒక నలుపు వైర్ పంపును USB పవర్ సరఫరా గ్రౌండ్‌కు కలిపింది. రెలే ఆన్ అయితే, సర్క్యూట్ పూర్తవుతుంది, 5V పంపుకు వెళుతుంది, పంపు ఆన్ అవుతుంది. ## రెలే నియంత్రణ మీ IoT డెవ్ కిట్ నుండి రెలే నియంత్రించవచ్చు. ### పనిది - రెలే నియంత్రణ మీ IoT పరికరంతో రెలే నియంత్రించేందుకు సంబంధిత గైడ్ ఉపయోగించి పని చేయండి: * [Arduino - Wio టర్మినల్](wio-terminal-relay.md) * [సింగిల్-బోర్డ్ కంప్యూటర్ - రాస్ప్బెరీ పై](pi-relay.md) * [సింగిల్-బోర్డ్ కంప్యూటర్ - వర్చువల్ పరికరం](virtual-device-relay.md) ## MQTT ద్వారా మీ మొక్కను నియంత్రించండి ఇప్పటి వరకు, మీ రెలే IoT పరికరం ద్వారా ఒకే మట్టి తేమ రీడింగ్ ఆధారంగా నియంత్రించబడింది. ఒక వాణిజ్య సాగునీటి వ్యవస్థలో, నియంత్రణ లాజిక్ కేంద్రంగా ఉంటుంది, ఇది అనేక సెన్సార్ల డేటాను ఉపయోగించి నీరు పోసుకోవడంపై నిర్ణయాలు తీసుకుంటుంది మరియు ఏదైనా కాన్ఫిగరేషన్ ఒకే చోట మార్చబడుతుంది. దీన్ని సిమ్యులేట్ చేయడానికి, మీరు MQTT ద్వారా రెలే నియంత్రించవచ్చు. ### పనిది - MQTT ద్వారా రెలే నియంత్రణ 1. మీ `soil-moisture-sensor` ప్రాజెక్టులో MQTTతో కనెక్ట్ కావడానికి సంబంధిత MQTT లైబ్రరీలు/పైప్ ప్యాకేజులు మరియు కోడ్ చేర్చండి. కస్టమర్ IDని మీ IDతో ప్రారంభించి `soilmoisturesensor_client` అని పేరుదీయండి. > ⚠️ అవసరమైతే, [ప్రాజెక్ట్ 1, పాఠం 4లో MQTTతో కనెక్ట్ కావడానికి సూచనలు](../../../1-getting-started/lessons/4-connect-internet/README.md#connect-your-iot-device-to-mqtt) చూడవచ్చు. 1. మట్టి తేమ సెట్టింగ్స్‌తో టెలిమేట్రీ పంపడానికి సంబంధిత పరికర కోడ్ చేర్చండి. టెలిమేట్రీ సందేశం పేరును `soil_moisture` గా పెట్టండి. > ⚠️ అవసరమైతే, [ప్రాజెక్ట్ 1, పాఠం 4లో MQTTకి టెలిమేట్రీ పంపడానికి సూచనలు](../../../1-getting-started/lessons/4-connect-internet/README.md#send-telemetry-from-your-iot-device) చూడవచ్చు. 1. `soil-moisture-sensor-server` ఫోల్డర్‌లో టెలిమేట్రీకి సబ్‌స్క్రయిబ్ అయి, రెలే నియంత్రించేందుకు ఆదేశం పంపే స్థానిక సర్వర్ కోడ్ రూపొందించండి. ఆదేశ సందేశంలో ప్రాపర్టీ పేరును `relay_on` గా పెట్టండి, కస్టమర్ IDని మీ IDతో ప్రారంభించి `soilmoisturesensor_server` అని పెట్టండి. మీరు ప్రాజెక్ట్ 1, పాఠం 4లో రాసిన సర్వర్ కోడ్ నిర్మాణాన్ని మానుకోండి, ఎందుకంటే ఈ పాఠంలో ఆ కోడ్‌కు మీరేమో చేర్చబోతున్నారు. > ⚠️ అవసరమైతే, [ప్రాజెక్ట్ 1, పాఠం 4లో MQTTకి టెలిమేట్రీ పంపడం](../../../1-getting-started/lessons/4-connect-internet/README.md#write-the-server-code) మరియు [MQTTలో ఆదేశాలు పంపడం](../../../1-getting-started/lessons/4-connect-internet/README.md#send-commands-to-the-mqtt-broker) సూచనలు చూడవచ్చు. 1. రిసీవ్ అయిన ఆదేశాలలో నుంచి రెలేను నియంత్రించేందుకు సంబంధిత పరికర కోడ్ చేర్చండి, సందేశంలోని `relay_on` ప్రాపర్టీని ఉపయోగించి. `soil_moisture` 450 కంటే ఎక్కువ అయితే `relay_on`కి true పంపండి, లేదా false పంపండి, మీరు ముందుగా IoT పరికరం కోసం చేర్చిన లాజిక్ అదే. > ⚠️ అవసరమైతే, [ప్రాజెక్ట్ 1, పాఠం 4లో MQTT ఆదేశాలకు స్పందించడం](../../../1-getting-started/lessons/4-connect-internet/README.md#handle-commands-on-the-iot-device) సూచనలు చూడవచ్చు. > 💁 మీరు ఈ కోడ్‌ని [code-mqtt](../../../../../2-farm/lessons/3-automated-plant-watering/code-mqtt) ఫోల్డర్‌లో కనుగొనవచ్చు. మీ పరికరం మరియు స్థానిక సర్వర్‌లో కోడ్ పని చేస్తున్నదిగా నిర్ధారించండి, మరియు వర్చువల్ సెన్సార్ పంపే విలువలను మార్చడం లేదా నీరు జోడించడం లేదా సెన్సార్‌ను మట్టిలో నుండి తొలగించడం ద్వారా మట్టి తేమ స్థాయిలు మార్చి పరీక్షించండి. ## సెన్సార్ మరియు యాక్స్యూటర్ టైమింగ్ మునుపటి 3వ పాఠంలో మీరు రాత్రి దీపం (నైట్‌లైట్) నిర్మించారు, అది ఒక LED దీపం, లైట్స్ెన్సార్ తక్కువ వెలుగును గుర్తించిన వెంటనే ఆన్ అవుతుంది. లైట్ సెన్సార్ వెలుగు స్థాయిల మార్పును వెంటనే గుర్తించగలిగింది, పరికరం త్వరగా స్పందించింది, `loop` ఫంక్షన్ లేదా `while True:` లూప్ ఆలస్యం పొడవు మాత్రమే పరిమితి. IoT అభివృద్ధిదారుగా, ఇలాంటి వేగంగా ఫీడ్‌బ్యాక్ లూప్ ప్రతిసారీ ఉండదనే ఆలోచన ఉండాలి. ### మట్టి తేమకు టైమింగ్ మీరు గడచిన పాఠం లో భౌతిక సెన్సార్ ఉపయోగించి మట్టి తేమ కొలిచినట్లైతే, మీరు గమనించినట్లవుంటుంది, మీరు నీరు పోసిన తరువాత కొద్ది సెకన్లలో మట్టి తేమ రీడింగ్ తగ్గుతుందని. ఇది సెన్సార్ ఆలస్యమయిన కారణం కాదు, నీరు మట్టిలో చేరడానికి సమయం పడుతుండటమే కారణం. > 💁 మీరు సెన్సార్ కు చాలా దగ్గరగా నీరు పోసితే, రీడింగ్ తక్షణమే పడిపోయింది ఒకటిగా పొడి చేసి తిరిగి పెరిగింది చూడవచ్చు — ఇది నీరు సెన్సార్ సమీపంలోని మట్టిలో వ్యాపించి మట్టి తేమను తగ్గించిన కారణం. ![నీటిపోసినప్పుడు 658 మట్టి తేమ కొలత మారదు, నీరు మట్టిలోకి చేరాక 320కి పడిపోతుంది](../../../../../translated_images/te/soil-moisture-travel.a0e31af222cf1438.webp) తర్వాత, ఒక మట్టి తేమ కొలత 658 చూపిస్తుంది. మొక్కకు నీరు పోస్తారు, కానీ ఈ రీడింగ్ తక్షణమే మారదు, ఎందుకంటే నీరు సెన్సార్ కు చేరలేదు. నీరు పూసేటప్పుడు కూడా నీరు సెన్సార్ నిలువు చేరే ముందు నీరు పోసటం పూర్తవచ్చు మరియు విలువ తగ్గుతుంది. మీరు రెలే ఆధారంగా సాగునీటి వ్యవస్థను నియంత్రించే కోడ్ రాస్తుంటే, ఈ ఆలస్యం గమనించుకోవాలి మరియు మీ IoT పరికరంలో స్మార్టు టైమింగ్ నిర్మించాలి. ✅ మీరు దీన్ని ఎలా చేయగలరో ఒక క్షణం ఆలోచించండి. ### సెన్సార్ మరియు యాక్స్యూటర్ టైమింగ్ నియంత్రణ మీకు ఒక వ్యవసాయం కోసం నిరోధక వ్యవస్థను నిర్మించే బాధ్యత అప్పగించబడిందని ఊహించుకోండి. మట్టి రకం ఆధారంగా, పంటల పెంపకానికి అనుకూలమైన మట్టి తేమ స్థాయి అనలాగ్ వోల్టేజ్ రీడింగ్ 400-450 మధ్య ఉండాలని కనుగొనబడింది. మీరు ఆశజరుగు పట్ల దీన్ని ప్రోగ్రామ్ చేయవచ్చు - సెన్సార్ 450 కి మించగా చదువుతుంటే, పంప్ ఆన్ చేయడానికి రీలేను ఆన్ చేయండి. సమస్య ఏమిటంటే, పంప్ నుండి, మట్టిలోకి నీరు చేరడానికి కొంత సమయం పడుతుంది. సెన్సార్ 450 స్థాయిని గుర్తించినపుడు నీరు ఆపుతుంది, కానీ నీటి స్థాయి తగ్గుతూ ఉండటం కొనసాగుతుంది ఎందుకంటే నీరు మట్టిలోకి కూడా ఇబ్బంది లేకుండా పీల్చుకుంటుంది. దీని కారణంగా నీటి వృథా, మరియు వేరు కిందికి నష్టం కలగడం కొనసాగుతుంది. ✅ గుర్తుంచుకోండి - ఎక్కువ నీళ్లు కూడా పంటలకు తక్కువ నీళ్లుగా ఉంటుందంతే ప్రమాదకరం మరియు ఇది ఒక అమూల్య వనరును వృథా చేస్తుంది. మంచి పరిష్కారం అంటే, యాక్యుయేటర్ ఆన్ అవ్వటం మరియు సెన్సార్ చదువుతో ఉన్న ఆస్తి మార్పు మధ్య విళంబం ఉన్నట్లుగా అర్థం చేసుకోవడమే. అంటే సెన్సార్ తిరిగి చదవడానికి కొద్దిసేపు వేచివుండాలి మాత్రమే కాక, యాక్యుయేటర్ కూడా తర్వాతి సెన్సార్ చదువుకు ముందుగా కొంతసేపు ఆఫ్ కావాలి. రీలే ప్రతిసారి ఎంతకాలం ఆన్ ఉండాలి? జాగ్రత్తగా ఉండి చిన్న సమయం పాటు మాత్రమే రీలే ఆన్ చేసి, ఆ నీరు మట్టిలోకి పీలి పోవడానికి వేచి, తదుపరి తేమ స్థాయిలను మళ్లీ కొలవడం మంచిది. మరిన్ని నీళ్లు ఇవ్వాల్సిన అవసరం ఉంటే ఎప్పుడైనా యాక్యుయేటర్ మరల ఆన్ చేయవచ్చు, కానీ మట్టిలోని నీరు తీసివేయలేం. > 💁 ఇలాంటి టైమింగ్ కంట్రోల్ మీరు రూపొందిస్తున్న IoT పరికరం, మీరు కొలవుతున్న ఆస్తి మరియు ఉపయోగించే సెన్సార్లు, యాక్యుయేటర్లపై చాలా ప్రత్యేకంగా ఆధారపడును. ![A strawberry plant connected to water via a pump, with the pump connected to a relay. The relay and a soil moisture sensor in the plant are both connected to a Raspberry Pi](../../../../../translated_images/te/strawberry-with-pump.b410fc72ac6aabad.webp) ఉదాహరణకు, నాకు ఒక స్ట్రాబెర్రీ మొక్క ఉంది, దాంతో కూడిన మట్టి తేమ సెన్సార్ మరియు రీలే చేత నియంత్రించబడిన పომპు కూడా ఉంది. నేను గమనించినది, నీళ్లు జోడించినప్పుడు మట్టి తేమ స్థాయి స్థిరపడటానికి సుమారు 20 సెకన్లు పడుతుంది. అంటే నేను రీలే ఆఫ్ చేసి 20 సెకన్లు వేచి, మళ్ళీ తేమ స్థాయిలను చూడాలి. నాకు తక్కువ నీళ్ళేనూ ఉండటం మంచిది - నేను ఎప్పుడైనా పომპును మళ్లీ ఆన్ చేయగలను, కానీ పంటలో నీరు తీసివేయలేను. ![Step 1, take measurement. Step 2, add water. Step 3, wait for water to soak through the soil. Step 4, retake measurement](../../../../../translated_images/te/soil-moisture-delay.865f3fae206db01d.webp) ఇది అర్థం, బెస్ట్ ప్రాసెస్ అంటే తదుపరి విధంగా ఉన్న watering cycle: * 5 సెకన్లు పომპును ఆన్ చేయండి * 20 సెకన్లు వేచి ఉండండి * మట్టి తేమ స్థాయిని తనిఖీ చేయండి * స్థాయి నా అవసరం కంటే ఇంకా ఎక్కువ అయితే పునరావృతం చేయండి 5 సెకన్లు పომპుకు కొంచెం ఎక్కువ కావచ్చు, ముఖ్యంగా తేమ స్థాయిలు కొద్దిగా మాత్రమే అవసరానికి మించినప్పుడు. సరైన టైమింగ్ ఎప్పుడూ ప్రయోగించి, సెన్సార్ డేటా వచ్చిన తర్వాత సర్దుబాటు చేసుకోవటం మంచిది. ఇది మరింత ఖచ్చితమైన టైమింగ్ అధ్యక్షతకు దారి తీస్తూంది, ఉదాహరణకి ప్రతి 100 అధికమైన మట్టి తేమకి పంపును 1 సెకనుకు ఆన్ చేయటం, గరిష్టం 5 సెకన్ల కంటే భిన్నంగా. ✅ కొంత పరిశోధన చేయండి: ఇతర టైమింగ్ విశ్లేషణలు ఉన్నాయా? పొకడర్ల తేమ తక్కువగా ఉన్నప్పుడు ఎప్పుడైనా వాటర్ చేయాలా లేదా ప్రతి రోజు ఏ సమయాలు మంచి మరియు చెడు నీటి సమయాలా? > 💁 వాతావరణ అంచనాలు కూడా బయట పెరుగుతున్న ఆటోమేటెడ్watering సిస్టమ్‌ల నియంత్రణలో పరిగణించవచ్చు. వర్షం భావిస్తే watering ఆగిపోయి వర్షం తర్వాత చేయచ్చు. అప్పుడే నేల సరిపడా తేమగా ఉండవచ్చు, వర్షం మొదలయ్యే ముందు నీటిని వేసి వృథా చేసుకోవటం కంటే ఇది మరింత సమర్థవంతంగా ఉంటుంది. ## మీ మొక్క నియంత్రణ సర్వర్‌కు టైమింగ్ జోడించండి సర్వర్ కో드를watering సైకిల్ టైమింగ్ మరియు మట్టి తేమ స్థాయి మార్పును వేచి ఉండటానికి నియంత్రించేందుకు సవరించవచ్చు. రీలే టైమింగ్ నియంత్రణ కోసం సర్వర్ లాజిక్: 1. టెలిమెట్రీ సందేశం అందినది 1. మట్టి తేమ స్థాయిని తనిఖీ చేయండి 1. అది సరైనదేనా చూసుకోండి, చాలా తక్కువగా అయితే (అర్థం మట్టి తేమ తక్కువగా ఉంటే): 1. రీలే ఆన్ చేయమని కమాండ్ పంపండి 1. 5 సెకన్లు వేచి ఉండండి 1. రీలే ഓഫ് చేయమని కమాండ్ పంపండి 1. 20 సెకన్ల పాటు మట్టి తేమ స్థాయి స్థిరపడేందుకు వేచి ఉండండి watering సైకిల్, టెలిమెట్రీ సందేశం అందుకుని మళ్లీ మట్టి తేమ స్థాయిలను పరీక్షించడానికి సిద్ధంగా ఉండే వరకు సుమారు 25 సెకన్లను తీసుకుంటుంది. మేము ప్రతి 10 సెకన్లకి మట్టి తేమ స్థాయిలను పంపుతున్నందున, సర్వర్ మట్టి తేమ స్థిరపడేందుకు వేచి ఉన్న సమయంలో కూడా సందేశం వచ్చినప్పుడు ఇంకోwatering సైకిల్ మొదలవ్వొచ్చు. ఈ సమస్యకు రెండు పరిష్కారాలు ఉన్నాయి: * IoT పరికరం కోడ్‌ను మార్చండి, ప్రతి నిమిషం ఒకసారి మాత్రమే టెలిమెట్రీ పంపమని చేయండి, తద్వారాwatering సైకిల్ పూర్తి అయ్యే ముందు తదుపరి సందేశం రాకుండా ఉంటుంది * watering సైకిల్ సమయంలో టెలిమెట్రీకు అన్-సబ్‌స్క్రైబ్ అయి ఉండండి మొదటి ఎంపిక పెద్ద సాగులో మంచి పరిష్కారం కాదేమో. రైతుకుwatering సమయంలో కూడా మట్టి తేమ స్థాయిలను క్యాప్చర్ చేయడం అవసరం ఉండవచ్చు, తదుపరి విశ్లేషణ కోసం, ఉదాహరణకు సాగులోని నీటి ప్రవాహం గురించి తెలియజేసే ఉద్దేశంతో watering ఆసక్తికరంగా ఉంటే. రెండవ ఎంపిక మంచిది - కోడ్ టెలిమెట్రీని వాడకపోతుంది కానీ టెలిమెట్రీ ఇతర సర్వీసులకు అందుబాటులో ఉంటుంది. > 💁 IoT డేటా ఒక్క పరికరం నుండి ఒక్క సర్వీస్ కు మాత్రమే కాకుండా, అనేక పరికరాలు డేటాను బ్రోకర్‌కు పంపుతాయి, మరియు అనేక సర్వీసులు ఆ డేటాను వినబడతాయి. ఉదాహరణకు ఒక సేవ మట్టి తేమ డేటాను గ్రహించి ఆపై విశ్లేషణ కోసం డేటాబేస్‌లో నిల్వ చేస్తుంది. మరో సేవ ఆ టెలిమెట్రీ వినిపించిwatering సిస్టమ్ నియంత్రించవచ్చు. ### టాస్క్ - మీ మొక్క నియంత్రణ సర్వర్‌కు టైమింగ్ జోడించండి మీ సర్వర్ కోడ్‌ను సవరించండి, రీలేను 5 సెకన్లు ఆన్ చేసి, తర్వాత 20 సెకన్లు వేచి ఉండేలా. 1. VS Codeలో `soil-moisture-sensor-server` ఫోల్డర్ను ఓపెన్ చేయండి ఇంకా అది ఓపెన్ కాని ఉండి ఉంటే. వర్చువల్ ఎన్విరాన్‌మెంట్ యాక్టివేట్ చేయబడింది అని ఖచ్చితంగా చూడండి. 1. `app.py` ఫైల్‌ను తెరవండి 1. `app.py` ఫైల్‌లోని ప్రస్తుతం ఉన్న ఇంపోర్ట్స్ కింద, ఈ కోడ్ జోడించండి: ```python import threading ``` ఈ స్టేట్‌మెంట్ పితాన్ లైబ్రరీల నుండి `threading`ని ఇంపోర్ట్ చేస్తుంది, threading అనేది వేచున్న సమయాల్లో పితాన్ ఇతర కోడ్‌ను అమలు చేయగలిగేలా చేస్తుంది. 1. సర్వర్ కోడ్‌లో టెలిమెట్రీ సందేశాలను హ్యాండిల్ చేసే `handle_telemetry` ఫంక్షన్ ముందు ఈ కోడ్ జోడించండి: ```python water_time = 5 wait_time = 20 ``` ఇది రీలే ఎంతకాలం రన్ చేయాలో (`water_time`) మరియు తర్వాత మట్టి తేమ స్థాయిలను తనిఖీ చేయడానికి ఎంతకాలం వేచి ఉండాలో (`wait_time`) నిర్వచిస్తుంది. 1. ఈ కోడ్ క్రింద, ఈ క్రింది కోడ్ జోడించండి: ```python def send_relay_command(client, state): command = { 'relay_on' : state } print("Sending message:", command) client.publish(server_command_topic, json.dumps(command)) ``` ఈ కోడ్ `send_relay_command` అనే ఫంక్షన్ నిర్వచిస్తుంది, ఇది MQTT ద్వారా రీలే నియంత్రించడానికి కమాండ్ పంపుతుంది. టెలిమెట్రీ డిక్షనరీగా సృష్టించబడుతుంది, తరువాత JSON స్ట్రింగ్‌గా మారుస్తుంది. `state`కి ఇచ్చే విలువ రీలే ఆన్ లేదా ఆఫ్ చేయాలంటే నిర్ణయిస్తుంది. 1. `send_relay_command` ఫంక్షన్ తరువాత ఈ కోడ్ జోడించండి: ```python def control_relay(client): print("Unsubscribing from telemetry") mqtt_client.unsubscribe(client_telemetry_topic) send_relay_command(client, True) time.sleep(water_time) send_relay_command(client, False) time.sleep(wait_time) print("Subscribing to telemetry") mqtt_client.subscribe(client_telemetry_topic) ``` ఇది నియమితమైన టైమింగ్ ప్రకారం రీలే నియంత్రించే ఫంక్షన్. మొదటwatering జరుగుతున్నప్పుడు మట్టి తేమ సందేశాలు ప్రాసెస్ కాకుండా టెలిమెట్రీ నుండి అన్-సబ్‌స్క్రైబ్ అవుతుంది. తరువాత రీలే ఆన్ చేయమని కమాండ్ పంపుతుంది. ఆపై `water_time` వరకు వేచి ఉంటుందీ, తర్వాత రీలే ఆఫ్ చేయమని కమాండ్ పంపిస్తుంది. చివరగా మట్టి తేమ స్థిరపడడానికి `wait_time` సెకన్లు వేచి ఉంటుంది. ఆ తర్వాత మరోసారి టెలిమెట్రీకి సబ్‌స్క్రైబ్ అవుతుంది. 1. `handle_telemetry` ఫంక్షన్‌ను ఈ విధంగా మార్చండి: ```python def handle_telemetry(client, userdata, message): payload = json.loads(message.payload.decode()) print("Message received:", payload) if payload['soil_moisture'] > 450: threading.Thread(target=control_relay, args=(client,)).start() ``` ఈ కోడ్ మట్టి తేమ స్థాయిని తనిఖీ చేస్తుంది. ఇది 450 కంటే ఎక్కువ అయితే, మట్టిwatering అవసరం ఉంటుంది, అందువల్ల `control_relay` ఫంక్షన్‌ను పిలుస్తుంది. ఈ ఫంక్షన్ వేరే థ్రెడ్డులో నడుస్తుంది, బ్యాక్‌గ్రౌండ్‌లో. 1. మీ IoT పరికరం నడుస్తుందనుకోండి, తరువాత ఈ కోడ్ నడపండి. మట్టి తేమ స్థాయిలను మార్చి రీలేకు ఏం జరుగుతుందో పరిశీలించండి - ఇది 5 సెకన్లు ఆన్ అయి, అంతకుముందు కనీసం 20 సెకన్లు ఆఫ్ ఉండాలి, మట్టి తేమ తగ్గి తక్కువైతే మాత్రమే మళ్లీ ఆన్ అవుతుంది. ```output (.venv) ➜ soil-moisture-sensor-server ✗ python app.py Message received: {'soil_moisture': 457} Unsubscribing from telemetry Sending message: {'relay_on': True} Sending message: {'relay_on': False} Subscribing to telemetry Message received: {'soil_moisture': 302} ``` అనుకరణాయ watering సిస్టమ్‌లో ఇదిని పరీక్షించడానికి మంచివిధంగా, పొడి మట్టిని ఉపయోగించి, నీటిని పరికరం ఆన్ ఉన్నప్పుడు మానవీయంగా పోయండి, జారగకుండా పరికరం ఆఫ్ అయినప్పుడల్లా నీరు పోయటం ఆపు. > 💁 మీరు ఈ కోడ్‌ను [code-timing](../../../../../2-farm/lessons/3-automated-plant-watering/code-timing) ఫోల్డర్‌లో పొందవచ్చు. > 💁 మీరు నిజమైన నిరోధక వ్యవస్థను నిర్మించాలి అంటే, మీరు [6V వాటర్ పمپును](https://www.seeedstudio.com/6V-Mini-Water-Pump-p-1945.html) మరియు [USB టెర్మినల్ పవర్ సరఫరా](https://www.adafruit.com/product/3628) ఉపయోగించవచ్చు. పంకకు పవర్ కనెక్ట్ చేయడం రీలే ద్వారా చేయబడిందని నిర్ధారించుకోండి. --- ## 🚀 ఛాలెంజ్ మీ ఇంట్లో లేదా పాఠశాలలో, యాక్యుయేటర్ ఫలితాలు సెన్సార్‌కు చేరడానికి కొంత సమయమవుతుంది అనే సమస్య కలిగిన ఏ ఇతర IoT లేదా విద్యుత్ పరికరాలను మీరు గుర్తించగలరా? * వారు ఏ ఆస్తులను కొలుస్తారు? * యాక్ట్యూయేటర్ ఉపయోగించిన తర్వాత ఆ ఆస్తి మారటానికి ఎంత సమయం పడుతుంది? * ఆ ఆస్తి అవసరమైన విలువ కంటే మించటం 괜찮దా? * అవసరమైతే దాన్ని ఎలా తిరిగి అవసరమైన విలువకు తీసుకురావచ్చు? ## లెక్చర్ తర్వాత ప్రశ్నావళి [Post-lecture quiz](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/14) ## సమీక్ష & స్వయం అధ్యయనం * రీలే గురించి మరిన్ని చదవండి, అందులో కాలం క్రితం టెలిఫోన్ ఎక్స్చేంజిల్లో ఉపయోగం గురించి [relay Wikipedia పేజీ](https://wikipedia.org/wiki/Relay)లో. ## అసైన్‌మెంట్ [మరింత సమర్థవంతమైనwatering cycle నిర్మించండి](assignment.md) --- **అసలు స్పష్టత**: ఈ పత్రాన్ని AI అనువాద సేవ [Co-op Translator](https://github.com/Azure/co-op-translator) ద్వారా అనువదించడం జరిగింది. మేము ఖచ్చితత్వానికి ప్రయత్నిస్తున్నప్పటికీ, ఆటోమేటెడ్ అనువాదాలలో తప్పులు లేదా లోపాలు ఉండే అవకాశం ఉందని దయచేసి గమనించండి. మూల పత్రం తద్వారా అది కనుగొనబడిన స్వదేశ భాషలోనే అధికారిక మూలంగా పరిగణించబడాలి. కీలకమైన సమాచారానికి, ప్రొఫెషనల్ మానవ అనువాదం సిఫార్సు చేయబడుతుంది. ఈ అనువాదం వాడకం వల్ల వచ్చే ఏవైనా అవగాహనా లోపాలు లేదా అవగాహన లోపాలకు మేము బాధ్యులు కాదు.