53 KiB
ഓട്ടോമേറ്റഡ് പ്ലാന്റ് വാട്ടറിംഗ്
സ്കെച്നോട്ട് നിത്യേ നരസിംഹൻ എന്നിവരുടെ. ഒരു വലിയ പതിപ്പ് കാണാൻ ചിത്രം ക്ലിക്ക് ചെയ്യുക.
ഈ പാഠം Microsoft Reactor ന്റെയും IoT for Beginners Project 2 - Digital Agriculture series ന്റെയും ഭാഗമായി പഠിപ്പിച്ചു.
പ്രീ-ലെക്ചർ ക്വിസ്
പരിചയം
കഴിഞ്ഞ പാഠത്തിൽ, നിങ്ങൾ മണ്ണിലെ ഈർപ്പം നിരീക്ഷിക്കുന്നത് പഠിച്ചു. ഈ പാഠത്തിൽ, നിങ്ങൾ മണ്ണിന്റെ ഈർപ്പം അടിസ്ഥാനമാക്കി പ്രതികരിക്കുന്ന ഓട്ടോമേറ്റഡ് വാട്ടറിംഗ് സിസ്റ്റത്തിന്റെ മുളപ്പുഭാഗങ്ങൾ നിർമ്മിക്കുന്നോ τρόπο പഠിക്കും. സമയക്രമത്തെ കുറിച്ചും നിങ്ങളെ പഠിപ്പിക്കും - സെൻസറുകൾ മാറ്റങ്ങളോട് പ്രതികരിക്കാൻ കുറച്ച് സമയം എടുക്കുമ്പോൾ, ആക്ച്വേറ്ററുകൾ സെൻസറുകൾ അളക്കുന്ന ഗുണാധിക്യങ്ങൾ മാറ്റാൻ സമയമെടുക്കും.
ഈ പാഠത്തിൽ നമ്മൾ ചർച്ചചെയ്യുന്നത്:
- താഴ്ന്ന വൈദ്യുതി ഉപയോഗിച്ച് ഉയർന്ന വൈദ്യുതി ഉപകരണങ്ങൾ നിയന്ത്രിക്കുക
- റിലേ നിയന്ത്രിക്കുക
- MQTT വഴി നിങ്ങളുടെ പ്ലാന്റ് നിയന്ത്രിക്കുക
- സെൻസർ ആക്ച്വേറ്റർ സമയക്രമം
- പ്ലാന്റ് നിയന്ത്രണ സർവറിൽ സമയക്രമം ചേർക്കുക
താഴ്ന്ന വൈദ്യുതി ഉപയോഗിച്ച് ഉയർന്ന വൈദ്യുതി ഉപകരണങ്ങൾ നിയന്ത്രിക്കുക
IoT ഉപകരണങ്ങൾ കുറഞ്ഞ വൈദ്യുതിയുടെ ഉപയോഗമാണ്. സെൻസറുകളും കുറഞ്ഞ വൈദ്യുതി ആക്ച്വേറ്ററുകളും (LEDs പോലുള്ള) നിയന്ത്രിക്കാൻ ഇത് മതിയാകുമ്പോൾ, വാട്ടറിംഗ് പമ്പ് പോലെയുള്ള വലിയ ഉപകരണങ്ങൾ നിയന്ത്രിക്കാൻ അത്ര ഉയർന്നതാണ്. ചെറിയ പമ്പുകളും, വീട്ടിലെ ചെടികൾക്കായുള്ളവ, ഒരു IoT ഡിവൈസ് ഉപയോഗിക്കാൻ വളരെ അധികം കറന്റ് ആകുന്നു, മൂലലം ബോർഡ് കത്തും.
🎓 കറന്റ് (ആംപിയറിൽ A അളക്കുന്നത്) ഒരു സർക്ക്യൂട്ടിലൂടെ പോകുന്ന വൈദ്യുതി അളവാണ്. വോൾട്ടേജ് പുഷ് നൽകുന്നു, കറന്റ് പുഷ് ചെയ്യുന്ന അളവാണ്. കൂടുതൽ അറിയാൻ വൈക്കിപീഡിയയിലെ ელექტ്രിക് കറന്റ് പേജ് സന്ദർശിക്കുക.
കൊലുത്തൽ: പമ്പ് ഒരു ബാഹ്യ പവർ സപ്ലൈയിൽ കണക്ട് ചെയ്ത്, അത് ഓണാക്കാൻ റിലേ പോലുള്ള ഒരു ആക്ച്രേറ്റർ ഉപയോഗിക്കുക. പോലെ ഒരു ലൈറ്റ് ഓണാക്കുമ്പോൾ നിങ്ങളുടെ വിരൽ സ്വിച്ച് മാറ്റാൻ ചെറുതായി ശക്തി ഉപയോഗിക്കുന്നത് പോലെ.
🎓 മേൻസ് എലക്ട്രിസിറ്റി എന്നത് പല പ്രദേശങ്ങളിലെയും വീടുകൾക്കും വ്യാപാര സ്ഥാപനങ്ങൾക്കും ദേശീയ വൈദ്യുതി ഘടന വഴി നൽകുന്ന വൈദ്യുതിയാണ്.
✅ IoT ഉപകരണങ്ങൾ സാധാരണയായി 3.3V അല്ലെങ്കിൽ 5V, 1 ആംപ് (1A) ൽ താഴെയുള്ള കറന്റ് നൽകും. ഇത് 230V (വടക്കേ അമേരിക്കയിൽ 120V, ജപ്പാനിൽ 100V) പതിവായി ലഭ്യമാകുന്ന മേൻസ് വൈദ്യുതിക്ക് താരതമ്യം ചെയ്യുക, അത് 30A വരെ കറന്റ് നൽകാൻ കഴിയും.
താഴെ പറയുന്ന പല തരത്തിലുള്ള ആക്ച്വേറ്ററുകളും ഇതിനായി ഉപയോഗിക്കാം, നിലവിലുള്ള സ്വിച്ചുകൾക്ക് മിക്സിനു കെട്ടിപ്പടുക്കുന്ന മെക്കാനിക്കൽ ഉപകരണങ്ങൾ ഉൾപ്പെടെ. ഏറ്റവും ജനപ്രിയമാണ് റിലേ.
റിലേകൾ
റിലേ ഒരു ഇലക്ട്രോമെക്കാനിക്കൽ സ്വിച്ച് ആണ്, ഇലക്ട്രിക്കൽ സിഗ്നൽ മെക്കാനിക്കൽ മൂവ്മെന്റിലേക്ക് പരിവർത്തനം ചെയ്ത് കടമായും സ്വിച്ച് ഓണാക്കുന്നു. റിലേയുടെ മുളക്ക് ഇലക്ട്രോമാഗ്നെറ്റ് ആണ്.
🎓 ഇലക്ട്രോമാഗ്നെറ്റുകൾ വൈരിന്റെ കൂനിലൂടെ വൈദ്യുതി ഒഴുക്കിയാൽ ഉണ്ടാകുന്ന കാന്തിക പദാർഥങ്ങളാണ്. വൈദ്യുതി ഓണാകുമ്പോൾ കൂനം കാന്തികമാവുന്നു, ഓഫ് ചെയ്താൽ കാന്തികത നഷ്ടപ്പെടുന്നു.
റിലേയിൽ, ഒരു നിയന്ത്രണ സർക്ക്യൂട്ട് ഇലക്ട്രോമാഗ്നെറ്റ് പവർ ചെയ്യുന്നു. ഇത് ഓണായപ്പോൾ, ലെവർ സ്വിച്ച് ഓണാക്കാൻ കാൽവെട്ടുന്നു, കെടയും പെയർ കോൺടാക്റ്റുകളും അടച്ച് ഔട്ട്പുട്ട് സർക്ക്യൂട്ടും പൂർത്തിയാക്കുന്നു.
എപ്പോൾ നിയന്ത്രണ സർക്ക്യൂട്ട് ഓഫ് ആണെങ്കിൽ, ഇലക്ട്രോമാഗ്നെറ്റ് ഓഫ് ആവുകയും ലെവർ വിട്ടുകൊടുക്കുകയും കോൺടാക്റ്റുകൾ തുറക്കുകയും ഔട്ട്പുട്ട് സർക്ക്യൂട്ട് ഓഫ് ആകുകയും ചെയ്യുന്നു. റിലേകൾ ഡിജിറ്റൽ ആക്ച്വേറ്ററുകളാണ് - റിലേയ്ക്ക് ഉയർന്ന സിഗ്നൽ നൽകുമ്പോൾ അത് ഓണാകും, താഴ്ന്നത് ഓഫാകും.
ഔട്ട്പുട്ട് സർക്ക്യൂട്ട് ഉപകരണങ്ങൾക്കും കണക്ട് ചെയ്യാം, അതുപോലെ പമ്പ് പോലുള്ള സിഞ്ചിംഗ് സിസ്റ്റം പ്രവർത്തിപ്പിക്കാനും കഴിയും. IoT ഡിവൈസ് റിലേ ഓണാക്കി, ഔട്ട്പുട്ട് സർക്ക്യൂട്ട് പൂർത്തിയാക്കിയതിലൂടെ സിസ്റ്റം പ്രവർത്തിച്ചുകൊണ്ട് ചെടികൾക്ക് വെള്ളം നൽകും. പിന്നീട് റിലേ ഓഫാക്കി, പമ്പ് ഓഫ് ചെയ്യും.
മുകളിൽ കാണുന്ന വീഡിയോയിൽ, റിലേ ഓണായിരിക്കുന്നു. റിലേയിലെ LED ഓണായി ഇതിനായി സൂചന നൽകുന്നു (കുറെ റിലേ ബോർഡുകളിൽ ഓണോ ഓഫ് ആണോ എന്നറിയാൻ LED ഉണ്ട്), പമ്പ് ഓണാകുന്നുവെന്നും ചുടിക്കുന്നു.
💁 റിലേകൾ രണ്ട് ഔട്ട്പുട്ട് സർക്ക്യൂട്ടുകൾക്ക് ഇടയിൽ സ്വിച്ച് ചെയ്യാനായി ഉപയോഗിക്കാം, ഒന്ന് ഓണാക്കിയും മറ്റൊന്ന് ഓഫ് ആക്കിയും ചെയ്യാൻ. ലെവർ ഒരു സൗകര്യം മാറ്റുമ്പോൾ, ഒരു ഓട്ട്പുട്ട് സർക്ക്യൂട്ടിൽ നിന്ന് മറ്റിലേയ്ക്ക് മാറ്റുന്നു, സാധാരണ ഒരു പൊതു പവർ അല്ലെങ്കിൽ ഗ്രൗണ്ട് കണക്ഷൻ പങ്കിട്ടുകൊണ്ട്.
✅ ഒരു കുറച്ച് റിലേകൾ വിലയിരുത്തുക: പല തരത്തിലുള്ള റിലേകൾ ഉണ്ട്, ഉദാഹരണത്തിന്, കൺട്രോൾ സർക്ക്യൂട്ട് പവർ ലഭിക്കുമ്പോൾ റിലേ ഓണാക്കുമോ ഓഫ് ആക്കുമോ, അതോ ഒരേസമയം നിരവധി ഔട്ട്പുട്ട് സർക്ക്യൂട്ടുകൾ സംബന്ധിച്ചു കാഴ്ച.
ലേവർ മാറുമ്പോൾ, സാധാരണയായി ഇലക്ട്രോമാഗ്നെറ്റിനോട് ക്ളിക്ക് ശബ്ദം ഉണ്ടാവും.
💁 ഒരിക്കല് മാത്രമല്ല, ചിലപ്പോൾ റിലേ കണക്ഷൻ മാറ്റുമ്പോൾ പവർ ബ്രേക്ക് ചെയ്യുകയും വീണ്ടും ഓൺ ആക്കും, അതുകൊണ്ടു ബസ്സിങ് ശബ്ദം ഉണ്ടാക്കും. ഇത്തരത്തിലുള്ള ശബ്ദം കുറച്ച് വൈദ്യുതി കേടുകൾ ഉപയോഗിക്കുന്ന വിക്ടർഭൂരിയുടെ ആദ്യ ബസറുകളിൽ കേട്ടിട്ടുണ്ട്.
റിലേ പവർ
ഇലക്ട്രോമാഗ്നെറ്റ് ആക്റ്റിവേറ്റ് ചെയ്ത് ലെവർ ആകർഷിക്കാൻ വളരെ കുറച്ച് പവർ വേണ്ടതാണ്, ഇത് 3.3V അല്ലെങ്കിൽ 5V സംവിധാനം ഉപയോഗിച്ച് നിയന്ത്രിക്കാം. ഔട്ട്പുട്ട് സർക്ക്യൂട്ട് വലിയ വൈദ്യുതി കൈകാര്യം ചെയ്യാൻ കഴിയും, റെലേയുടെ തരം അനുസരിച്ചാണ്, മേൻസ് വൈദ്യുതി മുതൽ വ്യവസായ ഉപയോഗത്തിനും.
ഇവൻ കൊണ്ട് ഒരു IoT ഡിവൈസ് ചെറിയ പമ്പുകളിൽ നിന്നും മൊത്ത വിവസായ പണിതിൽ വരെ യന്ത്രം നിയന്ത്രിക്കാം.
മുകളിൽ Grove റിലേയുടെ ചിത്രം കാണിച്ചിരിക്കുന്നു. കൺട്രോൾ സർക്ക്യൂട്ട് ഒരു IoT ഉപകരണത്തോടൊപ്പം കണക്ട് ചെയ്തു 3.3V അല്ലെങ്കിൽ 5V ഉപയോഗിച്ച് റിലേ ഓണോ ഓഫ് ആക്കുന്നു. ഔട്ട്പുട്ട് സർക്ക്യൂട്ടിന് രണ്ട് ടെർമിനലുകൾ ഉണ്ട്, ഏതെങ്കിലും ഒന്ന് പവർ അല്ലെങ്കിൽ ഗ്രൗണ്ട് ആകാം. ഔട്ട്പുട്ട് സർക്ക്യൂട്ട് 250V 10A വരെ കൈകാര്യം ചെയ്യാൻ കഴിയും, പല മേൻസ് വൈദ്യുതി ഉപകരണങ്ങൾക്കും മതിയാകും. മുകളിൽ കൂടിയ പവർ ലെവലുകൾ കൈകാര്യം ചെയ്യാൻ കഴിയുന്ന റിലേകൾ ലഭ്യമാണ്.
മുകളിൽ കാണുന്ന ചിത്രത്തിൽ, USB പവർ സപ്ലൈയുടെ +5V ടെർമിനലിൽ നിന്നുള്ള ചുവന്ന വയർ റിലേയുടെ ഔട്ട്പുട്ട് സർക്ക്യൂട്ടിലെ ഒരു ടെർമിനലിലേക്ക് കണക്ട് ചെയ്തു. മറ്റൊരു ചുവന്ന വയർ ഔട്ട്പുട്ടിലെ മറ്റൊരു ടെർമിനലിൽ നിന്നും പമ്പിലേക്ക് പോകുന്നു. കറുത്ത വയർ USB പവർ സപ്ലൈയുടെ ഗ്രൗണ്ടിലേക്ക് പമ്പ് കണക്ട് ചെയ്യുന്നു. റിലേ ഓണായപ്പോൾ സർക്യൂട്ട് പൂർത്തിയാകുകയും, പമ്പിന് 5V ലഭിക്കുകയും പമ്പ് ഓണാകുകയും ചെയ്യുന്നു.
റിലേ നിയന്ത്രിക്കുക
നിങ്ങളുടെ IoT ഡിസ്ട് റെലിയെ നിയന്ത്രിക്കാം.
പ്രവർത്തനം - റിലേ നിയന്ത്രിക്കുക
നിങ്ങളുടെ IoT ഉപകരണത്താൽ റിലേ നിയന്ത്രിക്കുന്നത് പഠിക്കാൻ താഴെ പറയുന്ന ഗൈഡുകൾ കാണുക:
MQTT വഴിയുള്ള നിങ്ങളുടെ ചെടി നിയന്ത്രിക്കുക
ഇതുവരെ, നിങ്ങളുടെ റിലേ ഒറ്റ മണ്ണ് ഈർപ്പം വായനയുടെ അടിസ്ഥാനത്തിൽ നേരിട്ട് IoT ഉപകരണത്താൽ നിയന്ത്രിക്കപ്പെടുന്നു. വ്യാപകമായ സിഞ്ചിംഗ് സിസ്റ്റങ്ങളിൽ, നിയന്ത്രണ ലോറിക്ക് കേന്ദ്രീകൃതമായിരിക്കും, ഇത് പല സെൻസറുകളിൽ നിന്നുള്ള ഡാറ്റ ഉപയോഗിച്ച് വെള്ളം സിഞ്ച് ചെയ്യാനുള്ള തീരുമാനങ്ങൾ എടുക്കാനും ഒരു المركزي സ്ഥലത്ത് ഏതു കോൺഫിഗറേഷനും മാറ്റാനും കഴിയും. ഇതിൽ അനുകരണാനായി, MQTT വഴി റിലേ നിയന്ത്രിക്കാം.
പ്രവർത്തനം - MQTT വഴി റിലേ നിയന്ത്രിക്കുക
-
നിങ്ങളുടെ
soil-moisture-sensorപ്രോജക്റ്റിലേക്ക് MQTT ലെബററികൾ / പിപ്പ്ബാക്കേജുകൾ ചേർക്കുക, MQTT കണക്ഷൻ സ്ഥാപിക്കാൻ കോഡ് ചേർക്കുക. ക്ലയന്റ് ഐഡി നിങ്ങളുടെ ഐഡിഏक аппаратമായsoilmoisturesensor_clientഎന്നാണ് പേര് വെക്കുക.⚠️ ആവശ്യമെങ്കിൽ പ്രോജക്റ്റ് 1, ലെസൺ 4, MQTT കണക്ഷൻ എടുക്കാനുള്ള നിർദ്ദേശങ്ങൾ കാണുക.
-
മണ്ണ് ഈർപ്പം സജ്ജീകരണങ്ങൾ സഹിതം ടെലിമെട്രി സെൻഡ് ചെയ്യാൻ അനുയോജ്യമായ ഉപകരണ കോഡ് ചേർക്കുക. ടെലിമെട്രി സന്ദേശത്തിലെ പ്രോപ്പർട്ടി
soil_moistureഎന്ന് പേരിട്ടു.⚠️ ആവശ്യമെങ്കിൽ പ്രോജക്റ്റ് 1, ലെസൺ 4, MQTT-ക്ക് ടെലിമെട്രി അയയ്ക്കൽ निर्देशങ്ങൾ കാണുക.
-
ടെലിമെട്രി സബ്സ്ക്രൈബ് ചെയ്ത് റിലേ നിയന്ത്രിക്കുന്ന കമാൻഡ് അയയ്ക്കുന്ന ലോക്കൽ സർവർ കോഡ്
soil-moisture-sensor-serverഫോൾഡറിൽ സൃഷ്ടിക്കുക. കമാൻഡ് സന്ദേശത്തിലെ പ്രോപ്പർട്ടിrelay_onഎന്ന് പേരിടുക, ക്ലയന്റ് ഐഡിsoilmoisturesensor_serverഎന്ന് നിങ്ങളുടെ ഐഡിഐയ്ക്ക് മുമ്പു ചേർത്ത് വയ്ക്കുക. പ്രോജക്റ്റ് 1, ലെസൺ 4-ൽ എഴുതിയ സർവർ കോഡിന്റെ ഘടനയേ തുടർക്കഥയായി ഉപയോഗിക്കുക.⚠️ ആവശ്യമെങ്കിൽ പ്രോജക്റ്റ് 1, ലെസൺ 4, MQTT-ക്ക് ടെലിമെട്രി അയയ്ക്കൽ എന്നിവയും MQTT വഴി കമാൻഡുകൾ അയയ്ക്കൽ ഉൾപ്പെടെയുള്ള നിർദ്ദേശങ്ങളും കാണുക.
-
സന്ദേശങ്ങളിൽ നിന്ന്
relay_onപ്രോപ്പർട്ടി ഉപയോഗിച്ച് കമാൻഡുകൾ സ്വീകരിച്ച് റിലേ നിയന്ത്രിക്കുന്ന ഉപകരണ കോഡ് ചേർക്കുക.soil_moisture450-ിൽ കൂടുതലായാൽrelay_onസത്യമാക്കുക, അല്ലെങ്കിൽ അശാസ്ത്രീയമാക്കുക, മുമ്പ് IoT ഉപകരണത്തിൽ ചേർത്ത ലജിക് പോലെ തന്നെ.⚠️ ആവശ്യമെങ്കിൽ പ്രോജക്റ്റ് 1, ലെസൺ 4, MQTT-ൽ നിന്നും കമാൻഡ് ഹാന്റിലിംഗ് കാണുക.
💁 ഈ കോഡ്
code-mqttഫോൾഡറിൽ ലഭ്യമാണ്.
നിങ്ങളുടെ ഉപകരണംയും ലോക്കൽ സർവറും കോഡ് റൺ ചെയ്യുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക, ടെസ്റ്റിങ്ങിനായി മണ്ണ് ഈർപ്പം തലങ്ങൾ മാറ്റി പരിശോധിക്കുക, ഒട്ടേർഷനുമായി മൂല്യങ്ങൾ മാറ്റികളയുകയോ, വെള്ളം ചേർത്ത് മഞ്ഞ് നീക്കി മണ്ണിലെ ഈർപ്പം വ്യത്യാസം വരുത്തുകയോ ചെയ്യാം.
സെൻസർ ആക്ച്വേറ്റർ സമയക്രമം
പാഠം 3-ൽ നിങ്ങൾ ഒരു നൈറ്റ്ലൈറ്റ് നിർമ്മിച്ചു - കുറഞ്ഞ ലൈറ്റുള്ളപ്പോൾ ഓണാകുന്ന LED. ലൈറ്റ് സെൻസർ വിസ്തൃതമായ ലൈറ്റിൽ മാറ്റങ്ങൾ ഉടൻ കണ്ടെത്തി, ഉപകരണം സ്പീഡായി പ്രതികരിച്ചു, ലൂപ്പ് ഫംഗ്ഷനിലെ ഡിലേയിൽ അല്ലെങ്കിൽ while True: ലുവിൽ റെസ്പോൺസ് നേരത്തെ നിശ്ചയം ചെയ്തിരുന്നു. IoT ഡെവലപ്പർ ആയാൽ എവിടെയും ഇതുപോലുള്ള വേഗത്തിലുള്ള ഫീഡ്ബാക്ക് ലൂപിൽ ആശ്രയിക്കേണ്ടതില്ല.
മണ്ണ് ഈർപ്പത്തിനുള്ള ടൈമിംഗ്
മറ്റൊരു പരീക്ഷണം ചെയ്താൽ, നിങ്ങളുടെ ചെടിക്കു വെള്ളം പകരുമ്പോൾ മണ്ണ് ഈർപ്പം വായന കുറയാൻ കുറച്ച് സെക്കൻഡുകൾ എടുത്തു എന്ന് കാണാമായിരുന്നു. സെൻസർ മന്ദഗതിയല്ല; വെള്ളം മണ്ണിലൂടെ മുട്ടുന്നതിന് സമയമെടുക്കുന്നത് കാരണമാണ്.
💁 സെൻസറിന് അടുത്ത് വെള്ളം ചേർത്താൽ വായന പെട്ടെന്ന് താഴുന്നു, പിന്നെ വീണ്ടും ഉയരും കാണാമായിരുന്നു - ഇതിന്റെ കാരണം വെള്ളം സെൻസറിന് അടുത്ത ഭാഗത്തുനിന്ന് പകൽ മുഴുവൻ വ്യതിരിക്തമായ മണ്ണിലേക്ക് വ്യാപിപ്പിക്കുന്നതാണ്, അതോടെ സെൻസറിന്റെ വായന കുറയുന്നു.
മുകളിൽ ചാർട്ടിൽ, 658 എന്ന മണ്ണ് ഈർപ്പം അളവ് കാണിക്കുന്നു. ചെടിക്ക് വെള്ളം നൽകിയെങ്കിലും അളവിൽ ഉടൻ മാറ്റമുണ്ടായിട്ടില്ല, വെള്ളം സെൻസറിലേക്ക് എത്താൻ കൂടി സമയം എടുത്തു. വെള്ളം എത്തുന്നതിന് മുമ്പ് ഇവരുടെ ചുവരം പൂർത്തിയാകാം, അളവിൽ മാറ്റം സന്ദർശിക്കാൻ.
സിഞ്ചിംഗ് സിസ്റ്റം റിലേ വഴി മണ്ണ് ഈർപ്പം അടിസ്ഥാനമാക്കിയുള്ളിരിക്കുമെങ്കിൽ, ഈ വൈകിപ്പ് പരിഗണിക്കേണ്ടതുണ്ടാകും, അതിനായി IoT ഡിവൈസിൽ കൂടുതൽ ബുദ്ധിമുട്ടുള്ള ടൈമിംഗ് ചേർക്കണം.
✅ ഇതിനായി നിങ്ങൾ എന്തെങ്ങനെ ചെയ്യും എന്ന് ചിന്തിക്കാൻ ഒരു നേരം മാറ്റുക.
സെൻസർ ആക്ച്വേറ്റർ സമയക്രമം നിയന്ത്രിക്കുക
ഒരു ഫാമിനായി ഒരു ഇറൈഗേഷൻ സിസ്റ്റം നിർമ്മിക്കുക എന്ന ചുമതല നിങ്ങൾക്കുണ്ടെന്ന് കണക്കാക്കാം. മണ്ണിന്റെ തരം അടിസ്ഥാനമാക്കി, വളർത്തുന്ന ചെടികളിൽ വേണ്ടി അനുയോജ്യമായ മണ്ണിന്റെ മൗസ്ചർ നില അനലോഗ് വോൾട്ടേജ് വായനയായ 400-450-നു സമാനമാണ്.
രാത്രി ലൈറ്റ് പോലെ ഒരു പ്രോഗ്രാം ചെയ്യാവുന്നുണ്ട് - സെൻസർ 450-ൽ മുപ്പുറം വായിക്കുമ്പോൾ പമ്പ് ഓണാക്കുന്നതിന് ഒരു റിലേ ഓണാക്കുക. പ്രശ്നം എന്നാൽ, പമ്പ് മുതൽ മണ്ണിലൂടെയോ സെൻസറിലേക്കോ വെള്ളം കടന്നുപോകാൻ സമയം എടുക്കുന്നു എന്നതാണ്. വാറ്റർ മൗസ്ചർ 450-നു താഴെയുള്ളതാണ് എന്ന് സെൻസർ സ്ഥിരീകരിക്കുമ്പോൾതന്നെ വെള്ളം നിർത്തും, പക്ഷേ പമ്പിൽ നിന്നും വെള്ളം തുടക്കത്തിൽ മണ്ണിൽ അടയാളപ്പെടുത്താറുണ്ട്. ഇതിന്റെ ഫലം വെള്ളം പാഴാകുകയും, മുറികൾക്ക് നഷ്ടം സംഭവിക്കാനുള്ള സാധ്യത ഉണ്ടാകുകയും ചെയ്യുന്നു.
✅ ഓർമ്മിക്കൂ - ചെടികൾക്ക് വളരെയധികം വെള്ളവും കുറവുമുതൽ ഏറെ കുഴപ്പങ്ങളുണ്ടാക്കും, കൂടാതെ റിസോഴ്സ് നഷ്ടമായി മാറും.
മുന്നേറ്റം കൊണ്ട് മനസ്സിലാക്കേണ്ടത്, സക്ഷ്യൻ ഓണാകുമ്പോൾ വെള്ളം ചെടിപ്പുറത്തു നിന്നും സെൻസർ വായന മാറുന്നതിൽ ഒരു ഡിലേയുണ്ട് എന്നത് ആണ്. അതായത് സെൻസർ വീണ്ടും മൂല്യം അളക്കാൻ മുമ്പ് കുറച്ചു നേരം കാത്തിരിക്കണം, കൂടാതെ സക്ഷ്യൻ അടുത്ത അളക്കൽ വരെ ഓണാകാതെ നിർത്തണം.
ഓരോ തവണ റിലേ എത്ര സമയം ഓണാകണം? മുൻകരുതലോടെ ചെറിയ സമയം മാത്രം ഓണാക്കാൻ ശ്രമിക്കണമെന്നും, പിന്നെ വെള്ളം മണ്ണിലേക്കടയാളപ്പെടാൻ കാത്തിരിക്കുന്നതും, പിന്നീട് വീണ്ടും വാറ്റർ മൗസ്ചർ പരിശോധിക്കുന്നതും ശരി. ആവശ്യമെങ്കിൽ വീണ്ടും വെള്ളം കൊടുക്കാം, എന്നാൽ മണ്ണിൽ നിന്ന് വെള്ളം പിന്വലിക്കാൻ കഴിയില്ല.
💁 ഇത്തരത്തിലുള്ള ടൈമിംഗ് നിയന്ത്രണം നിങ്ങൾ നിർമ്മിക്കുന്ന IoT ഉപകരണത്തിനും, അളക്കുന്ന പ്രോപ്പർട്ടിക്കും, ഉപയോഗിക്കുന്ന സെൻസറുകൾക്കും ആക്യമാണ്.
ഉദാഹരണത്തിന്, എനിക്ക് ഒരു സ്ട്രോബെറി ചെടിയുണ്ട്, അതിൽ മണ്ണ് മൗസ്ചർ സെൻസറും പമ്പും ഒരു റിലേ ഉപയോഗിച്ച് നിയന്ത്രിക്കുന്നു. വെള്ളം കൊടുക്കുമ്പോൾ മണ്ണ് മൗസ്ചർ വായന സ്ഥിരപ്പെടാൻ ഏകദേശം 20 സെക്കൻഡ് സമയമെടുക്കുന്നു എന്ന് ഞാൻ ശ്രദ്ധിച്ചിട്ടുണ്ട്. അതായത്, റിലേ ഓഫ് ചെയ്തു 20 സെക്കൻഡ് കാത്തു ശേഷം മൗസ്ചർ നില പരിശോധിക്കണം. എനിക്ക് വെള്ളം കുറവായും കൂടുതലായും കൊടുക്കാൻ ഒന്നും പറ്റില്ല - പമ്പ് വീണ്ടും ഓണാക്കാം, എങ്കിലും ചെടിയിൽനിന്ന് വെള്ളം എടുത്ത് നീക്കം ചെയ്യാനാകും.
അതിനാൽ ഏറ്റവും മികച്ച പ്രൊസസ്സ് ഒരു ജലസേചന ചിലവ് പോലെയാണ്:
- പമ്പ് 5 സെക്കൻഡ് ഓണാക്കുക
- 20 സെക്കൻഡ് കാത്തിരിക്കുക
- മണ്ണ് മൗസ്ചർ പരിശോധിക്കുക
- ആവശ്യമുള്ളതിലധികം നില തുടരുകയാണെങ്കിൽ മുകളിൽ പറഞ്ഞ നടപടികൾ ആവർത്തിക്കുക
5 സെക്കൻഡ് പമ്പിന് വളരെ നീണ്ട സമയം ആയിരിക്കാം, പ്രത്യേകിച്ച് മണ്ണ് മൗസ്ചർ കുറച്ച് മാത്രമേ ആവശ്യമുള്ളതിലധികമാകൂ. ശരിയായ ടൈമിംഗ് അറിയാൻ ശ്രമിക്കുക, പിന്നീട് സെൻസർ ഡാറ്റ അനുസരിച്ച് ക്രമീകരിക്കുക, സ്ഥിരമായ ഫീഡ്ബാക്ക് ലൂപ്പിന്റെ സഹായത്തോടെ. ഇത് കൂടുതൽ മൊത്തത്തിലുള്ള ടൈമിംഗ് മുതൽ, ആവശ്യത്തിന് ഓരോ 100 മൗസ്ചർ ഉയർന്നതിനു പകരം 1 സെക്കൺഡിന് പമ്പ് ഓണാക്കുന്നതുമായ നിഷ്പക്ഷമായ ടൈമിംഗ് വരെ വികസിപ്പിക്കാം.
✅ കുറച്ച araştırma ചെയ്യൂ: മറ്റേതെങ്കിലും ടൈമിംഗ് പരിഗണനകളുണ്ടോ? മണ്ണ് മൗസ്ചർ കുറഞ്ഞപ്പോൾ എപ്പോഴും ചെടിക്ക് വെള്ളം കൊടുക്കാമോ, അല്ലെങ്കിൽ ദിവസത്തെ ചില പ്രത്യേക സമയങ്ങളിൽ മാത്രമേ ചെടികൾക്ക് വെള്ളം കൊടുക്കാൻ അനുയോജ്യമാകൂ?
💁 കാലാവസ്ഥ പ്രവചനങ്ങളും ഓട്ടോമേറ്റഡ് വാട്ടറിങ് സിസ്റ്റങ്ങൾ നിയന്ത്രിക്കുമ്പോൾ പരിഗണിക്കാവുന്നതാണ്. മഴ സാധ്യതയുള്ളപ്പോഴേയ്ക്കും വെള്ളം കൊടുക്കുന്നത് നിർത്താം, മഴ കഴിഞ്ഞശേഷം ആവശ്യമെങ്കിൽ വെള്ളം കൊടുക്കാം. കാലാവസ്ഥ അനുസരിച്ച് വെള്ളം കൊടുക്കുന്നത് ധാരാളം വെള്ളം പാഴാക്കുന്നത് തടയുകയും പ്രോജექტിന്റെ പ്രവർത്തനം മെച്ചപ്പെടുത്തുകയും ചെയ്യും.
നിങ്ങളുടെ പ്ലാന്റ് നിയന്ത്രണ സർവറിലേക്ക് ടൈമിംഗ് ചേർക്കുക
ടൈമിംഗ് നിയന്ത്രണം ജലസേചന ചക്രത്തിന്റെ നിയന്ത്രണവും മണ്ണ് മൗസ്ചറിന്റെ മാറ്റം വരാനുള്ള കാത്തിരിപ്പും ഉൾപ്പെടുന്നതായി സർവർ കോഡ് മാറ്റാം. റിലേയുടെ ടൈമിംഗ് നിയന്ത്രിക്കുന്ന സർവർ തർക്കം ഇങ്ങനെ ആണ്:
- ടെലിമെടറി മെസ്സേജ് സ്വീകരിക്കുക
- മണ്ണ് മൗസ്ചർ നില പരിശോധിക്കുക
- നില ശരിയെങ്കിൽ ഒന്നും ചെയ്യരുത്. വായന 450-ൽ കൂടുതലാണെങ്കിൽ (അർത്ഥം മഞ്ഞ് മൗസ്ചർ കുറഞ്ഞു)
- റിലേ ഓണാക്കാൻ കമാൻഡ് അയയ്ക്കുക
- 5 സെക്കൻഡ് കാത്തിരിക്കുക
- റിലേ ഓഫ് command അയയ്ക്കുക
- മണ്ണ് മൗസ്ചർ സ്ഥിരപ്പെടാൻ 20 സെക്കൻഡ് കാത്തിരിക്കുക
ജലസേചന ചക്രം, ടെലിമെടറി സന്ദേശം സ്വീകരിക്കുകയും വീണ്ടും മണ്ണ് മൗസ്ചർ അളക്കാനും 25 സെക്കൻഡുകൾ ഇടയെടുക്കും. മണ്ണ് മൗസ്ചർ ഡാറ്റ 10 സെക്കൻഡ് കുറഞ്ഞവശ്യത്തിൽ അയക്കപ്പെടുന്നു, അത കാത്തിരിക്കുന്ന സമയത്ത് അടുത്ത സന്ദേശം വന്നാൽ മറ്റൊരു ജലസേചന ചക്രം തുടങ്ങാൻ സാധ്യതയുണ്ട്. ഇതിന് രണ്ട് പരിഹാരങ്ങൾ ഉണ്ട്:
- IoT ഉപകരണം കോഡ് മാറ്റി സ്വൽപ സമയംകൊണ്ട് (ഒരു മിനിട്ടിന് ഒരിക്കൽ) ടെലിമെടറി അയക്കുക, ഇതോടെ ഒരു ജലസേചന ചക്രം പൂര്ത്തീകരിക്കുന്നതിന് മുമ്പ് അടുത്ത സന്ദേശം വരില്ല.
- ജലസേചന ചക്രം നടക്കുമ്പോൾ ടെലിമെടറിയിൽ നിന്നുളള ആബോണ്മെന്റ് അവസാനിപ്പിക്കുക
വലിയ ഫാമുകൾക്ക് ആദ്യ മാർഗ്ഗം എല്ലായ്പ്പോഴും അനുയോജ്യമല്ല. ഫാമർക്ക് ജലസേചനം നടക്കുമ്പോൾ മണ്ണ് മൗസ്ചർ ഇനീകരിക്കുന്നു എങ്കിൽ പിന്നീട് വിശകലനത്തിനായി ഡാറ്റ ശേഖരിക്കുക ഉദ്ദേശമാകാം. ഇക്കാര്യത്തിൽ രണ്ടാമത്തെ മാർഗ്ഗം മെച്ചമാണ് - ടെലിമെടറി ഉപയോഗിക്കാനാകാത്താതിനു ലഭിക്കുന്നത് അവഗണിക്കുകയും, മറ്റുള്ള സേവനങ്ങൾക്ക് അയയ്ക്കുന്നത് തുടരുകയും ചെയ്യുന്നു.
💁 IoT ഡാറ്റ ഒരുവിധം ഒരു ഡിവൈസിൽ നിന്നോ ഒരു അയച്ചവസാനം അല്ല, പല устройങ്ങൾ ഡാറ്റ ബ്രോക്കറിലേക്ക് അയയ്ക്കുകയും നിരവധി സേവനങ്ങൾ അതിൽ നിന്നും കേൾക്കുകയും ചെയ്യുന്നു. ഉദാഹരണത്തിന്, ഒരു സർവീസ് മണ്ണ് മൗസ്ചർ ഡാറ്റ കേൾക്കുകയും അതിവരെ ഡാറ്റാബേസിൽ സംഭരിക്കുകയും ചെയ്യും. മറ്റൊരു സേവനം ജലസേചനം നിയന്ത്രിക്കുന്നതിന് അതേ ടെലിമെടറി കേൾക്കാം.
ടാസ്ക് - പ്ലാന്റ് നിയന്ത്രണ സർവറിലേക്ക് ടൈമിംഗ് ചേർക്കുക
സർവർ കോഡ് 5 സെക്കൻഡ് റിലേ ഓണാക്കുകയും 20 സെക്കൻഡ് കാത്തിരിക്കുകയും ചെയ്യുന്നതായി അപ്ഡേറ്റ് ചെയ്യുക.
-
VS Code-ൽ
soil-moisture-sensor-serverഫോൾഡർ തുറക്കുക, അതുവരെ തുറന്നിട്ടില്ല എങ്കിൽ. വെർച്വൽ എൻവയ്റൺമെന്റ് സജീവമാക്കുക. -
app.pyഫയൽ തുറക്കുക -
നിലവിലുള്ള ഇംപോർട്ടുകൾക്ക് താഴെ താഴെ ചുവടെയുള്ള കോഡ് ചേർക്കുക:
import threadingഈ പ്രസ്താവനം Python ലൈബ്രറികളിൽ നിന്നുള്ള
threadingഇമ്പോർട്ട് ചെയ്യുന്നു, ഇതോടെ Python കാത്തിരിക്കുന്ന സമയത്ത് മറ്റു കോഡുകൾ പ്രവർത്തിക്കാനാകും. -
സെർവർ കോഡ് സ്വീകരിക്കുന്ന ടെലിമെടറി മെസ്സേജുകൾ കൈകാര്യം ചെയ്യുന്ന
handle_telemetryഫംഗ്ഷനിനു മുൻപായി ചുവടെയുള്ള കോഡ് ചേർക്കുക:water_time = 5 wait_time = 20ഇവിടെ റിലേ ഓണാക്കാനുള്ള സമയം (
water_time) എത്രയെന്ന്, മണ്ണ് മൗസ്ചർ പരിശോധിക്കാൻ മുന്നെ കാത്തിരിക്കേണ്ട സമയം (wait_time) എത്രയെന്ന് നിർവചിക്കുന്നു. -
ഈ കോഡിന് താഴെ ചുവടെയുള്ളത് ചേർക്കുക:
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-ൽ നൽകിയ മൂല്യം റിലേ ഓണോ ഓഫോ ആണെന്ന് നിർണ്ണയിക്കുന്നു. -
send_relay_codeഫംഗ്ഷനിനു ശേഷം താഴെ ചുവടെയുള്ള കോഡ് ചേർക്കുക: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)ഇത് ആവശ്യമായ ടൈമിംഗ് അടിസ്ഥാനത്തിൽ റിലേ നിയന്ത്രിക്കുന്ന ഫംഗ്ഷൻ ആണ്. ആദ്യം ടെലിമെടറിയിൽ നിന്നുള്ള സബ്സ്ക്രിപ്ഷൻ റദ്ദാക്കുന്നു, ജലസേചന സമയം മണ്ണ് മൗസ്ചർ സന്ദേശങ്ങൾ പ്രോസസ്സ് ചെയ്യാനാകാതിരിക്കാനും, തുടർന്ന് റിലേ ഓണാക്കാൻ കമാൻഡ് അയയ്ക്കുന്നു.
water_timeകഴിഞ്ഞ് റിലേ ഓഫ് ചെയ്യുന്നു. ശേഷംwait_timeനേരെ കാത്തു മണ്ണ് മൗസ്ചർ നില സ്ഥിരീകാരം സാധ്യമാക്കുന്നു. പിന്നെ ടെലിമെടറിയിലേക്ക് വീണ്ടും സബ്സ്ക്രൈബ് ചെയ്യുന്നു. -
handle_telemetryഫംഗ്ഷൻ ചുവടെ നൽകിയതുപോലെ മാറ്റുക: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-ൽ കൂടുതലാണെങ്കിൽ ചെടിക്ക് വെള്ളം വേണം എന്ന് സംജ്ഞാനം, അതിനായി
control_relayഫംഗ്ഷൻ വിളിക്കുന്നു. ഈ ഫംഗ്ഷൻ വേറെ ഒരു തെ്രഡ് ഉപയോഗിച്ച് ബാക്ക്ഗ്രൗണ്ടിൽ പ്രവർത്തിക്കുന്നു. -
നിങ്ങളുടെ IoT ഉപകരണം പ്രവർത്തിക്കുകയാണെന്ന് ഉറപ്പാക്കിയ ശേഷം ഈ കോഡ് പ്രവർത്തിപ്പിക്കുക. മണ്ണ് മൗസ്ചർ നില മാറ്റി റിലേയിൽ സംഭവിക്കുന്നത് ശ്രദ്ധിക്കുക - 5 സെക്കൻഡ് ഓണാകുകയും പിന്നീട് കുറഞ്ഞത് 20 സെക്കൻഡ് ഓഫ് ആയി നിലനിൽക്കുകയും ചെയ്യണം, മണ് മൗസ്ചർ നില മതിയായതല്ലെങ്കിൽ മാത്രമേ വീണ്ടും ഓണാകൂ.
(.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}സിമുലേറ്റഡ് ജലസേചന സിസ്റ്റത്തിൽ ഉപയോഗിക്കാൻ നല്ല മാർഗം ഉണക്ക മണ്ണ് ഉപയോഗിച്ച്, റിലേ ഓണാകുമ്പോൾ വെള്ളം കൈമാറുക, റിലേ ഓഫ് ആയാൽ വെള്ളം കൊടുക്കുന്നത് നിർത്തുക.
💁 ഈ കോഡ് code-timing ഫോൾഡറിൽ സജ്ജമാണ്.
💁 നിങ്ങള് യാഥാർത്ഥ്യ ജലസേചന സംവിധാനം നിർമ്മിക്കാൻ ആഗ്രഹിച്ചാൽ 6V water pump ഉപയോഗിക്കാം, USB terminal power supply ചേർത്ത്. പമ്പ് പവർ റിലേ വഴി ബന്ധിപ്പിക്കുക.
🚀 ചലഞ്ച്
ആക്ടുവേറ്റർ പ്രവർത്തിപ്പിച്ചതിനുശേഷം സെൻസർ ജല ഫലങ്ങൾ എത്താൻ സമയം എടുക്കുന്ന മറ്റേതെങ്കിലും IoT അല്ലെങ്കിൽ ഇലക്ട്രിക്കൽ ഉപകരണം നിങ്ങൾക്ക് വീട്ടിലോ സ്കൂളിലോ ഉണ്ടോ?
- അവർ അളക്കുന്ന പ്രോപ്പർട്ടികൾ എന്തെല്ലാമാണ്?
- ആക്ടുവേറ്റർ ഉപയോഗിച്ച ശേഷം പ്രോപ്പർട്ടി മാറ്റാൻ എത്ര നേരം കിടക്കും?
- ആവശ്യത്തെ മറികടന്ന് പ്രോപ്പർട്ടി മാറുന്നതിനോട് എങ്ങനെയാണ് സമീപിക്കുന്നത്?
- ആവശ്യമുണ്ടെങ്കിൽ അവർ അത് ആവശ്യമുള്ള മൂല്യത്തിലേക്ക് തിരിച്ചെടുക്കാനുള്ള മാർഗ്ഗം?
പോസ്റ്റ്-ലക്ചർ ക്വിസ്
അവലോകനം & സ്വയം പഠനം
- റിലേകൾ, അവയുടെ ചരിത്രത്തിലെ ടെലിഫോൺ എക്സ്ചേഞ്ചുകളിൽ ഉപയോഗം എന്നിവയെക്കുറിച്ച് കൂടുതൽ അറിയാൻ relay Wikipedia പേജ് വായിക്കുക.
അസൈൻമെന്റ്
കൂടുതൽ ഫലപ്രദമായ ജലസേചന ചക്രം നിർമ്മിക്കുക
അസ്വീകാര്യപ്പെടുത്തൽ:
ഈ രേഖ Co-op Translator എന്ന എ ഐ തർജ്ജമാ സേവനം ഉപയോഗിച്ച് തർജ്ജമ ചെയ്തതാണ്. ഞങ്ങൾ ശരിയായ തർജ്ജമയ്ക്ക് ശ്രമിക്കുന്നതെങ്കിലും, സ്വയമേവ നിർവ്വഹിക്കുന്ന തർജ്ജമകളിൽ പിശകുകൾ അല്ലെങ്കിൽ അപ്രഖ്യാപിതത്വങ്ങൾ ഉണ്ടാകാം എന്നതിൽ ശ്രദ്ധിക്കുക. അതിന്റെ പ്രാഥമിക ഭാഷയിൽ ഉള്ള യഥാർത്ഥ രേഖ ഏതു സാഹചര്യത്തിലും പ്രാമാണികമായ ഉറവിടമായി കണക്കാക്കണം. പ്രധാനപ്പെട്ട വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മാനവ തർജ്ജമ ശിപാർശ ചെയ്യപ്പെടുന്നു. ഈ തർജ്ജമ ഉപയോഗിക്കുന്നതിൽ നിന്നും ഉണ്ടായ എതെങ്കിലും ബോധവില്ലായ്മകൾക്കും തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കും ഞങ്ങൾ ഉത്തരവാദിത്വം ഏറ്റെടുക്കുന്നില്ല.










