Sustav kontroliranog natapanja poljoprivrednog zemljišta

Σχετικά έγγραφα
UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

18. listopada listopada / 13

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

FAKULTET PROMETNIH ZNANOSTI

Tranzistori s efektom polja. Postupak. Spoj zajedničkog uvoda. Shema pokusa

VJEŽBE 3 BIPOLARNI TRANZISTORI. Slika 1. Postoje npn i pnp bipolarni tranziostori i njihovi simboli su dati na slici 2 i to npn lijevo i pnp desno.

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

TRIGONOMETRIJSKE FUNKCIJE I I.1.

3.1 Granična vrednost funkcije u tački

Linearna algebra 2 prvi kolokvij,

1 Promjena baze vektora

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

PRIMJER 3. MATLAB filtdemo

DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011.

STATIČKE KARAKTERISTIKE DIODA I TRANZISTORA

( , 2. kolokvij)

ELEKTROTEHNIČKI ODJEL

Pošto pretvaramo iz veće u manju mjernu jedinicu broj 2.5 množimo s 1000,

Otpornost R u kolu naizmjenične struje

Teorijske osnove informatike 1

RIJEŠENI ZADACI I TEORIJA IZ

konst. Električni otpor

OSNOVI ELEKTRONIKE VEŽBA BROJ 1 OSNOVNA KOLA SA DIODAMA

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.

Matematika 1 - vježbe. 11. prosinca 2015.

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

Matematička analiza 1 dodatni zadaci

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

Riješeni zadaci: Nizovi realnih brojeva

Sortiranje prebrajanjem (Counting sort) i Radix Sort

INTELIGENTNO UPRAVLJANJE

Operacije s matricama

IZVODI ZADACI (I deo)

Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama.

Ispitivanje toka i skiciranje grafika funkcija

numeričkih deskriptivnih mera.

Mehatronika - Metode i Sklopovi za Povezivanje Senzora i Aktuatora. Sadržaj predavanja: 1. Operacijsko pojačalo

PARNA POSTROJENJA ZA KOMBINIRANU PROIZVODNJU ELEKTRIČNE I TOPLINSKE ENERGIJE (ENERGANE)

ΕΡΓΑΣΤΗΡΙΟ 6 ΟΔΗΓΗΣΗ ΑΠΕΙΚΟΝΙΣΕΩΝ SSD ΚΑΙ LCD

Računarska grafika. Rasterizacija linije

Linearna algebra 2 prvi kolokvij,

POVRŠINA TANGENCIJALNO-TETIVNOG ČETVEROKUTA

TOLERANCIJE I DOSJEDI

FTN Novi Sad Katedra za motore i vozila. Teorija kretanja drumskih vozila Vučno-dinamičke performanse vozila: MAKSIMALNA BRZINA

1.4 Tangenta i normala

, Zagreb. Prvi kolokvij iz Analognih sklopova i Elektroničkih sklopova

Pismeni ispit iz matematike GRUPA A 1. Napisati u trigonometrijskom i eksponencijalnom obliku kompleksni broj, zatim naći 4 z.

nvt 1) ukoliko su poznate struje dioda. Struja diode D 1 je I 1 = I I 2 = 8mA. Sada je = 1,2mA.

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

SEMINAR IZ KOLEGIJA ANALITIČKA KEMIJA I. Studij Primijenjena kemija

7 Algebarske jednadžbe

Kaskadna kompenzacija SAU

PREDNAPETI BETON Primjer nadvožnjaka preko autoceste

Eliminacijski zadatak iz Matematike 1 za kemičare

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.

RAČUNSKE VEŽBE IZ PREDMETA POLUPROVODNIČKE KOMPONENTE (IV semestar modul EKM) IV deo. Miloš Marjanović

Prikaz sustava u prostoru stanja

Ovisnost ustaljenih stanja uzlaznog pretvarača 16V/0,16A o sklopnoj frekvenciji

Novi Sad god Broj 1 / 06 Veljko Milković Bulevar cara Lazara 56 Novi Sad. Izveštaj o merenju

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto

ZBIRKA POTPUNO RIJEŠENIH ZADATAKA

BIPOLARNI TRANZISTOR Auditorne vježbe

- pravac n je zadan s točkom T(2,0) i koeficijentom smjera k=2. (30 bodova)

I.13. Koliki je napon između neke tačke A čiji je potencijal 5 V i referentne tačke u odnosu na koju se taj potencijal računa?

Konstruisanje. Dobro došli na... SREDNJA MAŠINSKA ŠKOLA NOVI SAD DEPARTMAN ZA PROJEKTOVANJE I KONSTRUISANJE

Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

Dijagonalizacija operatora

Πλακέτα Arduino. 1ο ΕΠΑΛ Περάματος - 7ο ΕΚ Πειραιά

Program testirati pomoću podataka iz sledeće tabele:

IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI)

21. ŠKOLSKO/OPĆINSKO/GRADSKO NATJECANJE IZ GEOGRAFIJE GODINE 8. RAZRED TOČNI ODGOVORI

L E M I L I C E LEMILICA WELLER WHS40. LEMILICA WELLER SP25 220V 25W Karakteristike: 220V, 25W, VRH 4,5 mm Tip: LEMILICA WELLER. Tip: LEMILICA WELLER

III VEŽBA: FURIJEOVI REDOVI

Small Basic zadatci - 8. Razred

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

Numerička matematika 2. kolokvij (1. srpnja 2009.)

POTPUNO RIJEŠENIH ZADATAKA PRIRUČNIK ZA SAMOSTALNO UČENJE

Unipolarni tranzistori - MOSFET

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

Elektrotehnički fakultet univerziteta u Beogradu 17.maj Odsek za Softversko inžinjerstvo

Neka je a 3 x 3 + a 2 x 2 + a 1 x + a 0 = 0 algebarska jednadžba trećeg stupnja. Rješavanje ove jednadžbe sastoji se od nekoliko koraka.

Zavrxni ispit iz Matematiqke analize 1

radni nerecenzirani materijal za predavanja

Računarska grafika. Rasterizacija linije

41. Jednačine koje se svode na kvadratne

PT ISPITIVANJE PENETRANTIMA

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU STRUČNI STUDIJ RAČUNARSTVO MARTINA BUREC ALARMNI SUSTAV MEĐIMURSKOG VELEUČILIŠTA BAZIRAN NA ARDUINO UREĐAJU

Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα

Grafičko prikazivanje atributivnih i geografskih nizova

Obrada signala

Elektronički Elementi i Sklopovi

Zadatak 1. U kojim od spojeva ispod je iznos pada napona na otporniku R=100 Ω približno 0V?

Elektronički Elementi i Sklopovi

2. Ako je funkcija f(x) parna onda se Fourierov red funkcije f(x) reducira na Fourierov kosinusni red. f(x) cos

Transcript:

Tehničko Veleučilište u Zagrebu Stručni studij elektrotehnike Komunikacijska i računalna tehnika (KIRT) Sustav kontroliranog natapanja poljoprivrednog zemljišta Kolegij: Projektiranje i primjena ugradbenih računalnih sustava Mentor: Stipe Predanić, dipl.ing.elo Studenti: Roman Paurević Tihomir Puhalo Darko Topić Željko Vlahović Akademska godina: 2014/2015

Sadržaj: 1. Uvod... 3 2. Arduino Što je to?... 4 2.1 Srce Arduino platforme... 5 2.2 Instalacija Arduino softvera... 5 2.3 Primjer paljenja LED-ice... 6 3. Korištene komponente u projektu... 7 3.1 Arduino Mega... 7 3.1.2 Analogni pinovi... 8 3.1.3 Digitalni pinovi... 9 3.1.4 Uporaba Arduina... 9 3.1.5 Arduino osnovne instrukcije... 9 3.2 LCD 16x2... 10 3.2.1 Općenito o LCD-u... 11 3.2.2 Pinovi na LCD-u... 12 3.3 PiR senzor... 13 3.3.1 Općenito o PiR senzoru:... 13 3.3.2 Princip rada PiR senzora... 13 3.3.3 LHi 778... 13 3.3.4 Dijelovi PiR senzora... 14 3.3.5 Primjer rada PiR senzora na paljenju LED-ice pomoću Arduina:... 16 3.4. Seven - Segment Display... 17 3.5 LED dioda... 18 3.6 MATRIX Tipkovnica... 20 3.7 Piezo Buzzer... 21 3.7.1 Općenito o Piezo Buzzer-u... 21 3.7.2 Dijelovi od kojih se sastoji Piezo Buzzer... 22 3.7.3 Način rada Piezo Buzzera... 22 3.7.4 Piezo prsten (transduktor)... 24 3.8 DHT11 (Senzor temperature i vlage)... 24 3.8.1 Pinovi DHT11 senzora... 24 3.9 Fotootpornik... 25 4. 3D printer i izgrađeno kućište pomoću 3D printera... 26 4.1 3D printer... 26 4.1.1 Način rada 3D printera... 26 PPURS 2014/2015 1

4.2 Kućište izgrađeno pomoću 3D printera... 27 5. Projekt: Sustav kontroliranog natapanja poljoprivrednog zemljišta... 29 5.1 Shema projekta... 29 5.2 Dijagram toka... 30 5.3 Tiskana pločica (engl. PCB, Printed Circuit Board)... 31 5.4 Testiranje projekta... 33 5.5 Način rada sklopa... 33 5.6 Montiranje projekta u kućište... 34 6. Programski kod... 35 7. Zaključak... 42 8. Literatura... 43 PPURS 2014/2015 2

1. Uvod Projekt se bavi izradom jednostavnog sklopa kojim se kontrolira natapanje poljoprivrednog zemljišta. To može biti malen vrt pojedinca za uzgoj raznolike kulture za vlastitu konzumaciju ili pak za obrtnika koji ima veliko poljoprivredno zemljište na kojem uzgaja količine koje služe za daljnju prodaju. U današnje vrijeme brzog života gdje je vremena sve manje pokušava se raznim pomagalima, pretežno elektroničkim, olakšati i usavršiti dodatne obveze s kojima se prosječna osoba susreće. Upravo je nedostatak vremena u kojem bi se kvalitetno pratilo stanje sadnica uslijed promjena vremena, došli smo do ideje o izradi sklopa kojim bi se moglo uštedjeti vrijeme i poboljšati krajnji rezultat odnosno pravilno uzgojene sadnice i uspješna sjetva plodova. Ovaj sustav primarno služi za kontrolu vlažnosti zemlje kako bi biljke imale konstantan priljev vlage u skladu s potrebama. Budući da je vrijeme od bitne važnosti, ovim sustavom implementirana je kontrola vlage i to na način da se kontinuirano provjerava postotak vlage u zraku te uspoređuje sa postotkom vlage u površinskom sloju zemlje, u kojem se nalazi korijen biljke. Budući da ovo nije sustav koji je projektiran primarno za jednu vrstu kulture, korisniku je omogućeno predefinirati količinu vlage potrebnu za određenu kulturu, a i sklop je konstruiran na način da je po potrebi moguće isti proširiti za više biljaka, stoga korisnik nema potrebu trpiti veće financijske troškove kupujući više istovjetnih sklopova, već se postojeći proširuje po potrebi pojedinca. Na način da korisnik sklopa predefinira količinu vlage u zraku, omogućuje mu se da vodu za natapanje dovodi ovisno o promjeni vremenskih prilika, te nije potrebno svakodnevno trošiti vrijeme na zalijevanje, a i izbjegava se prevelika količina vlage zbog prevelike količine vode uslijed neočekivanih padalina ili suho tlo zbog nemogućnosti zalijevanja uslijed nepredviđenih situacija. Također, budući da je sklop zamišljen za korisnika koji u kućanstvu obrađuje vrt za osobne potrebe, a svjesni smo da su životinje uz vremenske neprilike veliki uzročnici uništavanja usjeva, sklop je proširen senzorom pokreta te zujalicom visoke frekvencije, koja će ukoliko se pojavi štetočina proizvesti zvuk koji će životinji biti neugodan te će se udaljiti od posjeda bez nepotrebnog ubijanja životinja, što također pridonosi očuvanju flore i faune. PPURS 2014/2015 3

2. Arduino Što je to? Arduino je open-source (znači da su sve sheme i izvorni kod programa besplatno dostupni svima za preuzimanje i modificiranje sa službene stranice Arduino okruženja: www.arduino.cc) platforma za kreiranje elektroničkih prototipova bazirana na sklopovlju i programskom paketu koji je fleksibilan i jednostavan za korištenje. Arduino je namijenjen svima koji su zaljubljeni u elektroniku, tj. svima koji bi htjeli kreirati neki elektronički sklop i vidjeti da trud i volju koju su uložili u to da se isplatilo na kraju time da će sklop raditi, a uz to će steći i nova znanja. Možemo zato reći da je namijenjena svima koji žele to naučiti, npr. umjetnicima, dizajnerima, elektroničarima i svima koji su zainteresirani za elektroniku. Arduino platforma je skup elektroničkih i softverskih komponenti koje se mogu jednostavno povezati u složenije cjeline s ciljem izrade zabavnih i poučnih elektroničkih sklopova. Slika 1. Arduino UNO Najvažniji od Arduino platforme: Arduino Uno Arduino Mega Arduino Leonardo Arduino Nano Arduino Due Arduino Diecimila Arduino Duemilanove PPURS 2014/2015 4

2.1 Srce Arduino platforme Srce Arduina jesu mikrokontroleri. Mikrokontroler je malo računalo sadržano na jednom integriranom sklopu. Arduino okruženje koristi 8-bitne mikrokontrolere koje proizvodi tvrtka ATMEL. Mikrokontroler za početak možemo zamisliti kao crnu kutiju koja ima određen broj izvoda kojima je moguće upravljati pomoću programa kojeg programer napiše na računalu i koji se onda izvodi na samom mikrokontroleru. U osnovi, sve Arduino kompatibilne pločice sastoje se od mikrokontrolera ( srce Arduina), integriranog sklopa za komunikaciju s računalom, te perifernih elektroničkih dijelova za osiguravanje mogućnosti rada mikrokontrolera stabilizator napona, kvarc kristal za generiranje frekvencije takta, itd. 2.2 Instalacija Arduino softvera Slika 2. Instalacija Arduino softvera Slika 3. Instalacija Arduino softvera Slika 4. Instalacija Arduino softvera PPURS 2014/2015 5

Slika 5. Instalacija Arduino softvera Slika 6. Zavšetak instalacije Arduino softvera 2.3 Primjer paljenja LED-ice Slika 7. Primjer paljenja LED-ice pomoću Arduina PPURS 2014/2015 6

Slika 8. Programski kod 3. Korištene komponente u projektu 3.1 Arduino Mega Arduino Mega 2560 je razvojna pločica koja se temelji na Atmega2560 mikroupravljaču. U ovom projektu se koristio Arduino Mega razvojno okruženje. Karakteristike Arduino Mega su navedene u tablici dolje: Mikroupravljač Atmega2560 Radni napon 5V Ulazni(preporučeni) napon 7-12V Ulazni (granični) napon 6-20V Digitalni ulazi/izlazi 54 (6 omogućuju PWM izlaz) Analogni ulazi 16 DC struja po ulazu/izlazu 40mA DC struja na 3.3V izlazu 50mA Flash memorija 256KB od kojih je 8KB sačuvano za bootloadera SRAM 8KB EEPROM 4KB Takt 16MHz Tablica 1. Arduino Mega2560 karakteristike PPURS 2014/2015 7

Sastoji se od 54 digitalnih ulaza i izlaza (eng. input/output) od kojih se 15 može upotrijebiti kao PWM izlaz, 16 analognih ulaza i 4 UART-a, 16 MHz kristalnog oscilatora koji daje radni takt mikroupravljaču, USB konekcija, konektora za napajanje, reset tipkala, dva pina za napajanje ostalih elemenata od 3,3 i 5V, tri pina za masu i AREF pin koji služi za referentni napon za analogne ulaze,4 pina za SPI komunikaciju, LED indikatora TX i RX koji služe za prikazivanje komunikacije između računala i Arduina, ON koji prikazuje stanje Arduina ima li napajanja i LED indikatora koji je spojen sa digitalnim izlazom 13 koji služi najčešće za ispitivanje ispravnosti. Slika 9. Arduino MEGA Atmega2560 sadrži 256KB memorije od kojih se 8KB koristi za bootloader. Upravljački program se nalazi u flash memoriji. SRAM memorija služi za spremanje varijabli tokom rada mikroupravljača i sadrži 8KB. Mikroupravljač Atmega2560 sadrži 4KB EEPROM memorije koje su trajno pohranjene. Svaki od 54 digitalnih pinova može biti upotrebljen za ulaz ili izlaz. Rade na 5V i maksimalno 40mA te imaju interni pull-up otpor vrijednosti 20-50k Ω koje je potrebno prije korištenja uključiti. Neki od pinova imaju specijalne funkcije poput vanjskih prekida koji se mogu konfigurirati da rade na padajući ili rastući brid, tj promijeniti vrijednost. Digitalni izlazi PWM 2-13 and 44-46 omogućavaju 8-bitni PWM. 3.1.2 Analogni pinovi Arduino ima 10-bitni AD pretvornik. To znači da će se, koristeći funkciju analogread(), ulazni napon podijeliti između 0 i 5V u integer vrijednosti između 0 i 1023. Funkcija analogread() prima broj pina sa kojega želimo čitati, a vraća integer vrijednosti između 0 i 1023. Ovime se dobije da je korak kvanzitacije: 5V / 1024 = 0.0049V (4.9 mv). Da bi se pročitalo sa analognog ulaza potrebno je 100us, pa je najviša brzina čitanja 10 000 puta u sekundi. PPURS 2014/2015 8

3.1.3 Digitalni pinovi Funkcija digitalread() čita vrijednosti sa određenog pina i vraća HIGH ili LOW, dok funkcija digitalwrite() upisuje vrijednost HIGH ili LOW na odabrani pin. Funkcija analogwrite() daje analognu vrijednost (PWM signal) na PWM digitalne pinove. Može se koristiti za promjenu brzine motora ili za promjenu jačine osvjetljenja LED diode. 3.1.4 Uporaba Arduina Kako bi se koristila Arduino platforma potreba je Arduino ili Arduino kompatibilna pločica,usb kabel i Arduino softver dostupan na : http://arduino.cc/en/main/software. Nakon što se Arduino pločica spoji sa računalom potrebno je otvoriti Arduino softver te odabrati svoju pločicu na sljedeći način: Tools/Board Svaki Arduino program mora se sastojati od minimalno dvije funkcije. Bez te dvije funkcije Arduino program ne može raditi. Prva osnovna funkcija je void setup(). Pod tom funkcijom piše se program koji se ponovi samo jednom i to kada se upali ili resetira Arduino pločica. U njoj se obično definiraju modovi nožica Arduino pločice te neki kodovi koji su potrebni za ispravan rad napisanoga koda. Druga osnovna funkcija je void loop(). Pod tom funkcijom piše se program koji će se vrtjeti dok god se ne prekine napajanje Arduino pločice ili se ista resetira. Upload programa na Arduino vrši se pritiskom na tipku "Upload" nakon čega se program kompajlira te prenese na Arduino pločicu. Kompajliranje je proces prevođenja, pretvorbe iz nekog jezičnog koda (izvornog koda) (C, Basic, Pascal ili sl.) u izvršni (mašinski) kod. 3.1.5 Arduino osnovne instrukcije Komentari su linije u programu koje služe kako bi se korisnici lakše snalazili. U njima se može napisati način na koji radi program, upisati razlog postojanja neke linije koda i slično. Komentari su ignorirani prilikom kompajliranja kako bi ubrzali rad mikroprocesora i smanjili veličinu programa. Jedina svrha komentara je da pomognu pri razumijevanju koda i preporučuje se što veća njihova uporaba. Komentari se mogu pisati na 2 načina. Prvi je da se prije komentara napiše "//". To znači da je taj komentar samo u jednoj liniji koda, a drugi je da se komentar stavi između "/*" i "*/". U drugoj metodi komentar je jedino između toga dvoje, te komentar može biti u više linija. #include se koristi kako bi se pridodale vanjske knjižnice u program. Ova naredba daje programu pristup velikoj grupi standardnih C knjižnica(grupa unaprijed napravljenih funkcija), te knjižnica napisanih posebno za Arduino. pinmode() je funkcija koja konfigurira odabranu nožicu kao "ulaz" ili "izlaz". Koristi se tako da se napiše pinmode() i unutar zagrade ciljana nožica i zarezom odvojena njen način rada. Primjer : pinmode(1, INPUT); Načini rada nožica mogu biti :INPUT i OUTPUT. PPURS 2014/2015 9

INPUT je način rada neke nožice definiran kao ulaz koji se može konfigurirati naredbom pinmode(). Nožica definirana tim načinom rada prelazi u stanje velike impedancije (oko 100 MΩ). To stanje nožice korisno je za čitanje senzora pošto je potrebna vrlo mala struja kako bi se promijenilo stanje ulaza. Tipično se na nožice spaja otpornik (oko 10 kω) kako bi se nožica "povukla" na zemlju ili na +5 ili +3.3 V (ovisno o pločici koja se koristi). To se radi kako bi se izbjeglo ne određeno stanje nožice. OUTPUT je način rada neke nožice definiran kao izlaz koji se može konfigurirati naredbom pinmode(). Nožica definirana tim načinom rada prelazi u stanje niske impedancije. To znači da tada nožica može dostaviti struju u električni krug. ATmega mikroprocesori mogu dostaviti do 40 ma struje, te mogu napajati trošila manje potrošnje. Trošila koja zahtijevaju struju veću od 40 ma mogu se spojiti preko tranzistora ili releja. digitalwrite() je funkcija koja određuje stanje ulaza/izlaza. Ako je nožica postavljena kao izlaz njen napon bit ce postavljen na 5V ili 3.3V kada se unese HIGH ili 1 i na 0V ili zemlju kada se unese LOW ili 0. Koristi se tako da se napiše digitalwrite() i unutar zagrade ciljana nožica i zarezom odvojena njeno stanje. Primjer : digitalwrite (1, HIGH); digitalread() je funkcija koja čita stanje ulaza neke nožice. Ako je nožica spojena na 0V ili zemlju digitalread() ce davati 0 ili LOW, ako je spojena na +5V ili + 3.3V davati ce HIGH ili 1. Koristi se tako da se unutar zgrade napiše nožica čije stanje želimo očitati. analogread() je funkcija koja čita napon na određenoj nožici. Arduino pločice sadrže 6 do 16 kanalni, 10 bitni analogno-digitalni pretvarač. To znaci da mogu napone između 0 i 5V pretvarati u broj vrijednosti između 0 i 1023. Potrebno je oko 100 mikrosekundi da se pročita analogni ulaz pa je maksimalna brzina čitanja oko 10 000 puta u sekundi. delay() je funkcija koja pauzira program na određeno vrijeme definirano u milisekundama. delaymicroseconds() je funkcija koja pauzira program na određeno vrijeme definirano u mikrosekundama. Maksimalan broj mikrosekunda na koje se može pauzirati program je 16383. Ako se paragram želi pauzirati na duže vrijeme potrebno je koristiti funkciju delay(). millis() je funkcija koja vrača broj milisekundi otkako je Arduino pločica počela vrtjeti trenutačni program. Ovaj broj ponovno ce brojati od nule nakon otprilike 50 dana. 3.2 LCD 16x2 LCD (Liquid Crystal Display) se koristi u svim elektroničkim projektima za prikaz statusa procesa koji želimo prikazati. Model 16x2 je danas najčešće korišten među LCD-ovima. Uz model 16x2 ima još više tipova LCD-a koji su dostupni na tržištu. Razlog zbog kojeg se koristi LCD u odnosu na druge komponente zaslona : niska cijena jednostavno programiranje veliki broj prikaza karaktera, itd. PPURS 2014/2015 10

Slika 10. LCD 16x2 3.2.1 Općenito o LCD-u 16x2 LCD ima 2 horizontalne linije koje sadrže prostor od 16 prikaza karaktera. Ima ugrađene dvije vrste registara, to su: registar naredbe registar podataka Registar naredbe se koristi za unos specijalnih komandi u LCD. Dok se registar podataka koristi za unos podataka u LCD. Naredba je poseban set podataka koji se koristi za davanje unutarnjih naredba za LCD kao "brisanje zaslona", prebaci na poziciju (1,1), postavljanje pokazivača i sl. PPURS 2014/2015 11

3.2.2 Pinovi na LCD-u Slika 11. Pinovi na LCD-u 16x2 PiN 1 (GND): To je zajednička točka, minus, tj. "masa" PiN 2 (VCC): Pin za napajanje LCD-a PiN 3 (VEE): Ovo je pin za namještanje kontrasta LCD-a, na ovaj pin se spaja promjenjivi otpornik (potenciometar) gdje jedan kraj spajamo na pin "VEE" a drugi pin na zajedničku točku ("masa") PiN 4 (RS): RS je pin zadužen za odabir registra (Register Select), Ovaj pin se koristi za odabir između dva registra: registar naredbe/registar podataka PiN 5 (R/W): R/W ili Read/Write (Pročitaj/Zapiši). Ovaj pin se koristi za operacije Read/Write. Ako je R/W = 0, tada je aktivna operacija Write, tj. izvodi se operacija Write ("Zapiši") Ako je R/W = 1, tada je aktivna operacija Read, tj. izvodi se operacija Read ("Pročitaj") PiN 6 (EN): Pin EN ili Enable signal ("Omogući signal"). Kada je taj pin aktivan moguće je read/write ("čitati/pisati) podatke na LCD. PiN 7-14 (DB0-DB7): Preko tih 8 pinova šaljemo podatke na LCD PiN 15 (LED+ ili A): Ovaj pin se koristi sa pinom 16 (LED- ili K) za uključenje pozadinskog osvjetljenja PiN 16 (LED- ili K): Ovaj pin se koristi sa pinom 15 (LED+ ili A) za uključenje pozadinskog osvjetljenja PPURS 2014/2015 12

3.3 PiR senzor PiR senzor (Passive infrared sensor) je elektronički senzor koji mjeri infracrveno (engl. infrared (IR)) zračenje od objekta koji mu se nalazi u vidljivom područku. Obično se koriste u detekciji pokreta. Slika 12. Detektor pokreta 3.3.1 Općenito o PiR senzoru: Svi objekti sa temperaturom većom od apsolutne nule emitiraju toplinsku energiju u vidu zračenja. To zračenje najčešće nije vidljivo ljudskom oku zbog valne duljine, ali može biti detektirano od strane elektroničkog sklopa (PiR senzor). Riječ pasivan dolazi od toga da PIR sklop ne zrači nikakvu energiju radi detekcije. Rad se bazira isključivo na detekciji energije predane od drugih objekata. PIR senzor ne mjeri "toplinu" već detektira infracrveno zračenje emitirano ili reflektirano od objekta. 3.3.2 Princip rada PiR senzora Radi na principu razlike infracrvenog zračenja. Kada čovjek uđe u radijus PIR senzora, a u pozadini imamo zid, temperatura u tom trenutku poraste sa sobne temperature na temperaturu čovjeka. Senzor tada konvertira promjenu infracrvenog zračenja u vidu promjene napona (slično kao i fotootpornik) te aktivira detekciju. Često dolaze sa raznim zrcalima ili Fresnelovim lećama radi boljeg prijama infracrvenog zračenja. 3.3.3 LHi 778 Lhi 778 je zapravo fototranzistor koji radi na način: Kada detektira pokret pošalje se signal na upravljačku elektrodu Gate (G) i tranzistor provede, tj. na svojem izlazu (između Drain-a (D) i Source-a (S)) daje logičku jedinicu ( 1 ). PPURS 2014/2015 13

Slika 16. LHI 778 senzor Slika 15. LHi778 3.3.4 Dijelovi PiR senzora Slika 17. Pogled sa gornje strane Slika 18. Prikaz sa donje strane Delay time To je promjenjivi otpornik pomoću kojeg namještavamo koliko dugo će izlaz biti u "1", tj. namještavamo stanje u kojem će senzor na izlazu davati +3,3V. Kad se nakon 3 sekunde ponovno vrati u "0" opet je mogućnosti detektirati promjenu "topline" PPURS 2014/2015 14

Range Pomoću ovog promjenjivog otpornika možemo podešavati osjetljivost senzora. Prema datasheet-u domet mu je od 3m-7m Continuous trigger: Kada je ovaj "jumper" spojen (u tom položaju) izlaz će biti u "1" dok se objekt nalazi u blizini senzora. Jednom kada se objekt "makne" iz dometa senzora trigger će se prebaciti iz "1" u "0". Signle trigger: Trigger će biti u "1" kada se detektira pokret u zoni detekcije i prebacit će se ponovno u "0" nakon 2,5 sekunde. Nakon toga će se proces ponovno početi ponavljati. Senzor neće kontinuirano pratiti kretanje u ovom načinu rada. VCC: Pin za napajanje senzora, na taj pin dovodimo napon +5V GND: Zajednička točka ("masa") Signal: Ovaj pin će na izlazu davati 3,3V kada je detektiran pokret, a kada pokret nije detektiran na izlazu će davati "0". PPURS 2014/2015 15

Slika 19. Shema modula (PiR senzora-sr501) 3.3.5 Primjer rada PiR senzora na paljenju LED-ice pomoću Arduina: U ovom primjeru je pokazan način na koji radi PiR senzor. U primjeru su korišteni Arduino UNO, LED-ica i otpornik od 330Ω. Princip rada je vrlo jednostavan: Kada PiR senzor detektira pokret poslati će se signal na Arduino, te će Arduino poslati logičku jedinicu 1 na koju je spojena dioda preko otpornika, tj. kada PiR senzor detektira pokret LED-ica će se upaliti. Slika 20. Programski kod za primjer kako radi PiR senzor U void setup () smo definirali pinove: LED-ica nam je spojena na pin 13 (OUTPUT) na Arduinu zato što Arduino na taj pin šalje signal kada dobije signal sa PiR senzora PiR sensor je spojen na Arduino na pin 2 (INPUT) i on šalje signal na Arduino kada detektira pokret PPURS 2014/2015 16

U void loop () smo definirali: Kada PiR senzor (pin 2) pošalje logičku 1 na Arduino, Arduino će poslati logičku jedinicu 1 na pin 13 (LED-ica) i LED-ica će se upaliti. Slika 21. Primjer korištenja PiR senzora pomoću Arduina (Paljenje LED-ice) 3.4. Seven - Segment Display 7 segmentni displej je vrsta električnog sklopa za prikazivanje znamenki (za to se najčešće koriste). Sastoji se od 7 segmentata raspoređenih tako da njihove kombinacije daju brojeve 0-9. Dodatno imamo osmi segment koji je zapravo decimalna točka. Sastoji se od 10 pinova (nožica), 8 za segmente a, b, c, d, e, f, dp, te 2 nožice za GND ili VCC. GND ili VCC ovise o tipu displeja, zajednička katoda ili zajednička anoda. U prijevodu jedne palimo s pomoću 0, a druge s pomoću 1. Slika 22. 7 - Segment Display U ovom projektu imamo dva 7 segmentna displeja čiji su pinovi za segmente a-f spojeni paralelno (jedan s drugim). GND pinovi su posebno spojeni na digitalne pinove Arduina, pomoću njih kontroliramo koji će segment svjetliti. PPURS 2014/2015 17

Slika 24. Znamenke koje možemo prikazati Slika 23. Spoj zajedničke anode i zajedničke katode broj a b c d e f g 0 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 2 1 1 0 1 1 0 1 3 1 1 1 1 0 0 1 4 0 1 1 0 0 1 1 5 1 0 1 1 0 1 1 6 1 0 1 1 1 1 1 7 1 1 1 0 0 0 0 8 1 1 1 1 1 1 1 9 1 1 1 0 0 1 1 Tablica 2. Prikaz stanja ("Zajednička katoda") 3.5 LED dioda LED (Light-emitting diode) ili svijetleća dioda je posebna vrsta diode koja emitira svijetlost kada je propusno polarizirana. Jako je zastupljena u elektronici, koristi se za zabavu, indikatore, npr. u semaforima i slično. Troši puno manje struje nego prijašnje žarulje sa žarnim nitima, duži vijek trajanja, manje se grije, manjih dimenzija. Samih LED dioda ima jako puno vrsta, ovisno o namjeni, dolaze u raznim veličinama, bojama, jačinama i sl. Kada se spaja na Arduino, LED-ica se obavezno mora spojiti preko otpornika!. Ako hoćemo spojiti više LED-ica na Arduino, da ne rabimo više pinova, koristimo tranzistor koji nam osigurava da Arduino ne pregori od prevelikog opterećenja. PPURS 2014/2015 18

Slika 25. LED-ica Slika 26. Ulazna karakteristika LED-ice Na slici 26. su detaljno prikazane ulazne karateristike za više LED-ica. Imamo različite LED-ice, dijelimo ih po bojama i svaka ima različit napon koljena (napon kod koje provede i počne emitirati svjetlost). PPURS 2014/2015 19

3.6 MATRIX Tipkovnica Matrix tipkovnice se naveliko koriste u većinu uređaja gdje imamo potrebu za većim brojem tipkala. Njihova glavna prednost je ušteda pinova koji bi išli od svih tipaka prema arduinu. Za 16 obicnih tipaka nam treba 16 pinova na arduinu, a za matrix tipkovnicu 4x4 samo 10 pinova. Napravili smo znatnu uštedu od 6 pinova, što nije malo s obzirom na ograničeni broj pinova. Slika 27. MATRiX tipkovnica Slika 28. Način rada MATRiX tipkovnice Princip rada je dosta jednostavan, princip možemo usporediti sa igrom potapljanje brodova), gdje tražimo metu po x i y koordinati. Neke tipkovnice dolaze s ugrađenim kontrolorima pa na izlazu dobivamo informaciju o pritisnutoj tipki. U ovom projektu imamo čistu tipkovnicu s tipkama, na nama je bilo da programski riješimo prepoznavanje pritisnute tipke. Za pomoć smo pozvali gotov library za matričnu tipkovnicu te pozvali potrebne funkcije. PPURS 2014/2015 20

3.7 Piezo Buzzer 3.7.1 Općenito o Piezo Buzzer-u Piezo buzzer je elektronički uređaj koji se obično koristi za proizvodnju zvuka. Lagan, jednostavna konstrukcija i niska cijena, čine ga upotrebljivim u raznim projektima kao štu su indikator, zvono i slično. Piezo buzzer se temelji na inverznom principu piezo elektriciteta kojeg su 1880. godine otkrio Jacques i Pierre licurie. To je princip generiranja elektriciteta kada imamo mehanički pritisak na određeni materijal. Takvi materijali se nazivaju piezo električni materijali. Piezo električni materijali su dostupni u prirodi ili izrađeni od strane čovjeka. Piezo keramika je materijal napravljen od strane čovjeka, posjeduje piezoelektrični efekt. Najčešče se koristi da bi se izradio disk, što je srce piezo buzzer-a. Kada je podvrgnut promjenjivom električnom polju diskovi se protežu ili stisnu i na taj način proizvode signal, tj. u skladu sa frekvencijom signala prozivode zvuk. Slika 29. Piezo Buzzer Slika 30. Pogled sa donje strane PPURS 2014/2015 21

3.7.2 Dijelovi od kojih se sastoji Piezo Buzzer Slika 31. Komponente od kojih se sastoji Piezo Buzzer Ovo je druga strana PCB-a, koja na sebi ima potrebne komponente da bi piezo radio. Komponente su: otpornik, NPN tranzistor i zavojnica. Na zavojnicu dovodimo mali DC signal, iako nam za dobivanje zvuka trebaju oscilacije (titraji) na većem naponu da bi piezo keramički disk jače titrao. Tranzistor u kombinaciji sa otpornikom radi kao oscilator za dobivanje male amplitude oscilacija iz napajanja. Zatim je ta veličina oscilacija pojačana sa indukcijom zavojnice. 3.7.3 Način rada Piezo Buzzera Slika 32. Shema Piezo Buzzera (način rada) Ova shema opisuje kako Piezo Buzzer radi na vrlo jednostavan način. Ovaj krug radi drugačije nego ubičajena RC mreža. Umjesto kondenzatora imamo iniduktivnu pobudu za traženu osilaciju. Tranzistor T1 skupa sa zavojnicom tvori srce ovog strujnog kruga. Općenito se zavojnica zove buzzer zavojnica. Ona pojačava stvorene oscilacije. PPURS 2014/2015 22

Kada sklop priključimo na napajanje, tranzistor provede te kontrolira piezo element preko zavojnice. Baza tranzistora je preko otpornika R2 spojena na središnji izvod piezo elementa. To automatski isključuje tranzistor i piezo element, otpušta bazu tranzistora i tranzistor prestaje vodit. Tranzistor se vraća u početno stanje, te se krug ponavlja, generirajući oscilacije, tj. traženi buzz efekt. Središnji izvod piezo elementa ima važnu ulogu u stvaranju oscilacija te stoga trebamo 3 izvoda. Oscilacije proizvedene na kolektoru tranzistora djeluju na samu zavojnicu te se stvara, magnetsko polje oko zavojnice i magnetska indukcija zavojnice odlazi u zasićenje. Zavojnica vraća uskladištenu energiju tijekom oscijalacija, pojačavajući generirani izmjenični signal. Ovaj pojačani izmjenični signal dolazi preko tranzistora na piezo element, koji počinje vibrirati ovisno o frekvenciji, generirajući visoki ton. Kako bismo postigli zvuk maksimalnog intenziteta, piezo "prsten" mora biti dobro sastavljen unutar svog kućišta. Za ovaj posebni slučaj piezo element mora biti montiran na podlogu kućišta sa rupom u sredini. Piezo element nemože biti montiran direktno na kućište, već između mora dolaziti gumeni prsten čiji je promjer manji 30% od piezo "prstena". Tek tada ćemo imati dobar ton koji nije ugušen. Slika 33. Dijelovi od kojih se Piezo Buzzer sastoji (unutrašnjost) PPURS 2014/2015 23

3.7.4 Piezo prsten (transduktor) Transduktor ("Prsten", "Pretvarač") je uređaj koji konvertira energiju iz jednog oblika u drugi. Piezoelektrični tranduktor ("prsten") je tip elektroakustičnog transduktora ("prstena") koji konvertira električne naboje u energiju. 3.8 DHT11 (Senzor temperature i vlage) DHT11 je senzor koji mjeri temperaturu i vlažnost. Dolazi u plastičnom pakiranju sa 4 izvoda, radi sa naponima od 3 do 5,5V. Možete mjeriti temperaturu od 50 C sa točnošću od ±2 C te vlaažnost od 20-95% sa točnošću od ±5%. Koristimo 3 pina od njih 4, 2 za napajanje te jedan za očitivanje vrijednosti. Slika 34. DHT_11 3.8.1 Pinovi DHT11 senzora VCC (Power supply) na ovaj pin dovodimo napajanje od 3 do 5,5V Data (Serial Data Output) sa njega smo dovodili signal na Arduino (pin sa kojeg smo očitavali vrijednost DHT11 senzora) NC (Not Connected) pin koji se ne spaja na ništa GND (Ground) zajednička točka ( masa ) PPURS 2014/2015 24

Slika 35. Pinovi DHT11 senzora 3.9 Fotootpornik Fotootpornik (eng. photoresistor ili light dependent resistor - LDR) je otpornik, čiji se električni otpor smanjuje s povećanjem intenziteta ulazne svjetlosti. Fotootpornik se izrađuje od poluvodiča sa velikim električnim otporom. Ako svjetlo padne na fotootpornik, sa dovoljno velikom frekvencijom (granična frekvencija), poluvodič ce upiti fotone svjetlosti i izbaciti elektrone, koji stvaraju električnu struju, u zatvorenom strujnom krugu. Poluvodič može biti sa primjesama ili bez. Poluvodiči bez primjesa imaju svoje vlastite nosioce naboja i nisu učinkoviti poluvodiči, kao na primjer silicij. Poluvodiči bez primjesa imaju dostupne elektrone samo u određenom energetskom području i zato fotoni moraju imati dovoljno energije da pobude elektrone u cijelom spektru. Poluvodiči sa primjesama imaju nečistoce u sebi ili primjese, koji povećavaju provodljivost elektrona, tako da fotoni mogu izbaciti elektrone i sa nižom energijom. Siliciju se obično dodaje fosfor, za povećanje električne provodljivosti. Slika 36. Fotootpornik PPURS 2014/2015 25

4. 3D printer i izgrađeno kućište pomoću 3D printera 4.1 3D printer Trodimenzionalni ispis (engl. 3D printing) način je brze izrade prototipa kojim se uređajima zasnovanima na patentiranoj 3D tehnologiji Massachusetts Institute of Technology (MIT) ispisuju, tj. direktno iz 3D CAD programa izrađuju fizički predmeti u prostoru. Trodimenzionalni ispis, a naročito ispis u boji daje inženjerima razvoja i dizajnerima mogućnost jasnog uvida u tijek postupka dizajniranja, mogućnost isticanja raznih parametara, mogućnost lakog i ranog uočavanja mogućih grešaka i njihovog brzog i učinkovitog ispravljanja. Koristeći se ovim mogućnostima 3D-pisača znatno se skraćuje vrijeme izrade i povisuje razina kvalitete modela i prototipa. 4.1.1 Način rada 3D printera 3D-pisači su mini sustavi s numeričkim upravljanjem (NC) u tri osi (x, y i z). Sistemski softver najprije konvertira 3D CAD nacrt u u poprečne presjeke, odnosno tanke slojeve debljine 0,089 0,203 mm, što se bira ovisno o točnosti koja se želi postići. Nakon toga se predmet (model) izrađuje na taj način da se u radnom prostoru u programiranim tankim slojevima nanosi specijalni prah i učvršćuje vezivnim sredstvom koje se nanosi na prah ( ispisuje ) standardnim komponentama HP-ovog pisača počevši s najdonjim slojem. Takav ispis može biti u monokromatski ili u boji. Odabirom vrste praha i punjenjem modela različitim komponentama (učvršćivačima) korisnici mogu kreirati predmete različitih svojstava ovisno o tehničkim zahtjevima koje model treba zadovoljiti (čvrstoća, elastičnost, temperaturna izdržljivost, i sl.) PPURS 2014/2015 26

4.2 Kućište izgrađeno pomoću 3D printera Slika 37. Podloga kućišta Slika 38. Kućište (kutija) u izradi PPURS 2014/2015 27

Slika 39. Kućište (kutija) u izradi Slika 40. Prednja strana lućišta PPURS 2014/2015 28

5. Projekt: Sustav kontroliranog natapanja poljoprivrednog zemljišta 5.1 Shema projekta Shema projekta je rađena u programu Eagle. Slika 41. Shema projekta PPURS 2014/2015 29

5.2 Dijagram toka Slika 42. Dijagram toka PPURS 2014/2015 30

5.3 Tiskana pločica (engl. PCB, Printed Circuit Board) PCB je rađena u programu Sprint Layout. Slika 43. Pogled sa gornje strane Slika 44. Pogled sa donje strane Bijela žica sa donje strane prikazuje kratkospojnik, tj. kako nismo nikako mogli u programu spojiti te dvije točke, nakon što smo napravili pločicu ručno smo spojili točke žicom PPURS 2014/2015 31

Slika 45. Prednja strana pločice nakon izrade Slika 46. Stražnja strana pločice nakon izrade PPURS 2014/2015 32

5.4 Testiranje projekta Slika 47. Testiranje projekta 5.5 Način rada sklopa Kada sklop priključimo na napajanje na LCD-u i 7 seg. display-u se ispiše trenutna vrijednost temperature i vlage. Nakon toga 5 sekundi provjeravamo dali je pritisnuta tipka '*' ili '0', ako ništa nije pritisnuto vraćamo se na ponovni ispit podataka. Ukoliko je pritisnuta tipka '0' pokrećemo Reset Arduina, a ukoliko '*' ulazimo u namještanje parametara. Kada smo ušli u funkciju namještavanje parametra imamo 3 odabira: '1', '3' ili '#'. S pomoću '1' smanjujemo temperaturu, s '3' povećavamo temperaturu, a s '#' izlazimo iz funkcije namještavanje parametra. Tada program opet osvježavanja vrijednosti te ih ispisuje. Tokom osvježavanja vrijednosti program također nadgleda količinu sjvetlosti putem fotootpornika i uspoređuje ih s namještenim parametrima. Ukoliko je stvarna temperatura manja ili jednaka namještenoj i ukoliko je pao mrak pumpa za vodu se pali, u protivnom stoji ugašena. Sklop je osmišljen na način da natapa zemlju kad vani nije prevruće i kad nema sunca. Također pored ove funkcije sklop pomoću PIR senzora prati dali se netko ili nešto miče po vrtu (referiramo se na životinje/štetočine). Ukoliko detektira prisustvo pali buzzer koji bi ih trebao otjerati. PPURS 2014/2015 33

5.6 Montiranje projekta u kućište Slika 48. Prikaz elektronike unutar kutije Slika 49. Projekt montiran u kućištu PPURS 2014/2015 34

Slika 50. Projekt u kučištu tijekom rada 6. Programski kod #include <Keypad.h> //library za matrix tipkovnicu #include <LiquidCrystal.h> //library za LCD display #include "DHT.h" //library za DHT senzor LiquidCrystal lcd(43, 45, 47, 49, 52, 53);//definiramo gdje su spojeni pinovi za LCD #define DHTTYPE DHT11 // DHT 11 tip senzora #define DHTPIN A0 // DHT spojen na A0 #define LD1 13 #define LD2 12 #define BUZZ 11 const int pbin = 5; //potrebno za definiranje interrupt volatile int state = LOW; //potrebno za definiranje interrupt DHT dht(dhtpin, DHTTYPE); // Initialize DHT sensor for normal 16mhz Arduino byte digit0 = 38; // prvi 7 seg byte digit1 = 36; // drugi 7 seg byte sevensegmentpins[] = {22, 24, 26, 28, 30, 32, 34; //potrebno definirati gdje su spojeni segmenti a-g bez dp byte sevensegment[12][7] = { PPURS 2014/2015 35

{ 1, 1, 1, 1, 1, 1, 0, // = 0 { 0, 1, 1, 0, 0, 0, 0, // = 1 { 1, 1, 0, 1, 1, 0, 1, // = 2 { 1, 1, 1, 1, 0, 0, 1, // = 3 { 0, 1, 1, 0, 0, 1, 1, // = 4 { 1, 0, 1, 1, 0, 1, 1, // = 5 { 1, 0, 1, 1, 1, 1, 1, // = 6 { 1, 1, 1, 0, 0, 0, 0, // = 7 { 1, 1, 1, 1, 1, 1, 1, // = 8 { 1, 1, 1, 0, 0, 1, 1, // = 9 { 0, 1, 1, 0, 1, 1, 1, // = H { 0, 0, 0, 1, 1, 0, 1 // = c ;//kombinacije za ispis brojeva 0-9 te slova H i c int temp = 20; //referentan temp const byte ROWS = 4; //4 reda const byte COLS = 4; //4 stupca char keys[rows][cols] = { {'1', '2', '3', 'A', //model tipkovnice {'4', '5', '6', 'B', //model tipkovnice {'7', '8', '9', 'C', //model tipkovnice {'*', '0', '#', 'D' //model tipkovnice ; byte rowpins[rows] = {10, 9, 8, 7; //redovi 0 do 4 byte colpins[cols] = {6, 5, 4, 3; //stupci 0 to 4 //moguce je spojiti tipkovnicu 4x4, iako koristimo 4x3 //razlika je u jednoj žici više koja je zadužena za zadnji stupac(a-d) te ukoliko koristimo 4x4 tu zicu //spojimo na pin 3 float t, h, f, hi; long ocitajvrijeme; int RES_PHOTO; Keypad keypad = Keypad( makekeymap(keys), rowpins, colpins, ROWS, COLS ); //potrebno za definiranje tipkovnica void setup() { Serial.begin(9600); //ispisivanje na monitoru PC-a dht.begin();//"pokretanje" DHT senzora pinmode (LD1, OUTPUT);//definiranje LD1 kao "izlaza" pinmode (LD2, OUTPUT);//definiranje LD2 kao "izlaza" pinmode (BUZZ, OUTPUT);//definiranje LD1 kao "izlaza" lcd.begin(16, 2);//bez ove naredbe LCD nece nista ispisivati, zaduzeno za "pokretanje" LCD-a lcd.clear(); //opreza radi brisemo sve sa LCD-a pinmode(digit0, OUTPUT);//definiranje digit0 kao "izlaza" pinmode(digit1, OUTPUT);//definiranje digit1 kao "izlaza" for (int i = 0; i < 7; i++) //za rad 7 segment displaya { pinmode(sevensegmentpins[i], OUTPUT); PPURS 2014/2015 36

//keypad.addeventlistener(keypadevent); attachinterrupt(pbin, IRsenzor1, HIGH); // interupt ocitajvrijeme = 0; void IRsenzor1() { //funkcija za IR senzor, inform. sa senzora se šalje na pin 2(tu je definiran inter 0 za MEGA) //kada na pin dode promjena stanja state =!state;//detektira promjenu stanja (0>1) digitalwrite(buzz, state);//upali led/buzz kada vidis promjenu na IR senzoru void segmentwrite(byte digit) { //dodatna funkcija za ispis na 7 seg display //definiramo koji ce se od segmenata upaliti a-g byte pin = 22; for (byte i = 0; i < 7; ++i) { digitalwrite(pin, sevensegment[digit][i]); pin = pin + 2; void twosegmentwrite(int digit) { //dodatna funkcija za ispis na 7 seg display //odabiremo koji ce se 7 seg display upaliti int digit_1 = digit / 10; int digit_2 = digit % 10; digitalwrite(digit0, LOW); //enable digit0 segmentwrite(digit_1); delay(10); digitalwrite(digit0, HIGH); //disable digit0 digitalwrite(digit1, LOW); //enable digit1 segmentwrite(digit_2); delay(10); digitalwrite(digit1, HIGH); //disable digit1 void twosegmentwriteword (int digit) { //dodatna funkcija za ispis na 7 seg display digitalwrite(digit0, HIGH); //disable digit0 digitalwrite(digit1, LOW); //enable digit1 PPURS 2014/2015 37

segmentwrite(digit); delay(10); digitalwrite(digit1, LOW); //enable digit1 void IspisSeg(float h, float ta) { //glavna funkcija za ispis na 7 seg display twosegmentwriteword(10);//ispisuje slovo H for (int t = 0; t <= 99; t++) { //ispisujemo vise puta za redom kako bi bilo oku vidljivo, inace bi se tolko brzo //izvrsila naredba da mi to nebi niti primjetili twosegmentwriteword(10); twosegmentwrite(h);//ispisuje vlaznost for (int t = 0; t <= 99; t++) { //ispisujemo vise puta za redom kako bi bilo oku vidljivo, inace bi se tolko brzo //izvrsila naredba da mi to nebi niti primjetili twosegmentwrite(h); twosegmentwriteword(11);//ispisuje slovo c for (int t = 0; t <= 99; t++) { //ispisujemo vise puta za redom kako bi bilo oku vidljivo, inace bi se tolko brzo //izvrsila naredba da mi to nebi niti primjetili twosegmentwriteword(11); twosegmentwrite(ta);//ispisuje temperaturu for (int t = 0; t <= 99; t++) { //ispisujemo vise puta za redom kako bi bilo oku vidljivo, inace bi se tolko brzo //izvrsila naredba da mi to nebi niti primjetili twosegmentwrite(ta); void ispisnalcd(float h, float t) { //funkcija za ispis temp i vlage na LCD lcd.setcursor (0, 0);//pozicioniramo se na koordinate 0,0 lcd.print ("Temp: "); lcd.print(t); lcd.print("'"); lcd.setcursor (0, 1);//pozicioniramo se na koordinate 0,1 lcd.print ("Vlaga: "); PPURS 2014/2015 38

lcd.print(h); lcd.print("%"); /* void keypadevent(keypadevent ekey) { //funkcija za posebne dogadaje na tipkovnici switch (keypad.getstate()) { case PRESSED: Serial.print("Pressed: "); Serial.println(eKey); switch (ekey) { // case '*': namjestiparam(); // case '#': break; //default: ; */ void namjestiparam() { //funkcija za namjestanje temperature Serial.println ("namjestite temperaturu"); lcd.clear(); lcd.setcursor (0, 0); lcd.print ("Ref. temp. je:"); lcd.print (temp); lcd.setcursor (0, 1); lcd.print("namjestite temp:"); delay(2000); while (keypad.getkey()!= '#') { //ulazak u do while petlju if (keypad.getkey () == '1') { //ako pritisnemo 1, temperatura se smanjuje temp--; //smanjuje se temperatura za jedan dolje lcd.clear (); lcd.setcursor (0, 0); lcd.print ("Temp je: "); lcd.print (temp); lcd.print ("'"); lcd.setcursor (0, 1); lcd.print ("# za kraj!"); Serial.println ("Temperatura je: "); //ispis na Monitoru Serial.println (temp); //varijabla u koju se sprema podatak o temperaturi i ispisuje se na ekranu else if (keypad.getkey() == '3') { //ako pritisnemo broj 3, temperatura raste temp++; //temperatura se povećava, za jedan gore lcd.clear (); lcd.setcursor (0, 0); lcd.print ("Temp je: "); lcd.print (temp); lcd.print ("'"); lcd.setcursor (0, 1); lcd.print ("# za kraj!"); Serial.println ("Temperatura je: "); //ispis vrijednosti temperature na monitoru PPURS 2014/2015 39

Serial.println (temp); //varijabla u koju se sprema podatak o temperaturi i ispisuje se na ekranu //kraj do while petlje, ispituje se uvjet, ako je na tipkovnici pritisnuto #, petlja se prekida i program izlazi iz petlje Serial.println ("Namjestena temperatura je "); //ispisuje se na ekranu vrijednost temperature koju smo zadnju podesili Serial.println (temp); //ispisuje se vrijednost temperature koju smo u varijabli temp zadnju podesili lcd.clear (); lcd.setcursor (0, 0); lcd.print ("Namj. temp je: "); lcd.setcursor (0, 1); lcd.print (temp); lcd.print ("'"); delay (2000); lcd.clear(); return; void fotor(int RES_PHOTO) { //funkcija za provjeru razine svjetlosti(lux), podatak dobivamo od fotootpornika koji je spojen na analogni ulaz if (t >= temp && RES_PHOTO <= 100) { //ako je ocitana temp veca ili jednaka od namjestene temp i ako je LUX manji ili jednak od 100 digitalwrite (LD1, HIGH); digitalwrite (LD2, LOW); else if (t <= temp && RES_PHOTO <= 100) { //ako je ocitana temp manja ili jednaka od namjestene temp i ako je LUX manji ili jednak od 100 digitalwrite (LD1, LOW); digitalwrite (LD2, HIGH); else { //ako nista od prijasnjih uvjeta nije istina ona ugasi LD1 i LD2 digitalwrite (LD1, LOW); digitalwrite (LD2, LOW); void ispisnaserialm(float t, float h, float hi, int RES_PHOTO) { //funkcija za ispis parametara na SeralMonitor, vidljivo na racunalu uz USB konekciju Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t"); Serial.print("Heat index: "); Serial.print(hi); Serial.print(" *F\t"); PPURS 2014/2015 40

Serial.print("LUX: "); Serial.println(RES_PHOTO); void loop() { //to je void main kod C-a, glavni program :) if (millis() > ocitajvrijeme) { h = dht.readhumidity();//spremamo ocitanu vlaznost t = dht.readtemperature();//spremamo ocitanu temp f = dht.readtemperature(true); hi = dht.computeheatindex(f, h);//spremamo heat index RES_PHOTO = analogread(a1); //Fotootpornik na portu Analog_1; ispisnaserialm(t, h, hi, RES_PHOTO); //ispisuje podatke na Serial port, vidljivo na racunalu //pozivanje funkcija za ispis na 7 seg, LCD, ocitanje fototpornika IspisSeg(h, t); ispisnalcd(h, t); fotor(res_photo); ocitajvrijeme = millis() + 5000;//svakih 5 sec ulazimo u ovaj if uvjet if (keypad.getkey() == '*') { //ukoliko pritisnemo '*' na tipkovnici pozovi "namjestiparam()" funkciju namjestiparam(); PPURS 2014/2015 41

7. Zaključak Cilj samog projekta bila je zabava i kroz zabavu je izrađeno nešto korisno, što uvelike može pomoći poljoprivredniku i svakom tko ima vlastiti vrt. Kako se vrt mora natapati u sušnim mjesecima, potrebno je navodnjavanje, ovim sklopom oslobođen je poljoprivrednik brige o navodnjavanju. Projekt je napravljen na način, da korisnik unese vrijednost temperature iznad i ispod koje se pale / gase motori za navodnjavanje vrta. Korisnik bi imao real-time prikaz vlage i temperature i sklop bi obavljao sve umjesto njega što se tiče navodnjavanja vrta. Također je dodana zujalica i senzor pokreta (PiR senzor) kako bi izbjegli štete od raznih nametnika. Zašto smo se odlučili za ovu temu projekta? Poljoprivrednika smo oslobodili nepotrebnih djelatnosti i time mu uštedjeli vrijeme. Drugi razlog je novac, sklop nije skup i lako je realiziran pomoću Arduino platforme uz dodatnu elektroniku. U projektu smo koristili Arduino radi njegove jednostavnosti i dostupnih kodova. Osnovna ideja sklopa je napravljena, ima mjesta da se sklop poboljša, dodaju još neke stvari (ovisno o ideji) i da se sklop sam po sebi nadogradi. Projekt nas je potaknuo da iskoristimo prijašnja znanja koja smo stekli tijekom studiranja i primjenimo na konkretnom primjeru. Uz malu modifikaciju projekt bi se mogao naći na tržištu. Iskušali smo se u radu u timu, naučili kako raspodijeliti podjednako obaveze i stvorili korisnu stvar. PPURS 2014/2015 42

8. Literatura http://hr.wikipedia.org/wiki/trodimenzionalni_ispis http://hr.wikipedia.org/wiki/fotootpornik http://pcbheaven.com/wikipages/how_key_matrices_works/ http://www.engineersgarage.com/insight/how-piezo-buzzer-works?page=6 http://www.electronics.dit.ie/staff/tscarff/dt089_physical_computing_1/leds/leds.htm http://www.homemade-circuits.com/2011/12/how-to-make-simple-piezo-buzzer-circuit.html http://e-elektro.blogspot.com/2014/06/sto-je-arduino.html http://electronica4u.blogspot.com/2012/03/how-16x2-alphanumeric-lcd-works.html http://www.microcontroller-project.com/16x2-lcd-working.html http://embedded-lab.com/blog/?p=5453 http://en.wikipedia.org/wiki/seven-segment_display http://www.electrodragon.com/w/index.php?title=hc- SR501_PIR_Motion_Sensor_(Passive_Infrared_Sensor) https://tanglingtech.wordpress.com/2013/05/03/hc-sr501-passive-infrared-sensor/ http://www.mysensors.org/build/motion http://en.wikipedia.org/wiki/passive_infrared_sensor http://www.excelitas.com/downloads/dts_lhi778_lhi878_pyd1388.pdf PPURS 2014/2015 43