Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Darko Šaponja
0036428755
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
SEMINARSKI RAD - SPVP
18. lipanj 2010
Evidencija namirnica pomoću bar koda
2
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.
Evidencija namirnica pomoću bar koda
3
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.
Evidencija namirnica pomoću bar koda
4
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
Slika 1: Primjer EAN 13 bar koda
EAN 13 struktura bar koda (12+1) Kontrolna znamenka
N1N2N3N4N5N6N7N8N9N10N11N12 N13
Evidencija namirnica pomoću bar koda
5
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.
Evidencija namirnica pomoću bar koda
6
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).
Evidencija namirnica pomoću bar koda
7
3. Specifikacije i arhitektura sustava
Cilj ovog projekta je izraditi sustav koji će omogućiti evidenciju
namirnica u ostavi pomoću bar koda.
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.
HTTP
RS-232
Arduino
Bar kod
čitač
Web
aplikacija
Slika 4: Arhitektura sustava
Evidencija namirnica pomoću bar koda
8
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
Evidencija namirnica pomoću bar koda
9
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
Evidencija namirnica pomoću bar koda
10
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
Evidencija namirnica pomoću bar koda
11
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.
Evidencija namirnica pomoću bar koda
12
Slika 17: Spajanje bar kod čitača na Arduino
Evidencija namirnica pomoću bar koda
13
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).
Evidencija namirnica pomoću bar koda
14
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;
Evidencija namirnica pomoću bar koda
15
//***** 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();
}
Evidencija namirnica pomoću bar koda
16
Fotografije sustava
Literaturu i reference se navodi u posebnom poglavlju na način prikazan u ovom primjeru.
Primjer citiranja knjige koja ima do tri autora Error! Reference source not found.. Primjer citiranja knjige koja ima četiri i više autora
Error! Reference source not found.. Primjer citiranja knjige koja nema
podatak o autoru Error! Reference source not found.. Primjer citiranja poglavlja u knjizi 0. Primjer citiranja rada u časopisu Error! Reference
source not found.. Primjer citiranja rada u zborniku Error! Reference
source not found.. Primjer citiranja rada na Internetu s podacima o
autoru i naslovu rada Error! Reference source not found.. Primjer
citiranja teksta na Internetu bez informacije o autoru i naslovu Error! Reference source not found.. Primjer citiranja mrežnih stranica Error!
Reference source not found..
Unutar glavnog teksta referenca na literaturu ugraĎuje se automatski korištenjem naredbe INSERT->REFERENCE->CROSS-
REFERENCE s postavljenim parametrima „Numbered Item“ i „Paragraph
number“ te odabirom navedene literature čiju referencu želimo umetnuti, kako je prikazano u gornjem odlomku.
Reference se navode abecednim redoslijedom po prezimenu prvog navedenog autora.
void loop()
{
int i = 0;
while(true)
{
if(digitalRead(testpin)==LOW){
digitalWrite(ledpin, LOW);
}
else{
digitalWrite(ledpin, HIGH);
}
if(i == BARCODE_SIZE) break;
if(Serial.available() > 0) barcode[i++]=Serial.read();
}
send_to_webserver();
Serial.flush();
}
//***** funkcija za slanje bar koda na web *****
int send_to_webserver(){
Ethernet.begin(mac, ip, gw, subnet);
Client client(server, 80);
client.connect();
delay(1000); //This one keeps it from hanging
//formatiranje podatka za slanje
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?");
client.print(barcode_keyval);
if(digitalRead(testpin)==LOW) { //ako 0 proizvod ulazi, LED ugasena
client.print("&ulaz=1");
}
if(digitalRead(testpin)==HIGH){ client.print("&izlaz=1"); //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;
}
Evidencija namirnica pomoću bar koda
17
6. Fotografije sustava
Slika 19: Sustav za evidenciju namirnica u ostavi
Slika 20:Sustav za evidenciju namirnica u ostavi za vrijeme mjerenja
Evidencija namirnica pomoću bar koda
18
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.
Evidencija namirnica pomoću bar koda
19
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
Evidencija namirnica pomoću bar koda
20
9. Pojmovnik
Pojam Kratko objašnjenje Više informacija potražite na
handshaking 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
http://en.wikipedia.org/wiki/Handshaking
RJ-45 konektor Standardni utikač za UTP kabel
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 izmeĎu poslužitelja (servera) i klijenta
http://hr.wikipedia.org/wiki/HTTP
bps Bita u sekundi http://en.wikipedia.org/wiki/Bits_per_second