Кога отивате някъде далече за определен период от време? Няма кой да полива вашите стайни цветя, така че трябва да помолите за помощ съседите си, които от своя страна може да са небрежни към това. В резултат на това до пристигането ви растенията ще се почувстват зле. За да предотвратите това, можете да направите автоматична поливна система. За целта ни трябва Arduino и сензор за влажност на почвата. В статията ще разгледаме пример за свързване и работа със сензора FC-28. Той се е доказал от положителната страна, с помощта на хиляди проекти са създадени.
Относно FC-28
Има голямо разнообразие от сензори за определяне на влажността на земята, но най-популярен е моделът FC-28. Има ниска цена, поради което се използва широко от всички радиолюбители в техните проекти. Използва се сензор за влажност на почвата с Arduino. Той има две сонди, които провеждат електрически ток през земята. Оказва се, че ако почвата е мокра, тогава съпротивлението между сондите е по-малко. При суха земя, съответно, съпротивлението е по-голямо. Arduino приема тези стойности, сравнява и, ако е необходимо, включва, например, помпа. Сензорът може да работи както с цифров, така и с аналогов режим, ще разгледаме и двете опции за свързване. FC-28 се използва главно в малки проекти, например при автоматично поливане на едно конкретно растение, тъй като е неудобно да се използва в голям мащаб поради неговия размер и недостатъци, които също ще разгледаме.
Къде да купя
Факт е, че в руските магазини сензорите за работа с Arduino са сравнително скъпи. Средната цена за този сензор в Русия варира от 200 до 300 рубли, докато в Aliexpress същият сензор струва само около 30-50. Надценката е огромна. Разбира се, все още можете да направите сензор за измерване на влажността на почвата със собствените си ръце, но повече за това по-долу.
Относно връзката
Свързването на сензора за влажност към Arduino е много лесно. Доставя се с компаратор и потенциометър за регулиране на чувствителността на сензора, както и за настройка на граничната стойност при свързване чрез цифров изход. Изходният сигнал, както бе споменато по-горе, може да бъде цифров и аналогов.
Свързване с цифров изход
Свързан по почти същия начин като аналогов:
- VCC - 5V на Arduino.
- 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); забавяне (1000); } }
Какво прави нашият код? Първо бяха идентифицирани две променливи. Първата променлива - led_pin - служи за обозначаване на светодиода, а втората - за обозначаване на сензора за влага в земята. След това декларираме LED щифта като изход и щифта на сензора като вход. Това е необходимо, за да можем да получим стойностите и ако е необходимо, включете светодиода, за да видите визуално, че стойностите на сензора са над прага. В цикъла четем стойностите от сензора. Ако стойността е по-висока от ограничението, включете светодиода, ако е по-ниска, изключете го. Вместо светодиодможе би помпа, всичко зависи от вас.
Аналогов режим
За да свържете с аналогов изход, трябва да работите с A0. Капацитивният сензор за влажност на почвата в Arduino приема стойности от 0 до 1023. Свържете сензора по следния начин:
- VCC свържете 5V към Arduino.
- GND на сензора е свързан към GND на платката Arduino.
- A0 свържете се с A0 на Arduino.
След това напишете кода по-долу в 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); }
И така, какво прави този код? Първата стъпка беше да зададете променливите. Първата променлива е необходима за определяне на контакта на сензора, а другата ще съхранява резултатите, които ще получим с помощта на сензора. След това четем данните. В цикъла записваме стойностите от сензора в променливата output_value, която създадохме. След това се изчислява процентът на влажност на почвата, след което ги показваме на монитора на порта. Схемата на свързване е показана по-долу.
Направи си сам
Беше обсъдено по-горе как да свържете сензора за влажност на почвата към Arduino. Проблемът с тези сензори е, че те са краткотрайни. Факт е, че те са много предразположени къмкорозия. Някои компании правят сензори със специално покритие за увеличаване на експлоатационния живот, но все още не е същото. Обмислена е и възможността сензорът да се използва не често, а само когато е необходимо. Например има програмен код, при който всяка секунда сензорът отчита стойностите на влажността на почвата. Можете да удължите експлоатационния живот, ако го включите, например, веднъж на ден. Но ако това не ви подхожда, тогава можете да направите сензор за влажност на почвата със собствените си ръце. Arduino няма да усети разликата. По принцип системата е същата. Просто, вместо два сензора, можете да поставите свой собствен и да използвате материал, който е по-малко податлив на корозия. В идеалния случай, разбира се, използвайте злато, но предвид цената му, то ще излезе много скъпо. Като цяло е по-евтино да се купи, като се има предвид цената на FC-28.
Плюсове и минуси
В статията бяха обсъдени опциите за свързване на сензор за влажност на почвата към Arduino, като бяха представени и примери за програмен код. FC-28 е наистина добър сензор за влажност на почвата, но какви са специфичните плюсове и минуси на този сензор?
Плюсове:
- Цена. Този сензор има много ниска цена, така че всеки радиолюбител ще може да закупи и изгради своя собствена автоматична система за поливане на растения. Разбира се, когато работите с големи мащаби, този сензор не е подходящ, но не е предназначен за това. Ако имате нужда от по-мощен сензор - SM2802B, тогава ще трябва да платите доста голяма сума за него.
- Простота. Овладяване на работата с този сензор за влажност на почвата в Arduino canвсеки. Само няколко проводника, няколко реда код - и това е всичко. Контролът на влажността на почвата е извършен.
Против: