Қашан белгілі бір уақытқа алыс жерге барасыз? Жабық гүлдеріңізді суаратын ешкім жоқ, сондықтан көршілеріңізден көмек сұрауға тура келеді, олар өз кезегінде бұл мәселеге немқұрайлы қарауы мүмкін. Нәтижесінде, сіздің келуіңізде өсімдіктер нашар сезінеді. Бұған жол бермеу үшін сіз автоматты суару жүйесін жасай аласыз. Ол үшін бізге Arduino және топырақтың ылғал сенсоры қажет. Мақалада біз FC-28 сенсорын қосу және онымен жұмыс істеу мысалын қарастырамыз. Ол өзін жақсы жағынан көрсетті, мыңдаған жобалардың көмегімен жасалды.
FC-28 туралы
Жердің ылғалдылығын анықтауға арналған көптеген сенсорлар бар, бірақ ең танымалы - FC-28 моделі. Оның төмен бағасы бар, соның арқасында оны барлық радиоәуесқойлар өз жобаларында кеңінен пайдаланады. Arduino бар топырақтың ылғал сенсоры қолданылады. Оның жер арқылы электр тогын өткізетін екі зонд бар. Топырақ ылғалды болса, зондтар арасындағы қарсылық аз болады екен. Құрғақ жермен, сәйкесінше, қарсылық үлкен. Arduino бұл мәндерді қабылдайды, салыстырады және қажет болған жағдайда, мысалы, сорғыны қосады. Сенсор сандық және аналогтық режимдермен жұмыс істей алады, біз қосылымның екі нұсқасын да қарастырамыз. FC-28 негізінен шағын жобаларда, мысалы, белгілі бір өсімдікті автоматты түрде суару кезінде қолданылады, өйткені оның өлшемі мен кемшіліктеріне байланысты оны кең ауқымда пайдалану ыңғайсыз, біз оны да қарастырамыз.
Қайдан сатып алуға болады
Ресей дүкендерінде Arduino-мен жұмыс істеуге арналған сенсорлар салыстырмалы түрде қымбат. Ресейде бұл сенсордың орташа бағасы 200-ден 300 рубльге дейін өзгереді, ал Aliexpress-те бірдей сенсордың құны шамамен 30-50 құрайды. Белгілеу өте үлкен. Әрине, сіз әлі де өз қолыңызбен топырақтың ылғалдылығын өлшеуге арналған сенсорды жасай аласыз, бірақ бұл туралы толығырақ төменде.
Байланыс туралы
Ылғалдылық сенсорын Arduino-ға қосу өте оңай. Ол сенсордың сезімталдығын реттеуге, сондай-ақ сандық шығыс арқылы қосылған кезде шекті мәнді орнатуға арналған компаратормен және потенциометрмен бірге келеді. Шығыс сигналы, жоғарыда айтылғандай, сандық және аналогтық болуы мүмкін.
Сандық шығыспен қосылу
Аналогпен бірдей дерлік жолмен қосылған:
- VCC - Arduino-да 5V.
- D0 - D8 Arduino тақтасында.
- GND -жер.
Жоғарыда айтылғандай, компаратор мен потенциометр сенсор модулінде орналасқан. Барлығы келесідей жұмыс істейді: потенциометрдің көмегімен сенсорымыздың шекті мәнін орнатамыз. FC-28 мәнді шекпен салыстырады, содан кейін мәнді Arduino-ға жібереді. Сенсордың мәндері шекті мәннен жоғары делік, бұл жағдайда Arduino-дағы топырақ ылғалдылығының сенсоры 5 В, аз болса - 0 В өткізеді. Барлығы өте қарапайым, бірақ аналогтық режимде дәлірек мәндер бар, сондықтан оны пайдалану ұсынылады.
Сымдар схемасы жоғарыдағы фотосуретке ұқсайды. жол
Сандық режимді пайдалану кезінде Arduino үшін бағдарламалау коды төменде көрсетілген.
int led_pin=13; int sensor_pin=8; void setup() { pinMode(led_pin, OUTPUT); pinMode(сенсор_pin, INPUT); } void loop() { if(digitalRead(sensor_pin)==HIGH){ digitalWrite(led_pin, HIGH); } else { digitalWrite(led_pin, LOW); кідіріс(1000); } }
Біздің код не істейді? Алдымен екі айнымалы анықталды. Бірінші айнымалы - led_pin - жарықдиодты белгілеу үшін қызмет етеді, ал екіншісі - жердегі ылғал сенсорын белгілеу үшін. Әрі қарай, біз жарық диодты істікшесін шығыс ретінде, ал сенсорды кіріс ретінде жариялаймыз. Бұл мәндерді алуымыз үшін қажет және қажет болса, сенсор мәндерінің шекті мәннен жоғары екенін көрнекі түрде көру үшін жарық диодты қосыңыз. Циклда біз сенсордан мәндерді оқимыз. Егер мән шектен жоғары болса, жарық диодты қосыңыз, төмен болса, өшіріңіз. Жарықдиодтың орнынамүмкін сорғы, бәрі өзіңізге байланысты.
Аналогтық режим
Аналогтық шығыс арқылы қосылу үшін A0-мен жұмыс істеу керек. Arduino ішіндегі сыйымдылықтағы топырақ ылғалдылығы сенсоры 0-ден 1023-ке дейінгі мәндерді қабылдайды. Датчикті келесідей қосыңыз:
- VCC Arduino-ға 5В қосыңыз.
- Сенсордағы GND Arduino тақтасындағы GND-ге қосылған.
- A0 Arduino жүйесінде A0 желісіне қосылыңыз.
Содан кейін Arduino-да төмендегі кодты жазыңыз.
int sensor_pin=A0; int шығыс_мәні; void setup() { Serial.begin(9600); Serial.println("Сенсорды оқу"); кешіктіру (2000); } void loop() { output_value=analogRead(sensor_pin); шығыс_мәні=карта(шығыс_мәні, 550, 0, 0, 100); Serial.print («Ылғалдылық»); Serial.print(шығыс_мәні); Serial.println("%"); кідіріс(1000); }
Сонымен бұл код не істейді? Бірінші қадам айнымалы мәндерді орнату болды. Бірінші айнымалы сенсордың контактісін анықтау үшін қажет, ал екіншісі сенсор арқылы алатын нәтижелерді сақтайды. Содан кейін біз деректерді оқимыз. Циклда біз сенсордан біз жасаған шығыс_мән айнымалысына мәндерді жазамыз. Содан кейін топырақ ылғалдылығының пайызы есептеледі, содан кейін біз оларды порт мониторында көрсетеміз. Қосылу схемасы төменде көрсетілген.
DIY
Топырақ ылғалдылығы сенсорын Arduino-ға қалай қосу керектігі жоғарыда талқыланды. Бұл сенсорлардың проблемасы олардың қысқа мерзімділігінде. Өйткені, олар өте бейімкоррозия. Кейбір компаниялар қызмет ету мерзімін ұзарту үшін арнайы жабыны бар датчиктерді жасайды, бірақ ол әлі де бірдей емес. Сондай-ақ сенсорды жиі емес, қажет болғанда ғана пайдалану мүмкіндігі қарастырылады. Мысалы, сенсор секунд сайын топырақтың ылғалдылық мәндерін оқитын бағдарлама коды бар. Егер сіз оны қоссаңыз, қызмет ету мерзімін ұзартуға болады, мысалы, күніне бір рет. Бірақ егер бұл сізге сәйкес келмесе, онда сіз өз қолыңызбен топырақтың ылғалдылық сенсорын жасай аласыз. Arduino айырмашылықты сезінбейді. Негізінде жүйе бірдей. Қарапайым, екі сенсордың орнына сіз өзіңізді қойып, коррозияға аз сезімтал материалды пайдалана аласыз. Ең дұрысы, әрине, алтынды қолданыңыз, бірақ оның бағасын ескере отырып, ол өте қымбат болады. Жалпы, FC-28 бағасын ескере отырып, оны сатып алу арзанырақ.
Артықшылықтары мен кемшіліктері
Мақалада топырақтың ылғал сенсорын Arduino-ға қосу нұсқалары талқыланды, сонымен қатар бағдарлама кодының мысалдары ұсынылды. FC-28 - шынымен жақсы топырақ ылғалдылығы сенсоры, бірақ бұл сенсордың артықшылығы мен кемшіліктері қандай?
Противтері:
- Бағасы. Бұл сенсордың бағасы өте төмен, сондықтан әрбір радиоәуесқой өсімдіктерге арналған автоматты суару жүйесін сатып алып, құрастыра алады. Әрине, үлкен таразылармен жұмыс істегенде, бұл сенсор жарамайды, бірақ ол бұған арналмаған. Егер сізге қуаттырақ сенсор - SM2802B қажет болса, ол үшін айтарлықтай үлкен соманы төлеуге тура келеді.
- Қарапайымдық. Arduino-да осы топырақтың ылғал сенсорымен жұмысты меңгеру мүмкінәрқайсысы. Бірнеше сым, кодтың бірнеше жолы - міне, солай. Топырақ ылғалдылығын бақылау орындалды.
Жағымсыз жақтары: