Kako spojiti senzor vlažnosti na Arduino?

Kada idete negdje daleko na neko određeno vrijeme? Cvijeće u vašoj sobi nikoga se ne zalijeva, pa morate tražiti pomoć od susjeda koji, pak, to ne mogu podnijeti. Kao rezultat toga, prije dolaska biljke će se osjećati loše. Da biste to izbjegli, možete napraviti automatski sustav navodnjavanja. U tu svrhu trebat će nam Arduino i senzor vlage. U članku, pogledajmo primjer povezivanja i rada s FC-28 senzorom. Dokazao se na pozitivnoj strani, uz pomoć njega stvorene su tisuće projekata.

O FC-28 senzoru

Senzori za određivanje vlažnosti zemlje su obilni, ali najpopularniji je model FC-28. Ima nisku cijenu, zbog čega je široko korišten od strane svih radioamatera u svojim projektima. Koristi se senzor vlage u tlu Arduino. On ima dvije sonde koje provode električnu struju kroz zemlju. Ispada da ako je tlo vlažno, tada je otpor između sondi manji. U suhom je zemljištu otpor veći. Arduino prihvaća ove vrijednosti, uspoređuje i, ako je potrebno, uključuje, na primjer, pumpu. Senzor može raditi kako s digitalnim načinom tako is analognim, obje mogućnosti povezivanja koje ćemo razmotriti. FC-28 se uglavnom koristi u malim projektima, na primjer, u automatskom zalijevanju jedne pojedine biljke, jer je neprikladna za upotrebu u velikim razmjerima zbog veličine i nedostataka koje ćemo razmotriti.


Gdje kupiti

Činjenica je da u ruskim trgovinamasenzori za rad s Arduinom su relativno skupi. Prosječna cijena ovog senzora u Rusiji varira od 200 do 300 rubalja, dok je na Aliexpress isti senzor košta samo nekih 30-50. Oznaka je ogromna. Naravno, još uvijek možete napraviti senzor za mjerenje vlažnosti tla vlastitim rukama, ali o tome ispod.

O priključku

Senzor vlage je vrlo jednostavno povezan s Arduinom. Uz njega su i komparator i potenciometar za kontrolu osjetljivosti senzora, kao i za postavljanje granične vrijednosti kada je spojen preko digitalnog izlaza. Izlazni signal, kao što je već spomenuto, može biti digitalni i analogni.

Povezivanje putem digitalnog izlaza

Povezuje se na gotovo isti način kao i analogni:
  • VCC-5V na Arduinu.
  • D0 - D8 na ploči Arduino.
  • GND je zemlja.
  • Kao što je već spomenuto, komparator i potenciometar su smješteni na senzorskom modulu. Radi sve sljedeće: pomoću potenciometra postavljamo graničnu vrijednost našeg senzora. FC-28 uspoređuje vrijednost s granicom, a zatim šalje vrijednost Arduinu. Primjerice, vrijednost senzora je viša od praga, u ovom slučaju senzor vlažnosti na Arduinu prenosi 5V, ako je manji - 0V. Sve je vrlo jednostavno, ali točnije vrijednosti su u analognom načinu, pa se preporuča koristiti.


    Shema električnog priključka izgleda kao da je prikazana gore. Softverski kod Arduino za korištenje digitalnog načina prikazan je u nastavku.

    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);
    kašnjenje (1000);
    }
    }

    Što čini naš kod? Prvi je čin obilježen s dvije varijable. Prva varijabla - led_pin - služi za označavanje LED, a druga - za senzor vlažnosti zemlje. Zatim najavljujemo kontakt LED kao izlaz, a kontakt senzora kao ulaz. To je potrebno kako bismo dobili vrijednost i, ako je potrebno, uključiti LED kako bismo vizualno vidjeli da je vrijednost senzora iznad praga. U petlji čitamo vrijednost iz senzora. Ako je vrijednost iznad granice - uključite LED, ako je ispod - isključite ga. Umjesto svjetlosne diode možda postoji pumpa, sve ovisi o vama.


    & lt; script type = "text /javascript" & gt;
    može blockSettings2 = {blockId: "R-A-271049-5", renderTo: "yandex_rtb_R-A-70350-39", async: 0};
    if (document.cookie.indexOf ("abmatch =") & gt; = 0) blockSettings2.statId = 70350;
    Funkcija (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (funkcija () {Ya.Context.AdvManager.render (blockSettings2)}), e = b.getElementsByTagName ("script") , d = b.createElement ("script"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (ovaj, ovaj.dokument," yandexContextAsyncCallbacks ");

    Analogni mod

    Za povezivanje preko analognog izlaza, morate raditi s A0. Senzor vlage u tlu Arduino uzima vrijednosti od 0 do 1023. Spojite senzor na sljedeći način:

    • VCC se povezuje s 5V na Arduino.
    • Spojite GND na senzor na GND na Arduino ploči.
    • ​​
    • A0 se povezuje s A0 na Arduinu.

    Sljedeći u Arduinu, propisat ćemo kod ispod.

    int sensor_pin = A0;
    int output_value;

    void setup () {
    Serijski broj (9600);
    Serial.println ("Pročitajteizlaz
    osjetnika
    (2000);
    }

    64) Serial.print ("Vlažnost");
    Serial.print (output_value);
    Serial.println ("%");
    kašnjenje (1000);
    }


    Dakle, što radi ovaj programski kod? Prva stvar koju su dobili varijable: prva varijabla je potrebna za određivanje kontakta senzora, a druga će pohraniti rezultate koje ćemo primiti sa senzorom, a zatim ćemo pročitati podatke. upišite varijablu output_value koju smo stvorili od senzora, a zatim izračunamo postotak vlage u tlu, nakon čega ih zaključimo. monitor port. Električni priključak dijagram prikazan ispod.

    Svojim rukama

    Navedeno se razmatralo kako spojiti senzor vlažnosti na Arduino. Problem s ovim senzorima je taj što su kratkotrajni. Činjenica je da su vrlo skloni koroziji. Neke tvrtke proizvode senzore s posebnim premazom kako bi povećale vijek trajanja, ali to još uvijek nije slučaj. Također, često se ne koristi uporaba senzora, već samo kada je to potrebno. Na primjer, postoji programski kod u kojem senzor očitava vrijednost vlažnosti tla svake sekunde. Možete ga produljiti ako je uključite, primjerice, jednom dnevno. Ali ako vam to ne odgovara, možete napraviti vlastitim rukama senzor vlage u tlu. Arduino neće osjetiti razliku. U principu, sustav je isti. Umjesto dva senzora možete staviti svoj vlastiti i koristiti manje otporan na koroziju. U idealnom slučaju, naravno, koristite zlato, ali s obzirom na njegovu cijenu, to će biti vrlo skupo.Općenito, to je jeftinije kupiti, uzimajući u obzir cijenu FC-28.

    Za i protiv

    U članku su razmatrane mogućnosti povezivanja senzora vlažnosti s Arduinom, te su prikazani primjeri softverskog koda. FC-28 je stvarno dobar senzor za određivanje vlažnosti tla, ali koje su specifične prednosti i nedostaci ovog senzora?

    Pros:
  • Cijena. Ovaj senzor ima vrlo nisku cijenu, tako da svaki radio amater može kupiti i izgraditi vlastiti sustav za automatsko zalijevanje biljaka. Naravno, kada radite na velikom mjerilu, ovaj senzor neće stati, ali nije namijenjen za to. Ako vam je potreban snažniji senzor - SM2802B, onda za njega i dati vam poštenu količinu.
  • Jednostavnost. S ovim senzorom vlage u Arduinu svatko može svladati rad. Samo nekoliko žica, par redaka koda - i sve. Kontrola vlage u tlu je obavljena.
  • Cons:
  • Sklonost koroziji. To je jedina greška ovih senzora. Ali s obzirom na cijenu, možete zatvoriti ovo oko. Prije svega, ovi senzori su napravljeni za obuku, a ne za praktičnu uporabu u velikim projektima.
  • Povezane publikacije