24
Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“. Za razumijevanje rada potrebno je poznavanje osnova elektroničke instrumentacije. Čitatelj će biti upoznat s principima efikasnog i inteligentog sustava za skrb o namirnicama. SEMINARSKI RAD - SPVP 19. lipanj 2010

Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Pero Krivić 0036431107

Ovaj seminarski rad dio je „Sustavaza brigu o hrani“.

Za razumijevanje rada potrebno je poznavanje osnova elektroničke instrumentacije.

Čitatelj će biti upoznat s principima efikasnog i inteligentog sustava za skrb o namirnicama.

SEMINARSKI RAD - SPVP

19. lipanj 2010

Page 2: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

2

Sažetak

U ovom radu opisuje se primjena suvremenih tehnologija u svakodnevnom životu posebice u prehrani i skrbi o namirnicama. Mjerni uređaj za evidenciju količine prehrambenih namirnica dio je „Sustava za brigu o hrani“ u projektnom radu „Inteligentna kuća“. Mjerni uređaj je izveden kao digitalna vaga koja mjeri i pohranjuje podatak o masi određene namirnice. Preko web aplikacije ažurira se stanje svakog artikla u spremištu hrane u kući, koje je na isti način dostupno i korisniku i glavnom računalu kuće. Ideja radi koje se razvija ovakav sustav je integrirati mnoštvo mjernih uređaja u spomenutom spremištu kako bi se omogućilo individualno mjerenje količine svake pojedine namirnice u kući. Na taj način ukućani bi imali uvijek pristup svim namirnicama, bez straha ili brige da je pojedine namirnice nestalo. Također „Sustav za brigu o hrani“ pobrinuo bi se o evidenciji kemijskog sadržaja svake namirnice, kao i o valjanosti iste. Eventualne prepreke daljnjem razvoju ovakvog sustava su složenost ugradnje mjernog uređaja za jako veliki broj artikala, te umrežavanje istih mjernih uređaja.

Sadržaj

1. UVOD ............................................................................................................ 3

2. FIZIKALNA POZADINA ZA IZRADU MJERNOG UREĐAJA ........................................ 4

2.1. Naprezanje čvrstog tijela ........................................................................... 4

2.2. Izvedbe tenzometra.................................................................................. 5

3. ELEKTRONIČKO SKLOPOVLJE TENZOMETRA ....................................................... 8

3.1. Teorija elektroničkog pojačala .................................................................... 8

3.2. Izvedba sklopovlja ................................................................................... 9

4. PROGRAMSKA PODRŠKA MJERNOG UREĐAJA ....................................................11

4.1. Proračun mase .......................................................................................11

4.2. Glavna i prekidna rutina ...........................................................................12

5. REZULTATI I NEDOSTACI ................................................................................16

6. ZAKLJUČAK ...................................................................................................19

7. LITERATURA..................................................................................................20

8. DODATAK .....................................................................................................21

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.

Page 3: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

3

1. Uvod

U modernim kućanstvima, restoranima, hotelima, velikim imanjima teško je voditi brigu o prehrambenim namirnicama. Pod „briga“ podrazumjevaju se pitanja: „Imam li dovoljno namirnica u kući?“, „Čega sve imam, a što mi nedostaje?“, „Koliko mi je potrebno te i te namirnice“, „Jeli ova namirnica dobra za moje zdravstveno stanje?“, „ Jeli ovoj namirnici istekao rok trajanja?“ i sl. Svima je poznato koliko vremena je potrebno za odgovoriti na sva ova pitanja, kao i koliko vremena oduzme odlazak u obiteljsku kupovinu velike količine namirnica.

Sustav za brigu o hrani namjenjen je prvenstveno tome da ukućanima olakša ovaj posao. Skoro cjelokupnu brigu o namirnicama u Inteligentnoj kući vodilo bi središnje računalo, koje bi se ponašalo kao web-server, a kojem ukućani imaju pristup. Mjerni uređaj je izveden kao digitalna vaga koja mjeri i pohranjuje podatak o masi određene namirnice. Preko web aplikacije ažurira se stanje svakog artikla u spremištu hrane u kući, koje je na isti način dostupno i korisniku i glavnom računalu kuće.

Mjerni sustav, tj., digitalna vaga sastoji se od elektroničkog sklopovlja i programske podrške za centralni mikrokontroler (Arduino). Elektroničko sklopovlje podrazumjeva sve elemente mjernog lanca:

• Senzor naprezanja ugrađen u posebno dizajniran skelet. (Senzor će biti spojen u mjerni most)

• Instrumentacijsko pojačalo, kao sklopovlje za prilagodbu signala s mosta

• Analogno digitalni pretvornik • Mikrokontroler koji preocesuira i proslijeđuje dobivene podatke

o masi na glavno računalo (PC) putem IP protokola. I AD pretvornik i mikrokontroler ugrađeni su Arduino razvojnu platformu, koja se koristi na ovom projektu.

Page 4: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

4

2. Fizikalna pozadina za izradu mjernog uređaja

2.1. Naprezanje čvrstog tijela

Ideja za izradu mjernog uređaja za evidenciju količine prehrambenih namirnica (u daljnjem tekstu: digitalna vaga) javila se iz poznavanja osnovnih fizikalnih principa za mjerenje naprezanja. Naime, određeno tijelo, u ovom slučaju namirnica, svojom težinom opisanom kao :

F = m·g,

napreže metalnu konstrukciju (Slika 1) .

Slika 1: Naprezanje metalne konstrukcije

Naprezanje je definrano kao djelovanje sile na površinu kao:

. Posljedica naprezanja je deformacija ili relativno produljenje ε, koja može biti radijalna i longitudinalna:

,

U skladu s Hookeovim zakonom naprezanja, deformacija je do granica elastičnosti linearno razmjerna naprezanju po formuli:

Page 5: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

5

, gdje je E Youngov modul elastičnosti. Otpornik, koji se koristi u ovom mjerenju, izrazito je podložan deformacijama te prilikom promjena dimenzija, on mijenja i vlastiti električni otpor:

. Razlaganjem ovih diferencijalnih veličina dobije se izraz:

.

gdje je K konstantan faktor linearne ovisnosti o produljenju. Konačno dobijemo ovisnost relativne promjene otpora po izrazu:

.

2.2. Izvedbe tenzometra

Iako se iz prethodne formule vidi linearna ovisnost promjene otpora, u mjeriteljstvu se ipak ne koristi direktno mjerenje sa jednog otpornika. Umjesto toga, više takvih otpornika se poveže u spoj zvan mosni spoj ili Wheatstoneov most (Slika 2), kako bi se na njegovim dijagonalama dobila što linearnija ovisnost napona dijagonale ∆U o promjeni otpornika δR.

Slika 2: Mosni spoj promjenljivog otpornika

Page 6: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

6

Napon na dijagonali mosnog spoja tada je jednak:

, .

Napon na dijagonali je diferencijalan i oslobođen električkih smetnji prisutnih u okolini mosta. Iz ovoga vidimo da se vrlo točno može dobti vrijednost mase tijela koja vrši naprezanje, jer napon na dijagonali linearno ovisi o njoj. Promjenljivi otpornici izrađuju se u obliku plosnatih trakica i kao takvi osiguravaju veliku preciznost i osjetljivost (Slika 3).

Slika 3: Promjenljivi otpornik za mjerenje naprezanja

Ovi otpornici, tj. sam Wheatstoneov most lijepe se na fino baždarenu čeličnu konstrukciju prikazanu slikom 4 (Slika 4). Ova konstrukcija, jako osjetljiva na naprezanje, vrlo točno prenosi silu na zalijepljene otpornike.

Page 7: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

7

Slika 4: Metalna konstrukcija za ugradnju tenzometra

Zbog svoje fine gradnje, ovakve konstrukcije vrlo teško nabavljive i jako skupe. Koriste se u preciznoj instrumentaciji kao što je npr. biomedicinska oprema. Upravo takva jedna konstrukcija korištena je u ovom seminaru, a zadužena je iz laboratorijske opreme Zavoda za elektroničke sustave i obradbu informacija (Slika 5). Tehničke specifikacije korištenog tenzometra nalaze se u popisu literature.

Slika 5: Skelet tenzometra

Page 8: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

8

3. Elektroničko sklopovlje tenzometra

3.1. Teorija elektroničkog pojačala

Pošto je signal s dijagonale mosta jako malen (reda veličine 1 mV), potrebno ga je dovesti na ulaz pojačala (Slika 6). Izlaz tog pojačala dat će napon u vrijednosti koja se standardnom opremom i komercijalnim AD pretvornikom lako može očitati, obraditi i prenijeti korisniku. U ovom slučaju potreno pojačanje je oko 100.

Slika 6: Spoj mjernog mosta s pojačalom

No izlaz iz pojačala neće biti idealno pojačan napon s mosta. Zbog prisutnih statičkih nesavršenosti javit će se sljedeće pogreške:

• Ulazni naponi i struje pomaka • Šum i smetnje iz okoline • Pojava zajedničkog napona na izlazu.

Dinamičke nesavršenosti nećemo razmatrati jer prepostavljamo da mjerni signal pripada istosmjernom (DC) području. Od svih ovih nesavršenosti najviše problema stvorit će zajednički napon na izlazu. Zajednički napon (eng. common mode) posljedica je napona napajanja mosta, U0. Taj napon se javlja kao aritmetička sredina napona dviju priključnica, dok se diferencijalni napon (željeni napon) javlja kao njihova razlika. Zbog unutrašnje građe pojačala, zajednički će se napon vidjeti na izlazu. Ovisno o vrsti pojačala ta će pojava biti više ili manje izražena. Karakteristika pojačala koja određuje tu izraženost zove se faktor potiskivanja zajedničkog napona, CMRR (eng. common mode rejection ratio). U instrumentaciji je poznato da najbolja svojstva za gušenje zajedničkog napona ima sklop koji se zove instrumentacijsko pojačalo. Riječ je sklopu

Page 9: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

9

koji se sastoji od 3 klasična pojačala povezana na način da izrazito pojačavaju diferencijalni napon, a prigušuju zajednički (Slika 7).

Slika 7: Instrumentacijsko pojačalo

3.2. Izvedba sklopovlja

Već je spomenuto kako je na seminarskom radu korišten tenzometar sa ZESOI-a. Kao instrumentacijsko pojačalo izabran je AD623 u µSOIC kućištu. Riječ je o pojačalu koje se odlikuje velikim faktorom potiskivanja (80 dB) te niskim ulaznim naponom pomaka (200 µV). Još je jedan, jako bitan, razlog izbora ovoga pojačala. Naime, većina pojačala svoj izlaz daje u odnosu na neki referentni potencijal, koji nije 0 (GND). No, analogno digitalni pretvornik koji je ugrađen na Arduino platformu, koja se koristi na ovom projektu, omogućuje samo asimetričan ulaz, odn. ulaz u odnosu na GND potencijal. AD623 je jedno od rijetkih pojačala koje daje svoj izlaz u asimetričnom spoju. Zamjena za to je nemogućnost očitavanja negativnih diferencijalnih napona – izlaz može biti samo u rasponu GND - +Ucc. No, to nije od velike važnosti, pošto bi takav napon na dijagonali mosta izazvala promjena „u suprotnom smjeru“ odn. djelovanje sile suprotnog smjera na metalnu konstrukciju. Takvo što nema potrebe razmatrati u aplikaciji digitalne vage. Pojačalo je napajano naponom od 5V koji je doveden s Arduino platforme. Time je omogućena kompaktna ugradnja tiskane pločice koja povezuje tenzometar s Arduinom, što je bila jedna od početnih želja projektnog zadatka.

Page 10: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

10

Slika 8: Digitalna vaga: tenzometar, pojačalo i Arduino platforma

Nadalje, kako zbog različitih utjecaja (temperatura, ulazni otpor pojačala) otpornici u granama mosta neće biti jednaki u trenutku kad nema naprezanja, potrebno je napraviti kompenzaciju mosta. U trenutku kad nema naprezanja, tj., kad nema prisutne mase na digitalnoj vagi, za očekivati je da prema formuli:

, napon ∆U bude 0. Zbog gore spomenutih razloga doći će do razgođenja mosta, i taj napon će biti različit od 0. Zato je potrebno na jednu od ulaznih priključnica pojačala dodati naponsko djelilo napona napajanja. To djelilo se izvodi trimmer otpornikom. Struje koje poteku uslijed dodanog napona, ručno se namještaju dok ne ponište napon pomaka s ulaza. U realnim aplikacijama ova kompenzacija se rijetko izvodi ručno, a sve češće automatski. U tu svrhu koriste se različita auto-zero pojačala ili čak automatska kompenzacija digitalnim sklopovljem. Ne treba ni napominjati kako su oba rješenja znatno skuplja od izvedenog. Nadalje, kako se u ovoj primjeni očekuje postavljanje tenzometra u okolinu relativno nepromjenljive temperature, jednom kad se sklop kompenzira sva razgođenja mosta bit će dosta dugo zanemariva. Iz tog razloga, možemo reći da je izvedeno rješenje zadovoljavajuće.

Page 11: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

11

4. Programska podrška mjernog uređaja

4.1. Proračun mase

Page 12: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

12

Nakon što je signal, koji linearno ovisi o masi signala, doveden na ulaze AD pretvornika potrebno je provesti digitalnu obradu. Signal je doveden na 10-bitni AD pretvornik koji koristi sukcesivnu aproksimaciju. Referentna naponska razina je napajanje cijele Arduino platforme, i iznosi 4.5 V. To znači da je jedna kvantizacijska razina, ULSB , jednaka:

ULSB = Ucc / 210 = 0.0043V = 4.3 mV. Kako u registru u koji se pohranjuje vrijednost AD pretvorbe može biti samo cjelobrojna vrijednost iznosa 0 – 1023, to je potrebno tu vrijednost pomnožiti s vrijednošću kvantizacijske razine, ULSB. Rezultat je kvantizirani napon sa izlaza pojačala. Kvantizirani napon je potrebno „prevesti“ u napon s mosta kako bi se pomoću osjetljivosti moglo doći do mase na vagi. Drugim riječima:

∆U = Umost = Upoj/A [V] = Upoj/A*1000 [mV]. Masa se tada lako izračuna iz relacije: ∆U = k* m, gdje je k osjetljivost tenzometra. Ova osjetljivost direktno ovisi o naponu napajanja i proizvođač ju ne može eksplicitno izdati. Stoga ju je potrebno eksperimentalno odrediti.

4.2. Glavna i prekidna rutina

Page 13: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

13

Dobiveni podatak o masi tada se upakira u IP protokol i šalje na web aplikaciju, što je obrađeno u projektnom zadataku „Evidencija namirnica pomoću bar koda“ i „Aplikacija za ažuriranje podataka o hrani“, u sklopu projekta „Sustav za brigu o hrani“. Osim toga, podatak o masi šalje se i na serijski izlaz Arduino platforme i preko USB protokola dostupan je na brzini od 9600 bauda. Čitanje stanja s pojačala izvodi se svakih 5 sekundi i proslijeđuje na serijski izlaz. No s obzirom da u glavnoj rutini („beskonačnoj petlji“ ) nije jednostavo očitavati stanje s vage, jer u njoj ordinira bar-kod čitač, potrebno je osigurati periodičko čitanje mase bez ometanja njegovog rada. U tu svrhu upogonjen je Arduinov brojač (timer). Riječ je o standardanom logičkom brojaču koji, u trenutku kad se dogodi preljev, generira prekid. Od ukupno 2 brojača na mikrokontroleru ATMega168, zbog svoje razlučivosti, koristi se brojač TIMER2. Brojač je postavljen tako da generira 1000 impulsa, tj. preljeva u sekundi. Nakon svakog impulsa, program ulazi u prekidnu rutinu. U prekidnom potprogramu varijabla int_counter broji do 5000. Nakon, što je dosegnut broj 5000, varijabla se resetira, program počinje očitavati stanje s AD pretvornika. Time je osigurano očitavanje mase svakih 5 s, bez ometanja rada bar-kod čitača. Programski kod dan je u nastavku:

Page 14: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

14

#define INIT_TIMER_COUNT 6

#define RESET_TIMER2 TCNT2 = INIT_TIMER_COUNT

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;

// Prekidni potprogram

// Arduino runs at 16 Mhz, so we have 1000 Overflows per second...

// 1/ ((16000000 / 64) / 256) = 1 / 1000

ISR(TIMER2_OVF_vect)

RESET_TIMER2;

int_counter += 1;

if (int_counter == 5000)

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

// Na serijski izlaz ispiši vrijednost u 4 decimale

Serial.print("sensor = " );

Serial.print(u0,4);

Serial.print(" mV \t" );

Serial.print("masa = " );

Serial.print(masa);

Serial.print(" kg \n\r " );

;

void setup()

Serial.begin(9600);

//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();

void loop()

;

// Glavna rutina

Page 15: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

15

Nakon početnih deklaracija, opisan je rad prekidnog potprogama. Odsječak sadržaja: služi za programsku kompenzaciju napona pomaka. Zbog različitih smetnji kojima je senzor podložan (opisanih u Poglavlju 5), potrebno je osigurati da pri odsustvu mase program ne javlja pogrešne rezultate. U funkciji void setup(); postavljaju se parametri serijskog prijenosa i prekidnog brojača. Kompletan prikaz cijelog koda koji podatak o masi šalje na web aplikaciju dan je u Dodatku.

Slika 9: Prikaz podataka na serijskom sučelju

u_most=ulaz_pojacala-pomak;

if (u_most<0)

u_most=0;

Page 16: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

16

5. Rezultati i nedostaci

Tokom rada na projektu došlo je do uništavanja pojačala AD623. Intervencija za uspješnim privođenjem projekta kraju podrazumjevala je korištenje novog pojačala, ali i cijele nove pripadne pločice [4]. Tako da je na kraju izlaz tenzometarskog mosta doveden na pojačalo INA122, koje ima karakteristike slične AD623.

Slika 10: Konačna izvedba sustava za brigu o hrani: digitalna vaga i bâr-kod čitač

Prve poteškoće koje su naišle vezane su uz kompenzaciju razgođenja mosta. Naime, trimmer za kompenzaciju, početne vrijednosti 1 kΩ, nije u mogućnosti kompenzirati razgođenje ispod 1.8 mV. Stoga se ova kompenzacija izvodi programski (Dodatak). Pojačanje koje najbolje prilagođava napon mosta AD-pretvorbi, eksperimentalno je utvrđeno i iznosi 100. Eksperimentalno je utvrđena i osjetljivost senzora, te ona iznosi 0.14 mV/kg, pri Ucc = 4.5V. Tokom rada utvrđeno da početna ideja, da se cijelo sklopovlje napaja iz USB priključka, nije dobra iz razloga što je napon napajanja USB priključka nestabilan. Zbog toga se mogu javiti sitne turbulencije i

Page 17: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

17

odstupanja u izlaznim podacima. Naknadno je napajanje dovedeno iz vanjskog izvora, što je dosta ustabililo rezultate mjerenja. Zbog ovako niske osjetljivosti i razlučivosti AD pretvornika, nije moguće ostvariti mjerenja manjih količina namirnica. Pod tim se misli da se na izlazu ne mogu dobiti podaci o masi manjoj od 0.2 kg. Eventualne preinake koje bi se provele u svrhu poboljšanja rada uređaja odnose se u prvom redu na povećanje osjetljivosti tenzorskog mosta, što se postiže većim naponom napajanja samog mosta. Nakon toga, potrebno je povećati razlučivost AD pretvornika kako bi se mogle očitavati manje veličine. Ostatak sklopovlja je izrađen u skladu sa mjeriteljskim standardima i zbog toga je njegov rad ispravan i adekvatan za ovu primjenu.

Slika 11: Sustav za brigu o hrani „na djelu“

Cjelokupan Sustav za brigu o hrani radi na slijedeći način: sustav je u mirnom načinu rada dok ne dođe signal iz okoline. Taj signal podrazumjeva ulazak osobe/ukućana u spremište hrane. Ukućanin sklopkom najavljuje namjerava li iznositi ili unositi hranu u spremište. Tada bâr-kod čitač pokušava detektirati bâr-kod oznaku na određenoj

Page 18: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

18

namirnici. Nakon što ju detektira, Arduino podatak o oznaci i ulaznoj sklopki proslijeđuje web-aplikaciji, koja automatski ažurira stanje za očitani proizvod. U međuvremenu, digitalna vaga, periodički svakih 5 s očitava vrijednost mase, koju Arduino također proslijeđuje na web. Rezultati ažuriranja dostupni su ukućanima i agentu za internet kupovinu na http://www.beata.hr/azuriranje.php.

Page 19: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

19

6. Zaključak

Kao konačan produkt ovog rada dobiven je izrazito kvalitetan sklop

za evidenciju količine prehrambenih namirnica. Osjetljivost tenzometra i njegova razlučivost uzrok su velikoj robusnosti samog uređaja, što ga čini izrazito primjenjivim u kućanstvima koja koriste razvijen sustav za skrb o namirnicama. Unatoč nedostacima koja su opisana u prethodnom poglavlju, sklop tvori praktično rješenje za evidenciju količine hrane – besprijekorno će dati uvid u raspoloživo stanje hrane. Ovim će svaki ukućanin, a i sama Inteligenta kuća moći reagirati na nestanak pojedine namirnice, odn. na nabavljanje iste. Konačno, podatak o masi pojedine namirnice dostupan je i svakom drugom podsustavu unutar kuće, jer Sustav za brigu o hrani ima pristup lokalnoj mreži (LAN) kuće.

Slijedeći koraci u razvoju ovog projekta bili bi:

1. Postavljanje mjernih uređaja za više vrsta namirnica 2. Stvaranje algoritma za obradu prikupljenih podataka od više

mjernih uređaja 3. Robotizacija i automatizacija postrojenja za dohvat/spremanje

namirnica u skladište. 4. Povezivanje sa sustavom za govorno upravljanje

Page 20: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

20

7. Literatura

[1] Type CPB Load Cell Datasheet, Flintec Inc.

[2] Single Supply, Rail-to-Rail, Low Cost Instrumentation Amplifier AD623 Datasheet, Analog Devices.

[3] Vlahek, P. Mjerno sklopovlje elektroničke vage za biomehanička mjerenja, FER, Zagreb, 2009.

[4] Blaženović, R. Pojačalo signala tenzometarskih pretvornika, FER, Zagreb, 2009.

[5] Škarica, A., Sović, I. Ethernet i IP komunikacija. FER, Zagreb, 2009.

[6] Atmel 8-bit Microcontroller with 8K Bytes In-System Programmable Flash ATmega168/V

[7] www.arduino.cc

Page 21: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

21

Pojmovnik

Pojam Kratko objašnjenje Više informacija potražite

na

Tenzometar Uređaj za mjerenje naprezanja krutih

tijela. U ovom radu korišten je za mjerenje mase.

Osnove elektroničkih mjerenja i instrumentacije

Instrumentacijsko pojačalo

Elektroničko pojačalo za mjerenje malih diferencijalnih napona, s jako velikim

CMRR-om INA122, AD623 Datasheet

8. Dodatak

Page 22: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

22

Programski kod sustava za brigu o hrani #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;

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;

//***** funkcija za posluživanje prekida i računanje mase proizvoda te 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

Page 23: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

23

// 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("GET http://www.beata.hr/azuriranje.php?bar-

kod=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();

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 *****

Page 24: Pero Krivić SEMINARSKI RAD - SPVP 0036431107studenti.zesoi.fer.hr/pametne-kuce/Studenti/2010/pkrivic...Pero Krivić 0036431107 Ovaj seminarski rad dio je „Sustava za brigu o hrani“

Mjerni uređaj za evidenciju količine prehrambenih namirnica

24

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;