Качан белгилүү бир убакытка алыс жакка кетесиз? Үй гүлдөрүңүздү сугарууга эч ким жок, ошондуктан кошуналарыңыздан жардам сурашыңыз керек, алар өз кезегинде буга кайдыгер мамиле кылышы мүмкүн. Натыйжада, сиздин келгениңизде, өсүмдүктөр жаман сезилет. Мунун алдын алуу үчүн, сиз автоматтык сугаруу системасын жасай аласыз. Бул үчүн бизге 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дагы топурак нымдуулугунун сенсору 5V өткөрөт, эгер азыраак болсо - 0V. Баары абдан жөнөкөй, бирок аналогдук режимдин маанилери такыраак, андыктан аны колдонуу сунушталат.
Зымдар схемасы жогорудагы сүрөттө окшош. жол
Санарип режимин колдонууда Arduino үчүн программалоо коду төмөндө көрсөтүлгөн.
int led_pin=13; int sensor_pin=8; void setup() { pinMode(led_pin, OUTPUT); pinMode(sensor_pin, INPUT); } void loop() { if(digitalRead(sensor_pin)==HIGH){ digitalWrite(led_pin, HIGH); } else { digitalWrite(led_pin, LOW); delay(1000); } }
Биздин код эмне кылат? Биринчиден, эки өзгөрмөлөр аныкталган. Биринчи өзгөрмө - led_pin - LED белгилөө үчүн кызмат кылат, ал эми экинчи - жер нымдуулук сенсор белгилөө үчүн. Андан кийин, биз LED пинди чыгаруу, ал эми сенсор пинди киргизүү катары жарыялайбыз. Бул биз баалуулуктарды ала алышыбыз үчүн зарыл жана керек болсо, сенсордун маанилери босогодон жогору экенин көрүү үчүн LEDди күйгүзүңүз. Циклде биз сенсордон баалуулуктарды окуйбуз. Эгерде маани чектен жогору болсо, светодиодду күйгүзүңүз, азыраак болсо өчүрүңүз. Светодиоддун ордунабалким, насос, баары сизден көз каранды.
Аналогдук режим
Аналогдук чыгууну колдонуп туташуу үчүн A0 менен иштешиңиз керек. Arduino'дагы топурактын нымдуулугунун сыйымдуулугу сенсору 0дөн 1023кө чейинки маанилерди алат. Сенсорду төмөнкүдөй туташтырыңыз:
- VCC Arduino'га 5V туташтырыңыз.
- Сенсордогу GND Arduino тактасындагы GND менен туташтырылган.
- A0 Arduino'до A0 менен туташат.
Кийинки кодду Arduino'до жазыңыз.
int sensor_pin=A0; int output_value; void setup() { Serial.begin(9600); Serial.println("Сенсорду окуу"); delay(2000); } void loop() { output_value=analogRead(sensor_pin); output_value=карта(чыгарма_маани, 550, 0, 0, 100); Serial.print("Нымдуулук"); Serial.print(чыгаруу_маани); Serial.println("%"); delay(1000); }
Анда бул код эмне кылат? Биринчи кадам өзгөрмөлөрдү коюу болду. Биринчи өзгөрмө сенсордун контактын аныктоо үчүн керек, ал эми экинчиси сенсор аркылуу ала турган натыйжаларды сактайт. Андан кийин, биз маалыматтарды окуйбуз. Циклде биз сенсордон биз түзгөн output_value өзгөрмөсүнө маанилерди жазабыз. Андан кийин топурактын нымдуулугунун пайызы эсептелинет, андан кийин биз аларды порт мониторунда көрсөтөбүз. Зымдар схемасы төмөндө көрсөтүлгөн.
DIY
Жогоруда топурактын нымдуулугунун сенсорун Arduino менен кантип туташтыруу керектиги талкууланган. Бул сенсорлордун көйгөйү алардын кыска мөөнөттүү болушунда. Чындыгында, алар абдан жакын болуп саналаткоррозия. Кээ бир компаниялар кызмат мөөнөтүн узартуу үчүн атайын жабын менен сенсорлорду жасашат, бирок ал дагы эле мурункудай эмес. Ошондой эле сенсорду көп эмес, керек болгондо гана колдонуу мүмкүнчүлүгү каралат. Мисалы, сенсор ар бир секунда топурактын нымдуулугун окуй турган программа коду бар. Эгер сиз аны күйгүзсөңүз, кызмат мөөнөтүн узарта аласыз, мисалы, күнүнө бир жолу. Бирок бул сизге жакпаса, анда сиз өз колуңуз менен топурактын нымдуулугу сенсорун жасай аласыз. Arduino айырманы сезбейт. Негизинен система бирдей. Жөнөкөй эле, эки сенсордун ордуна, сиз өзүңүздүн оюңузду коюп, коррозияга азыраак кабылган материалды колдонсоңуз болот. Идеалында, албетте, алтынды колдонуңуз, бирок анын баасын эске алганда, ал абдан кымбат чыгат. Жалпысынан алганда, FC-28 баасын эске алганда, аны сатып алуу арзаныраак.
Плюс жана минус
Макалада топурактын нымдуулугунун сенсорун Arduino менен туташтыруу жолдору талкууланып, программалык коддун мисалдары да берилген. FC-28 чынында эле топурактын нымдуулугунун жакшы сенсору, бирок бул сенсордун кандай жакшы жана жаман жактары бар?
Простары:
- Баасы. Бул датчиктин баасы өтө төмөн, ошондуктан ар бир радио ышкыбозу өсүмдүктөр үчүн өзүнүн автоматтык сугаруу системасын сатып алып, кура алат. Албетте, чоң тараза менен иштөөдө, бул сенсор ылайыктуу эмес, бирок бул үчүн арналган эмес. Эгер сизге күчтүүрөөк сенсор керек болсо - SM2802B, анда ал үчүн бир топ чоң сумманы төлөшүңүз керек болот.
- Жөнөкөйлүк. Ардуинодо бул топурактын ным сенсору менен иштөөнү өздөштүрүүар бири. Болгону бир нече зымдар, бир-эки сап код - ушуну менен бүттү. Топурак нымдуулугун көзөмөлдөө аткарылды.
Терсиз жактары: