You are on page 1of 46

VELEUČILIŠTE U RIJECI

Josip Komparić

REALIZACIJA SMS PČELARSKE VAGE


(završni rad)

Rijeka, 2014.
VELEUČILIŠTE U RIJECI
Stručni studij Telematike

REALIZACIJA SMS PČELARSKE VAGE


(završni rad)

MENTOR STUDENT

Ivan Grakalić, pred. Josip Komparić

MBS: 2427005352/11

Rijeka,rujan 2014.
SAŽETAK

U ovome radu opisana je realizacija SMS pčelarske vage na platformi Arduino. U


radu se upoznajemo sa osnovama pčelarstva, pčelinjih proizvoda te pčelarskog alata i pribora.
Pčelarska vaga je dio osnovnog alata pčelara. Zbog niske cijene za potrebe ovoga rada
korišteni su senzori iz kućne vage, pa sada osim mjerenja težine ova vaga mjeri i temperaturu
i vlagu. Podatke proslijeđuje putem GSM mreže na mobitel. Vrlo ju je lako nadograditi
različitim senzorima kakvih za Arduino ima obilje. Omogućuje svakom pčelaru nadzor
pčelinjaka na daljinu što mu predstavlja značajnu uštedu vremena i novaca. Kako u većini
slučajeva u pčelinjaku nema mrežnog priključka vagi je bilo potrebno izraditi napajanje preko
baterije.

Ključne riječi: pčelarska SMS vaga, Arduino, mjerenje težine, mjerenje temperature i vlage
SADRŽAJ

1. UVOD ................................................................................................................................................. 1
2. PČELARSTVO ................................................................................................................................... 3
2.1. Pčelinji proizvodi ......................................................................................................................... 4
2.2. Pčelarski pribor i oprema ............................................................................................................. 5
2.2.1. Pčelarska vaga ....................................................................................................................... 5
3. KOMPONENTE SUSTAVA .............................................................................................................. 8
3.1. Arduino......................................................................................................................................... 8
3.1.1. Arduino Uno .......................................................................................................................... 9
3.1.2 Arduino IDE ......................................................................................................................... 10
3.2. Senzor temperature i vlage ......................................................................................................... 11
3.3. GPRS/GSM Shield ..................................................................................................................... 12
3.4. Mjerni pretvornici težine ............................................................................................................ 15
4. PREGLED KORIŠTENIH KODOVA .............................................................................................. 17
4.1. Primjer koda za DHT senzor ...................................................................................................... 17
4.2. Opis koda za provjeru spajanja na mrežu GPRS/GSM shielda .................................................. 18
4.3. Opis koda koji prima vrijednosti mjernih pretvornika težine ..................................................... 19
4.4. Opis koda za kontrolu LCD zaslona........................................................................................... 20
5. OPIS RADA SUSTAVA................................................................................................................... 22
5.1. Shema i opis strujnog kruga mjernih pretvornika težine ............................................................ 25
5.1.1. Mjerenje izlaznog napona pri različitim opterećenjima ...................................................... 28
5.2. Opis i shema napajanja ............................................................................................................... 29
5.3. Shema spajanja komponenata na Arduino .................................................................................. 30
5.4. Moguće nadogradnje sustava ..................................................................................................... 30
6. ZAKLJUČAK ................................................................................................................................... 32
Popis literature: ..................................................................................................................................... 33
Popis slika: ............................................................................................................................................ 34
Popis kratica: ......................................................................................................................................... 34
Prilog 1 - Kod napisan za potrebe ovog rada ........................................................................................ 35
Prilog 2 - Troškovnik ............................................................................................................................ 38
Prilog 3 – Shema spajanja sustava na eksperimentalnoj pločici ........................................................... 39
1. UVOD

Najčešće pčelari nisu u mogućnosti neprestano provoditi vrijeme u pčelinjaku stoga im


je potrebno na neki način omogućiti dotok željenih informacija u svezi samih košnica koje
znaju biti poprilično udaljene. SMS pčelarska vaga to im omogućuje. Ulaganjem u pčelarsku
SMS vagu smanjuju se troškovi putovanja, a same košnice se ne moraju otvarati kako bi se
provjerio koliki je prinos meda. Nakon prestanka rasta težine zna se da je ispaša loša te da je
stiglo vrijeme za seljenje na novo mjesto ili pripremu za zimu ukoliko je kraj ljeta.

Pčelari obično ne sele sve košnice na isto mjesto već ih rasporede na nekoliko mjesta.
U tom slučaju idealno bi bilo imati po jednu pčelarsku SMS vagu na jedan pčelinjak. Kako to
nije mala investicija ovim radom krenuli smo u realizaciju svoje pčelarske SMS vage.
Arduino platforma je uzeta kao baza zbog već stečenih osnovnih znanja te zbog vrlo
jednostavne proširivosti raznim dodacima, kao što se i učinilo u ovom radu. Kako vaga ne bi
slala poruke samo s težinom, osim GPRS/GSM shielda na Arduino je spojen senzor
temperature i vlage te LCD zaslon kako bi i dok smo tamo mogli očitati stanje.

Struktura ovog završnog rada s nazivom Realizacija SMS pčelarske vage sadržana je u
šest poglavlja.

U drugom poglavlju s naslovom Pčelarstvo govori se o osnovama pčelarstva,


pčelinjim proizvodima, o osnovnoj opremi i priboru među koje spada i pčelarska vaga te je
pobliže objašnjena njena namjena.

U trećem poglavlju s naslovom Komponente sustava nalaze se osnovne informacije i


karakteristike svih komponenata korištenih u ovom radu a to su: Arduino, senzor temperature
i vlage, GSM/GPRS shield te mjerni pretvornici težine.

Četvrto poglavlje ima naslov Pregled korištenih kodova i sadrži objašnjenja koda i kod
pomoću kojeg možemo provjeriti ispravnost pojedinih komponenti spojenih na Arduino.

1
Iznimna je pozornost posvećena petom poglavlju, koji ima naslov Opis rada sustava. U
tom dijelu nalazi se opis rada cijelog sustava u kojem su opisani načini na koje možemo dobiti
povratne informacije od vage te sheme spajanja napajanja te mjernih pretvornika. Opisano je i
mjerenje izlaznog signala mjernih pretvornika težine uz poznate težine radi softverske
kalibracije vage.

Uz rad se nalaze tri priloga. Prilog 1. sadrži kod koji je izrađen za potrebe ovog rada,
prilog 2. sadrži troškovnik i prilog 3. koji sarži shemu spajanja komponenata na Arduino.

2
2. PČELARSTVO

Pčelarstvo (apikultura) je grana poljoprivrede koja se bavi uzgojem pčela s ciljem


dobivanja pčelinjih proizvoda i oprašivanja biljaka. Osoba koja se bavi pčelarstvom naziva se
pčelarom. Košnice, te mjesto na kojima se nalaze se naziva pčelinjakom. Razlikuju se dvije
vrste pčelinjaka:
1. STACIONIRANI PČELINJAK – karakteriziraju ga košnice koje se na raznim
postoljima postavljaju na tlo, odnosno u zidove odgovarajućih kućica.
2. POKRETNI PČELINJAK – ima košnice ugrađene u preuređene i za ovu namjenu
prilagođene kamione, prikolice, kontejnere. Pčele se sele na mjesta gdje u tom
trenutku ima ispaše, često daleko od matičnog mjesta pčelinjaka.

Slika 1. Selidba pčelinjaka

Izvor: Izradio autor

3
2.1. Pčelinji proizvodi

U nastavku ćemo govoriti o pčelinjim proizvodima, a to su: med, pelud, propolis,


matična mliječ, pčelinji vosak, pčelinji otrov.

Med je prirodna slatka tvar koju proizvode medonosne pčele od nektara sakupljenog
od cvijetova biljaka ili od slatkih izlučevina nekih kukaca. Spremaju ga u saće gdje sazrijeva
te se ne smije vrcati prijevremeno. Vrcanje je proces kojim se med izdvaja iz saća. Med uz
pelud predstavlja osnovnu pčelinju hranu. Sastav meda se razlikuje od vrste do vrste meda ali
sljedeće stvari se nalaze u medu u većoj ili manjoj količini: minerali, aminokiseline, visoko
vrijedne organske kiseline kao što su mravlja, jabučna, limunska, octena, jantarna kiselina,
pigmenti, razni derivati klorofila, vosak, inulin, te elementi kompleksa vitamina B.

Slika 2. Saća sa medom

Izvor: Izradio autor

Uz med osnovna hrana pčela bez koje nema razvitka mladih pčela je pelud koji je
muška spolna stanica biljke, sadrži sve neophodne hranjive supstance za stvaranje i razvoj
novog života.

4
Propolis je smolasta smjesa, najčešće smeđe boje korištena za zatvaranje pukotina i
otvora košnice. Djeluje protiv bakterija, gljivica, virusa i upala te ima anestetički,
antioksidacijski i antitumorski učinak, jača imunološki sustav.

Matična mliječ je lučevina medonosnih pčela koja se koristi kao hrana ličinki.
Kremasta je, ljepljiva, mliječno bijele boje jako kisela supstanca sa malo gorčim okusom i
specifičnim mirisom.

Pčelinji vosak je prirodni vosak koji izlučuju pčele i od njega grade saće u koje
spremaju med.

Zadnji ali ne i najmanje bitan pčelinji proizvod je pčelinji otrov koji je izlučevina
žalčanog sustava pčele.

2.2. Pčelarski pribor i oprema

Kako bi pčelar mogao raditi sa pčelama mora posjedovati osnovni alat i opremu a to su:
pčelarsko odijelo sa šeširom, pčelarske rukavice, dimilica za pčele, dlijeto pčelarsko, gljiva
goba koja nam služi kao sredstvo za dimljenje, kliješta za vađenje okvira, stalak za otklapanje
saća (prilikom vrcanja), pčelarska vilica, vrcalica, posuda sa sitom za prihvat meda kod
vrcanja, stegač za seljenje, pčelarska vaga.

2.2.1. Pčelarska vaga

Dio pčelarske opreme koja služi da pokaže stanje u košnici, uspoređujući dnevne ili
periodične izmjerene vrijednosti. Na vagu se postavlja košnica u kojoj je u prosjeku nešto jače
„društvo“ od preostalih u pčelinjaku jer će tako dobiveni podaci biti najkorisniji za
sagledavanje stanja na cjelokupnom pčelinjaku. Pored standardne mehaničke pčelarske vage u
novije vrijeme sve češće su u upotrebi i elektroničke pčelarske vage.

5
Slika 3. Pčelarska vaga "domaće" proizvodnje

Izvor: http://www.pcelarstvo.hr/images/stories/pcelarska_radionica/vaga_za_pcelinjak/suncokret074.jpg

Vagu je u pčelinjaku korisno imati tijekom cijele godine a pogotovo tijekom intezivne
ispaše pčela u ljetnim mjesecima. Na taj način bez otvaranja košnica imamo uvid o prinosu
meda. Pomoću vage najbolje možemo vidjeti kada se počne smanjivati ispaša i kada u
potpunosti prestane, što znači da je pravi trenutak za selidbu na novu lokaciju. Za vrijeme
kada nema ispaše pčele će još uvijek izlaziti izvan košnice ako nije prehladno, međutim na
vagi ćemo jasno vidjeti kako nema nikakvog unosa. Ukoliko vaga počne padati potrebno je
početi prehranjivati „društvo“ ukoliko nije dovoljno meda ostavljeno da prežive period bez
ispaše. Povećanje ili smanjenje težine nije nužno odraz samo trenutne ispaše ili potrošnje
zaliha hrane, već utjecaj na to ima i izgradnja saća, zatim razvoj legla i povećanje broja pčela.
Kako bi se dobile što točnije informacije o težini košnice treba uspoređivati informacije
uvijek u isto vrijeme, što je u pravilu u večernjim satima nakon što se sve pčele vrate u
košnicu.

6
Elektronička pčelarska vaga koju sve više koriste suvremeni pčelari, ima mogućnost
slanja SMS-a te ovisno o proizvođaču i mnogo drugih dodataka poput: senzor za temperaturu
i vlagu okoline, senzor za temperaturu unutrašnjosti košnice, mogućnost spajanja na
električnog pastira, magnetni kontakt alarm, senzor kiše, senzor za mjerenje jačine vjetra,
detektor pokreta.

Pčelari nisu u mogućnosti svaki dan boraviti u svom pčelinjaku pa im je zbog toga
potrebno alternativno rješenje pomoću kojega će dobivati informacije iz pčelinjaka. Korisno
ali ne i uvijek jeftino rješenje je upravo elektronička SMS vaga. Pčelaru makar i stotinama
kilometara daleko informacije o pčelinjaku dolaze na mobitel, pa po njima može vidjeti da li
ima ispaše i koliko. Cijene takvih vaga ovisno o kvaliteti i mogućnostima koštaju od 300 eura
do 800 eura.

Slika 4. Jedna od pčelarskih SMS vaga

Izvor: http://www.agroklub.com/upload/slike/pcelarska-vaga.jpg

7
3. KOMPONENTE SUSTAVA

U prošlom poglavlju vidjeli smo osnove pčelarstva te pobliže objasnili pčelarsku vagu
koja je dio osnovne opreme pčelara. Usprkos postojanju vaga različitih proizvođača na tržištu
krenuli smo s izradom svoje vage jer ove postojeće imaju visoku cijenu. U nastavku
opisujemo komponente realizirane pčelarske SMS vage. Sustav pčelarske SMS vage je
ostvaren pomoću Arduina, pripadajućeg GPRS/GSM shielda, senzora temperature i vlage i
mjernih pretvornika težina.

3.1. Arduino

Arduino sadrži mikrokontroler s ugrađenim programatorom i nešto osnovnog


firmwarea, analognim i digitalnim I/O pinovima1 te USB portom za napajanje i upravljanje.
Arduino postoji u nekoliko različitih verzija, a u sve su ugrađeni 8-bitni Atmelov-i
mikrokontroleri čija je najčešća frekvencija 16MHZ, a količina radne memorije (SRAM)2 je
između 1KB i 8 KB. Mikrokontroleri izvode samo jedan program, zapisan u flash memoriji
koja je njihov sastavni dio. Ovisno o modelu količina flash memorije varira od 16KB do
256KB (najčešće je 32KB), a dodatno je još dostupna EEPROM3 memorija veličine od 0,5
KB do 4KB u koju programi mogu zapisivati podatke koji će ostati zapisani nakon gašenja
uređaja. Programiranje uređaja iznimno je jednostavno i izvodi se iz grafičkog IDE4-a koji
postoji za Windowse i Linux, u jeziku sličnom C-u. Glavna je namjena, pa i ovog jezika,
komuniciranje s različitim hardverom koji je na njega priključen. Za proširenje Arduina
dostupni su brojni shield-ovi, koje možemo usporediti s karticama koje se priključuju na
matičnu ploču, a koji imaju dodatne mogućnosti ili čak svoje vlastite mikrokontrolere. Tako
je moguće nabaviti shield Ethernet kontroler (i port), ili Bluetooth kontroler (s antenom), ili
elektroniku s relejima putem kojih se mogu kontrolirati uređaji na 220V, ili nešto manje

1
I/O pinovi (Input /Output pinovi)– ulazno/izlazni priključci
2
SRAM (Static Random Access Memory) – Statička radna memorija
3
EEPROM (Electricaly Erasable Programmable Read-Only Memory)– Električno izbrisiva programabilna
ispisna memorija
4
IDE (Integrated Development Environment) – Integrirano razvojno okruženje

8
zahtjevnom elektronikom za kontroliranje elektromotora. Sve su ovo standardne elektroničke
komponente koje nisu ograničene na Arduino, niti je Arduino ograničen na njih. Verzija
Arduina koju ću koristit za izradu svoga projekta, pčelarske vage, je Arduino Uno.

3.1.1. Arduino Uno

Ovo je jedna od prvih Arduino verzija koja je nastala kako bismo lakše mogli
upravljati određenim procesima i kako bi olakšali raznim kreativcima i studentima da bez
previše znanja o programiranju mogu kontrolirati različite procese. Ova jednostavna
platforma namjenjena je prvenstveno svim početnicima koji se žele okušati u programiranju, a
nisu do sada imali prilike susresti se sa nekim programskim jezikom, pa čak niti sa
mikrokontrolerom.

Glavne karakteristike Arduino Uno-a su: mikrokontroler koji koristi je ATmega328,


radni napon 5V, ulazni napon od 6V do 20V, preporućeni ulazni napon napajanja je od 7V do
12V, posjeduje 14 digitalnih priključka (6 ih je PWM) i 6 analognih priključaka, struja prema
pinovima je 40mADC, struja prema 3.3V pinu je 50mA. Posjeduje 2KB SRAM memorije,
1KB EEPROM memorije i 32 KB flash memorije od ćega je 0.5 KB rezervirano za
bootloader. Radna frekvencije je 16MHz.

9
Slika 5. Arduino Uno

Izvor: http://www.liquidware.com/system/0000/3648/Arduino_Uno_Angle.jpg

3.1.2 Arduino IDE

Arduino IDE je napisan u Javi te se može koristiti na svim poznatijim platformama.


Može se besplatno preuzeti sa službene Arduino stranice. Ovisno o sintaksi mijenja font i
boju, „uvlači“ kod, ima mogućnost provjere grešaka i samo jednim klikom moguće je
prebaciti kod na Arduino, što govori da je dizajniran na način da početnike uvede u svijet
programiranja. Program napisan u Arduinu se zove „sketch“, te su napisani u C ili C++
programskom jeziku.

Korisnici obično trebaju definirati samo dvije funkcije:


1. Setup() – funkcija u kojoj su obično početne postavke jer se pokreće samo jednom
prilikom pokretanja Arduina
2. Loop() – funkcija koja se poziva neprekidno dok se Arduino ne ugasi

10
Slika 6. Arduino IDE – Primjer programa

Izvor: http://en.wikipedia.org/wiki/Arduino#mediaviewer/File:Arduino_1.0_IDE,_Ubuntu_11.10.png

3.2. Senzor temperature i vlage

DHT22 (AM2302) je digitalni senzor koji mjeri vlažnost i temperaturu zraka. Može se
povezati na Arduino ili bilo koji drugi mikrokontroler. Jedina mana mu je što može poslati
nove podatke s njega svake dvije sekunde. Na prvi pin s lijeva dovodimo napajanje (3-5V),
drugi pin je pin s podacima i njega spajamo na digitalni ulaz mikrokontrolera. Treći pin ne
spajamo nigdje, a četvrti pin spajamo na masu (GND)5. U usporedbi s DHT11 ovaj senzor je
precizniji, točniji i radi u većem rasponu temperature i vlage, ali je malo veći i skuplji.
Potrebno je spojiti 10K Ohmski otpornik između pina napajanja i pina podataka.

5
GND (Ground) - masa

11
Glavne karakteristike DHT22 senzora su: niska cijena, napajanje od 3V do 5V, 2.5mA
maksimalna jakost struje tijekom komunikacije, raspon vlažnosti zraka koji može očitati je od
0 do 100% sa mogućom greškom od 2 do 5%, raspon temperature koju može očitati je od -40
do 80°C sa mogućom greškom 0.5°C, frekvencija slanja podataka je 0.5 Hz (svake dvije
sekunde), dimenzije su mu 27mm x 59mm x 13.5mm.

Slika 7. DHT22

Izvor: http://electropark.pl/img/cms/Czujniki/temperatury/dht22_wyproadzenia.jpg

3.3. GPRS/GSM Shield

GPRS/GSM shield je proširenje za Arduino koji omogućuje komunikaciju s udaljene


lokacije putem GSM6 mreže. Dobiva se mogućnost slanja poruka, poziva te GPRS7 pristup.
Za potrebe ovog rada korištena je samo mogućnost slanja SMS-a.

6
GSM (Global System for Mobile Communications) - najkorišteniji standard za mobilnu telefoniju
7
GPRS (Genera Packet Radio Service) – protokol koji omogućava prijenos podataka bežičnim putem kroz GSM
mrežu

12
Baziran je na SIM900 modulu koji omogućuje rad na 850/900/1800/1900 MHz. Shield
može biti konfiguriran i kontroliran pomoću UART8-a koristeći jednostvane AT naredbe9. U
potpunosti je kompatibilan s Arduinom te se samo „natakne“ na Arduino.

VAŽNO
Nije moguće koristiti ovaj shield bez dodatnog napajanja 9V jer USB port nije u
mogućnosti napajati strujom jačine 2A. SIM kartica koju koristimo ne smije biti zaključana

Slika 8. EFCOM GPRS/GSM Shield

Izvor: http://www.elecfreaks.com/wiki/index.php?title=EFCom_GPRS/GSM_Shield

8
UART (Universal Asynchronous Receiver/Transmitter) – dio Arduina koji omogućuje serijsku komunikaciju
9
AT (Attention) naredbe – AT naredbe koriste se za komunikaciju s modemima u ovom slučaju sa GPRS/GSM
shieldom

13
Slika 9. EFCOM GPRS/GSM Shield pozadina s utorom za SIM

Izvor: http://www.elecfreaks.com/wiki/index.php?title=EFCom_GPRS/GSM_Shield

Glavne karakteristike GSM/GPRS shielda su: napon napajanja od 3.1V do 4.8V, niska
potrošnja struje u sleep modu (1.5mA), radna temperatura je od -40°C do +80°C, zadani Baud
rate je 19200 bps 8-N-1 (može biti promijenjen pomoću AT naredbi), GPRS mobilna stanica
klasa B, GPRS multi-slot Klasa 10/8, GSM frekvencija na kojoj radi je quad-band
850/900/1800/1900, možemo odabrati želimo li ga kontrolirati putem Hardware Serial porta
(D0/D1) ili Software Serial porta (D2/D3) (slika 6.), RTC(Real time Clock) može raditi više
od jednog dana napajanjem kondenzatora što znači da može imati spremljeno vrijeme i kada
je ugašen. Osim što se može paliti tipkom, može se i signalom na digitalni pin (D6), za
resetiranje koristim digitatalni pin (D5).

14
Slika 10. Mostovi (jumpers) postavljeni za serijsku komunikaciju

Izvor: http://www.elecfreaks.com/wiki/index.php?title=File:Wireless-EFCom-07.jpg

3.4. Mjerni pretvornici težine

Mjerni pretvornici težine su senzori čiji se otpor mijenja ovisno o primijenjenoj sili.
Pretvara silu, pritisak, napetost, težinu, itd., u promjene električnog otpora koji se onda može
izmjeriti. Kada su vanjske sile primijenjene na stacionarni objekt, pritisak (stress) i naprezanje
(strain) su rezultati. Pritisak se definira kao unutarnja sila otpora, a naprezanje je definirano
kao pomak i deformacija koji se javljaju. Mjerni pretvornici težine su jedni od najvažnijih
alata za mjerenje mehaničkih veličina uz dobivanje električnog rezultata. Naprezanje može
biti uzrokovano silom, pritiskom, momentom, toplinom, promjenom strukture materijala i sl.
Ako su ispunjeni određeni uvjeti, vrijednost ili količina uzročnika naprezanja može biti
izvedena iz izmjerene vrijednosti mjernog pretvarača. Posebne sonde mogu biti dizajnirane za
mjerenje sile ili ostalih izvedenih vrijednosti, npr. moment, pritisak, ubrzanje, pomaci,
vibracije itd. Sonde obično sadržavaju na pritisak osjetljivu membranu sa mjernim
pretvornikom prilijepljenim na nju.

15
Prvi mjerni pretvornik težine je razvijen 1938. Obično se sastoji od žičane mrežne niti
(0.025mm debljine) vezane tankim slojem epoksidne smole direktno na površinu mjernog
pretvornika. Uslijed opterećenja površine mijenja se njena duljina te se mijenja otpor .
Birajući mjerni pretvornik težine ne smijemo uzeti samo karakteristike senzora (npr. najveće
moguće opterećenje i sl.) već moramo uzeti u obzir i temperaturnu osjetljivost. Nažalost i
najpoželjniji materijali su također temperaturno osjetljivi te imaju tendeciju mijenjati otpor
kroz godine, te zbog toga za kontinuirano industrijsko mjerenje moraju uključivati
temperaturnu kompenzaciju. Da bi se izmjerilo opterećenje mjerni pretvornik težine mora biti
spojen u električni krug koji je sposoban mjeriti vrlo male promjene otpora. Obično su
spojena 4 mjerna pretvornika u tzv. Wheatstone-ov most. Wheastone-ov most je uređaj koji
služi za vrlo precizno mjerenje otpora ili za mjerenje malih promjena otpora, također je dobro
prilagođen za kompenzaciju temperature, daje izlaz reda veličine mV.

Slika 11. Mjerni pretvornik težine za kućne vage

Izvor: http://www.ebay.com/itm/4-pcs-x-50Kg-Body-Load-Cell-Weighing-Sensor-Resistance-strain-Half-bridge-Total-
/221463943308?pt=LH_DefaultDomain_0&hash=item339047988c

16
4. PREGLED KORIŠTENIH KODOVA

U nastavku su opisani primjeri kodova za pojedinu korištenu komponentu. Konačni


kod korišten za potrebe ovog rada nalazi se priložen uz rad (Prilog 1.).

4.1. Primjer koda za DHT senzor

Prije pokretanja potrebno je spojiti priključak 1 senzora na +5V, priključak 2 senzora


na jedan od Arduino ulaza(kasnije ga upisujemo pod DHTPIN), priključak 4 senzora na
masu(GND).

Slijedeći kod ispisuje očitane vrijednosti DHT senzora u Serial Monitoru:

#include "DHT.h"

#define DHTPIN 2 // pin na koji smo spojili senzor


#define DHTTYPE DHT22
// Inicijalizacija DHT senzora
DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");

dht.begin();
}

void loop() {
delay(2000);
// stanka od 2 sekunde - najmanja moguća stanka između mjerenja

float h = dht.readHumidity();
// Očitaj temperaturu u Celsiusima
float t = dht.readTemperature();
// Očitaj temperaturu u Fahrenheitima
float f = dht.readTemperature(true);

17
// Provjera očitanja, ukoliko nisu dobra pokušava ponovo
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
float hi = dht.computeHeatIndex(f, h);
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.println(" *F");
}

4.2. Opis koda za provjeru spajanja na mrežu GPRS/GSM shielda

Ovaj kod služi za provjeru ispravnosti GPRS/GSM shielda s kojim komuniciramo


preko terminalskog sučelja.

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

void setup()
{
mySerial.begin(19200); // GPRS baud rate
Serial.begin(19200); // GPRS baud rate
}

void loop()
{
if (mySerial.available())

18
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}

Nakon prebacivanja prethodnog koda na Arduino potrebno je otvoriti terminal,


odabrati COM port na kojem je Arduino te ga postaviti da radi na 19200 bps. Shield palimo
tako da držimo PWR tipku te je potrebno pričekati 10 sekundi da se spoji na mrežu. (LED sa
natpisom NET počne blinkati svake 3 sekunde). Ukoliko želimo da prikaže poruku o
uspostavi komunikacije pri paljenju upisujemo AT+IPR=19200 te dobivamo sljedeću
poruku:
RDY
+CFUN: 1
+CPIN: Ready
Call ready

Provjera se obavlja sa naredbom „AT“, ukoliko je sve u redu shield odgovara sa OK.

Za slanje probnog SMS-a upisujemo sljedeće naredbe:


1. AT+CMGF=1 – shield može slati SMS na dva načina, kao tekst ili binarno.
Upisujemo 1 jer time odabiremo da se pošalje kao tekst.
2. AT+CSCA=“+385970703“ – broj SMS centra operatera
3. AT+CMGS=“+38591xxxxxxx“ – broj mobitela na koji želimo poslati poruku
4. > dobivamo kao odgovor te nakon toga znaka upisujemo poruku koju želimo
poslati
5. Nakon što upišemo tekst pošaljemo heksadecimalno 1A ili pritisnemo Ctrl+Z
kako bismo poslali poruku. Dobijemo odgovor OK ukoliko je sve u redu ili
ERROR ukoliko poruka nije poslana.

4.3. Opis koda koji prima vrijednosti mjernih pretvornika težine

Funkcija za očitavanja analognih ulaza je analogRead (mjesto očitavanja). Ta funkcija


kao rezultat ne vraća iznos napona već vraća brojčanu (integer) vrijednost (0 do 1023). Da bi
se dobio napon moramo preračunati. S obzirom da je referentni napon 5V znači da je

19
preciznost 4.9mV (5/1023). Znači da za dobivanje napona samo pomnožimo broj koji
dobijemo sa 4.9mV. Zbog povećanja točnosti napravljen je prosjek vrijednosti napravivši
pedeset mjerenja te je svako mjerenje u razmaku od 40ms, što u prijevodu znači da nam
Arduino za 2 sekunde izbaci srednju vrijednost.

for(int index=0; index<50; index++)


{
sensorValue[index] = analogRead(A2); // - očitava analogni ulaz A2
ukupno=ukupno+sensorValue[index];
delay(40);
}
prosjek=ukupno/50;
float napon=prosjek*(5.0/1023.0);

4.4. Opis koda za kontrolu LCD zaslona

Prije pokretanja potrebno je spojiti LCD zaslon na Arduino na sljedeći način:


 RX pin se spaja na jedan Arduino ulaz. U ovom radu se koristio analogni (kao
digitalni) jer njih ne koristi GSM modul za razliku od digitalnih
 napajanje je potrebno od +5V

SoftwareSerial ekran(A2,A5); // -RX pin LCD zaslona je spojen na Arduinov A5 analogni ulaz, a A2 bi bio TX ali se on u
ovom slučaju ne koristi.

Da bi se uopće mogle, bilo koje vrijednosti koje nisu tipa podatka String, prikazivati
na LCD zaslonu moramo ih pretvoriti u String. Pretvorba vrijednosti tipa podatka float se
odvija pomoću funkcije dtostrf() i dodavanjem pripadajućim parametrima dtostrf (float koji
pretvaramo, dužina, broj decimala, varijabla u koju zapisujemo vrijednosti). Da bi ova
funkcija radila moramo uključiti knjižnicu <stdlib.h>. Prilikom pokretanja ili promjene
prikaza potrebno je prvo „očistiti“ ekran pozivanjem funkcije „ocistiEkran()“.

void ocistiEkran()
{
ekran.write(254); // cursor to beginning of first line
ekran.write(128);
ekran.write(" "); // clear display + legends

20
ekran.write(" ");
}

Zatim se pozicionira pomoću naredbe mySerial.write(254) koju uvijek šaljemo prvu, a


zatim mySerial.write(128). Brojka unutar zagrade druge naredbe mySerial.write je pozicija na
koju se pozicioniramo.

Slika 12. Tablica pozicioniranja na LCD zaslonu

Izvor: https://www.sparkfun.com/tutorials/246

Za ispisivanje po zaslonu koristimo istu funkciju sa kojom smo se i pozicionirali, samo


kao parametar unesemo varijablu tipa podatka Char.

mySerial.write(naponString); - s ovime će se na zaslonu prikazati vrijednost varijable naponString.

dtostrf(tezina,10,2,tezinaString);
char porEkran[30];
sprintf(porEkran, "V %d%% T %d*C", h,t);
ekran.write(254);
ekran.write(128);
ekran.write(porEkran);
ekran.write(254);
ekran.write(192);
ekran.write(tezinaString);

Naredba sprintf (imeStringa, „ono što se sprema u String“) je poput printf() u


programskom jeziku C, samo što se ovdje rezultat ne ispisuje u konzoli već se sprema u
String koji je naveden u zagradi.

21
5. OPIS RADA SUSTAVA

Pčelarska vaga je namijenjena vaganju košnica što znači da ju je prvo potrebno


postaviti pod samu košnicu. U dva slučaja dolazi do prikaza informacija koje prikuplja što
znači da Arduino mora istovremeno provjeravati vrijeme koje je prošlo i da li je dobio signal
sa tipkala. Nije moguće da Arduino istovremeno provjerava dvije stvari stoga je to izvedeno
na način da prvo provjeri jednu a zatim drugu stvar, pričeka sekundu i onda ponovo. Povratne
informacije dobivamo na dva načina:

1. Pritiskom na tipkalo - proslijeđuje signal na analogni ulaz A4 te se time okida funkcija


slanja poruke te prikaza informacija na LCD zaslonu. Bitno je da ima ovu mogućnost jer
njome nakon što postavimo vagu provjeravamo da li je sve u redu jer bismo u protivnom
morali čekati da završi vremensko odbrojavanje.

2. Vremenskim odbrojavanjem (svakih 24 sata) – nakon paljenja Arduina pokreće se i


njegov timer. Da bi se dohvatila vrijednost tog timera (vrijeme koje je prošlo od kada se
Arduino upalio) koristi se funkcija millis(). Ona vraća vrijednost u ms što znači da je jedan
dan 86 400 000ms. Kako bismo povratne informacije od vage dobili u ono vrijeme kada
mi to želimo, moramo Arduino u to vrijeme dan prije upaliti. Nikako ne smije biti prije
20h jer je po ljeti u to vrijeme još dosta pčela vani, a mi želimo povratne informacije kada
su sve unutra zbog toga što jedan dan u isto vrijeme može biti pola pčela vani, a drugi dan
četvrtina te će pčelar pomisliti da je bilo dosta unosa meda a to neće biti točno.

Kako bi Arduino znao kad treba poslati poruku, neprestano uspoređuje trenutnu
vrijednost funkcije millis() sa onom vrijednošću kada je zadnji put poslao poruku. Ako je
razlika veća od vrijednosti intervala (1 dan – 86400000ms) tada ponovo pokreće funkciju
slanja poruke. Ovakva verzija programa može raditi najduže 49 dana radi toga što se tada
timer Arduina resetira te bi bile potrebne neke preinake u programu kako bi radio duže od
toga. Gotovo ni jednom pčelaru nije potreban period rada duži od 49 dana radi toga što će
svaki pčelar koji odnese pčele u udaljeno mjesto posjetiti iste prije isteka perioda od 49 dana
radi kontrole košnica, vrcanja ili nekog drugog razloga.

22
Slika 13. SMS dobiven od vage

Izvor: Izradio autor

Slika 14. Informacije prikazane na zaslonu

Izvor: Izradio autor

23
Slika 15. Komponente spojena na eksperimentalnu pločicu

Izvor: Izradio autor

Slika 16. Pčelinjak u kojem će se vaga u budućnosti postaviti

Izvor: Izradio autor

24
5.1. Shema i opis strujnog kruga mjernih pretvornika težine

Senzori težine su spojeni u Wheatstone-ov most. Wheatstone-ov most ima četiri žice
pina, to su: E+, E-, S+, S-. E označava "excitation" tj. napon uzbude dok S označava "sense" i
na njemu dobivamo izlazni napon ovisan o opterećenju senzora. Izlazni napon je reda mV te
ga je zbog toga potrebno pojačati kako bi ga Arduino mogao očitati. Pojačanje se vrši
instrumentacijskim pojačalom INA125. INA125 ima mogućnost pojačanja ulaznog signala od
4 do 10000 puta ovisno o otporu pojačanja. Pojačanje se izračunava po formuli:

Za ovaj projekt je izabran otpor Rg= 47 ohma te po ovoj formuli pojačanje iznosi 1280
puta. Ovim otporom se dobio takav raspon koji je dovoljno velik za potrebe mjerenja košnica
kao i dovoljna preciznost. Ukoliko bi otpor bio veći bilo bi manje pojačanje i veći raspon što
nam nije potrebno, te manja preciznost.

25
Slika 17. Shema spajanja pojačala INA125

Izvor: http://www.ti.com/lit/ds/symlink/ina125.pdf

Pojačani signal se dobiva na 10-om pinu pojačala te je taj pin spojen na analogni ulaz
Arduina (u ovom slučaju A2). Vrlo je bitno da analogni ulaz Arduina bude između 0-5V jer u
protivnom može doći do oštećenja mikrokontrolera.

26
Slika 18. Shema spajanja na eksperimentalnoj pločici

Izvor: http://www.deferredprocrastination.co.uk/blog/2013/reading-strain-gauge-scales-with-arduino/

27
5.1.1. Mjerenje izlaznog napona pri različitim opterećenjima

Opterećenje Napon na analognom ulazu arduina


0kg 0.0489
15kg 0.0489
20kg 0.0587
22.5kg 0.0880(0.0978)
25kg 0.1711(0.1760,0.1808)
27kg 0.2688(0.2737)
29kg 0.366 (0.3715)
31kg 0.4643(0.47)
32kg 0.5279(0.5327,0.5281)
32.200kg 0.5376(0.5279, 0.5326, 0.5425)
33.kg 0.55(0.56)
cca 76* 2.65
cca 110* 3.95
*Vrijednost je procijenjena te nije uzeta u obzir pri računanju

Ovim mjerenjem se htjelo postići da se vidi kako će se ponašati signal pod većim
opterećenjima tj. onima za koje bi i bio namijenjen. Signal je inertan na opterećenje prvih
20kg dok je nakon 25 kg otprilike linearan. Svaka dva kilograma dodaje se 0.1V što znači da
se dobilo dovoljno iskoristivog raspona te dovoljno velika preciznost. Pri gore navedenom
mjerenju nisu još primijećene velike oscilacije. Za drugo mjerenje je napravljen prosjek 50
vrijednosti svakih 40ms, te su vrlo precizno izvagane težine koje će koristit za kalibraciju. Na
početku mjerenja je Arduinov analogni ulaz za 30kg imao vrijednost 60,61 dok se kasnije
nakon još dodatnih mjerenja za veće težine, vrativši se ponovo na 30kg, vrijednost povećala
za 10. Mjerenje se ponovilo kako bi se vidjelo da li je dolazilo do zagrijavanja i da li to utječe
na vrijednosti. Temperatura mjerena pirometrom je bila gotovo konstantna uz promjenu od
najviše 1-2°C. Nakon mjerenja je isključeno napajanje. Nakon nekoliko sati (opterećenje je
ostalo na vagi jer je vaga zamišljena da radi u takvim uvjetima) ponovo je napravljeno
mjerenje - vrijednosti su bile i dalje povećane u odnosu na one početne. To povećanje pod
stalnim opterećenjem se naziva „creep response“ i ne može se izbjeći. Moguće je ugraditi

28
ćeliju koja nije tome toliko podložna ili u softver ugraditi kompenzaciju što je potrebno na
duže vrijeme proučavati kako bi se senzori ponašali pod poznatim opterećenjem i isto to
ponoviti sa nekoliko različitih poznatih opterećenja.

5.2. Opis i shema napajanja

Kao što je već spomenuto, kako bi GPRS/GSM shield mogao slati poruke potrebno mu
je dodatno napajanje. Ideja je da pčelarska vaga bude napajana preko baterije iz razloga što
pčelinjaci nisu na mjestima gdje je dostupan strujni priključak. Prvo je bila priključena
baterija od 9V, ali GPRS/GSM shield prilikom spajanja na mrežu „potegne“ naglo veliku
struju te se događa isto kao i kad je na samom USB priključku, ugasi se. Kako bi se gašenje
izbjeglo, paralelno sa baterijom spojen je kondenzator (2200mF).

Slika 19. Napajanje Arduina s baterijom

Izvor: Izradio autor

29
5.3. Shema spajanja komponenata na Arduino

Shema spajanja komponenata na Arduino se nalazi u prilogu 3. Na shemi nije prikazan


GSM/GPRS shield jer se svi njegovi ulazi/izlazi preklapaju sa Arduinovim. Kako bi mogli
koristiti Arduinove pinove bilo je potrebno zalemiti žice pošto je GSM/GPRS shield zauzeo
sve utore svojim pinovima (Slika 20.). GPRS/GSM shield ne koristi nijedan analogni ulaz
Arduina stoga mu ovakav spoj nimalo ne ometa rad.

Slika 20. Spoj Arduina i GSM/GPRS shielda

Izvor: Izradio autor

5.4. Moguće nadogradnje sustava

Prije bilo kakve nadogradnje potrebno je otkloniti najveću preostalu manu sustava
prethodno navedenu (poglavlje 5.1.1.). Jedna košnica ne mora uvijek odražavati stanje cijelog
pčelinjaka. U pravilu se stavlja vaga pod košnicu „jačeg društva“, međutim i „jače društvo“ se
može razboliti ili imati staru maticu pa se neće razvijati i imati isti prinos meda poput drugih
zdravih košnica. Zbog toga bi bilo idealno imati još jednu vagu. Kako bi se maksimalno
smanjili troškovi moguće je spojiti samo signal sa strujnog kruga mjernih pretvornika na
Arduino. Time bi dobivali informacije o dvjema košnicama uz minimalno povećanje troškova
u odnosu na cijenu jedne vage (Prilog 2.).

30
S obzirom da je ovaj sustav učinjen na Arduino platformi izuzetno je lako nadogradiv
dodatnim senzorima kao što su: senzor padalina, senzor jačine vjetra, senzor temperature
unutrašnjosti košnice, itd.

31
6. ZAKLJUČAK

Cilj ovoga rada bio je izraditi pčelarsku vagu koristeći Arduino platformu. Izrađena
pčelarska vaga mogućnosti je mjeriti težinu košnice i temperaturu i vlagu okoline u kojoj se
nalazi. Programiranje na Arduinu vrlo je lako, brzo shvatljivo, a samo pisanje koda nije
predstavljalo probleme. Elementi ovoga sustava su osjetljivi i ovdje je došlo do podosta
komplikacija. Variranje signala prilikom kontinuiranog mjerenja poznate težine je
predstavljao najveći problem te još uvijek nije u potpunosti riješen. Sljedeće što je potrebno
učiniti je uzeti nekoliko poznatih težina, proučavati signal dok su na vagi kroz duže vrijeme
(barem tjedan dana) sa svakom pojedinačno, te odrediti krivulju promjene kako bi se u softver
mogla ugraditi kompenzacija. Prikupljanje podataka o temperaturi i vlazi okoliša je uspješno
napravljeno, pa se putem GSM/GPRS shielda putem SMS-a šalju na mobitel zajedno sa
izmjerenom težinom svakih 24 sata nakon uključenja Arduina ili pritiskom na tipkalo. Prva
poruka se pošalje 24 sata nakon uključenja iz razloga što se pčele prevoze po noći, a to znači
da ćemo i vagu montirat ili rano ujutro ili kasno navečer a upravo u to vrijeme želimo da nam
vaga pošalje izvještaj.

Ostale pčelarske vage na tržištu imaju višestruko veću cijenu od cijene komponenti i
izrade vage opisane u radu (Prilog 2.) te smo iz tog razloga odlučili učiniti svoju vagu uz čiju
ćemo izradu puno i naučiti. Potrebno je još dosta testiranja kako bi se vaga usavršila,
pogotovo što se tiče oscilacije signala pri kontinuiranom mjerenju, te će tek tada u potpunosti
biti spremna za korištenje. Ukupno vrijeme razvoja je 300 sati. Najviše vremena za potrošilo
na dobivanje kvalitetnog analognog signala s mjernih pretvornika težina na Arduino. Svaka
sljedeća vaga s gotovim kodom i jednakim mjernim pretvornicima bila bi izrađena za 10-ak
sati. Okvirna cijena proizvoda bila bi 1500kn.

32
Popis literature:

1. http://arduino.cc/en/Main/arduinoBoardUno (2.9.2014)
2. http://en.wikipedia.org/wiki/Arduino (2.9.2014)
3. http://www.adafruit.com/products/385 (9.9.2014)
4. https://github.com/adafruit/DHT-sensor-
library/blob/master/examples/DHTtester/DHTtester.ino (8.9.2014)
5. http://www.elecfreaks.com/wiki/index.php?title=EFCom_GPRS/GSM_Shield
(8.9.2014)
6. http://www.omega.com/prodinfo/StrainGages.html (8.9.2014)
7. http://www.deferredprocrastination.co.uk/blog/2013/reading-strain-gauge-scales-with-
arduino/ (8.9.2014)
8. https://www.sparkfun.com/tutorials/246 (8.9.2014)
9. http://www.hackerbee.com/ (9.9.2014)
10. http://ww1.microchip.com/downloads/en/appnotes/01030a.pdf (9.9.2014)
11. http://makingthingswork.wordpress.com/ (9.9.2014)
12. http://www.loadstarsensors.com/what-is-a-load-cell.html (9.9.2014)
13. http://www.open-electronics.org/wi-fi-body-scale-with-arduino/ (9.9.2014)
14. http://arduinotronics.blogspot.com/2013/04/this-weeks-projects-load-cells.html
(9.9.2014)
15. http://flashgamer.com/arduino/comments/making-a-scale-for-arduino-with-ina125
(9.9.2014)
16. http://tronixstuff.com/2014/01/08/tutorial-arduino-and-sim900-gsm-modules/
(9.9.2014)
17. http://arduino.stackexchange.com/questions/176/how-do-i-print-multiple-variables-in-
a-string (9.9.2014)
18. http://arduino.cc/en/Tutorial/BlinkWithoutDelay (9.9.2014)
19. http://www.elecfreaks.com/store/download/product/EFcom/EFcom_Datasheet.pdf

33
Popis slika:

Slika 1. Selidba pčelinjaka ...................................................................................................................... 3


Slika 2. Saća sa medom ........................................................................................................................... 4
Slika 3. Pčelarska vaga "domaće" proizvodnje ....................................................................................... 6
Slika 4. Jedna od pčelarskih SMS vaga................................................................................................... 7
Slika 5. Arduino Uno ............................................................................................................................ 10
Slika 6. Arduino IDE – Primjer programa ............................................................................................ 11
Slika 7. DHT22 ..................................................................................................................................... 12
Slika 8. EFCOM GPRS/GSM Shield .................................................................................................... 13
Slika 9. EFCOM GPRS/GSM Shield pozadina s utorom za SIM ......................................................... 14
Slika 10. Mostovi (jumpers) postavljeni za serijsku komunikaciju ...................................................... 15
Slika 11. Mjerni pretvornik težine za kućne vage ................................................................................. 16
Slika 12. Tablica pozicioniranja na LCD zaslonu ................................................................................. 21
Slika 13. SMS dobiven od vage ........................................................................................................... 23
Slika 14. Informacije prikazane na zaslonu........................................................................................... 23
Slika 15. Komponente spojena na eksperimentalnu pločicu ................................................................. 24
Slika 16. Pčelinjak u kojem će se vaga u budućnosti postaviti ............................................................. 24
Slika 17. Shema spajanja pojačala INA125 .......................................................................................... 26
Slika 18. Shema spajanja na eksperimentalnoj pločici.......................................................................... 27
Slika 19. Napajanje Arduina s baterijom.............................................................................................. 29
Slika 20. Spoj Arduina i GSM/GPRS shielda ....................................................................................... 30

Popis kratica:

1. I/O pinovi – Input/Output pinovi


2. SRAM – Static Random Acces Memory
3. EEPROM – Electricaly Erasable Programmable Read-Only Memory
4. IDE – Integrated Development Environment
5. GND – Ground
6. GSM – Global System for Mobile Communication
7. GPRS – General Packet Radio Service
8. UART – Universal Asynchronous Receiver/Transmitter
9. AT naredbe – Attention naredbe
10. RTC – Real Time Clock

34
Prilog 1 - Kod napisan za potrebe ovog rada

#include <SoftwareSerial.h>
#include "DHT.h"

#define rxPin 2
#define txPin 3

#define DHTPIN A0 // pin na koji je spojen DHT


#define DHTTYPE DHT22 // DHT 22 (AM2302)

SoftwareSerial mySerial(rxPin, txPin);


DHT dht(DHTPIN, DHTTYPE);
SoftwareSerial ekran(A4,A5);

long staroMillis = 0;
long interval = 86400000;

void setup()
{

dht.begin();
ekran.begin(9600);
mySerial.begin(19200);
ocistiEkran();
}

void SIM900power()
// funkcija koja oponaša pritisak na tipku power
{
digitalWrite(6, HIGH);
delay(1000);
digitalWrite(6, LOW);
delay(8000);
}

void ocistiEkran()
//funkcija koja briše sve sa LCD zaslona
{
ekran.write(254);
ekran.write(128); //Kursor pomiće na prvu točke prve liniju

35
ekran.write(" ");
ekran.write(" ");
}

void posaljiSMS()
//funkcija koja šalje SMS te prikazuje informacije na LCD zaslonu
{
SIM900power();
int sensorValue[50];
char poruka[50];
int h = dht.readHumidity(); //očitanje vlage
int t = dht.readTemperature(); //očitanje temperature u °C
int ukupno=0;
int prosjek=0;
char tezinaString[25];

for(int index=0; index<50; index++)


// petlja koja radi 50 mjerenja jedna za drugim
{
sensorValue[index] = analogRead(A2); //očitavanje analognog ulaza na kojem su
//mjerni pretvornici težine
ukupno=ukupno+sensorValue[index];
delay(40);
}
prosjek=ukupno/50;
float napon=prosjek*(5.0/1023.0);

float tezina=(napon-0.2688)/0.0005*10/1000+27;

dtostrf(tezina,10,2,tezinaString); //pretvorba varijable tezina(float) u String


char porEkran[30];
sprintf(porEkran, "V %d%% T %d*C", h,t);
ekran.write(254);
ekran.write(128);
ekran.write(porEkran);
ekran.write(254);
ekran.write(192);
ekran.write(tezinaString);

Serial.print("\nsaljem SMS\n"); //u terminalu se ispisuje saljem SMS


sprintf(poruka, "Vlaga: %d%% Temperatura: %d*C ", h,t);
mySerial.print("AT+CMGF=1\r"); //poruku šaljemo u ascII obliku
delay(100);

36
mySerial.print("AT+CSCA=\"+385970703\"; \r"); //definiranje SMS centra
delay(100);
mySerial.println("AT+CMGS=\"+385912108262\"; \r");
delay(100);
strcat(poruka, tezinaString);
strcat(poruka, " kg");
mySerial.println(poruka); // tekst poruke
mySerial.println("\r");

delay(500);
mySerial.println();
delay(100);
mySerial.println((char)26);
delay(100);
mySerial.println();
delay(8000);
SIM900power();
ocistiEkran();
}

void loop()
{
delay(2000);
unsigned long trenutnoMillis = millis(); //dohvaća proteklo vrijeme u ms
pinMode(A4, INPUT);
if(trenutnoMillis - staroMillis > interval)
{
posaljiSMS();
staroMillis = trenutnoMillis;
}
if (digitalRead(A4) == HIGH)
{
posaljiSMS();
}
delay(1000);
}

37
Prilog 2 - Troškovnik
Naziv Koli Cijena Opis
čina
Arduino Uno 1 68.45kn Osnovni Arduino mikrokontroler.
(11.62$) http://www.fasttech.com/products/0/10000015/1001700-arduino-compatible-uno-r3-rev3-development-board
EFCOM 1 278.60kn GSM/GPRS shield baziran na SIM900 modulu.
GSM/GPRS (47.30$) http://www.dx.com/p/arduino-compatible-gsm-gprs-shield-wireless-extension-board-module-w-antenna-adapter-
Shield 144865#.VA28OvmSy1U
DHT22 1 29.33kn Senzor temperature i vlage.
(4.98$) http://www.ebay.com/itm/261070585099?_trksid=p2059210.m2749.l2649&ssPageName=STRK%3AMEBIDX%
3AIT
Senzori težine 1 51.53kn Senzori težine kakvi se nalaze u kučnim vagama.
4kom (8.75$) http://www.ebay.com/itm/291121350051?_trksid=p2059210.m2749.l2649&ssPageName=STRK%3AMEBIDX%
3AIT
LCD zaslon 1 146.95kn LCD zaslon sa serijskom komunikacijom
16X2 (24.95$) https://www.sparkfun.com/products/9393
INA125P 1 31.45kn Instrumentacijsko pojačalo
(5.34$) http://hr.mouser.com/ProductDetail/Texas-Instruments/INA125P/?qs=VBduBm9rCJSDMcs2CyEvAw==
Ostalo 100kn Otpornici, baterija, itd...
UKUPNO 706,31

38
Prilog 3 – Shema spajanja sustava na eksperimentalnoj pločici

Izvor: Izradio autor

39

You might also like