Как да свържа сензора за влажност към Arduino?

Кога отиваш някъде далеч за определен период от време? Цветовете на стаята ви се напояват на никого, така че трябва да помолите за помощ от съседите си, които от своя страна не могат да се справят. В резултат на това, преди пристигането ви растенията ще се чувстват зле. За да избегнете това, можете да направите автоматична система за поливане. За тази цел ще се нуждаем от 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);
    пинМод (sensor_pin, INPUT);
    }
    void loop () {
    , ако (digitalRead (sensor_pin) == HIGH) {
    digitalWrite (led_pin, HIGH);
    } else {
    digitalWrite (led_pin, LOW);
    закъснение (1000);
    }
    }

    Какво прави нашият код? Първият акт бе отбелязан с две променливи. Първата променлива - led_pin - служи за индикация на светодиода, а втората - за датчика за влажност на земята. След това обявяваме контакта на LED като изход, а контактът на сензора като вход. Това е необходимо, за да получим стойността, и ако е необходимо, включете светодиода, за да видите визуално, че стойността на сензора е над прага. В контур четем стойността от сензора. Ако стойността е над границата - включете светодиода, ако по-долу - го изключете. Вместо светодиод може да има помпа, всичко зависи от вас.


    & lt; script type = "text /javascript" & gt;
    може да blockSettings2 = {blockId: "R-A-271049-5", renderTo: "yandex_rtb_R-A-70350-39", async: 0};
    if (document.cookie.indexOf ("abmatch =")> = 0) blockSettings2.statId = 70350;
    Функция (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (функция () {Ya.Context.AdvManager.render (blockSettings2)}), e = b.getElementsByTagName ("script") , d = b.createElement ("скрипт"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (това, този.документ," yandexContextAsyncCallbacks ");

    Аналогов режим

    За свързване чрез аналогов изход, трябва да работите с A0. Сензорът за почвена влажност в Arduino приема стойности от 0 до 1023. Свържете сензора както следва:

    • VCC се свързва с 5V към Arduino.
    • Свържете GND към сензора към GND на платката Arduino.
    • ​​
    • A0 се свързва с A0 на Arduino.

    Следваща в Arduino, ние ще предпишем кода по-долу.

    int sensor_pin = A0;
    int output_value;

    void setup () {
    Сериен. Започва (9600);
    Serial.println ("Прочететеизход
    на сензор
    (2000);
    }


    Serial.print (output_value),
    Serial.println ("%");
    закъснение (1000);
    }


    И така, какво прави този програмен код? Първото нещо, което беше дадено на променливите: първата променлива е необходима, за да се определи контактът на сензора, а другият ще съхрани резултатите, които ще получим със сензора, след което четем данните. напишете променливата output_value, която създадохме от сензора, след което се изчислява процентът на почвената влага, след което ги извеждаме. наблюдава порт. диаграма Електрическа връзка показано по-долу.

    С ръцете си

    Горното беше разгледано как да се свърже датчик за влажност с Arduino. Проблемът с тези сензори е, че те са краткотрайни. Факт е, че те са много податливи на корозия. Някои фирми правят сензори със специално покритие, за да увеличат експлоатационния живот, но това все още не е така. Също така, използването на сензора не се използва често, а само когато е необходимо. Например, има програмен код, при който датчикът отчита стойността на почвената влага всяка секунда. Можете да удължите срока на експлоатация, ако го включите, например веднъж на ден. Но ако това не ви подхожда, можете да направите със собствените си ръце сензор за влага на почвата. Arduino няма да усети разликата. По принцип системата е една и съща. Вместо два сензора, можете да поставите свой собствен и да използвате по-малко устойчив на корозия материал. В идеалния случай, разбира се, използвайте злато, но като се има предвид цената му, ще бъде много скъпо.Като цяло е по-евтино да се купува, като се вземе предвид цената на FC-28.

    За и против

    В статията бяха разгледани възможностите за свързване на сензора за влажност към Arduino и бяха представени примери за софтуерен код. FC-28 е наистина добър сензор за определяне на влажността на почвата, но какви са специфичните предимства и недостатъци на този сензор?

    Плюсове:
  • Цена. Този сензор има много ниска цена, така че всеки радиолюбител може да закупи и изгради своя собствена система за автоматично поливане на растенията. Разбира се, при работа в голям мащаб, този сензор няма да се побере, но не е предназначен за това. Ако имате нужда от сензор по-мощен - SM2802B, тогава за него и ще ви даде справедлива сума.
  • Простота. Всеки може да овладее работата с този сензор за влага в Arduino. Само няколко жици, няколко реда код - и всичко. Извършва се контрол на почвената влага.
  • Против:
  • Склонност към корозия. Това е единствената грешка на тези сензори. Но като се има предвид цената, можете да затворите това око. На първо място, тези сензори бяха направени за обучение, а не за практическо използване в големи проекти.
  • Свързани публикации