Avtor: mag. Vladimir Mitrović
Kaj rastlina potrebuje da uspeva? Svetlobo, ki ji jo nesebično daje Sonce, minerale iz zemlje, ki jih raztopijo dežne kaplje, in morda malo vetra, samo da premika njene veje.
Ko rastlino ločimo od njenega naravnega okolja, ji moramo zagotoviti podobne življenjske pogoje. Prav to so storili udeleženci Poletne šole tehničnih dejavnosti Hrvaškega društva za tehnično kulturo, ki je potekala od 20. do 29. junija 2025 v Primoštenu. Pod vodstvom multidisciplinarnih voditeljev delavnic so ustvarili pametni domači vrt – terarij za rastline – z zelo značilnim videzom (slika 1).
Ta vsebina je samo za naročnike
Ta čudovito zasnovana struktura je le ogrodje projekta: kakšna šola tehničnih dejavnosti bi to bila, če je ne bi obogatili z različnimi tehničnimi podrobnostmi!? Slika 2 prikazuje, kaj potrebujemo za dosego zahtevane funkcionalnosti:
a) LED trak bo deloval kot Sonce,
b) senzor vlage bo zaznal, kdaj zemlja ni dovolj vlažna,
c) črpalka bo nato zalivala rastlino in
d) ventilator bo zibal njene veje.



Naštete komponente same po sebi niso dovolj: njihovo delovanje bo nadzoroval mikrokontroler v razvojnem sistemu Arduino UNO, kateremu bomo zahteve pošiljali interaktivno, prek igralne palice (joystick-a) in alfanumeričnega displeja (slika 3).
Uporabili smo Arduino UNO R4 WiFi z zmogljivim mikrokontrolerjem RA4M1. Branje senzorja vlažnosti tal, vklop in izklop črpalke ter nadzor intenzivnosti osvetlitve in vetra so naloge, ki daleč presegajo njegove zmogljivosti. Da bi ga nekoliko bolj obremenili, smo dodali uro realnega časa ter senzor temperature, vlažnosti in zračnega tlaka. Tako bomo lahko na zaslonu izpisali podatke o mikroklimatskih razmerah okoli naše rastline in nekatere druge koristne informacije.
Različica mikrokontrolerja RA4M1, ki jo najdemo na plošči Arduino UNO R4, ima hiter procesor, veliko pomnilnika, veliko uporabnih notranjih vezij in približno 50 vhodno/izhodnih priključkov (od katerih jih je bilo zaradi združljivosti s starejšimi različicami plošče uporabljenih le 20). Ti vhodno/izhodni priključki so nam pomembni, saj mikrokontroler prek njih komunicira s senzorji in uro realnega časa ter krmili črpalko, LED trak in ventilator.
Priključki mikrokontrolerja niso dovolj zmogljivi, da bi lahko neposredno vklopili črpalko, LED trak ali ventilator: poraba teh komponent je mnogokrat večja od toka, ki ga lahko zagotovi mikrokontroler. Zato bomo za krmiljenje njihovega delovanja uporabili tranzistorska stikala, ki jih bo mikrokontroler po potrebi vklopil in izklopil.
Skupaj potrebujemo 6 tranzistorjev, ducat uporov, več diod in kondenzatorjev ter različne konektorje, s katerimi bomo vse, kar potrebujemo, povezali s priključki na plošči Arduino UNO. Vse te komponente so priročno nameščene na ščitu, ki ga namestimo na Arduino UNO in ki z njim nato tvori funkcionalno enoto (slika 4). Ščit vsebuje tudi primeren stabilizator napetosti, da ne bi preobremenili tistega, ki je nameščen na plošči Arduino UNO.



Ena od posebnosti Arduino UNO R4 WiFi plošče je, da ima poleg prej omenjenega mikrokontrolerja, tudi WiFi modul in matriko z 8×12 svetlečimi diodami, na kateri se ob priklopu na napajalno napetost nariše preprosta animacija v obliki srca (to srce je vidno na sliki 3). Animacija je del demo programa, ki je standardno zapisan v mikrokontroler RA4M1, ko kupimo nov Arduino UNO R4. Toda ta program, ne glede na to, kako učinkovit je, nam ne pomeni nič, saj mora naš Arduino UNO upravljati mikroklimo terarija. Le naučiti ga bomo morali, kako to storiti! In zdaj smo končno definirali svojo nalogo: zasnovati moramo program mikrokontrolerja za upravljanje mikroklimatskih razmer terarija in elektronska vezja, ki bodo izvajala ukaze programa. Na to se bomo osredotočili v nadaljevanju!
Električna shema
Električno shemo bomo analizirali po funkcionalnih enotah. Sheme na sliki 5 prikazujejo, kako so napajalniki priključeni na konektorje plošče Arduino UNO in preko njih na priključke mikrokontrolerja RA4M1. Črpalka in LED trak lahko »potegneta« tokove več sto mA, celo do 1 A: zato smo za krmiljenje njunega delovanja predvideli po dva vzporedno vezana tranzistorja BC337-40. V takšni povezavi bo vsak tranzistor prevzel polovico obremenitve in bo lahko šel globlje v nasičenost – z drugimi besedami, bližje bo idealnemu stikalu. K temu prispeva tudi izbira tranzistorjev: uporabljamo tiste z oznako »40«, ki imajo največje tokovno ojačenje med vsemi tranzistorji v seriji BC337.
Poraba brenčala in ventilatorja je bistveno manjša, zato za krmiljenje njunega delovanja zadostuje en tranzistor istega tipa. V vseh primerih se tranzistorji aktivirajo preko upora 1,5 kΩ. Njihova vrednost je bila izbrana kot kompromis med zahtevo, da je osnovni tok tranzistorja dovolj velik, da tranzistor dobro prevaja, in zahtevo, da ne preobremenimo priključka mikrokontrolerja, ki krmili delovanje teh tranzistorjev (priključki mikrokontrolerja RA4M1 lahko zagotavljajo tokove do 8 mA).
Črpalka in ventilator sta induktivna porabnika in zato so bile vzporedno z njunimi priključki dodane zaščitne diode. Preprečujejo nastanek napetostnih »konic«: v trenutkih, ko izklopimo črpalko ali ventilator, energija, ki se nabere v njunih motorjih, povzroči kratkotrajen napetostni impulz, ki bi lahko uničil tranzistor ali preostali del vezja. Z dodajanjem diod se ta energija »izprazni« skoznje in ne more povzročiti škode.


Opazili boste tudi, da smo za črpalko izbrali dve možni napajalni napetosti: 5 V iz napetostnega stabilizatorja in vhodno napetost Vin iz omrežnega adapterja. Katera bo ugodnejša, je odvisno od vrste črpalke in pogojev, v katerih deluje.
Shema na sliki 6 prikazuje, kako sta igralna palica in senzor vlažnosti priključena na Arduino Uno ploščo.
Igralna palica je sestavljena iz dveh potenciometrov, nameščenih pod kotom 90°. Glede na položaj »gobe« bo napetost na drsnikih potenciometra v območju 0-5 V. Ker želimo izmeriti te napetosti, smo drsnike priključili na analogna vhoda A1 in A2. Igralna palica vsebuje tudi eno tipko, SW, katerega izhod je digitalen: na njejje napetost 0, ko je tipka pritisnjena in 5 V, ko je tipka sproščena.
Senzor vlažnosti je sestavljen iz dveh ločenih prevodnih trakov. Medtem ko sta v zraku, je upor med njima neskončno visok. Če senzor vstavimo v vlažna tla, se bo upor med njima zmanjševal z višjo vlažnostjo. Zato bo napetost na stičišču med fiksnima uporoma R10 ali R11 in priključki senzorja vlažnosti odvisna od vlažnosti tal. To napetost želimo izmeriti, zato smo priključka senzorja priključili na analogna priključka A0 in A3.
Vezje za zajemanje napetosti na senzorju vlažnosti bi lahko bilo preprostejše: en priključek bi lahko priključili na 0 V (GND), drugega pa prek ustreznega upora na 5 V. V tem primeru bi za zajemanje napetosti potrebovali le en analogni priključek. Vendar se je izkazalo, da čeprav skozi senzor teče tok manjši od 1 mA, eden od njegovih priključkov zelo hitro oksidira in se prekrije z nekakšno usedlino. Očitno v zemlji, ki vsebuje vse vrste mineralov (ki so hrana za našo rastlino!), pride do elektrolize, katere učinka si ne želimo.
Problem smo rešili na naslednji način: programsko smo konfigurirali vrata A0 in A3 izmenično kot analogne vhode in digitalne izhode:
ko je A3 konfiguriran kot digitalni izhod, nastavljen na stanje »0« (= 0 V), bo tok tekel skozi upor R10, senzor vlažnosti in napetost na njunem stičišču pa se bosta odčitala prek analognega vhoda A0;
Ko je A0 konfiguriran kot digitalni izhod, nastavljen na stanje »0« (= 0 V), bo tok tekel skozi upor R11, senzor vlažnosti in napetost na njunem stičišču pa se bosta odčitala prek analognega vhoda A3.
V obeh konfiguracijah imamo enako funkcionalnost, vendar tok skozi senzor teče v nasprotnih smereh, zato je elektrolitski učinek izničen ali vsaj zmanjšan.
Senzor temperature, vlažnosti zraka in tlaka (BME280), ura realnega časa (čip DS3231 na modulu ZS-042) in alfanumerični zaslon so priključeni na Arduino UNO ploščico v skladu s shemo na sliki 7. BME280 in ZS-042 uporabljata komunikacijo I2C in ju je mogoče neposredno priključiti na isto vodilo I2C (SDA/SCL). Prvotno je alfanumerični zaslon uporabljal drug način komunikacije, zato smo namestili modul s čipom PCF8574 – tako smo mu dodali funkcionalnost I2C, tako da ga zdaj lahko priključimo neposredno na isto vodilo. Z vsemi tremi moduli komuniciramo le prek dveh komunikacijskih linij, SCL in SDA!
Celotna shema elektronskega vezja pametnega domačega vrta je prikazana na sliki 8. Na shemi bomo prepoznali vezja, o katerih smo že pisali, in opazili nekaj novih podrobnosti. Najpomembnejši med njimi je stabilizator napetosti LM2940 (U1). U1 zagotavlja stabilno napetost 5 V, ki napaja vse večje porabnike – črpalko, LED osvetlitev, ventilator in brenčalo.


Za napajanje naprave uporabljamo omrežni adapter z izhodno napetostjo v območju 7-9 V, ki lahko zagotovi tok 1,5 A ali več. Omrežni adapter priključimo na vrata VIN in njegova napetost se preko diode D1 dovaja na vhodna vrata stabilizatorja napetosti LM2940, pa tudi na vrata VIN Arduino UNO ploščice. Tudi Arduino ima lasten stabilizator napetosti, ki zagotavlja stabilno napetost za mikrokontroler in druge komponente v njegovem okolju. Na ta način ločimo napajalnike občutljivega mikrokontrolerja od močnejših komponent, ki lahko povzročajo nihanje napajalne napetosti. Dioda D1 ščiti celotno vezje pred napačno obrnjeno napajalno napetostjo; uporabljena je bila dioda tipa Schottky, kjer je padec napetosti na njej bistveno manjši kot pri podobnih silicijevih diodah.
Slika 8 prikazuje tudi, kako so posamezne komponente elektronskega vezja priključene na ANALOGNE, POWER, DIGITALNE in I2C priključke Arduino UNO ploščice. LCD priključki so namenjeni priključitvi »klasičnega« (vzporednega) alfanumeričnega prikazovalnika, trimer R6 pa se uporablja za nastavitev kontrasta na tako priključenem prikazovalniku. V projektu smo prikazovalnik priključili preko vodila I2C, zato bodo ti priključki in trimer ostali neuporabljeni.
Za postavitev elektronskih vezij je bilo zasnovano tiskano vezje, katerega montažna shema je prikazana na sliki 9. Brenčalu je prepuščena možnost namestitve neposredno na vezje ali ločenega na ustreznejše mesto na ohišju naprave. Na koncu smo se odločili, da se domači vrt ne oglaša, zato brenčalo ni bilo uporabljeno, razen ko smo spreminjali nekatere nastavitve. Na sliki 4 smo videli, kako plošča izgleda v resnici, ko so nanjo prispajkane vse komponente in so nameščeni moduli.
Pri nameščanju integriranih vezij, tranzistorjev in diod moramo paziti, da jih pravilno »obrnemo«, torej da se oblika njihovega ohišja ujema z njihovo razporeditvijo na tiskanem vezju. Na ohišju elektrolitskih (polariziranih) kondenzatorjev je označen priključek »-«; nameščamo jih glede na oznake »+« in »-« na tiskanem vezju. Če se odločimo za namestitev brenčala, velja zanj enaka opomba.
Pri komponentah, ki niso nameščene na tiskanem vezju (kontrolna palica, zaslon, senzor BME280, črpalka, LED trak, ventilator), ampak so nanj povezane z večžilnimi kabli, je treba poskrbeti tudi za priklop istoimenskih konektorjev. Če tega ne storimo, naprava ne bo delovala pravilno in posamezne komponente se lahko uničijo.
Posebno pozornost moramo nameniti uri realnega časa (ZS-042), ki je nameščena neposredno na tiskanem vezju, v njegovem zgornjem desnem kotu (glede na sliko 9). Plošča ima 4-pinski ženski konektor, preko katerega bo modul priključen na vodilo I2C. ZS-042 ima prvotno že spajkani šest-pin vodoravno nameščen priključni konektor, kar se je izkazalo nerodno za priključitev (slika 10). Uporabili bomo alternativni 4-pin konektor na »desnem« robu modula, na katerega je treba spajkati priključni konektor tako, da so njegovi priključki obrnjeni proti strani, kjer se nahaja baterija. S tem dodatkom ZS-042 preprosto priključimo v konektor na tiskanem vezju.
Pred namestitvijo je potrebno narediti eno pomembno modifikacijo modula ZS-042! Da bi ura lahko nadaljevala z delovanjem v primeru izpada električne energije, ima modul režo za »rezervno« baterijo (na sliki 10 ni vidna, ker se nahaja na spodnji strani plošče). Modul je zasnovan za polnilno baterijo LIR2032 in vsebuje preprosto vezje za njeno polnjenje. Če želimo uporabiti »navadno« litijevo baterijo, CR2032, ki ima zadostno kapaciteto za več let delovanja, moramo preprečiti polnjenje!!! V ta namen bomo odstranili SMD upor ali diodo (na sliki 10 so označeni z navpičnimi puščicami) ali pa prerezali vez na TIV pod oznako X.
Zdaj, ko smo spoznali elektronski del projekta, nam preostane le še razložiti koncept programa in se ozreti na težave, na katere smo naleteli med programiranjem. O tem preberite v naslednjem delu!
Opombe: Avtor ideje, konstrukcijski načrtovalec in vodja LJŠTA 2025 je Danijel Šimunić, zaposleni pri HZTK. Elektronsko vezje in program je zasnoval avtor tega članka. Članek je bil prvotno objavljen v reviji ABC tehnike, za Svet elektronike pa ga je priredil avtor.
