Arduino Senzor Vlažnosti Tla (soil moisture FC-28)
Iz projekta u projekat, možemo uvidjeti da je upotreba mikrokontrolera i senzora svuda oko nas. Svjedoci smo da je u današnje vrijeme sve više pažnje posvećeno agrikulturi, tj. što većoj iskoristivosti vode prilikom zalijevanja plantaža, plastenika, bašta i ostalog, jer ista nije dostupna svima u velikim količinama. Ako ćemo suziti pogled na elektroniku, automatiku, mehatroniku i ostale srodne djelatnosti, njihov glavni zadatak bio da pomognu ljudima da prikupe što veći broj podataka (očitanja sa senzora) kako bi pravili analize i postigli što veću efikasnost. Kao što ste mogli vidjeti i u naslovu ove lekcije u nastavku ćemo se baviti analognim senzorom za očitavanje vlažnosti tla.
U ovoj lekciji ćemo objasniti:
- Šta je to laser senzor vlažnosti tla?
- Šema povezivanja i kod za kontrolu senzora vlažnosti tla,
- Specifikacija materijala
Šta je to laser senzor vlažnosti tla?
Kako bi uspjeli izmjeriti kolika je vlažnost tla koristiti ćemo senzor FC-28 senzor. Na ovom modulu nalazi se komponenta koja je sposobna da detektuje količinu vode u tlu i daje nam izlazni broj kao nivo vlage. Odlična stvar kod ovog modula je ta da ima ugrađen komperator na svojim izlazima preko kojih možemo dobiti digitalni (HIGH / LOW ) ili analogni(0V-5V) signal. Kada je u tlu više vode, tlo će provoditi više struje što znači da će biti manje otpora i u tom trenutku će nivo vlage biti veći. Suho tlo slabije provodi struju, pa kada je manja vlažnost tla protok struje je manji, čime je otpor veći na senzoru što rezultira manju vlažnost tla kao izlazni podatak senzora. Modul se sastoji od elektroda koje se zabiju u tlo, komunikacijskih kablova koji prenose vrijednosti do modula koji je zadužen za prenos podataka prema kontroleru.
Tehnički podaci senozra:
- Ulazni napon: 3.3–5V
- Izlazni napon: 0–4.2V
- Ulazna struja: 35mA
- Izlazni signal: analogni i digitalni
Pinovi na senzoru:
- VCC: Napon
- A0: Analogni izlaz (engl. Analog Output)
- D0: Digitalni izlaz (Digital Output)
- GND: Zemlja (Ground)
Mi ćemo koristiti samo analogno očitanje senzora, zbog čega nam je potreban samo analogni pin A0. Kod uzimanja analogne vrijednosti sa senzora tla , senzor nam vraća vrijednost od 0-1023. Pošto se vlažnost mjeri u postotcima mi ćemo mapirati analogne vrijednosti u postotke od 0 do 100, a zatim ih prikazati na serijal print-u.
Kao indikator vlažnosti postavit ćemo jednu crvenu led diodu. Zadatak led diode je da se upali ako je vlažnost tla iznad zadane vrijednosti (vrijednosti koju ćemo mi zadati kroz kod) i na taj način ćemo znati da je naše cvijeće potrebno zaliti.
Šema povezivanja i kod za kontrolu senzora vlažnosti tla:
Povezivanje komponenti (senzor vlažnosti, Arduino kontroler i led dioda) ćemo uraditi sljedećim redoslijedom:
Povezivanje senzora sa Arduinom i značenja boja:
- Crvena = VCC – 5v (+)
- Zelena = pin A0 -> preuzimanje podatka sa Senzora vlaznosti
- Plava = pin 8 -> anoda led diode (+)
- Plava = GND (-)
Kako bi bolje shvatili cijeli proces, programiranje ćemo podijeliti u dva dijela. Prvi kod će se odnositi na testiranje senzora i uzimanje maksimalnih i minimalnih analognih vrijednosti, jer smo rekli da ćemo kao krajnji rezultat koristiti postotke. Kako bi znali ispravno mapirati tj. pretvoriti vrijednosti u postotke, moramo znati maksimalne i minimalne vrijednosti očitanja.
Kako bi izmjerili maksimalnu i minimalnu vrijednost, koristio sam saksiju punu zemlje i istu sam polijevao vodom i kada sam dobio minimalnu vrijednost, polako sam izvlačio sondu od senzora. Ovom metodom sam samo htio da se uvjerim da senzor radi ispravno i efikasno, što sam i postigao. Moji rezultati za mapiranje su:
- Maksimalno suho – 1019 (najveći izmjereni broj)
- Maksimalno vlažno – 322 (najmanji izmjereni broj)
Sva mjerenja će biti individualna. Sve i ako ste povezali senzor kao na šemi ne znači da će Vam očitanja biti identična kao u mom slučaju. To je iz razloga što na senzor ima puno uticaja kao što su vlaga u zraku, bolji ili lošiji kablovi za povezivanje, različit proizvođač senzora, različita arduino ploča (Uno, Nano, Mega itd.) i mnogi drugi uticaji. Na samom modulu senzora se nalazi mali potenciometar i pomoću istoga možete vršiti dodatnu kalibraciju.
Nakon što smo povezali sve komponente, testirali senzor i dobili maksimalne vrijednosti senzora vrijeme je za finalni kod sa indikacijom na postotke:
Razlike od prvog koda:
Kao što smo u prethodnim lekcijama naučili, da bi upravljali led diodom, morali smo joj dodijeliti naziv varijable i pin pomoću kojega ćemo je pokretati( int led_1 = 8). Dodali smo dva uslova za indikaciju i tekst smo prebacili u uslove tako da nam se ispisuje i stanje led diode. Senzor koji sam koristio se u većini literature vodi pod nazivom FC-28 i isti nije namjenjen za dugotrajnu upotrebu tj. jako brzo korozira.
Specifikacija materijala:
- 1x Arduino Uno
- 1x Breadboard
- 1x Senzor vlaznosti tla FC-28
- 1x Otpornik 220Ω
- 1x Led dioda
- 9x Komunikacijski kablovi
Ako Vam je ova lekcija probudila inovatorski duh, iskoristite znanje iz prethodnih lekcija i proširite ovaj projekat za još jedan indikator.
Zašto ne biste u uslov dodali i jedan buzzer (alarm). U slučaju da je vašoj biljci potrebo zalijevanje, neka se čuje i beep.
Nakon nekoliko praktičnih lekcija, došlo je vrijeme da učimo novu naredbu!
U sljedećoj lekciji iskoristit ćemo dio koda iz ove lekcije i naučit ćemo šta je to FOR petlja i kako se koristiti istom.