Darko Šaponja

Similar documents
Karakteristike bar kodova iz tehničkog i dizajnerskog aspekta

Bactrim sirup doziranje

D I P L O M S K I R A D

BROJLER. Specifikacije ishrane. An Aviagen Brand

OD KONCEPTUALNIH MODELA PREKO OPAC-a TREĆE GENERACIJE DO SLJEDEĆE GENERACIJE KNJIŽNIĈNOGA SUSTAVA

ANALIZA TEHNOLOGIČNOSTI SA STAJALIŠTA IZBORA OBLIKA, DIMENZIJA I TOLERANCIJA ŽLIJEBA ZA ZAVARIVANJE

Prelomna tačka rentabiliteta. LOGO 2002 Prentice Hall Business Publishing, Introduction to Management Accounting 12/e, Horngren/Sundem/Stratton

HRVATSKE KNJIŽNICE NA DRUŠTVENOJ MREŽI FACEBOOK CROATIAN LIBRARIES ON FACEBOOK


Prosciutto & Wine Bar

E-ZDRAVSTVO WEB APLIKACIJA U ASP.NET-U

CSYSTEMS PROGRAMSKI PAKET ZA KNJIGOVODSTVO

Proizvodnja i prometovanje vina te stanje površina pod sortama Merlot, Cabernet Sauvignon i Syrah u Hrvatskoj

KOMUNIKACIJA PUTEM DRUŠTVENIH MREŢA NA PRIMJERU PODUZEĆA NAPRIJED D.O.O.

SEND ELECTRONIC DOCUMENTS ACQUIRING SYSTEM IN NEW CLOTHES

SVEUČILIŠTE U RIJECI FILOZOFSKI FAKULTET

Hrvatsko društvo za kvalitetu Članovi za članove 6. prosinca Damir Keller i Dean Rennert Qualitas d.o.o. Zagreb

Utjecaj parametara zavarivanja na propusnost spoja polietilenske cijevi

CO C K T A I L M E N U

IMPLEMENTACIJA MARKETINGA U NAKLADNIŠTVO DIPLOMSKI RAD

CJENOVNIK USLUGA. 11.maj 2018.

Oleander Summer Bar Menu

Elektromotori u vrsti zaštite nadtlak prednosti i mane

OPĆI UVJETI POSLOVANJA

KLASIFIKACIJSKI SUSTAVI U MEDICINSKIM KNJIŽNICAMA SAD-a, UJEDINJENOG KRALJEVSTVA I REPUBLIKE IRSKE

1. Sadržaj. Popis slika..i. Popis tablica...ii. Popis grafova..iii

STATISTIČKA ANALIZA POSLOVANJA HOTELA VELARIS d.o.o.

METODE ZA OTKRIVANJE PROMJENA KOD DALJINSKIH ISTRAŽIVANJA

INTERNACIONALNI UNIVERZITET TRAVNIK U TRAVNIKU EKONOMSKI FAKULTET UTICAJ BRAND-OVA NA UNAPREĐENJE PRODAJE

Sažetak. Srđan Lukačević Gradska i sveučilišna knjižnica Osijek Kornelija Petr Balog Filozofski fakultet Osijek

PRODAJNI KANALI U OSIGURAVAJUĆEM DRUŠTVU CROATIA OSIGURANJE D.D.

PRIJEVOD KAO INTERKULTURNA ČINJENICA

ISKUSTVA USPOSTAVE PARALELNOG RADA PROIZVODNOG POSTROJENJA S KOGENERACIJOM I DISTRIBUCIJSKE MREŽE

EFIKASNOST INTELEKTUALNOG KAPITALA U ISTARSKOM VODOVODU d.o.o. BUZET

Sensory Evaluation of Fruit of Some Scab Resistant Apple Varieties*

SVEUČILIŠTE U ZAGREBU FILOZOFSKI FAKULTET ODSJEK ZA INFORMACIJSKE ZNANOSTI Ak. god 2015./2016.

CONVECTIVE DRYING OF THE ROOT AND LEAVES OF THE PARSLEY AND CELERY

PROMOTIVNE AKTIVNOSTI U MALOPRODAJI S POSEBNIM OSVRTOM NA UNAPREĐENJE PRODAJE

Kvalitativna procjena rizika od glutena u mliječnim proizvodima za populaciju oboljelu od celijakije

Rad u digitalnoj knjižnici Zagreb 2002.

SVEUČILIŠTE U RIJECI EKONOMSKI FAKULTET

MEĐUNARODNI STANDARDNI BROJ IMENA (ISNI) U KONTEKSTU NORMATIVNOG NADZORA. INTERNATIONAL STANDARD NAME IDENTIFIER (Isni) IN THE

Ivona Kuraica 6834/N FUNKCIONALNA SVOJSTVA CHIA SJEMENKI

MJERE LI SAMO POKAZATELJI USPJEŠNOSTI VRIJEDNOST KNJIŽNICA? : PREMA VREDNOVANJU DRUŠTVENIH CILJEVA ORGANIZACIJA U KULTURI

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE DIPLOMSKI RAD. Dino Bušić. Zagreb, 2015.

Evaluation of parent combinations fertility in plum breeding (Prunus domestica L.) 1

Načela razdvajanja energetskih djelatnosti prijenosa i distribucije električne energije

IMPROVEMENT OF SUNFLOWER FOR CONSUMPTION. Dijana DIJANOVIĆ, Vesna STANKOVIĆ, and Ivan MIHAJLOVIĆ

DETEKCIJA KRATERA IZ DIGITALNIH TOPOGRAFSKIH SLIKA

RODITELJSKO JATO ROSS 308. Specifikacije Ishrane. An Aviagen Brand

238 broj bibliografske jedinice

Upravljanje marketingom u neprofitnim organizacijama na primjeru Gradske knjižnice Zadar

Pravo djece na informacije

POKAZATELJI USPJEŠNOSTI ZA NACIONALNE KNJIŽNICE PERFORMANCE INDICATORS FOR NATIONAL LIBRARIES

OPEN SOURCE PROJECT :: BAST

Europe 2020: a European strategy for smart, sustainable and inclusive growth. Dostupno na: 2

RFID TECHNOLOGY IN ZAGREB CITY LIBRARIES

VJESNIK BIBLIOTEKARA HRVATSKE 54, 4(2011)

K NJ I Ž N I C A EDUKACIJA KORISNIKA KNJIŽNICE FILOZOFSKOG FAKULTETA SVEUČILIŠTA U RIJECI

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE ZAVRŠNI RAD. Ante Ajduković. Zagreb, 2015.

Andrea Šuver PROMOCIJA NA TRŽIŠTU MOBILNIH TELEKOMUNIKACIJA U REPUBLICI HRVATSKOJ

VREDNOVANJE NACIONALNE I SVEUČILIŠNE KNJIŽNICE U ZAGREBU S GLEDIŠTA KORISNIKA

Mama, tata, ja sam vegan

UPUTE ZA KORIŠTENJE Type HD8967 / HD8968 / HD8969

SVEUČILIŠTE U ZAGREBU PREHRAMBENO-BIOTEHNOLOŠKI FAKULTET DIPLOMSKI RAD 685/USH

Analiza ponude proizvoda s ekološkim certifikatom u velikim trgovačkim lancima maloprodaje u gradu Osijeku

DIFFERENT STERILIZATION METHODS FOR OVERCOMING INTERNAL BACTERIAL INFECTION IN SUNFLOWER SEEDS

RAČUNOVODSTVENO PRAĆENJE TROŠKOVA PROIZVODNJE NA PRIMJERU FIRME ŠUJICA- DRVO d.o.o.

Pola stoljeća nam je tek

ZOTERO PROGRAM OTVORENOG KODA ZA UPRAVLJANJE BIBLIOGRAFSKIM BILJEŠKAMA ZOTERO OPEN SOURCE SOFTWARE FOR MANAGING THE BIBLIOGRAPHIC REFERENCES

SMERNICE ZA PROBLEM REFERENTNIH VREDNOSTI U DЕČIJEM UZRASTU. Slobodan Jovanović MD, PhD, Bsc JUGOLAB, Sombor

Model za razvoj brenda u industriji hrane i pića primjer zadarskog likera Maraschino

SGS PLAN SEMINARA 2017

MEĐUKNJIŽNIČNA POSUDBA I DOSTAVA DOKUMENATA KNJIŽNICE FILOZOFSKOG FAKULTETA U ZAGREBU ILI KAKO USTROJITI SLUŽBU

l=àéòáâì= gçëáé=rž~êéîáć= Filozofski fakultet u Zagrebu Ivana Lučića 3, HR Zagreb

Kriteriji i postupak pročišćavanja knjižničnog fonda na primjeru fonda serijskih publikacija Sveučilišne knjižnice Rijeka

GLASILO ZBORA LIJEČNIKA HRVATSKE

Knjižnične usluge za beskućnike

CUSL2. JumperFree TM

PROJEKT INFORMATIZACIJE PRODAJNIH MJESTA

Arena Zagreb The Zagreb Arena

THE CHARACTERISTICS OF VITICULTURE PRODUCTION IN SERBIA OBELEŽJA VINOGRADARSKE PROIZVODNJE U SRBIJI

PARALLEL OPERATION OF COGENERATION FACILITY WITH UTILITY POWER AT SUGAR FACTORY SLADORANA D.D. ŽUPANJA

NAŠICE 2.rujan 2011 Ivo Miljenovic

Maja Krtalić Filozofski fakultet Sveučilišta Josipa Jurja Strossmayera Osijek

FIST Espresso aparat za kavu. FIST Espresso coffee machine. Poštovani Klijenti, Dear Clients,

Ispitivanje mogućnosti dobijanja ulja iz čvrstog ostatka zaostalog nakon spravljanja napitka od kafe kao potencijalne sirovine za dobijanje biodizela

POZ KONTEJNERI ZA NAPITKE

MEĐUKNJIŽNIČNA POSUDBA : STANDARDIZIRANI POSTUPCI INTERLIBRARY LOANS : STANDARDIZED PROCEDURES

EFEMERNA GRAĐA I SITNI TISAK : OPSEG POJMOVA U HRVATSKOJ I SVIJETU EPHEMERA AND MINOR PUBLICATIONS : CONCEPT OF THE TERMS IN CROATIA AND ABROAD

PROVEDBA PRODAJE NEKRETNINA I POKRETNINA U OVRŠNOM POSTUPKU

Table of Contents. Toast Inc. 2

NOVINSKE ZBIRKE U KNJIŽNICAMA: IZAZOVI DIGITALNOG DOBA

UPRAVLJANJE ZNANJEM U INDOK ODJELU KONČAR-INSTITUTA ZA ELEKTROTEHNIKU

Mikroekonomski aspekti utjecaja globalne krize na rast nefinancijskih poduzeća u RH

Web shop: prodaja suvenira za Dinamo Zagreb i Hajduk Split putem. 16. HrOUG, Igor Vlahović Vedran Majstorović DEKOD telekom d.o.o.

37. Osnovni pojmovi o džiteru, šumu, i integritetu signala

Ana Ribarić PRIPREMA PROJEKTA PRENAMJENE I REVITALIZACIJE EX BLOKA RIKARD BENČIĆ U RIJECI

MIDI Coffee Machine Control

KAKO USPJEŠNO PRODAVATI HoReCa KUPCIMA? HoReCa KUPCIMA? Prodavači su kao i sportaši bez pravog treninga ne postižu pravu formu!

Transcription:

Darko Šaponja 0036428755 SEMINARSKI RAD - SPVP 18. lipanj 2010 Dokument je namijenjen studentima elektrotehnike Potrebno je predznanje ugradbenih računalnih sustava, komunikacijskih protokola i programskog jezika C Opisuje sustav čitanja bar koda i njegovog pohranjivanja u bazu pomoću web aplikacije

Sažetak U radu je predstavljeno rješenje evidencije namirnica u ostavi pomoću bar koda. Pojašnjeno je što je to bar kod, koje informacije sadrži, standard zapisa koji se koristi i način na koji se čita pomoću bar kod čitača. TakoĎer je ostvarena veza izmeďu bar kod čitača i Arduina. Obrazložen je razlog odabira RS-232 protokola i definiranje postavki bar kod čitača. Ostvarena je i komunikacija Arduina s Internet aplikacijom za ažuriranje baze podataka namirnica u ostavi putem http protokola. U radu je priložen i programski kod za Arduino koji omogućuje navedenu funkcionalnost sustava. Sadržaj 1. UVOD... 3 2. EAN BAR KOD... 4 1.1. Načelo rada bar kod čitača... 6 3. SPECIFIKACIJE I ARHITEKTURA SUSTAVA... 7 4. IZVEDBA SUSTAVA... 8 1.2. Bar kod čitač QuickScan QD 2100... 8 1.3. Spajanje bar kod čitača na Arduino...11 1.4. Komunikacija s Web aplikacijom...13 1.5. Odabir ulaza ili izlaza namirnica iz ostave...13 5. PROGRAMSKA PODRŠKA ZA MIKROKONTROLER...14 6. FOTOGRAFIJE SUSTAVA...17 7. ZAKLJUČAK...18 8. LITERATURA...19 9. POJMOVNIK...20 Ovaj seminarski rad je izraďen u okviru predmeta Sustavi za praćenje i voďenje procesa na Zavodu za elektroničke sustave i obradbu informacija, Fakulteta elektrotehnike i računarstva, Sveučilišta u Zagrebu. Sadržaj ovog rada može se slobodno koristiti, umnožavati i distribuirati djelomično ili u cijelosti, uz uvjet da je uvijek naveden izvor dokumenta i autor, te da se time ne ostvaruje materijalna korist, a rezultirajuće djelo daje na korištenje pod istim ili sličnim ovakvim uvjetima. 2

1. Uvod Svakodnevno svjedočimo iznimno brzom napretku tehnologije i razvoju novih sustava. Cilj tog napretka je čovjeku olakšati, produžiti i po mogućnosti uljepšati život. Jedna od osnovnih i najbitnijih ljudskih potreba je hrana. Osim što je nužna za život, hrana velikom broju ljudi pruža zadovoljstvo. No isto tako prehrana izravno utječe na ljudsko zdravlje. Očito je da ukoliko želimo živjeti zdravo i uživati u blagodatima hrane moramo voditi brigu o prehrambenim proizvodima u našem kućanstvu. Svi znamo koliko naporno može biti svakodnevno razmišljati o tome što imamo u kućnoj ostavi hrane, a što nam nedostaje za pripremu obroka. Ukoliko u to uključimo razmišljanje o sastojcima pojedinog proizvoda, u svrhu zdravije prehrane, voditi brigu o hrani zaista postaje zamorno te počinjemo zanemarivati odreďene namirnice u prehrani. Frustracije koje uzrokuje zaboravljeni jogurt na dnu hladnjaka nije potrebno ni spominjati. Da bi se čovjek riješio briga o količini namirnica u ostavi, njihovoj kvaliteti, roku trajanja i sastojcima potrebno je osmisliti sustav brige o hrani. Sustav koji će se umjesto nas brinuti o namirnicama, sastavljati popis za kupovinu, automatski istu izvršavati, brinuti o roku trajanja proizvoda, sugerirati nam namirnice koje su zdrave za nas te pratiti unos potrebnih tvari u organizam. Osnovni dio tog sustava je praćenje količine namirnica u ostavi, kako bi se omogućile i preostale, naprednije, funkcije sustava. U okviru ovog projekta realizirati će se praćenje količine namirnica u ostavi pomoću bar koda. Ovaj projekt dio je većeg sustava, sustava brige o hrani. U izradi sustava brige o hrani još sudjeluju kolege Pero Krivić s projektom Mjerni ureďaj za evidenciju količine prehrambenih namirnica i Oliver Marić s projektom Aplikacija za ažuriranje podataka o hrani putem HTTP protokola. Konkretni zadatak ovog projekta je detektirati bar kod svakog proizvoda koji se unosi ili iznosi iz ostave i putem http protokola ažurirati bazu podataka kojoj se pristupa pomoću Internet aplikacije. Svrha projekta je olakšati ukućanima ažuriranje baze namirnica u ostavi i generiranje popisa za kupovinu. 3

2. EAN Bar kod Bar kod je broj pretvoren u smisleni niz tamnih linija i svijetlih meďuprostora koji omogućavaju elektroničkoj opremi da očita informaciju o proizvodu. Bar kod se kao simbol tiska ili direktno na ambalažu ili na naljepnicu i tako identificirani proizvod odlazi u distribucijsku mrežu. EAN sustav je jedinstveni meďunarodni sustav šifriranja, označavanja i identifikacije. Nastao je kao europski sustav (European Article Numbering), no prihvaćen od velikog broja država ubrzo postaje svjetski sustav. EAN oznaka jedinstvena je u svijetu i njeno pravilno korištenje onemogućuje dodjelu iste oznake različitim proizvodima. Struktura EAN koda sastoji se od grupe brojeva koji sadrže podatak o zemlji porijekla robe, proizvoďaču i samom proizvodu. U standardnom EAN 13 kodu uz dvanaest znamenki, trinaesta znamenka je kontrolna znamenka. Izračunava se modulo 10 algoritmom iz prvih dvanaest i provjerava ispravnu strukturu prethodnih znamenki. Algoritam za izračun kontrolne znamenke je: 1. Zbrojiti znamenke na parnim mjestima: 2, 4, 6, 2. Pomnožiti rezultat s tri 3. Zbrojiti znamenke na neparnim mjestima: 1, 3, 5, 4. Zbrojiti rezultat iz koraka 2 i 3 Tražena znamenka je najmanji broj koji pribrojen rezultatu iz koraka 4 daje višekratnik broja 10. Svaki EAN bar kod sastoji se od graničnih linija na lijevoj i desnoj strani od samog bar koda, te obaveznih tihih zona (bijeli prostor sa svake strane). Tablica 1: Prikaz znamenki u EAN 13 bar kodu EAN 13 struktura bar koda (12+1) Kontrolna znamenka N 1 N 2 N 3 N 4 N 5 N 6 N 7 N 8 N 9 N 10 N 11 N 12 N 13 Slika 1: Primjer EAN 13 bar koda 4

EAN 8 bar kod dodjeljuje se onim proizvodima koji su premali da bi na njih fizički stao EAN 13 bar kod. Za njegovu dodjelu potrebno je uputiti poseban zahtjev s idejnim rješenjem ambalaže budućeg proizvoda. EAN 8 bar kod ima iste standarde i strukturu kao 13 bar kod. Razlika je što ima samo 8 znamenaka i njegov je kapacitet u EAN sustavu ograničen. Slika 2: Primjer EAN 8 bar koda Svako poduzeće koje želi svoje proizvode označavati EAN kodom treba ovisno o asortimanu koje želi kodirati, od nacionalne organizacije (u Hrvatskoj je to EAN CROATIA) tražiti EAN kod odreďenog kapaciteta (100, 1000, 1000 ili 100000 različitih vrsta proizvoda). Početni dio koda je fiksno dodijeljen od strane nacionalne organizacije i sadrži zemlju podrijetla i šifru proizvoďača. Slika 3: EAN 13 bar kod Ako je u Hrvatskoj proizvoďaču dodijeljen bar kod kapaciteta do sto vrsta proizvoda rješenje o dodjeli sadrži EAN 13 kod strukture 3851234567xxK. Dio koda 3851234567 dodjeljuje EAN CROATIA i on se ni u kojem slučaju ne smije mijenjati, jer bi to narušilo EAN sustav. 385 u dodijeljenoj šifri je oznaka Hrvatske. 1234567 je šifra poduzeća kojem je dodijeljen bar kod. Pozicije u kodu označene s xx stoje na raspolaganju poduzeću da pomoću njih kodira svoje proizvode. Poduzeće može slobodno kodirati svoje proizvode unutar zadanog kapaciteta uz uvjet da svaki proizvod mora imati različiti kod. 5

Kod EAN 8 koda prve tri znamenke bar koda označavaju zemlju proizvoďača. Sljedeće 4 znamenke označavaju kod proizvoda koji EAN organizacija dodjeljuje izravno odgovarajućem proizvodu, bez proizvoďačevog prefiksa. Posljednja osma znamenka je kontrolna znamenka. 1.1. Načelo rada bar kod čitača Prilikom čitanja bar koda tamne linije apsorbiraju svjetlost iz čitača dok svijetli meďuprostori reflektiraju tu svjetlost. Fotoćelija u čitaču prima reflektiranu svjetlost i pretvara ju u električni signal. Na ovaj način čitač stvara signal niske logičke razine za meďuprostore i signal visoke logičke razine za linije. Trajanje električnog signala odreďuje širok element nasuprot uskom. Ovaj signal dekoder u čitaču dekodira u znakove koje bar kod predstavlja. Dekodirani podaci šalju se računalu u uobičajenom formatu podataka (ASCII). 6

3. Specifikacije i arhitektura sustava Cilj ovog projekta je izraditi sustav koji će omogućiti evidenciju namirnica u ostavi pomoću bar koda. Bar kod čitač RS-232 Arduino HTTP Web aplikacija Slika 4: Arhitektura sustava Zadaća sustava je ispravno očitati bar kod proizvoda i pohraniti ga u bazu podataka kojoj se pristupa putem web aplikacije. Dakle potrebno je ostvariti jednosmjernu komunikaciju od bar kod čitača do web aplikacije. Jedan od tehničkih zahtijeva je izvesti zadani sustav bez korištenja osobnog računala kako bi se izbjeglo njegovo postavljanje u ostavu. U tom slučaju, od dostupnih resursa, jedino se pomoću Arduina može ostvariti zadaća sustava. Nakon odabira komponenti sustava potrebno je odrediti komunikacijski protokol meďu njima. U ovom projektu koristi se bar kod čitač QuickScan QD 2100 proizvoďača Datalogic čije su specifikacije dane u sljedećem poglavlju. Navedeni bar kod čitač podržava komunikaciju putem četiri sučelja: USB, RS-232, IBM 46xx i tipkovnični (AT, PS/2,..). Iako je dostupni bar kod čitač opremljen kabelom za USB protokol Arduino nije USB host, te je zbog toga izmeďu bar kod čitača i Arduina odabrana komunikacija putem RS-232. Podaci se prenose asinkrono (8 bita), brzinom od 9600 bps, bez handshaking-a i provjere pariteta. Sljedeća veza koju je potrebno uspostaviti je veza izmeďu Arduina i baze podatka odnosno web aplikacije. To je ostvareno putem HTTP protokola. Cjelokupna arhitektura sustava s naznačenim sklopovljem i komunikacijom meďu pojedinim podsustavima prikazana je slikom 4. 7

4. Izvedba sustava Prilikom izrade sustava korišteni su sljedeći sklopovi: Bar kod čitač QuickScan QD 2100 Arduino Duemilanove Arduino Ethernet Shield MAX 232 Navedeni sklopovi, osim bar kod čitača, korišteni su u okviru prošlogodišnjeg projekta Inteligentna kuća u sklopu predmeta Sustavi za praćenje i voďenje procesa, te su njihove karakteristike navedene u sklopu dokumentacija navedenog projekta. Iz tog razloga u ovom će se radu pozornost posvetiti bar kod čitaču. 1.2. Bar kod čitač QuickScan QD 2100 Kao što je navedeno u prethodnom poglavlju za realizaciju projekta koristi se bar kod čitač QuickScan QD 2100 proizvoďača Datalogic. TakoĎer je navedeno da bar kod čitač s Arduinom komunicira putem RS- 232. Kako bi se to omogućilo bar kod je potrebno ispravno spojiti na Arduino, te definirati parametre komunikacije. Bar kod čitač se spaja putem 10 pinskog RJ-45 konektora. Slika 5: Konektor bar kod čitača 8

Napon napajanja bar kod čitača kreće se od 4 do 14 V. Nazivna struja čitača iznosi 340 ma pri naponu napajanja od 5V. Kako Arduino na svojim izlazima može dati maksimalno 40 ma, potrebno je zasebno napajanje za bar kod čitač. Kako ne bi bilo potrebno kupovati napajanje za realizaciju ovog projekta čitač se napaja iz USB priključka osobnog računala. Osim ispravnog spajanja bar kod čitača na Arduino, za ispravnu komunikaciju potrebno je definirati protokol kojim se komunicira, brzinu prijenosa podataka, broj bitova koji se prenose, provjeru pariteta i protokol za uspostavu komunikacije. Navedene stavke u bar kod čitaču definiraju se čitanjem bar koda koji definira proizvoďač. Protokol kojim se komunicira, u ovom slučaju RS-232, odreďuje se čitanjem sljedećeg bar koda. Slika 6: Odabir RS-232 Nakon odabranog protokola potrebno je definirati brzinu prijenosa, u ovom slučaju 9600 bps. Prilikom odabira brzine prijenosa, a i svih preostalih parametara komunikacije potrebno je prvo očitati bar koda koji definira koji se parametar mijenja, a zatim očitati bar kod koji definira taj parametar. Nakon definiranja parametra potrebno je ponovno očitati kod za ulaz/izlaz iz načina rada za definiranje parametra prijenosa. Slika 7: Bar kod za promjenu brzine prijnosa Slika 8: Bar kod za odabir brzine prijenosa od 9600 bps 9

Nakon definirane brzine prijenosa potrebno je definirati broj bitova koji se prenosi, u ovom slučaju osam bitova. Slika 9: Bar kod za promjenu broja bitova Slika 10: Bar kod za odabir osam bitova za prijnos Zatim je potrebno definirati broj stop bitova, u ovom slučaju jedan. Slika 11: Bar koda za promjenu broja stop bitova Slika 12: Bar kod za odabir jednog stop bita Odabir provjere pariteta, u ovom projektu ne koristi se provjera pariteta Slika 13: Bar kod za odabir provjere pariteta Slika 14: Bar kod za odabir prijenosa bez provjere pariteta 10

Još je potrebno definirati rukovanje (handshaking) prilikom uspostave komunikacije. U ovom projektu handshaking se ne koristi. Korišteni bar kod čitač nema način rada koji omogućava rad bez handshaking-a, no postoji način rada pri kojem bar kod čitač postavlja RTS, ali ignorira CTS. Odabirom tog načina i jednostavnim ignoriranjem RTS-a sa strane Arduina dobivamo komunikaciju bez handshaking-a. Slika 15: Bar kod za definiranje handshaking-a Slika 16: Bar kod za odabir komunikacije bez handshaking-a 1.3. Spajanje bar kod čitača na Arduino Pri spajanju bar kod čitača na Arduino prije svega je potrebno obratiti pozornost na naponske razine. Naponske razine koje se koriste prilikom RS-232 komunikacije kreću se u rasponu od -12V do +12V. Digitalni pinovi na Arduinu rade s naponima od 0V do 5V. Iz navedenog se vidi da je naponske razine potrebno prilagoditi. Za prilagodbu naponskih razina koristi se MAX 232 pločica. Ona s jedne strane prima 12 voltne signale s DB9 serijskog priključka i spušta ih na razinu od maksimalno 5V potrebnu za slanje prema Arduinu. U suprotnom smjeru podiže naponsku razinu. Vod sa pina 6 (TX), 10-pinskog RJ-45 konektora spojenog na bar kod čitač, dovodi se na pin 3 muškog DB-9 konektora. Vodovi napajanja bar kod čitača, pin 7 (VCC) i pin 4 (GND), spajaju se na vodove napajanja USB kabela. Muški DB-9 konektor spaja se na MAX 232 pločicu. Pin RX s MAX 232 pločice spaja se na digitalni ulaz 0 (RX) Arduina. Napajanje za MAX 232 dovodi se s Arduina, priključci 5V i GND. Pinovi 1 (RTS), 5 (RX) i 10 (CTS) bar kod čitača ne spajaju se na Arduino je se ne koriste u ovoj aplikaciji. 11

Slika 17: Spajanje bar kod čitača na Arduino 12

1.4. Komunikacija s Web aplikacijom Da bi se omogućila komunikacija Arduina s web aplikacijom za ažuriranje baze podataka potrebno je dodati Arduino Ethernet Shield. Slika 18: Arduino mikrokontroler s Ethernet Shield-om Komunikacija Arduina s web aplikacijom ostvarena je http protokolom. Bar kod čitač se na Ethernet Shield spaja na način opisan u prethodnom poglavlju. 1.5. Odabir ulaza ili izlaza namirnica iz ostave Za svaki proizvod potrebno je definirati unosi li se ili iznosi iz ostave, kako bi se ispravno ažurirala baza podataka. U ovom projektu to je riješeno pomoću preklopke i svjetleće diode. Uključena svjetleća dioda označava da se proizvod iznosi iz ostave. Ukoliko je dioda isključena znači da želimo proizvod unijeti u ostavu te će se sukladno tome nakon očitanja bar koda broj tog proizvoda u bazi povećati. Zajednički izvod preklopke spaja se na digitalni ulaz 3 mikrokontrolera. Od preostala dva izvoda jedan se spaja na masu (GND), a drugi na napajanje (5V). 13

5. Programska podrška za mikrokontroler Kao što je navedeno u uvodnom poglavlju ovaj sustav je dio sustava za brigu o hrani. S obzirom da zasebno sustav za evidenciju namirnica pomoću bar koda nema značajniju funkcionalnost u nastavku se prilaže programska podrška za cjelokupni sustav brige o hrani. Više o tome kako u sustav integrirati vagu ili nešto o aplikaciji za ažuriranje baze podataka pogledati u dokumentacijama Pere Krivića i Olivera Marića. #include <avr/interrupt.h> #include <avr/io.h> #include <Ethernet.h> #include <string.h> #include <stdlib.h> #define BARCODE_SIZE 13 // definianje širine bar kod riječi #define INIT_TIMER_COUNT 6 // definicije za timer #define RESET_TIMER2 TCNT2 = INIT_TIMER_COUNT // ****** deklaracija varijabli za komunikaciju ******************** byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 161, 53, 64, 134 }; byte gw[] = {161, 53, 64, 1}; byte server[] = { 195, 78, 33, 2 }; // My webpage IP byte subnet[] = { 255, 255, 255, 0 }; //****** deklaracija barkod varijabli ******************************** char barcode[barcode_size]; char barcode_key[] = "bar-kod="; char barcode_keyval[8+barcode_size+1] = {0};//bar-kod=$barcode //***** deklaracija varijabli za masu i za timer ********************** const int analoginpin = 0 int sensorvalue = 0; // value read from the sensor float u0=0, ulaz_pojacala; float masa=0; float pomak=1.8,u_most; float k=0.14; // osjetljivost senzora ---> u_most=k*masa+pomak int int_counter = 0; //***** deklaracija varijabli za ulaz/izlaz *************************** int ledpin = 5; int testpin=3; 14

//***** funkcija za računanje mase proizvoda i njeno slanje na web **** ISR(TIMER2_OVF_vect) { RESET_TIMER2; int_counter += 1; if (int_counter == 5000) { sei(); int_counter = 0; sensorvalue = analogread(analoginpin); // pretvori ga u ekvivalentnu vrijednost 0-5 V: u0=(float)sensorvalue*5/1024; // Volts ulaz_pojacala=u0*10; // milivolts u_most=ulaz_pojacala-pomak; if (u_most<0) { u_most=0; } masa=(u_most)/k; // osjetljivost = 0.14 // funkcija koja šalje podatak o masi // pretpostavljamo da je bar kod tog proizvida nepromijenjiv Ethernet.begin(mac, ip, gw, subnet); Client client(server, 80); delay(1000); client.connect(); //slanje http zahtjeva client.print("gethttp://www.beata.hr/azuriranje.php?barkod=1234123412345&masa="); } }; client.print(masa); Serial.println(masa); client.println(" HTTP/1.1"); client.println("host: www.beata.hr"); client.println(); client.flush(); client.stop(); void setup() { Serial.begin(9600); // setup serijske veze pinmode(testpin, INPUT); pinmode(ledpin, OUTPUT); // ******* setup timera ***** //Timer2 Settings: Timer Prescaler /64, TCCR2A = (1<<CS22); // turn on CS22 bit TCCR2A &= ~((1<<CS21) (1<<CS20)); // turn off CS21 and CS20 bits // Use normal mode TCCR2A &= ~((1<<WGM21) (1<<WGM20)); // turn off WGM21 and WGM20 bits // Use internal clock - external clock not used in Arduino ASSR = (0<<AS2); TIMSK2 = (1<<TOIE2) (0<<OCIE2A); //Timer2 Overflow Interrupt Enable RESET_TIMER2; sei(); } 15

Fotografije void loop() sustava { int i = 0; while(true) { if(digitalread(testpin)==low){ Literaturu i reference se navodi u posebnom poglavlju na način prikazan u ovom primjeru. digitalwrite(ledpin, Primjer citiranja knjige LOW); koja ima do tri autora Error! Reference } source else{ not found.. Primjer citiranja knjige koja ima četiri i više autora Error! digitalwrite(ledpin, Reference source HIGH); not found.. Primjer citiranja knjige koja nema } podatak o autoru Error! Reference source not found.. Primjer citiranja poglavlja if(i == u BARCODE_SIZE) knjizi 0. Primjer break; citiranja rada u časopisu Error! Reference if(serial.available() > 0) barcode[i++]=serial.read(); source not found.. Primjer citiranja rada u zborniku Error! Reference } source send_to_webserver(); not found.. Primjer citiranja rada na Internetu s podacima o autoru Serial.flush(); i naslovu rada Error! Reference source not found.. Primjer } citiranja teksta na Internetu bez informacije o autoru i naslovu Error! Reference //***** funkcija source za not slanje found.. bar koda Primjer na web citiranja ***** mrežnih stranica Error! int send_to_webserver(){ Reference source not found.. Ethernet.begin(mac, ip, gw, subnet); Unutar glavnog teksta referenca na literaturu ugraďuje se Client client(server, 80); client.connect(); automatski korištenjem naredbe INSERT->REFERENCE->CROSS- REFERENCE s postavljenim parametrima Numbered Item i Paragraph delay(1000); //This one keeps it from hanging number te odabirom navedene literature čiju referencu želimo umetnuti, //formatiranje podatka kako za je prikazano slanje u gornjem odlomku. strcpy(barcode_keyval, barcode_key); strncpy(barcode_keyval + strlen(barcode_key), barcode, BARCODE_SIZE); //slanje http zahtjeva client.print("get http://www.beata.hr/azuriranje.php?"); Reference se navode abecednim redoslijedom po prezimenu prvog navedenog autora. client.print(barcode_keyval); if(digitalread(testpin)==low) { client.print("&ulaz=1"); } if(digitalread(testpin)==high){ client.print("&izlaz=1"); } //ako 0 proizvod ulazi, LED ugasena //ako 1 proizvod ilazi, LED upaljena client.println(" HTTP/1.1"); client.println("host: www.beata.hr"); client.println(); client.flush(); client.stop(); return 0; } 16

6. Fotografije sustava Slika 19: Sustav za evidenciju namirnica u ostavi Slika 20:Sustav za evidenciju namirnica u ostavi za vrijeme mjerenja 17

7. Zaključak U radu je ostvareno ažuriranje baze podataka o količini namirnica u ostavi pomoću bar koda. Projekt se u konačnici sastoji od dvije cjeline. Čitanja bar koda s proizvoda i komunikacije bar kod čitača s Arduinom te ažuriranja baze podataka pomoću Internet aplikacije. Time je omogućen uvid u količinu namirnica u ostavi, s bilo kojeg mjesta koji ima pristup Internetu. Samim time znatno je olakšan odlazak u kupovinu ili narudžba namirnica putem Interneta. Nedostatak sustava je ne mogućnost automatskog dodavanja nove namirnice u sustav. Razlog tome je činjenica što se iz bar koda može pročitati o kojem se proizvodu radi, jedino ako nam proizvoďač tog proizvoda ili prodavaonica u kojoj smo kupili proizvod da uvid u svoju bazu podataka. Drugi način je izraditi svoju bazu proizvoda, za što naravno treba vremena. Treći način je izdavanje digitalnog računa iz kojeg bi sustav onda mogao preuzeti podatke o proizvodu koji se unosi u skladište. Daljnji razvoj sustava moguć je upravo u tom smjeru, odnosno u osmišljavanju načina pomoću kojeg bi bilo moguće bilo koju namirnicu unijeti u sustav bez potrebe ručnog upisa naziva namirnice. 18

8. Literatura [1] Arduino Duemilanove, URL: http://arduino.cc/en/main/arduinoboardduemilanove (2010-5-15) [2] Arduino Ethernet Shield, URL: http://arduino.cc/en/main/arduinoethernetshield (2010-5-15) [3] Arduino Software, URL: http://arduino.cc/en/main/software (2010-5-15) [4] Poslovni forum, EAN bar kod. URL: http://www.poslovniforum.hr/tp/barcode.asp (2010-5-15) [5] Kristina, Bashota; Vedran Koruga. BAR KOD. Seminarski rad Podatkovni višemedijski prijenos i računalne mreže. Siječanj 2008. [6] Bar kod. URL: http://www.makebarcode.com/info/info.html [7] DATALOGIC, QuickScan QD2100 General Purpose Corded Handheld Linear Imager Bar Code Reader, Product Reference Guide. URL: https://easeofaccess.scanning.datalogic.com/public/marketlit/send.aspx?file=r44-2933a 19

9. Pojmovnik Pojam Kratko objašnjenje Više informacija potražite na handshaking RJ-45 konektor U modemskoj komunikaciji označava postupak uspostave i provjere komunikacijskih parametara prije početka slanja podataka. Odrenuje se prema CTS,RTS, DTR, DSR i DCD signalima Standardni utikač za UTP kabel http://en.wikipedia.org/wiki/handshaking http://hr.wikipedia.org/wiki/rj-45 UTP Neoklopljena upletena parica http://en.wikipedia.org/wiki/twisted_pair USB Univerzalna serijska sabirnica http://hr.wikipedia.org/wiki/usb HTTP protokol za komunikaciju http://hr.wikipedia.org/wiki/http izmeďu poslužitelja (servera) i klijenta bps Bita u sekundi http://en.wikipedia.org/wiki/bits_per_second 20