You are on page 1of 177

Sva prava zadržana.

Ni jedan deo ove knjige ne sme biti reprodukovan u bilo kom


materijalnom obliku, uključujući fotokopiranje ili slučajno ili nenamerno smeštanje na bilo
koji elektronski medijum sa ili uz pomoć bilo kog elektronskog sredstva, bez pismenog
odobrenja nosioca autorskih prava osim u skladu sa odredbama zakona o autorskim
pravima, dizajnu i patentima iz 1988. godine ili pod uslovima izdatim od Copyright Licensing
Agency Ltd, 90 Tottenham Court Road, London, England W1P 9HE. Prijave za pismene
dozvole radi štampanja bilo kog dela ove publikacije upućuje se izdavaču ove knjige.

Izjava

Autor i izdavač su uložili najveće napore da bi se obezbedila tačnost informacija sadržanih u


ovoj knjizi. Autor i izdavač ne mogu da pretpostave neprijatnosti i ovom izjavom isključuju
bilo kakvu odgovornost za bilo koju stranku koja bi imala gubitke ili štetu uzrokovanu
greškama ili propustima u ovoj knjizi, bez obzira da li su greške ili propusti nastali usled
nemara, nezgode ili bilo kog drugog razloga.
Predgovor
Mobilne telefone trenutno poseduju milioni ljudi širom sveta. U razvijenim zemljama osobe
od 10 do preko 70 godina starosti sada poseduju najmanje jedan mobilni telefon. Iako je
glavni cilj upotrebe mobilnih telefona komunikacija sa članovima porodice, prijateljima i
kolegama, mnogi danas koriste mobilne telefone za povezivanje sa internetom da bi slali i
primali poštu, pretraživali internet ili da bi se povezali sa sajtovima društvenih medija, kao
što je Fejsbuk.

Danas, mobilni telefoni imaju velike ekrane osetljive na dodir sa mnogo boja i zasnivaju se
na brzim procesorima, kao što je ARM porodica. Većina mobilnih telefona sadrži dodatne
hardverske funkcije, kao što su akcelerometri, kompasi, svetlosni senzori, zvučni senzori,
GPS i tako dalje. Mobilni telefoni komuniciraju jedni sa drugima i sa internetom pomoću
GSM mreže. Iako svaka zemlja ima svoju GSM mrežu, sve mreže su međusobno
kompatibilne i ljudi mogu da koriste mobilne telefone u svakoj zemlji, sve dok je radna
frekvencija telefona kompatibilna sa radnom frekvencijom mreže te zemlje. Svaki mobilni
telefon sadrži GSM/GPRS modem koji mu omogućava da komunicira sa spoljnim svetom. Uz
pomoć GSM modema korisnici mogu da uspostave audio razgovore i da šalju i primaju SMS
tekstualne poruke. Pored toga, GPRS modem omogućava korisnicima da se povežu sa
internetom i da preko njega šalju i primaju velike datoteke, kao što su slike i video.

Ova knjiga je namenjena onima koji žele da nauče kako da koriste GSM i GPRS modeme u
projektima koji se zasnivaju na mikrokontrolerima. U ovoj knjizi su razmatrana dva tipa
popularnih porodica mikrokontrolera: PIC mikrokontroleri i Arduino. Veoma popularni
mikrokontroler PIC18F87J50 srednjih performansi koristi se u projektima koji se zasnivaju
na PIC mikrokontroleru, zajedno sa GSM Click pločicom. Osim toga, u Arduino Uno
projektima koristi se SIM900 GSM/GPRS modul. U ovoj knjizi su sadržani projekti koji se
zasnivaju na GSM-u i GPRS-u.

Pretpostavlja se da čitalac ima osnovno poznavanje C jezika i upotrebe mikrokontrolera u


jednostavnim projektima. Iako nije neophodno, poznavanje najmanje jednog člana porodice
PIC mikrokontrolera i Arduino Uno-a će biti prednost. Takođe, biće od koristi ako korisnik
poseduje znanje o osnovnoj elektronici.

Dogan Ibrahim

Ahmet Ibrahim

London, 2017.
O autorima
Prof. dr Dogan Ibrahim ima diplomu inženjera elektronike, magistarsku titulu iz automatske
kontrole procesa i doktorsku titulu iz digitalne obrade signala. Prof. Ibrahim je autor preko
60 tehničkih knjiga i preko 200 tehničkih članaka o mikrokontrolerima, mikroprocesorima i
povezanim oblastima. On je ovlašćeni elektro inženjer i uvaženi član Instituta inženjerskih
tehnologija.

Ahmet Ibrahim je stekao diplomu na Univerzitetu Grinič u Londonu, a zatim je magistrirao


na istom univerzitetu. Ahmet je radio u mnogim industrijskim organizacijama na različitim
nivoima i trenutno radi u velikoj organizaciji iz oblasti informacionih tehnologija. On je autor
nekoliko tehničkih knjiga i tehničkih članaka.
Poglavlje 1 – GSM i GPRS
1.1 Uvod
Mobilne telefone trenutno poseduju milioni ljudi širom sveta. Oni se koriste u različite svrhe,
kao što su održavanje kontakta sa članovima porodice i prijateljima, razmena poslovnih
podataka i glasovna komunikacija, uspostavljanje kontakta sa službama za hitne slučajeve
kada ste u pokretu i pristupanje internetu.

Neke različite oblasti u kojima se koriste mobilni telefoni su sledeće:

 Neke zdravstvene institucije obezbeđuju mobilne telefone starijim licima za upotrebu


u hitnim slučajevima.

 Mobilni telefoni se koriste da bi se obavestili članovi porodice i prijatelji u drugim


gradovima o aktivnostima, kao što su venčanja, rođendani i druga društvena
okupljanja.

 Neki ljudi poseduju druge mobilne telefone koje čuvaju u tajnosti i koriste ih u
aktivnostima, kao što su vanbračne afere ili tajni poslovi.

 Većini TV kanala se sada može pristupiti pomoću mobilnih telefona, koji ljudi koriste
da bi gledali njihove omiljene filmove kada su u pokretu.

 Zahvaljujući ugrađenim GPS modulima, mobilni telefoni se koriste za praćenje ljudi,


kao što su deca ili voljene osobe, ili za obavljanje različitih operacija osmatranja.

Mobilni telefoni se zasnivaju na GSM-u (Globalnom sistemu za mobilnu komunikaciju) koji


predstavlja otvorenu, digitalnu tehnologiju mobilne telefonije koja se koristi za prenos
mobilnih podataka i glasa preko GSM mreže. GSM tehnologija je prvi put predstavljena u
Finskoj 1991. godine. Trenutno, više od 690 mobilnih mreža obezbeđuje GSM uslugu u 213
zemalja. Prema rečima GSM World-a, sada postoji više od 4 milijarde korisnika GSM
mobilnih telefona širom sveta. Samo u Kini, preko milijardu ljudi koristi GSM. Isto tako, u
Rusiji preko 120 miliona ljudi koristi GSM tehnologiju.

U Evropi GSM radi u opsezima od 900 MHz i 1,8 GHz, a u SAD-u u opsezima od 850 MHz i
1,9 GHz. Mnoge latinoameričke zemlje, Australija i Kanada, takođe, koriste opseg od 850
MHz. GSM mreža omogućava pojedincima da pristupe mobilnim uslugama u njihovim
zemljama i inostranstvu. Zahvaljujući mogućnostima međunarodnog roaminga, ljudi koji
putuju u inostranstvo na odmor ili zbog posla mogu da se povežu i da koriste GSM mreže
zemlje u kojoj se tada nalaze. Trenutno, zemaljske GSM mreže „pokrivaju“ više od 90 odsto
svetske populacije. Lista GSM operatera u nekim evropskim zemljama data je u tabeli 1.1.

Zemlja GSM operateri

Ujedinjeno Kraljevstvo O2, Vodafone, EE, Three


Francuska Orange, SFR, Bouygues Telecom, Free Mobile
Nemačka O2, Telekom, Vodafone
Italija TIM, Vodafone, Wind, Three
Holandija KPN, Vodafone, T-Mobile, Tele2
Austrija A1, T-Mobile, Three
Finska Sonera, Elisa, DNA, Alcom
Grčka Cosmote, Vodafone, Wind, CYTA
Mađarska Telekom, Telenor, Vodafone
Norveška Telenor, Telia, Ice.net
Španija Movistar, Vodafone, Orange, Yoigo

Portugal MEO, Vodafone, NOS

Tabela 1.1 Lista GSM operatera u nekim evropskim zemljama

1.2 Arhitektura GSM mreže


Arhitektura GSM mreže je sada zreo sistem i sastoji se od četiri glavne oblasti:

 Mobilna stanica (MS, engl. Mobile Station)

 Podsistem bazne stanice (BSS, engl. Base Station Subsystem)

 Mrežni komutacioni podsistem (NSS, engl. Network and Switching Subsystem)

 Podsistem upravljanja i podrške (OSS, engl. Operation and Support Subsystem)

Mobilna stanica (MS)

Mobilna stanica se sastoji od mobilnih telefona i to je deo mreže koji korisnici vide i koriste.
Hardver se sastoji od mobilnog telefona koji sadrži elektronski procesor, ekran, kućište,
bateriju i karticu sa modulom identiteta pretplatnika (SIM, engl. Subscriber Identity
Module). SIM kartica skladišti različite informacije, kao što su identitet korisnika na mreži,
telefonski imenik itd. Svaki mobilni telefon ima jedinstveni broj poznat kao Međunarodni
identitet mobilne opreme (IMEI, engl. International Mobile Equipment Identity) koji je deo
telefona i ne može se menjati.

Podsistem bazne stanice (BSS)

BSS se koristi za komunikaciju sa mobilnim telefonima na mreži. Ova jedinica se sastoji od


bazne stanice (BTS, engl. Base Transceiver Station) i kontrolera bazne stanice (BSC, engl.
Base Station Controller). BTS se sastoji od radio opreme koja se koristi za komunikaciju sa
mobilnim telefonima. BSC je interfejs između BTS-a i ostatka GSM mreže. BSC kontroliše
broj BTS-ova, dodeljuje kanale i obrađuje mehanizme prenosa u okviru grupe BTS-ova.

Mrežni komutacioni sistem (NSS)

NSS sadrži niz modula, kao što su centrala sistema mobilne telefonije (MSC, engl. Mobile
Services Switching Centre), registar matičnih pretplatnika (HLR, engl. Home Location
Registar), registar gostujućih pretplatnika (VRL, engl. Visitor Location Register), registar
identifikacione opreme (EIR, engl. Equipment Identity Register), centar za autentikaciju
(AC, engl. Authentication Center), komutacioni centar mrežnog prolaza mobilne telefonije
(GMSC, engl. Gateway Mobile Switching Center) i SMS mrežni prolaz (SMSG, engl. SMS
Gateway).
MSC obavlja autentikaciju, registraciju, lociranje poziva, usmeravanje poziva na mobilne i
fiksne telefone i tako dalje. Takođe, MSC obavlja povezivanje sa drugim mrežama.

HLR sadrži bazu podataka sa svim detaljima o svakom pretplatniku i postoji samo jedan HRL
u mreži. Pored detalja, u bazi podataka se skladište najnovije poznate lokacije pretplatnika.
Na primer, kada korisnik uključi telefon, lokacija korisnika se upostavlja i korisnik se
registruje na mrežu. Na ovaj način, sistem zna kako i gde da usmeri pozive. Sistem
periodično ponovo registruje korisnika, tako da je najnovija lokacija korisnika poznata u bilo
kom trenutku.

VRL sadrži informacije o pretplatniku, kao što je HLR, koje ubrzavaju i olakšavaju pristup.

EIR određuje da li navedenim mobilnim telefonima može biti dozvoljen pristup mreži. IMEI
brojevi mobilnih telefona se proveravaju prilikom povezivanja sa mrežom.

AC sadrži lozinku i koristi se za autentikaciju na mreži.

GMSC se koristi za pribavljanje broja u roamingu iz HLR-a koji se zasniva na ISDN broju
mobilnog korisnika, tako da poziv može da se usmeri na odgovarajući centar.

SMSG je mrežni prolaz koji obrađuje SMS usluge na GSM mreži.

OSS se koristi za kontrolu i nadgledanje cele GSM mreže.

1.3 1G, 2G, 3G, 4G i 5G


Razvoj današnje tehnologije mobilne telefonije možemo da analiziramo u pet faza, kao što
je navedeno u nastavku.

1G

1G odnosi se na prvu generaciju mobilnih telefona koju je prvi put predstavila kompanija
„Nippon Telegraph and Telephone“ 1979. godine u Japanu. 1G telefoni su podržavali samo
glasovnu komunikaciju i nije postojala razmena podataka. Nedostatak 1G telefona je bio taj
što nije postojalo šifriranje i svako sa odgovarajućim skenerom frekvencija mogao je da
prati i sluša razgovore. Kao što je prikazano na slici 1.1, 1G mobilni telefoni su bili veliki sa
dugačkim antenama.
Slika 1.1 - Tipični 1G mobilni telefon

2G

2G odnosi se na drugu generaciju mobilnih telefona i to su bili prvi digitalni telefoni sa


mogućnostima razmene podataka koji su primenjivali GSM standarde. Ovi telefoni su
predstavljeni početkom 1991. godine. Prednosti 2G nad 1G generacijom su digitalno
šifriranje signala, mnogo dalji prodor signala, jasniji glas, manje elektromagnetno zračenje i
mogućnost slanja poruka sa podacima, kao što su SMS, MMS i slike. Nedostatak 2G sistema
je bio loš kvalitet signala u područjima sa zgradama, kao što su gradovi. Iako 2G nije u
upotrebi u mnogim zemljama, još uvek se koristi u nekim delovima sveta. Na slici 12.2
prikazan je tipični 2G mobilni telefon.
Slika 1.2 - Tipični 2G mobilni telefon

3G

3G odnosi se na treću generaciju mobilnih telefona koja je zamenila 2G. Iako su pre 3G
postojale druge tehnologije, kao što su 2.5G (druga i po generacija) i 2.75G (poznata i kao
EDGE), glavna konkurencija 2G generaciji je bila 3G generacija. 3G tehnologija uvela je
brzine prenosa informacija iznad 200 Kbita/s. Spektar komunikacije od 400 MHz do 3 GHz je
dodeljen 3G generaciji. Prvi komercijalni 3G sistem je predstavljen u Japanu 1998. godine.
3G je bio toliko uspešan da je do 2007. bilo više od 200 miliona pretplatnika ove usluge. 3G
obezbeđuje veći propusni opseg, više bezbednosti, interoperabilnost između različitih mreža,
povezivanje zasnovano na paketu i bogate multimedijalne usluge. Zbog većeg propusnog
opsega dostupne su sledeće usluge u 3G mreži: usluge lokacije, pristup internetu, mobilni
TV, video konferencija, telemedicina itd. 3G mobilni telefoni imaju velike, šarene ekrane
osetljive na dodir. Neki nedostaci 3G mreže su: sistem je veoma skup za izgradnju i
održavanje, potrošnja energije je velika i bazne stanice treba da budu blizu radi dobrog
prijema. Tipični 3G mobilni telefon je prikazan na slici 1.3.
Slika 1.3 – Tipični 3G mobilni telefon

4G

4G odnosi se na četvrtu generaciju mobilnih telefona. 4G tehnologija je nova i nije dostupna


većini korisnika u mnogim zemljama. Neke od prednosti 4G tehnologije su: mnogo veći
propusni opseg, odlična veza bez prekida, mnogo veća pokrivenost i mnogo veća
bezbednost. 4G mreže imaju neke nedostatke, kao što su skupa izgradnja i održavanje
mreže, sistem je prilično nov i kao rezultat toga može doći do prekida i grešaka. Potrebna
potrošnja energije je takođe veća, što znači da će korisnici morati da pune svoje mobilne
telefone mnogo češće. Većina današnjih mobilnih telefona, kao što su Samsung i iPhone, su
kompatibilni sa 4G mrežom.

5G

Ovo je predstojeća peta generacija mobilnih telefona koja se očekuje 2020. godine. Iako 5G
još uvek nije dostupan, očekuje se da ponudi mnogo veći propusni opseg od postojećih
mreža mobilne telefonije. Predviđa se da 5G može ponuditi brzinu od približno 10 Gbps. To
će ubrzati opšte vreme odziva i pristupe internetu. Današnji mobilni telefoni nisu
kompatiblini sa 5G mrežom jer ova tehnologija još uvek nije implementirana.

1.4 Upotreba GSM-a i GPRS-a u projektima za mikrokontroler


U ovoj knjizi ćemo koristiti GSM/GPRS modeme za projekte zasnovane na mikrokontroleru.
Možda će se u većini uobičajenih projekata koji koriste GSM modeme koristiti usluge SMS
poruke da bi se kontrolisala oprema bežičnim putem upotrebom mobilnog telefona. Na
primer, SMS poruke mogu biti poslate bežičnim putem sa mobilnog telefona na sistem
zasnovan na mikrokontroleru da bi se kontrolisala oprema koja je povezana sa
mikrokontrolerom. Pored toga, GSM modemi mogu da se koriste u aplikacijama za
pohranjivanje podataka.
Na primer, podaci o temperaturi okoline, vlažnosti i pritisku vazduha mogu da se prikupljaju
i šalju u daljinski centar podataka korišćenjem SMS usluge. Centar onda može da analizira
te podatke tako što će praviti vremensku prognozu i crtati grafikone. Na primer, binarni
podaci, takođe, mogu biti poslati upotrebom SMS usluga u PDU režimu i ti podaci se mogu
koristiti za kontrolu udaljene opreme.

GPRS je paketna usluga za mobilni prenos podataka koja je dostupna na mobilnim


telefonima i na većini pločica GSM/GPRS modema. Pomoću ove usluge mi možemo da
šaljemo i primamo velike količine podataka. Na primer, slike i video klipovi se mogu poslati
na udaljene stanice u bezbednosne svrhe. Možemo da prikupljamo i skladištimo podatke o
životnoj sredini na lokalnom nivou. Ovi podaci se zatim mogu poslati u unapred određenim
intervalima na udaljene stanice kao veliki paketi podataka. Pored toga, možemo da
kontrolišemo udaljenu opremu davanjem komandi preko veb stranica na internetu.

Neki projekti koji se mogu uraditi korišćenjem GSM/GPRS modema dati su u nastavku:

 Kućni bezbednosni sistem zasnovan na GSM-u

 Sistem za praćenje srčanog ritma

 Udaljeni ekran zasnovan na GSM-u

 Pomoć slepima korišćenjem GSM-a i GPS-a

 Praćenje životinja pomoću GSM-a i GPS-a

 Daljinska meteorološka stanica koja koristi GSM

 Praćenje pacijenta

 GSM detekcija požara i daljinski sistem upozorenja

 Sistem kućne automatizacije zasnovan na GSM-u

 Upravljanje robotom zasnovano na GSM-u

 Nadgledanje staklene bašte pomoću GSM-a

 Očitavanje električnog brojila zasnovano na GSM-u

 GSM sistem za kontrolu pružnog prelaza

 Praćenje vozila korišćenjem GSM-a i GPRS-a

 Detekcija upada

 Automatska kontrola navodnjavanja pomoću GSM-a

 Daljinski sistem za upozorenje o curenju gasa

 Bezbednosni sistem za decu zasnovan na GSM-u

 Glasovni sistem kućne automatizacije

 Kontroler industrijskih motora zasnovan na GSM-u

 Mobilni sistem glasanja korišćenjem GSM-a


 Sistem za detekciju sudara na železničkim prugama koji koristi GSM i GPS

 GSM i GPS detekcija saobraćajnih nesreća i sistem upozorenja

 Daljinsko praćenje EKG-a pacijenata korišćenjem GSM-a

 Daljinski nadzor zgrade slanjem video slika

 Detekcija vožnje pod dejstvom alkohola pomoću GSM-a

 Daljinski kućni bezbednosni sistem koji koristi GSM

 Daljinska kontrola brzine DC motora

 Detekcija gasa i upozorenje pomoću GSM-a

 Upozorenje o krađi vozila korišćenjem GSM-a

 Sistem za otključavanje vrata zasnovan na GSM-u

 Različiti projekti daljinskog pohranjivanja podataka

 Bežična elektronska tabla sa sportskim rezultatima zasnovana na GSM-u

 Slanje studentskih rezultata putem SMS-a

 Automatski aparat za gašenje požara zasnovan na GSM-u

 Sistem za kontrolu brane i nivoa vode reke

 Sistem za praćenje količine kiše

 Kućni bezbednosni sistem sa automatskim pozivom policiji

1.5 GPRS
GPRS sistem nudi sledeće usluge korisnicima:

 Pristup Internetu

 Brzu razmenu SMS poruka (do 30 SMS-a/u minuti)

 Multimedijalne usluge (MMS)

 Prenos glasa preko IP-ija

 Internet aplikacije (putem bežičnog protokola za aplikacije, WAP)

 Uslugu komunikacije od tačke do tačke (P2P)

 Uslugu komunikacije od tačke do više tačaka (P2M)

GPRS sistem podržava sledeće protokole:

 Internet IP protokol koji koristi IPv4

 Protokol od tačke do tačke

 X.25 veze
 TCP/IP usluge uz dodelu IP adrese

 HTTP usluge

Uređaji koji podržavaju GPRS podeljeni su na tri klase:

A klasa: Ove klase terminala mogu da istovremeno upravljaju paketnim podacima i


glasom. To su uglavnom skupi terminali, pošto je za slanje ili prijem podataka i glasa
potrebno dva primopredajnika.

B klasa: Ove klase terminala mogu da upravljaju paketnim podacima ili glasom u bilo kom
trenutku. Troškovi su niski, pošto nisu potrebna dva primopredajnika. Većina GPRS uređaja
su tipovi B klase.

C klasa: Ove klase terminala mogu da upravljaju samo paketnim podacima ili samo
glasom. Oni se koriste u posebnim uređajima, kao što su ugrađeni sistemi.

Da bi korisnik uspostavio GPRS vezu, mora da navede APN (Naziv pristupne tačke),
korisničko ime i lozinku, a u nekim slučajevima i IP adresu koju je dobio od mrežnog
operatera. APN je jednostavno mrežni prolaz između GPRS-a i druge mreže računara, kao
što je Internet, i definiše vrstu usluge, kao što je bežični protokol za aplikacije (WAP), SMS,
MMS i pristup Web adresi. APN se sastoji iz dva dela: identifikatora mreže i identifikatora
operatera. Nakon što je definisan APN, možemo da dobijemo IP adresu i uspostavimo vezu
sa mrežom, na primer, putem TCP/IP protokola. Podaci zatim mogu biti poslati ili primljeni
preko GPRS-a.

1.6 Rezime
U ovom poglavlju razmatrali smo osnovnu arhitekturu GSM mreže. U kratkim crtama
opisane su različite generacije razvoja mobilne telefonije. Osim toga, data je lista zanimljivih
projekata koji se mogu implementirati korišćenjem GSM/GPRS modema. Na kraju su u
kratkim crtama opisane osnovne funkcije GPRS modema.

U sledećem poglavlju ćemo razmatrati dva tipa pločice GSM/GPRS modema koji se mogu
koristiti u projektima za mikrokontroler. Osim toga, biće dati primeri AT komandi radi
prikaza kontrole modema.
Poglavlje 2 – GSM/GPRS pločice
U ovom poglavlju ćemo detaljno razmatrati dva različita tipa GSM/GPRS pločica koje mogu
da se koriste u aplikacijama mikrokontrolera: Jedna pločica se koristi u projektima
zasnovanim na PIC mikrokontrolerima, a druga se koristi u projektima zasnovanim na
Arduinu.

2.1 GSM Click pločica


GSM Click je mala pločica kompatibilna sa mikroBUS konektorom koja poseduje modul
GL865-QUAD GSM/GPRS koji podržava rad GSM-a i GPRS-a na četvorostrukom
frekvencijskom opsegu 850/900/1800/1900 MHz. Pločica sadrži TXB0106 6-bitni dvosmerni
naponski pretvarač, kao i priključak za SIM karticu.

Mi ćemo koristiti GSM Click pločicu u svim projektima zasnovanim na PIC mikrokontroleru u
ovoj knjizi. Važno je pogledati funkcije GSM Click pločice pre nego što je budete koristili u
projektima zasnovanim na mikrokontroleru.

Na slici 2.1 prikazana je prednja strana GSM Click pločice, a na slici 2.2 zadnja strana
pločice.

Slika 2.1 - GSM Click pločica (prednja strana)


Slika 2.2 - GSM Click pločica (zadnja strana)
GSM Click pločica ima sledeće karakteristike:

 Telit GL865 Quad GSM/GPRS čip

 Serijski UART interfejs

 Kompatibilnost sa mikroBUS konektorom

 Ugrađenu antenu

 Spoljnu SMA antenu od 2,4 GHz (pogledajte sliku 2.3)

 Audio priključak od 3,5 mm

 Rad na 850/900/1800/1900 MHz

 Rad na 3,3 V i 5 V

 Priključak za SIM karticu (pogledajte sliku 2.2)

 TCP/IP stek protokola

 Osetljivost od 108 dBm (@850/900 MHz) i 107 dBm (@1800/1900 MHz)

 TXB0106 naponski pretvarač

 Python skript interpreter


Slika 2.3 – Spoljna antena od 2,4 GHz
GSM Click pločica se isporučuje sa napajanjem od 3,3 V, ali može da radi i na 5 V ako se
kratkospojnik (J1) zalemi na prednji donji levi ugao pločice. Pločica prihvata SIM karticu
standardne veličine (pogledajte sliku 2.4), ali mogu da se koriste i SIM kartice druge
veličine (mikro i nano) uz odgovarajuće adaptere.

Slika 2.4 – SIM kartice

Za rad GSM/GPRS modema potrebna je SIM kartica. SIM kartica (Modul identiteta
pretplatnika) je mala smart kartica koja se koristi za skladištenje informacija o pretplatniku i
identifikovanje pretplatnika na mobilnoj mreži. Pored toga, SIM kartica može da skladišti i
druge informacije, kao što su detalji o kontaktu, poruke i tako dalje. Korisnik može da
promeni telefon tako što će jednostavno ukloniti SIM karticu iz jednog telefona i staviti je u
drugi telefon. Upotreba SIM kartice u mobilnom telefonu je obavezna, jer sadrži broj
identiteta pretplatnika (IMS, engl. Mobile Subscriber Identity), bezbednosnu autentikaciju i
šifriranje podataka, lozinku (broj pin kartice), podatke iz telefonskog imenika, evidenciju
poslatih i primljenih poruka, evidenciju primljenih i biranih brojeva, i tako dalje.

SIM kartica ima 8 pinova (neke kartice imaju samo 6 pinova) i nalazi se u držaču za SIM
karticu. Pinovi kartice imaju sledeću definiciju (koja je određena standardom ISO 7816):

Pin 1 (VCC): Ovaj pin obezbeđuje napajanje kartice. SIM kartica obično radi na naponima
između 1,8 V i 5 V.

Pin 2 (RST): Ovo je pin za resetovanje (RESET). Nizak nivo na ovom pinu vraća karticu u
poznato stanje.
Pin 3 (CLK): Ovaj pin obezbeđuje karticu sa signalima radnog takta. Radni takt je obično
između 1 i 5 MHz, uz radni ciklus između 40% i 60%.

Pin 4: Ne koristi se.

Pin 5 (GND): Ovo je pin za uzemljenje napajanja kartice.

Pin 6 (VPP): Programski pin sa trajnom memorijom kartice.

Pin 7 (I/O): Ovo je ulazni i izlazni pin kartice. Za upisivanje i čitanje podataka na kartici
koristi se poludupleksna asinhrona serijska komunikacija.

Pin 8: Ne koristi se.

Nakon što se aktiviraju kontakti na kartici, RST pin se zadržava na niskom nivou i
primenjuje se VCC napajanje. Nakon održavanja RST signala na niskom logičkom nivou od
najmanje 40.000 taktnih ciklusa, on se povećava na visoki nivo i komunikacija sa karticom
počinje tako što se pokreće U/I linija kada je RST na visokom nivou.

Na slici 2.5 prikazana je električna šema GSM Click pločice. Na sredini strujnog kola nalazi
se GL865 čip modema. mikroBUS konektor je u gornjem levom uglu dijagrama ispod kojeg
se nalazi čip TXB106 naponskog pretvarača. SIM kartica se nalazi na sredini donjeg dela
kola. Priključak za mikrofon i LED-ove za prenos i status možete videti na desnoj strani kola.
Slika 2.5 – Električna šema GSM Click pločice
Signali interfejsa mikroBUS-a GSM Click pločice prikazani su na slici 2.6. Važni signali od
interesa su serijske komunikacione linije TX i RX.

Slika 2.6 – Signali interfejsa GSM Click pločice

2.2 Korišćenje GSM Click pločice na računaru


Pre nego što upotrebite GSM Click pločicu na mikrokontroleru, korisno je da znate kako da
koristite ovaj modem i koje vrste komandi postoje. Najlakši način da to uradite je da
priključite GSM Click pločicu modema na računar i da koristite terminalski emulator na
računaru za komunikaciju sa pločicom modema. Najlakši način podešavanja je da postavite
GSM Click pločicu na matičnu ploču i zatim da uspostavite potrebne veze sa računarom.
Na slici 2.7 prikazana je GSM Click pločica koja je postavljena na prototipsku ploču. Za
povezivanje TX i RX linija modema sa USB portom računara koristi se USB +5V TTL serijski
adapter (USB-TTL). U/I kratkospojnik na GSM Click pločici je podešen na 5 V, pa su U/I
linije modema kompatibilne sa naponom od 5 V. Imajte na umu da, osim napajanja od +5
V, GSM Click pločica mora da koristi i napajanje od 3,3 V. Na slici 2.8 prikazana je električna
šema podešavanja.

Slika 2.7 – GSM Click pločica na prototipskoj ploči


Slika 2.8 – Električna šema podešavanja
Ono što je sada potrebno je terminalski emulator, kao što je HyperTerm ili sličan. mikroPC
za PIC IDE, takođe, sadrži ugrađeni terminalski emulator koji može da se koristi za
komunikaciju sa GSM Click pločicom. U ovoj knjizi ćemo koristiti Hyperterm zbog njegove
jednostavnosti.

Uputstvo za korišćenje mikroC Pro za PIC ugrađeni terminalski emulator je dato u nastavku:

Priključite USB-TTL serijski adapter na računar.

U upravljaču uređajem (Device Manager) potražite broj serijskog porta. U ovom primeru to
je COM2, kao što je prikazano na slici 2.9.

Slika 2.9 – Broj USB-TTL serijskog porta


Pokrenite program HyperTerm i unesite naziv veze (npr. GSM), kao što je prikazano na slici
2.10 i kliknite OK.

Slika 2.10 – Početni ekran programa HyperTerm


Izaberite broj serijskog porta (u ovom primeru je COM2) i kliknite OK, kao na slici 2.11.
Slika 2.11 – Izaberite broj serijskog porta
Podesite parametre serijskog porta kao što je opisano u nastavku i kliknite OK (pogledajte
sliku 2.12):

Bits per second: 9600 bps

Data Bits: 8

Parity: None

Stop bits: 1

Buffer size: 1024

Flow control: None

Slika 2.12 – Postavke za Hyperterm


Omogućite lokalni eho, tako da možete videti komandu koju kucate: Kliknite File ->
Properties -> Settings -> ASCII setup i kliknite Echo typed characters locally
(pogledajte sliku 2.13). Kliknite OK i izađite iz menija.
Slika 2.13 – Omogućite lokalni eho
Sada smo spremni da pošaljemo komande na GSM Click pločicu.

2.3 GSM AT komande za GSM Click pločicu


AT (ATtention) komande se koristi za kontrolu operacija modema. Ove komande su prvi put
razvijene za Hayes Smartmodem 300 krajem 70-ih godina. AT komanda sadrži slova AT iza
kojih sledi niz znakova koji određuju završetak komande. Svaka komanda počinje slovima
AT. Neke komande se koriste za podešavanje konfiguracije modema, neke se koriste za
ispitivanje modema i dobijanje njihove konfiguracije, a neke druge komande se koriste za
biranje brojeva, slanje i primanje SMS i MMS poruka, slanje i primanje FTP datoteka,
otvaranje veb stranica na Internetu i tako dalje.

Iako postoji standardni skup AT komandi koji koriste svi modemi, neki proizvođači imaju
dodatni skup komandi za podršku njihovim proizvodima. U ovom odeljku ćemo razmatrati
neke od AT komandi koje se najčešće koriste za GSM Click pločicu (Telit GL865).

AT komanda može biti izdata iz sledećih razloga:

 Za dobijanje informacija o mobilnom telefonu ili GSM/GPRS modemu, kao što su broj
modela, podaci o proizvođaču, verzije firmvera i hardvera, IMEI (Međunarodni
identitet mobilne opreme) i tako dalje.

 Za dobijanje informacija o pretplatniku, kao što su broj mobilnog telefona, IMSI broj
(Međunarodni identitet pretplatnika), jačina signala, podaci o mobilnoj mreži, status
baterije i tako dalje.

 Za obavljanje bezbednosnih operacija, kao što su unos i menjanje lozinki

 Slanje, primanje, skladištenje i brisanje SMS poruka


 Slanje i prijem faksa

 Čitanje, upisivanje, pretraživanje i brisanje unosa u telefonski imenik

 Biranje drugog mobilnog telefona ili GSM/GPRS modema

 Primanje poziva sa GSM/GPRS modema drugog mobilnog telefona

 Otvaranje veb stranica na Internetu

 Uspostavljanje veze sa podacima i čitanje i slanje podataka

Postoje dve vrste AT komandi: Basic (osnovne) komande u kojima ne postoji „+“, kao što
su ADT (Biranje), ATA (Odgovor) i tako dalje, i Extended (proširene) komande koje sadrže
„+“, kao što su AT+CMGS (Slanje SMS poruke), AT+CMGR (Čitanje SMS poruke) i tako
dalje.

2.3.1 Sintaksa AT komandi

U AT komandama se moraju poštovati sledeća sintaksička pravila:

Pravilo 1: Sve komande moraju započeti slovima AT i završiti se znakom za početak novog
reda (<CR>). Na primer:

AT+CGMM <CR>

Pravilo 2: Dozvoljeno je izdati više komandi u jednom redu. U takvim slučajevima, samo
prva komanda mora sadržati prefiks AT i obavezna je upotreba znaka tačka-zarez da bi se
komande odvojile. Komande treba završiti znakom za početak novog reda. Na primer:

AT+CGMM;+GMI <CR>

Pravilo 3: Ako se na kraju komande nalazi niz znakova, onda se on mora zatvoriti
dvostrukim znacima navoda. Na primer:

AT+CPIN=”password” <CR>

Pravilo 4: Dostupne opcije parametra mogu da se prikažu upotrebom znaka pitanja posle
komande. Na primer:

AT+CALM=?

Prikazuje sve opcije režima upozorenja.

Pravilo 5: Trenutna vrednost parametra može da se prikaže upotrebom znaka pitanja posle
komande. Na primer:

AT+CALM?

Prikazuje trenutnu postavku režima upozorenja.

Pravilo 6: Vrednost postavke može da se promeni upotrebom znaka jednakosti iza kojeg
sledi nova vrednost. Na primer:

AT+CALM=1
Postavlja režim upozorenja na vrednost 1.
Pravilo 7: Rezultujući kodovi i odgovori na informacije započinju i završavaju se znakom za
povratak na početak reda i znakom za novi red.

Pravilo 8: Modem vraća rezultujuće kodove prikazane u tabeli 2.1. Primećujete da u


zavisnosti od konfiguracije modema, ovi kodovi mogu da budu vraćeni kao numeričke
vrednosti (celi brojevi) ili kao tekst:

Numeričke vrednosti Tekst

0 OK

1 CONNECT

ili

CONNECT <text>

2 RING

3 NO CARRIER

4 ERROR

5 CONNECT 1200

6 NO DIALTONE

7 BUSY

8 NO ANSWER

10 CONNECT 2400

11 CONNECT 4800

12 CONNECT 9600

15 CONNECT 14400

23 CONNECT 1200/75

Tabela 2.1 – Rezultujući kodovi modema

Tekst ERROR će biti vraćen ako postoji sintaksička greška u komandi, ako je naveden
nevažeći parametar ili ako modem ne podržava navedenu komandu.

2.3.2 AT komande za opštu namenu

Primeri AT komandi za opštu namenu u ovom odeljku dati su slanjem komandi na GSM Click
pločicu.

AT: Ova komanda sama po sebi privlači pažnju modema. Modem odgovara tekstom OK. Na
slici 2.14 primećujete da modem vraća unetu komandu.
ATE: Ova komanda omogućava ili onemogućava komandni eho:

ATE0 onemogućava eho

ATE1 omogućava eho

Mi obično radimo sa onemogućenim komandnim ehom. Stoga, da biste onemogućili


komandni eho, unesite ATE0 kao na slici 2.14. Sada primećujete da GSM modem nije vratio
unete komande.

Slika 2.14 Komanda AT i onemogućavanje komandnog eha


Sledeće komande pogledajte na slici 2.15:

AT+CGMI: Ova komanda vraća identifikaciju proizvođača.

AT+CGMM: Ova komanda vraća broj modela modema.

AT+CGMR: Ova komanda vraća revizioni broj softvera modema.

AT+CGSN: Ova komanda vraća serijski broj modema.

Slika 2.15 – Opšte AT komande


Ako SIM karticu zaključavate lozinkom, onda tu lozinku morate uneti pre nego što modem
bude u mogućnosti da prihvati neke komande. Lozinka se unosi primenom komande CPIN.
Na primer, ako pretpostavimo da lozinka sadrži niz „1234“, onda se može uneti kao:
AT+CPIN=”1234”

Sledeće komande pogledajte na slici 2.16:

AT+CMI: Ova komanda vraća IMSI (Identitet međunarodnih pretplatnika).

AT#/: Ova komanda ponavlja poslednju komandu.

ATS3?: Ova komanda prikazuje znak za završetak komande (u ovom slučaju znak za
povratak na početak reda).

Slika 2.16 – Neke korisne AT komande


AT&V0: Ova komanda vraća sve postavke konfiguracionog parametra, kao što je prikazano
na slici 2.17.
Slika 2.17 – Prikaz svih konfiguracionih parametara
AT+GCAP: Ova komanda prikazuje mogućnosti modema, kao što je prikazano na slici 2.18.
Opcije su sledeće:

+CGSM: GSM ETSI skup komandi

+FCLASS: Skup komandi za faks

+DS: Skup komandi zajedničkog modema za usluge podataka

+MS: Skup komandi specifične za mobilne uređaje

Slika 2.18 – Prikaz mogućnosti modema


AT&V2: Ova komanda prikazuje poslednje statistike veze i razlog neuspeha veze. Primer je
prikazan na slici 2.19.

Slika 2.19 – Komanda AT&V2


ATQ: Ova komanda omogućava ili onemogućava rezultujuće kodove. Opcije su sledeće:
0 – omogućava rezultujuće kodove (fabrički podrazumevana postavka)

1 – svaki rezultujući kod se zamenjuje sa <CR>

2 – onemogućava rezultujuće kodove

AT\Q: Ova komanda upravlja kontrolom toka serijske komunikacije. Opcije su sledeće:

0 – nema kontrole toka

1 – dvosmerna kontrola softverskog toka uz filtriranje (XON/XOFF)

2 – jednosmerna kontrola hardverskog toka (samo za CTS)

3 - dvosmerna kontrola hardverskog toka (kada su RTS i CTS aktivni) (fabrički


podrazumevana postavka)

Na slici 2.20 prikazano je kako se može pokazati trenutna kontrola toka serijske
komunikacije.

Slika 2.20 – Prikaz kontrole toka serijske komunikacije


AT+IPR: Ova komanda se koristi za podešavanje (ili prikaz) brzine serijske komunikacije
(brzine prenosa) pri fiksnim vrednostima. Opcije se mogu prikazati kao na slici 2.21. Na
ovoj slici je, takođe, pokazano kako se može prikazati trenutna postavka. Primetite da 0
označava da je omogućena detekcija automatske brzine prenosa (kao što je to slučaj u
ovom primeru).

Slika 21.2 – Parametri brzine komunikacije


Brzina može da se menja tako što se unosi potrebna vrednost. Na primer, da biste promenili
brzinu na 19200, unesite:

AT+IPR=19200<CR>

AT+ICF: Ova komanda se koristi za podešavanje (ili prikaz) formata podataka serijske
komunikacije (broja bitova podataka i pariteta) pri fiksnim vrednostima. Opcije su prikazane
na slici 2.22. Na ovoj slici je, takođe, pokazano kako se može prikazati trenutna postavka.
Primetite da 0,0 označava automatsku detekciju formata podataka i paritet. Opcije su
sledeće:

format,parity
gde format može biti:

0 - autodetection

1 - 8 Data, 2 Stop

2 - 8 Data, 1 Parity, 1 Stop

3 - 8 Data, 1 Stop

5 - 7 Data, 1 Parity, 1 Stop

a paritet može biti:

0 - Odd
1 - Even

Slika 2.22 – Komunikacioni parametri formata podataka

2.3.3 Pristup telefonskom imeniku

AT+CPBR: Ova komanda čita i prikazuje stavke iz telefonskog imenika. Na slici 2.23
prikazana je komanda koja je uneta za prikaz broja trenutnih stavki (u ovom primeru to je
20). Prikaz je u sledećem formatu:

(<minIndex> - <maxIndex>),<nlength>,<tlength>

gde je:

<minIndex> - najmanji <index> broj, celobrojni tip

<maxIndex> - najveći <index> broj, celobrojni tip

<nlength> - najmanja <number> dužina polja, celobrojni tip

<tlength> - najveća <name> dužina polja, celobrojni tip

Na primer, komanda AT+CPBR=1,4 vraća prve 4 stavke u telefonski imenik, kao što je
prikazano na slici 2.23. Format je sledeći:

index number in the phonebook, phone number, type of phone number, text
Vrste telefonskog broja su sledeće:

129 - šema numerisanja za domaći saobraćaj

145 - šema numerisanja za međunarodni saobraćaj (sadrži znak "+”)

A tekst je tekst (npr. ime) koji je povezan sa brojem.

Na primer, na slici 2.23 stavka 2 sadrži međunarodni telefonski broj 3799499 i ime za ovaj
broj je Kemal Sureyya.
Slika 2.23 Stavke iz telefonskog imenika
AT+CPBF: Ova komanda se koristi za pronalaženje tekstualnog unosa u telefonskom
imeniku. Na slici 2.24 prikazan je primer u kome je pronađena stavka sa imenom Sacit Usta
i vraćeni detalji.
Slika 2.24 – Pronalaženje stavki u telefonskom imeniku

AT+CPBW: Ova komanda upisuje stavku u telefonski imenik. Parametri su sledeći:

<index>,<number>,<type>,<text>

gde je:

<index> - položaj zapisa

<number> - tip niza, telefonski broj u formatu <type>


<type> - vrsta broja

129 – šema numerisanja za domaći saobraćaj

145 - šema numerisanja za međunarodni saobraćaj (sadrži znak "+”)

<text> - tekst povezan sa brojem

Napomena: Ako <index> broj zapisa već postoji, biće zamenjen.

Napomena: Ako je dat samo <index>, <index> broja zapisa se briše.

Napomena: Ako je <index> ili <index>=0 izostavljen, broj <number> se skladišti na prvoj
slobodnoj lokaciji u telefonskom imeniku.

Na slici 2.25 prikazan je primer u kome je stavka 2 izmenjena u lokalni broj 1234567, a
ime u John Adams.

Slika 2.25 – Upisivanje stavke u telefonski imenik

2.3.4 Upravljanje satom

AT+CCLK: Ova komanda se koristi za vraćanje ili podešavanje sata realnog vremena. Na
slici 2.26 prikazano je kako se trenutno vreme može čitati i kako se može podesiti. U ovom
primeru vreme je promenjeno iz 16 sati u 18 sati.

Slika 2.26 – Čitanje i podešavanje sata

2.3.5 Zvuk upozorenja

AT+CALM: Ova komanda se koristi za izbor opšteg režima zvuka upozorenja za uređaj.
Opcije su sledeće:
0 – normalan režim (normal mode)

1 - tihi režim (silent mode); uređaj neće generisati zvuk, osim za zvuk alarma

2 - režim prikrivenosti (stealth mode); uređaj neće generisati zvuk

Napomena: ako je izabran tihi režim, onda dolazni pozivi neće proizvoditi upozoravajući
zvuk, već samo neželjene poruke RING ili +CRING

Na slici 2.27 prikazan je zvuk upozorenja za modem koji je podešen na normalan režim.

Slika 2.27 – Modem je podešen na normalan režim


Modem može biti postavljen na tihi režim primenom komande AT+CALM=1.

AT+CRSL: Ova komanda podešava nivo zvuka zvona dolaznog poziva. Opcije su sledeće:

0 – isključeno (off)

1 – nisko (low)

2 – srednje (middle)

3 – visoko (high)

4 – progresivno (progressive)

Na slici 2.28 prikazan je nivo zvuka zvona modema koji je u ovom primeru podešen na
HIGH (visoko).

To se može promeniti u LOW (nisko) pomoću komande AT+CRSL=1.

Slika 2.28 – Zvuk zvona modema je podešen na high


AT+CLVL: Ova komanda podešava jačinu audio izlaza unutrašnjeg zvučnika uređaja.
Dozvoljeni nivoi mogu biti prikazani pomoću komande AT+CLVL=?, kao što je prikazano na
slici 2.29. U ovom primeru, maksimalni nivo je 14, a modem je podešen na nivo 10.
Slika 2.29 – Izlazni nivoi zvučnika
AT+CMUT: Ova komanda omogućava ili onemogućava privremeno isključenje zvuka.
Opcije su sledeće:

0 – zvuk je uključen (mute off), mikrofon je aktivan (fabrički podrazumevana postavka)

1 – zvuk je isključen (mute on), mikrofon je isključen.

Na slici 2.30 prikazan je mikrofon koji je u ovom primeru aktivan.

Slika 2.30 – Mikrofon je aktivan

2.3.6 Kontrola operatera i mreže

AT+COPS: Ova komanda podešava ili prikazuje operatera GSM mreže. Parametri su
sledeći:

<mode>,<format><operator>

gde je,

<mode>

0 – automatski odabir (parametar <oper> će biti ignorisan) (fabrički podrazumevana


postavka)

1 – ručni odabir je otključan (mreža će se zadržati sve dok bude dostupna, a zatim se može
zameniti nekim drugim odgovarajućim mrežama kako bi se obezbedila usluga)

2 – odjava sa GSM mreže; MODULE neće biti registrovan dok ne bude izdata komanda
+COPS koja sadrži <mode>=0, 1, 4 ili 5

3 – podešen je samo <format> parametar (parameter <oper> će biti ignorisan)

4 – ručno/automatski (biće prisutno polje <oper>); ako ručni odabir ne uspe, ulazi se u
automatski režim (<mode>=0)
5 – ručni odabir je zaključan (mreža je fiksna, a ako izabrana mreža nije dostupna,
onda mobilni telefon nema signal)

<format>

0 – alfanumerički dugački oblik (maksimalna dužina je 16 cifara)

1 – alfanumerički skraćeni oblik

2 – numerička vrednost od 5 ili 6 cifara ([pozivni broj za zemlju (3) + kod mreže (2
ili 3)]

<oper>: mrežni operater u formatu koji je definisao parametar <format>.

Operater koji je prikazan na slici 2.31 je vodaphone UK.

Slika 2.31 – Komanda AT+COPS

2.3.7 Neke korisne opšte komande

AT+CSQ: Ova komanda označava kvalitet prijemnog signala korišćenjem parametara:

<rssi><ber>

Gde je,

<rssi> - indikator jačine primljenog signala

0 - (-113) dBm ili manje

1 - (-111) dBm

2..30 - (-109)dBm..(-53)dBm / 2 dBm po koraku

31 - (-51)dBm ili veće

99 – nije poznato ili nije moguće detektovati

<ber> - učestalost bitskih grešaka (u procentima)

0 – manje od 0,2%

1 – od 0,2% do 0,4%

2 – od 0,4% do 0,8%

3 – od 0,8% do 1,6%

4 – od 1,6% do 3,2%

5 – od 3,2% do 6,4%

6 – od 6,4% do 12,8%

7 – više od 12,8%

99 – nije poznato ili nije moguće detektovati


Primer je prikazan na slici 2.32.
Slika 2.32 – Kvalitet primljenog signala
AT#SLED: Ova komanda kontroliše LED statusa na GSM Click pločici. Parametri su sledeći:

<mode><on_duration><off_duration>

gde je,

<mode> - definiše kako se upravlja STAT_LED GPIO

0 - GPIO povezan sa Low (podrazumevana vrednost je 0)

1 - GPIO povezan sa High

2 - GPIO kojim upravlja modul softvera

3 - GPIO se alternativno uključuje i isključuje u vremenskom intervalu koji je


definisan zbirom <on_duration> + <off_duration>

<on_duration> - trajanje vremenskog intervala u kojem je STAT_LED GPIO


povezan sa High kada je <mode>=3

1..100 - (podrazumevana vrednost je 10)

<off_duration> - trajanje vremenskog intervala u kojem je STAT_LED GPIO povezan


sa Low kada je <mode>=3

1..100 - za desetinu sekunde (podrazumevana vrednost je 10)

U primeru koji je dat na slici 2.33 LED statusa trepće svake sekunde.

Slika 2.33 – Treptanje LED statusa svake sekunde


AT#ANAMICG: Ova komanda vraća ili podešava dobitak izlaza mikrofona. Važeća vrednost
je 7 dB/po koraku. Fabrička podrazumevana vrednost je 4.

AT#HSRECG: Ova komanda vraća ili podešava dobitak prijemnika. Važeće vrednosti su od
0 do 6 dB/po koraku. Fabrički podrazumevana vrednost je 0.
Na slici 2.34 prikazani su primeri prikaza dobitaka mikrofona i prijemnika.
Slika 2.34 – Dobici mikrofona i prijemnika

2.3.8 Kontrola poziva

GSM Click pločica sadrži priključak za mikrofon i ulaze za zvučnike koji se mogu koristiti
prilikom pozivanja ili odgovaranja na glasovne pozive. Postoji nekoliko AT komandi za
pozivanje i odgovaranje na glasovne pozive. One su opisane u nastavku.

ATD<number>;: Ova komanda poziva dati telefonski broj. Komanda AT+FCLASS odlučuje
koja je to vrsta poziva. Ako se komanda završava znakom tačka-zarez, onda se uspostavlja
glasovni poziv, bez obzira na trenutnu vrednost FCLASS. Komanda AT+FCLASS može imati
sledeće vrednosti (pogledajte sliku 2.35):

0 – podaci (data)

1 – faks klase 1 (fax class 1)

8 – glas (voice)

Slika 2.35 – Komanda AT+FCLASS


Na slici 2.36 prikazan je primer pozivanja broja +447415987053. Primetite da ako je SIM
kartica zaključana lozinkom, onda lozinka mora biti uneta pre uspostavljanja poziva. Možete
da proverite da li je potrebna lozinka tako što ćete uneti komandu AT+CPIN?. Ako je
odgovor na tu komandu +CPIN: SIM PIN, onda morate uneti ispravnu lozinku. Ako je
odgovor na tu komandu +CPIN: READY, onda to znači da je već uneta ispravna lozinka. U
primeru 2.36 lozinka je 1402. Kada se uspostavi poziv, trebalo bi da čujete zvuk zvona na
zvučniku koji je povezan sa GSM Click pločicom. Prihvaćeni brojevi su 0-9 i *,#,”A”, ”B”,
”C”, ”D”,”+”.
Slika 2.36 – Uspostavljanje poziva
ATDL: Ova komanda poziva poslednje birani broj.

ATD><str>;: Poziva telefonski broj koji odgovara alfanumeričkom nizu <str>. To je


glasovni poziv, jer se komanda završava znakom tačka-zarez.

ATD><mem><n>;: Ova komanda uspostavlja glasovni poziv za telefonski broj iz


memorije telefonskog imena <mem>, lokacije stavki <n>.

Parametri:

<mem> - memorija telefonskog imenika

SM - telefonski imenik na SIM kartici

FD - fiksno biranje iz telefonskog imenika na SIM kartici

LD - poslednje birani brojevi iz telefonskog imenika na SIM kartici

MC - lista propuštenih (neodgovorenih primljenih) poziva na uređaju

RC - ME primljena lista poziva

<n> - lokacija stavke; treba da se nalazi u okviru lokacija koje su dostupne u


memoriji

Na primer, komanda ATD>SM5 bira broj iz stavke 5 telefonskog imenika.

ATA: Ova komanda se koristi za odgovor na poziv (ako nije omogućen automatski
odgovor).

ATH: Ova komanda se koristi za zatvaranje (tj. prekidanje) trenutnog poziva. Ako druga
strana prekine poziv, onda modem odgovara porukom NO CARRIER (Nema operatera).

2.3.9 Slanje i primanje SMS poruka

SMS (kratka tekstualna poruka) se koristi za slanje i primanje poruka između mobilnih
uređaja. Ova vrsta poruke je prvi put postala dostupna 1992. godine i uvrštena je u GSM
standarde i trenutno je podržavaju svi GSM mobilni telefoni. SMS je kratka poruka i može
da sadrži najviše 160 znakova podataka uz 7-bitno kodiranje (poput engleskih znakova) i
najviše 70 znakova podataka ako se koristi 16-bitno Unicode kodiranje (poput kineskih
znakova). Pored teksta, pomoću SMS usluge mogu, takođe, da se šalju i primaju binarni
podaci. Stoga, SMS poruke mogu da sadrže slike, logotipe, melodije zvona i druge binarne
podatke.
Neke prednosti SMS poruka su:

 SMS poruke se mogu poslati i primiti u svako doba dana

 SMS poruke se mogu poslati na telefon koji nije na mreži. GSM sistem će uskladištiti
poruke i poslati ih na odgovarajući telefon kada on bude na mreži

 SMS poruke podržavaju svi mobilni telefoni

 SMS poruke se mogu poslati i primiti na svim jezicima

 Upozorenja i obaveštenja, poput onih o transakcijama kreditnim karticama,


promenama na berzi i tako dalje, mogu se poslati pomoću SMS poruka

 Udaljeni uređaji se mogu pratiti i nadgledati korišćenjem SMS poruka

 SMS poruke se mogu koristiti kao sredstvo marketinga i oglašavanja

 SMS poruke se mogu koristiti kao alatka za učenje

SMS poruke obrađuje SMS centar (SMSC). Kada se pošalje SMS poruka, ona prvo pristigne
u SMS centar iz kojeg se zatim prosleđuje na odredište ako je telefon na mreži ili skladišti
ako odredišni uređaj nije na mreži i isporučuje se primaocu kada postane dostupan. Da biste
koristili SMS usluge, u uređaj morate uneti broj SMS centra mrežnog operatera.

SMS poruka se privremeno skladišti ako je uređaj primaoca izvan mreže. To vreme (koje se
zove period važenja) može da navede korisnik, pa će poruka nakon tog vremena biti
izbrisana iz SMS centra i neće biti prosleđena na odredište.

SMS poruke mogu da pošalju uređaji koji se nalaze na istoj mreži ili na drugim mrežama.
Kada se koriste različite mreže, za obradu poruka koriste se SMS mrežni prolazi (SMS
Gateways). Poruke se, takođe, mogu slati u inostranstvo.

U tabeli 2.2 prikazane su komande koje se mogu koristiti pomoću GSM Click pločice za
obradu SMS poruka.

AT komanda SMS funkcija

AT+CSMS Odabir usluge za slanje


poruka

AT+CPMS Željena memorija za poruke

AT+CMGF Format poruke

AT+CSCA Adresa servisnog centra

AT+CSMP Podešavanje parametara


tekstualnog režima

AT+CSDH Prikaz parametara tekstualnog


režima

AT+CMGL Lista poruka

AT+CMGR Čitanje poruke


AT+CMGS Slanje poruke

AT+CMSS Slanje poruke iz memorije

AT+CMGW Upisivanje poruke u memoriju

AT+CMGD Brisanje poruke

Tabela 2.2 - SMS komande

U nastavku su opisane neke od SMS komandi koje se najčešće koriste:

AT+CSCA: Ova komanda postavlja ili vraća adresu SMS servisnog centra kao telefonski
broj. Parametri su <number>,<type> gde je,

<number> - telefonski broj servisnog centra u formatu koji je definisao parametar


<type>

<type> - vrsta broja

129 - šema numerisanja za domaći saobraćaj

145 - šema numerisanja za međunarodni saobraćaj (sadrži znak „+“)

Primer je dat na slici 2.37.

Slika 2.37 – Broj servisnog centra


Poruke se mogu poslati i primiti u dva formata primenom AT komandi: u formatu PDU
(jedinica za opis protokola) i u formatu TEXT (tekst). Format PDU omogućava slanje
podataka u 7-bitnom ili u 8-bitnom režimu kada želimo da pošaljemo komprimovane ili
binarne podatke. Format PDU se sastoji od heksadecimalnog niza znakova, uključujući
adresu SMS servisnog centra, broj pošiljaoca, vremensku oznaku itd. U formatu Text se
mogu poslati i primiti alfanumerički znakovi koji sadrže najviše 160 znakova uz 7-bitno
kodiranje i 140 znakova uz 8-bitno kodiranje.

Slanje i primanje poruka u tekstualnom režimu

Slanje

Slanje SMS poruke u tekstualnom režimu je veoma jednostavno i na slici 2.38 dat je primer
u kome je prikazano kako poruka Sending test SMS Message! može biti poslata na broj
mobilnog telefona +447415987053. Pretpostavlja se da je broj SMS servisnog centra već
učitan na SIM karticu i da je lozinka uneta:

Podesite SMS format na Text:

AT+CMGF=1
Podesite režim znakova na GSM:

AT+CSCS = “GSM”

Podesite SMS parametre:

AT+CSMP = 17,167,0,241

Podesite broj mobilnog telefona primaoca i tekstualnu poruku:

AT+CMGS=”+447415987053”

>Sending test SMS Message![Ctrl-Z]

Slika 2.38 – Slanje SMS poruke


Primetite da nakon unosa telefonskog broja primaoca, modem odgovara znakom > i tada
treba uneti poruku koja se šalje. Poruka treba da se završi znakom Cntrl-Z.

Hajde da pogledamo različite komande koje se koriste za slanje poruke:

Komanda AT+CMGF bira format poruke koji se koristi u SMS poruci. Komanda sadrži
parametar <mode> koji može da preuzme sledeće vrednosti:

<mode>

0 - PDU režim

1 - tekstualni režim

Komanda AT+CSCS se koristi za podešavanje skupa znakova koji će se koristiti u SMS


porukama tekstualnog režima. Važeći skupovi znakova su:

“GSM” – podrazumevana abeceda GSM-a

“IRA” – međunarodna referentna abeceda

”8859-1” – skup znakova ISO 8859 Latin 1

”PCCP437” – PC skup znakova

”UCS2” - 16-bitni univerzalni višeoktetni kodirani skup znakova

”HEX” - nizovi znakova koji sadrže samo heksadecimalne brojeve od 00 do FF


Komanda AT+CSMP se koristi za skup različitih drugih parametara koji su potrebni pre
slanja SMS-a u tekstualnom režimu. Ova komanda ima sledeće parametre:

<fo>,<vp>,<pid>,<dcs>

gde je,

<fo> - podešen na 17 da bi se označilo da se poruka šalje sa mobilnog uređaja u servisni


centar i da je polje <vp> važeće.

<vp> - bira period važenja poruke, a vrednost od 144 do 167 bira period na sledeći način:

12 č + ((vp – 143) x 30 minuta)

Stoga, uz postavku od 176, period važenja poruke je:

12 č + (167 – 143) x 30 minuta = 24 č

<pid> - identifikator protokola i podrazumevana vrednost je 0

<dcs> - koristi se za određivanje načina na koji su informacije kodirane. Ovo polje je


podešeno na vrednost 241 koja podešava poruku klase na 1 i koristi podrazumevanu
abecedu. Napominjemo da podešavanje klase poruke na 0 dovodi do momentalnog
prikazivanja poruke bez skladištenja u mobilnom telefonu (to se zove i fleš poruka).

Primanje

Komanda AT+CMGL može da se koristi za prikaz svih poruka uskladištenih na SIM kartici.
Kao što je prikazano na slici 2.39, unosom komande AT+CMGL=? prikazuju se svi
parametri te komande.

Slika 2.39 – Lista parametara komande AT+CMGL

Možemo da prikažemo sve primljene i pročitane SMS poruke na SIM kartici tako što ćemo
uneti komandu AT+CMGL=”REC READ”. Deo izlaza je prikazan na slici 2.40. Nepročitane
poruke možemo da prikažemo pomoću komande AT+CMGL=”REC UNREAD”. Isto tako,
sve pročitane i nepročitane poruke mogu da se prikažu pomoću komande
AT+CMGL=”ALL”.

Slika 2.40 – Lista pročitanih SMS poruka na SIM kartici


Komanda AT+CMGR=no može da se koristi za prikaz jedne poruke čiji indeksni broj je no.
Na slici 2.41 pokazano je na koji način se može prikazati poruka.

Slika 2.41 – Prikaz poruke 23


Komanda AT+CMGD=no može da se koristi za brisanje poruke koja sadrži indeks no. Na
slici 2.42 prikazano je kako se može izbrisati poruka koja sadrži indeksni broj 26.

Slika 2.42 – Brisanje poruke sa indeksnim brojem 26


Komanda AT+CMGD=1 može da se koristi za brisanje svih pročitanih poruka na SIM
kartici. Komanda AT+CMGW se koristi za skladištenje poruke na SIM kartici. Na slici 2.43
prikazano je kako poruka My SMS Message može da se uskladišti na SIM kartici. U ovom
primeru primećujete da se poruka mora završiti znakom Crtl-Z i skladišti se na indeksnoj
poziciji 1 SIM kartice i prijavljena je kao UNSENT (nije poslata). Komanda AT+CMGR=2 se
koristi za prikaz poruke.

Slika 2.43 – Skladištenje poruke na SIM kartici


Sada možemo da ovu poruku pošaljemo na mobilni telefon pomoću komande AT+CMSS,
kao što je prikazano u nastavku. Ovde su indeks poruke (2 u ovom primeru) i telefonski
broj (+447415987053 u ovom primeru) navedeni kao deo komande AT+CMSS:

AT+CMSS=2,”+447415987053”
Komanda AT+CMGW se koristi za skladištenje telefonskog broja da ne bismo morali svaki
put da ga unosimo. U nastavku je prikazano kako možemo da sačuvamo telefonski broj, a
zatim možemo da koristimo komandu AT+CMSS da bismo poslali SMS. U ovom primeru,
telefonski broj i poruka My Message! su uskladišteni na indeksnom broju 6. Komanda
AT+CMSS se zatim koristi za slanje poruke na navedeni mobilni telefon.

AT+CMGW=”+447415987053”

>My message!

+CMGW: 6

OK

AT+CMSS=6

+CMSS: 9

OK

Slanje i primanje poruka u PDU režimu


Ovde ćemo videti kako možemo poslati SMS poruke u PDU režimu. PDU režim omogućava
slanje i primanje binarnih podataka u 7-bitnom ili u 8-bitnom formatu.

SMS poruke mogu da sadrže najviše 160 7-bitnih znakova ili 140 8-bitnih znakova. 16-bitne
poruke mogu da sadrže najviše 70 znakova i koriste Unicode.

PDU režim se koristi za slanje i primanje binarnih podataka i u ovom režimu je teže poslati
podatke, jer osim podataka sadrži i informacije o pošiljaocu, broj SMS servisnog centra,
vremensku oznaku itd. Znakovi u PDU režimu su u heksadecimalnom formatu pod nazivom
okteti i u decimalnom formatu pod nazivom poluokteti.

U nastavku je dat primer koji prikazuje uputstvo za slanje poruke u PDU režimu:

Podesite SMS režim na PDU:

AT+CMGF=0

Odredite broj znakova za slanje (isključujući dve početne nule), a zatim i podatke koji se
šalju. Na primer, poruka „hello“ se šalje na sledeći način:

AT+CMGS=19

>0011000B913201183451F60000AA05E8329BFD06[Cntrl-Z]

Ova poruka sadrži 38 znakova (19 okteta) isključujući početne 00. Nakon što odredite broj
znakova, treba da unesete podatke o poruci kada se prikaže znak >. Podatke o poruci treba
da odredite pomoću znaka Cntrl-Z.
Format PDU poruke je sledeći:

Slika
Polja imaju sledeće definicije:

00 SCA (Broj servisnog centra) Dužina 0 znači da je SMSC uskladišten na SIM


kartici

11 PDU tip. To znači da je ovo polje Submit Message. Ovo polje ne morate da
menjate ako šaljete poruku

00 MR. Ovo je referentni broj poruke koji se povećava od 0 do 255. Ovo polje
treba da bude podešeno na 00 i njime upravlja mobilni telefon.

0B LEN. Dužina odredišnog telefonskog broja (ovde je to 11 decimalnih znakova)

81 TNO. Vrsta broja. 91 određuje format telefonskog broja za međunarodni


saobraćaj. 81 određuje format telefonskog broja za domaći saobraćaj

3201183451F6 DA. Odredišni telefonski broj je u obliku poluokteta. U ovom


primeru stvarni broj je 23108143156. Telefonski broj sadrži 11
znakova (neparan broj), pa mu se dodaje prateći F da bi se mogao
prikazati pomoću poluokteta. Ako je broj za domaći saobraćaj, npr.
12345678, onda polje LEN treba da bude 08, polje TNO treba da
bude 81 i telefonski broj treba da bude 21436578

00 PID. Identifikator protokola (Protocol Identifier). Ovo polje treba da bude 00


za kratke poruke

00 DCS. Kodna šema podataka (Data Coding Scheme). Podrazumevana vrednost


00 označava da se koristi 7-bitna kodna šema abecede

AA VP. Period važenja (Validity Period). AA označava 4 dana. Period važenja se


određuje na sledeći način:

0-143 (VP+1) x 5 minuta

144-167 12 č + ((VP-143) x 30 minuta

168-196 (VP-166) x 1 dan


197-255 (VP-192) x 1 nedelja

Heksadecimalni AA = 170 decimalnih znakova. Dakle,

(170-166) x 1 dan = 4 dana

05 UDL. Dužina korisničke poruke. U ovom primeru poruka je „hello“, koja sadrži
5 znakova.

E8329BFD06 UD. Korisnička poruka. U ovom primeru poruka je „hello“. Ova poruka je
kodirana kao što je opisano u nastavku.

Kodiranje PDU poruke

Proces kodiranja PDU poruke je opisan u nastavku (više detalja možete pronaći u
dokumentu GSM 0.3.38 Instituta European Telecommunications Standards):

Znak se sastoji od 7 bita (a,b,c,d,e,f,g) kao u:

b7 b6 b5 b4 b3 b2 b1

a b c d e f g

Ako postoji samo jedan znak, gornji bit je 0 kao u:

7 6 5 4 3 2 1 0

0 1a 1b 1c 1d 1e 1f 1g

Ako postoje dva znaka, onda se kreiraju dva okteta sa dve vodeće nule na sledeći način:

7 6 5 4 3 2 1 0

2g 1a 1b 1c 1d 1e 1f 1g

0 0 2a 2b 2c 2d 2e 2f

Ako postoje tri znaka, onda se kreiraju tri okteta sa tri vodeće nule na sledeći način:

7 6 5 4 3 2 1 0

2g 1a 1b 1c 1d 1e 1f 1g

3f 3g 2a 2b 2c 2d 2e 2f

0 0 0 3a 3b 3c 3d 3e

Ako postoje četiri znaka, onda se kreiraju četiri okteta sa četiri vodeće nule na sledeći
način:

7 6 5 4 3 2 1 0

2g 1a 1b 1c 1d 1e 1f 1g

3f 3g 2a 2b 2c 2d 2e 2f

4e 4f 4g 3a 3b 3c 3d 3e

0 0 0 0 4a 4b 4c 4d
Isto tako, ako postoji pet znakova kao u našoj poruci, onda se kreiraju pet okteta sa pet
vodećih nula na sledeći način:

7 6 5 4 3 2 1 0

2g 1a 1b 1c 1d 1e 1f 1g

3f 3g 2a 2b 2c 2d 2e 2f

4e 4f 4g 3a 3b 3c 3d 3e

5d 5e 5f 5g 4a 4b 4c 4d

0 0 0 0 0 5a 5b 5c

I tako dalje, bitovi novih znakova se pomeraju. Za našu poruku „hello“ kodiranje je
sledeće:

Znak 7-bitni ASCII binarni kod Heksadecimalni kod

h 110 1000 68

e 110 0101 65

l 110 1100 6C

l 110 1100 6C

o 110 1111 6F

Pomoću gorenavedenog primera od pet znakova, možemo da predstavimo poruku „hello“ na


sledeći način:

11101000 E8

00110010 32

10011011 9B

11111101 FD

00000110 06

Stoga, poruka „hello“ je kodirana pomoću heksadecimalnih brojeva E8329BFD06.

2.4 Modul SIM900 GSM/GPRS za Arduino


U ovoj knjizi ćemo koristiti popularni modul SIM900 GSM/GPRS u projektima zasnovanim na
Arduinu. Važno je da pogledate specifikacije ovog modula. Na slici 2.44 prikazana je prednja
strana ovog modula, a na slici 2.45 prikazana je zadnja strana.
Slika 2.44 – Prednja strana SIM900 Arduino modula
Slika 2.45 – Zadnja strana SIM900 Arduino modula
Na prednjoj strani se nalazi:

 SIM900 GSM/GPRS čip

 +5V priključak za napajanje

 Prekidač za odabir napajanja

 Priključci za mikrofon i zvučnik

 Taster za napajanje

 Utičnica za antenu

 Svetla za mrežu i status

 Kratkospojnici za odabir serijskog porta (hardvera ili softvera)

 Ivični konektori (Edge connectors)

Na zadnjoj strani se nalazi:

 Držač SIM kartice standardne veličine

 Držač baterije

 Pinovi za priključivanje na Arduinu

Modul SIM900 GSM/GPRS se zasniva na SIM900 modulu kompanije SIMCOM i kompatibilan


je sa Arduinom i njegovim klonovima. Modul obezbeđuje sredstvo za komunikaciju pomoću
GSM mreže mobilnih telefona. Modul omogućava da koristimo SMS, MMS, GPRS i Audio
putem UART-a slanjem AT komandi. Takođe, modul na pločici sadrži 12 GPIO-va, 2 PWM-a i
ADC modula SIM900 (svi su kompatibilni sa logičkim nivoom od 2,8 V).

Osnovne funkcije SIM900 GSM/GPRS čipa su sledeće:

 Četvorostruki opseg 850 / 900/ 1800 / 1900 MHz

 GPRS multislot klasa 10/8

 Klasa 4 (2 W @ 850 / 900 MHz)

 Klasa 1 (1 W @ 1800 / 1900MHz)

 Upravljanje pomoću AT komandi

 Usluga slanja kratkih poruka – za slanje male količine podataka preko mreže (ASCII
ili sirovi heksadecimalni podaci)

 Ugrađeni TCP/UDP stek – omogućava učitavanje podataka na veb server

 Podrška za RTC

 Niska potrošnja energije – 1,5 mA u režimu spavanja

Osim toga, modul nudi sledeće funkcije:

 Utičnice za zvučnik i mikrofon

 Držač SIM kartice


 Priključak za napajanje

 Kratkospojnici za odabir serijske komunikacije

 Utičnica za antenu i antena

 12 U/I za opštu namenu (GPIO-ova)

 2PWM-a i ADC

 Ivični konektori za interfejs signala

Na slici 2.46 prikazane su različite komponente i kratkospojnici koji se nalaze na prednjoj


strani modula. Kada pločica radi bez Arduina, treba je napajati iz spoljnog napajanja od +5V
preko konektora utičnice za napajanje (power jack). Pobrinite se da je prekidač za odabir
napajanja (power select) podešen za upotrebu spoljnog napajanja (položaj prekidača se
nalazi u suprotnom smeru od pločice, kao što je prikazano na slici 2.46). Pločica može da
radi pomoću serijskih portova za komunikaciju hardvera ili softvera. U ovoj knjizi ćemo
koristiti softversku serijsku komunikaciju i za to su potrebna dva kratkospojnika za odabir
serijskog porta (serial port select jumpers) koji treba da budu priključeni na pločicu, kao
što je prikazano na slici 2.46. U ovom režimu pin D7 i pin D8 su pinovi serijskog porta za
prijem (RX) i prenos (TX).

Slika 2.46 – Detaljan prikaz modula SIM900 GSM/GPRS


Modul SIM900 GPS/GPRS može da radi pomoću računara ili pomoću mikrokontrolera, kao
što je Arduino. U sledećem odeljku videćemo kako modul može da se poveže sa računarom i
da se kontroliše sa računara. To je korisno radi učenja različitih funkcija modula, kao što su
AT komande.
2.4.1 AT komande modula SIM900 GSM/GPRS

U ovom odeljku povezaćemo modul SIM900 GSM/GPRS sa računarom i videćemo kako se


može kontrolisati sa računara korišćenjem AT komandi.

Koraci za povezivanje modula sa računarom su sledeći:

 Priključite USB-TTL serijski adapter

 Broj serijskog porta pronađite u upravljaču uređajem (Device Manager), kao što je
prikazano na slici 2.9.

 Pokrenite HyperTerm program i unesite naziv veze (npr. GSM), kao što je prikazano
na slici 2.10.

 Izaberite broj serijskog porta (COM2 u ovom primeru) i kliknite OK kao na slici 2.11.

 Podesite parametre serijskog porta na sledeći način:

Bits per second: 19200 bps

Data Bits: 8

Parity: None

Stop bits: 1

Buffer size: 1024

Flow control: None

 Omogućite lokalni eho da biste videli komandu koju kucate: Kliknite File ->
Properties -> Settings -> ASCII setup, a zatim kliknite Echo typed characters
locally. Kliknite OK i izađite iz menija.

 Priključite napajanje od +5V na utičnicu za napajanje modula i izaberite spoljno


napajanje.

 Povežite GND pin USB-TTL adaptera sa GND pinom modula. Takođe, povežite TX pin
USB-TTL adaptera sa pinom D7 (RX) modula i povežite RX pin USB-TTL adaptera sa
pinom D8 (TX) modula.

 Sada smo spremni za slanje komandi na SIM900 GSM/GPRS modul sa računara.

 Na slici 2.47 prikazan je blok dijagram veze između računara i modula. Stvarna veza
je prikazana na slici 2.48.

Slika 2.47 – Blok dijagram veze računar-modul


Slika 2.48 – Povezivanje modula sa računarom
Modul SIM900 GSM/GPRS podržava standardne AT komande. Osim toga, postoje komande
specifične za ovaj modem. U ovom odeljku ćemo razmatrati neke standardne AT komande.
Listu svih AT komandi koje su podržane možete pronaći na veb sajtu proizvođača.

Na slici 2.49 i 2.50 prikazani su odgovori na neke AT komande koje podržava modul SIM900
GSM/GPRS u kojima:

ATI: Vraća identifikaciju proizvoda

AT+GSN: Vraća serijski broj

AT+GMI: Vraća identifikaciju proizvođača

AT+GMM: Vraća identifikaciju modela

AT+GMR: Vraća verziju izdatog softvera

AT&V: Vraća trenutnu konfiguraciju


Slika 2.49 - Neke AT komande koje podržava modul SIM900
Slika 2.50 - Još neke AT komande koje podržava modul SIM900

2.5 Korišćenje programa AT Command Tester


AT Command Tester je besplatna alatka na vebu koja se koristi za testiranje AT komandi i
drugih funkcija GSM/GPRS modema. Alatka Command Tester se povezuje sa portom
modema uređaja i može da testira različite funkcije modema, kao što su dobijanje
informacija o uređaju, gprs poziv s podacima, glasovni poziv, pristup http protokolu,
provera stanja signala, registracija mreže, SMS funkcije, pristup SIM kartici, funkcije
telefonskog imenika itd.
AT Command Tester je dostupan na sledećem veb sajtu i treba da se instalira pre
korišćenja:

http://m2msupport.net/m2msupport/module-tester/

Nakon što ste instalirali program, kliknite ikonu AT Command Tester da biste ga pokrenuli.
U nastavku su dati koraci za konfigurisanje i upotrebu AC Command Tester-a:

Kliknite Find Ports da biste videli dostupne serijske portove i izaberite port sa kojim je
povezan GSM/GPRS modem preko USB-TTL adaptera. U ovom primeru se koristi COM2.

Izaberite brzinu prenosa (u ovom primeru je 9600) i kliknite Connect. Na slici 2.51
prikazan je modem koji je povezan sa COM2 računara.

Nakon uspešnog uspostavljanja veze, modemu će automatski biti poslat niz AT komandi radi
prikaza broja modela i šifre proizvođača, kao što je prikazano na slici 2.51.

Slika 2.51 – Ekran programa AT Command Tester.


Možete da pošaljete druge AT komande i prikažete rezultat tako što ćete kliknuti navedene
opcije. Na primer, ako kliknete opciju Capability, poslaćete komandu AT+CGAP na modem
(pogledajte sliku 2.52) i prikazaće se funkcije koje podržava modem, kao što su GSM, Data
Service, Fax i Mobile Specific.
Slika 2.52 – Klik na dugme Capability
Isto tako, ako kliknete dugme IMEI prikazuje se IMEI broj SIM kartice koja je instalirana na
GSM/GPRS modemu (pogledajte sliku 2.53).

Slika 2.53 – Klik na dugme IMEI


Ako kliknete dugme Operator Info, prikazuje se trenutni operater Vodafone u UK-a, kao
što je prikazano na slici 2.54.

Slika 2.54 – Klik na dugme Operater Info


Primetite da za neke AT komande morate da unesete PIN broj (primenom komande
AT+CPIN=”pin no”) vaše SIM kartice (ako postoji) da bi komanda bila prihvaćena
prilikom čitanja telefonskog imenika. Na slici 2.55 prikazan je primer čitanja stavki iz
telefonskog imenika (ovde je prikazan samo deo telefonskog imenika).

Slika 2.55 – Čitanje stavki iz telefonskog imenika


Pomoću programa AT Command Tester možete lako da testirate mnoge druge funkcije
modema.
2.6 Rezime
U ovom poglavlju detaljno smo razmatrali dve popularne GSM/GPRS pločice koje su
korišćene u projektima koji se zasnivaju na PIC mikrokontroleru i Arduinu: GSM Click
pločicu i modul SIM900 GSM/GPRS. Detaljno su opisane funkcije obe pločice. Pored toga,
prikazano je kako da ove pločice povežete sa računarom pomoću USB-TTL adaptera, a
takođe prikazano je kako da kontrolišete ove pločice sa računara primenom standardnih AT
komandi.

Prikazana je upotreba programa AT Command Tester uz primere. Ovaj program je veoma


koristan jer može da se koristi za jednostavno testiranje različitih funkcija GSM/GPRS
modema.

U sledećem poglavlju biće reči o tome kako da razvijete projekte korišćenjem ovih pločica u
sistemima zasnovanim na mikrokontroleru.

2.7 Vežbe
1. Opišite kako se GSM Click modem može povezati sa računarom i kako se AT
komande mogu poslati na modem.

2. Opišite kako se lozinka može uneti pomoću AT komande.

3. Potrebno je poslati SMS tekstualnu poruku „Testing the SMS“ na mobilni telefon koji
ima lokalni broj „07678321345”. Prikažite u koracima kako to možete uraditi pomoću
AT komandi.

4. Prikažite kako se stavke iz telefonskog imenika koje su sačuvane na SIM kartici


mogu pročitati primenom AT komande.

5. Opišite kako možete inicirati i prekinuti poziv korišćenjem AT komande.

6. Koja AT komanda se koristi za odgovor na poziv?

7. Prikažite kako se PDU poruka „My SMS“ može kodirati.

8. Potrebno je poslati kodiranu poruku iz vežbe (7) iznad na mobilni telefon. Opišite
kako se to može uraditi i navedite sve potrebne AT komande.
Poglavlje 3 – Programerske alatke mikrokontrolera
Razvoj sistema zasnovan na mikrokontroleru je složen proces. U programerske alatke
spadaju hardverske i softverske alatke koje pomažu programerima da programiraju i
testiraju sisteme u veoma kratkom vremenu.

Većina programerskih alatki mikrokontrolera koje se najčešće koriste su uređivači,


asembleri, kompajleri, debageri, simulatori, emulatori i uređaji za programiranje. Uobičajeni
razvojni ciklus zasnovan na mikrokontroleru počinje pisanjem aplikacijskog programa
pomoću uređivača teksta. Aplikacijski program se piše pomoću uređivača i pretvara u
izvršivi kod tako što se koristi asembler ili kompajler. Izvršivi kod sadrži binarni prikaz
izvornih instrukcija ciljnog mikrokontrolera. Veliki programi se obično sastoje od nekoliko
modula koji su spojeni u jedan aplikacijski program pomoću programa za povezivanje. U
ovoj fazi programiranja asembler ili kompajler detektuje svaku sintaksičku grešku koja mora
biti ispravljena da bi se izvršivi kod generisao.

Aplikacijski program se obično otprema u programsku memoriju ciljnog sistema


mikrokontrolera, radi testiranja. Međutim, u većini aplikacija simulator za testiranje se
koristi pre nego što se aplikacijski program otpremi na stvarni hardver mikrokontrolera.
Simulator radi na računaru i može biti veoma koristan za testiranje logike algoritma ili za
testiranje rada programa sa ograničenom ulazno-izlaznom podrškom. Uopšteno rečeno,
većina algoritamskih logičkih grešaka se može ukloniti tokom faze simulacije.

Ako je programer zadovoljan radom programa u fazi simulacije, sledeća faza razvojnog
ciklusa je otpremanje izvršivog koda u programsku memoriju ciljnog mikrokontrolera koje
se obično obavlja pomoću uređaja za programiranje mikrokontrolera. Završni sistem se
zatim testira pomoću mikrokontrolera i njegovih pridruženih uređaja interfejsa koji su
povezani sa ulazima i izlazima mikrokontrolera. Tokom ovog ciklusa različite softverske i
hardverske alatke, kao što su debageri ili emulatori ugrađeni na kolu, mogu da se koriste za
analiziranje rada programa u stvarnom vremenu i na stvarnom hardveru. Promenljive
programa i sadržaj registra mikrokontrolera se mogu ispitati i modifikovati, a program se
može izvršiti u režimu „korak po korak“. Tačke prekida se mogu podesiti u programu da bi
se zaustavilo izvršenje i ispitalo stanje sistema u stvarnom vremenu.

Programerske alatke za mikrokontrolere se mogu analizirati u dve grupe: softver i hardver.


Na tržištu je dostupno mnogo takvih alatki, a detaljno razmatranje svih tih alatki je izvan
opsega ove knjige. U ovom poglavlju ćemo ukratko pregledati samo alatke koje se najčešće
koriste.

3.1 Softverske programerske alatke


Softverske programerske alatke su računarski programi koji rade na ličnim računarima i
pomažu programeru (ili projektantu sistema) da kreira, modifikuje ili testira aplikacijske
programe. Ovo su neke od softverskih programerskih alatki koje se najčešće koriste:

 Uređivači teksta

 Asembleri i kompajleri

 Simulatori
3.1.1 Uređivači teksta

Korisnički programi (koji se nazivaju i izvorni kod) kreiraju se pomoću uređivača teksta.
Uređivač teksta je računarski program koji radi na računaru i omogućava programeru da
kreira ili modifikuje programe i tekstualne datoteke. Notepad je jednostavan aplikacijski
program za uređenje teksta koji se isporučuje sa operativnim sistemom Windows i može da
se koristi za kreiranje novih programa, za modifikovanje postojećih programa ili za prikaz ili
ispis programa. Važno je da znate da programe koji se koriste za obradu teksta, kao što je
Word u Windows-u, nije moguće koristiti kao uređivače teksta. To je zato što programi za
obradu teksta nisu stvarni uređivači teksta, jer sadrže specijalne znakove za formatiranje
koji se koriste za promenu izgleda znakova pomoću ugrađenih alatki, kao što su podvučeno,
podebljano, kurziv, eksponent, indeks itd.

Većina asemblera i kompajlera imaju veoma moćne ugrađene uređivače teksta sa posebnim
dinamičkim programerskim alatkama koje pomažu programerima da napišu čitljive
programe bez sintaksičkih grešaka. Pomoću ovih uređivača možemo da napišemo program i
zatim da obavimo asembliranje ili kompajliranje tog programa, a da pritom ne moramo da
izađemo iz uređivača. Takođe, većina takvih uređivača sadrži dodatne funkcije, kao što su
automatsko isticanje ključnih reči, provera sintakse, uparivanje zagrada, identifikacija linije
komentara i tako dalje. Pored toga, različiti delovi programa se mogu prikazati u različitim
bojama da bi program postao čitljiviji i održiviji. Na primer, komentari se mogu prikazati
jednom bojom, ključne reči drugom bojom, rezervisane reči programa trećom bojom i tako
dalje. Ove funkcije mogu da ubrzaju proces razvoja programa, jer sve sintaksičke greške
mogu da se eleminišu u fazi razvoja programa.

3.1.2 Asembleri i kompajleri

Asembleri i kompajleri su veoma važne softverske alatke koje se koriste tokom razvoja
sistema zasnovanom na mikrokontroleru. Asembleri generišu izvršivi izvorni kod iz
programa u asemblerskom jeziku. Generisani kod se učitava u programsku memoriju ciljnog
mikrokontrolera da bi se ceo sistem mogao testirati.

Slično tome, kompajleri generišu izvršivi kod iz programa u jeziku visokog nivoa. Neki
kompajleri za mikrokontrolere koji se najčešće koriste su BASIC, C i PASCAL.

Asemblerski jezik trenutno nije mnogo popularan i koristi se samo u vremenski kritičnim
aplikacijama u kojima mikrokontroler treba da odgovori na spoljne događaje što je brže
moguće i u stvarnom vremenu. Glavni nedostatak asemblerskog jezika je taj što je pomoću
njega teško razviti složene programe. S druge strane, jezici visokog nivoa su mnogo lakši za
učenje i upotrebu. U današnje vreme, većina velikih i složenih programa su razvijeni
korišćenjem jezika visokog nivoa. U poređenju sa asemblerskim jezikom, glavna prednost
korišćenja jezika visokog nivoa je da programi visokog nivoa mogu da budu razvijeni mnogo
brže, a razvijeni program lako može da se testira i održava. Na primer, razvoj rutine
množenja brojeva s pokretnim zarezom u asemblerskom jeziku je komplikovan i oduzima
veoma mnogo vremena, jer zahteva mnogo redova asemblerskog koda. S druge strane,
upotreba jezika visokog nivoa, kao što je rutina množenja, može da se implementira
pomoću jedne naredbe.
U svim projektima iz ove knjige koristiće se jezik C. Projekti za PIC mikrokontroler će biti
razvijeni korišćenjem veoma popularnog mikroC Pro for PIC jezika. Ovaj jezik sadrži veoma
veliku biblioteku funkcija koja pomaže programerima da napišu složene programe. Arduino
programi u knjizi će biti razvijeni pomoću klasičnih i popularnih Arduino skriptova.

3.1.3 Simulatori

Simulator je računarski program koji radi na računaru bez hardvera mikrokontrolera i


simulira ponašanje ciljnog mikrokontrolera tako što interpretira instrukcije korisničkog
programa koristeći skup instrukcija ciljnog mikrokontrolera. Programeri mogu da podese
tačke prekida u simulatorima i da zaustave izvršenje programa u tim tačkama prekida.
Promenljive programa i registri mogu se zatim, po potrebi, lako pregledati i modifikovati.

Simulatori u jeziku visokog nivoa, poznati i kao izvorni debageri, su jednostavni računarski
programi koji rade na računaru. Izvorni debager omogućava da pronađemo logičke greške u
našim programima visokog nivoa. Možemo da podesimo tačke prekida u naredbama visokog
nivoa, izvršimo program do tih tačaka prekida, a zatim da na tim tačkama prekida
prikažemo vrednost različitih promenljivih programa, sadržaj registara, U/I portove i
lokacije memorije. Takođe, na ovim tačkama prekida možemo da promenimo vrednost
promenljivih i registara. Većina kompajlera u jeziku visokog nivoa, takođe, sadrži ugrađene
izvorne debagere.

Takođe, izvorni debager može da aktivira debagiranje koje se zasniva na hardveru koristeći
namenski uređaj za debagiranje hardvera. Na primer, korisnički program na ciljnom
mikrokontroleru se može zaustaviti i mogu se lako pregledati i ispitati vrednosti različitih
promenljivih i registara.

3.1.4 Integrisano razvojno okruženje (IDE)

Integrisana razvojna okruženja su moćni programski paketi zasnovani na računaru koji


sadrže sve za kreiranje, uređivanje, asembliranje, kompajliranje, povezivanje, simuliranje,
izvorno debagiranje i otpremanje generisanog izvršivog koda u fizičku programsku
memoriju ciljnog čipa mikrokontrolera (putem ugrađenog uređaja za programiranje).
Integrisana razvojna okruženja su jednostavni korisnički programi, obično u obliku paketa
grafičkog korisničkog interfejsa (GUI) u kojem programer može jednostavno da izabere
opciju koja mu je potrebna iz različitih ugrađenih menija. IDE je veoma moćna
programerska alatka za mikrokontroler, jer omogućava programeru da obavlja većinu
programerskih zadataka u jednom okruženju.

3.2 Hardverske programerske alatke


Dostupno je mnogo hardverskih alatki za mikrokontrolere. Proizvođači mikrokontrolera nude
različite hardverske programerske alatke za podršku razvoja projekata koji koriste njihove
čipove. Odabir programerske alatke zavisi od tipa mikrokontrolera koji će se koristiti u
projektu.

Ovo su neke hardverske programerske alatke koje se najčešće koriste:

 Razvojne ploče

 Uređaji za programiranje

 Ugrađeni debager
 Ugrađeni emulator

 Prototipske ploče

1.1 3.2.1 Razvojne ploče


Razvojne ploče su dragocene programerske alatke mikrokontrolera. Jednostavne razvojne
pločice sadrže samo mikrokontroler i potrebno kolo radnog takta. Neke sofisticirane
razvojne ploče sadrže LED-ove, LCD, tastere, serijske portove, USB port, kolo za napajanje,
uređaj za programiranje hardvera itd.

U ovom odeljku ćemo pogledati specifikacije nekih popularnih komercijalnih razvojnih ploča
PIC mikrokontrolera i Arduina. Zainteresovani čitaoci mogu da potraže više informacija o
razvojnim pločama na veb sajtovima proizvođača.

1.2 Razvojna ploča EasyPIC V7


Ovo je visoko sofisticirana razvojna ploča PIC mikrokontrolera (slika 3.1) koju je razvila
kompanija mikroElektronika. Ploča podržava veliki broj PIC 18F mikrokontrolera, od 8 do 40
pinova. Mikrokontroler na pločici može jednostavno da se zameni, po želji, jer je priključen
na DIL utičnicu. Pločica se isporučuje sa sklopljenim PIC18F45K22 mikrokontrolerom koji
sadrži kristal 8MHz. Razvojna ploča sadrži USB port, uređaj za programiranje i debager.

Slika 3.1 – Razvojna ploča EasyPIC V7


Glavne funkcije ove razvojne ploče su sledeće:

 36 dugmadi

 36 LED-ova

 USB priključak

 Spoljno ili USB napajanje

 2 potenciometra analognih izlaza

 Grafički LCD dimenzije 128 x 63

 Tekstualni LCD dimenzije 2 x 16

 Kontroler sa tablom osetljivom na dodir


 4-cifarni 7-segmentski ekran

 2 serijska RS232 porta

 I2C EEPROM

 Piezo zujalica

 mikrolCD ugrađeni debager

 mikroBUS konektor intefejsa

 Uređaj za programiranje

 Digitalni čip termometra (DS1820)

 Analogni čip za temperaturu (LM35)

 Analogni ulazi

 Dugme za resetovanje

 U/I port konektori za sve pinove porta

Dobra stvar kod razvojne ploča EsayPIC V7 je da podržava mikroBUS interfejs, pa zato
veliki broj (trenutno preko 200) periferijskih pločica, kao što su senzori, aktuatori i displeji
(koji se zovu Click pločice), može da se poveže na razvojnu ploču putem mikroBUS
konektora koji se nalaze na ploči. Na primer, slika 3.2 prikazuje primer Click pločicu
akcelerometra.

Slika 3.2 – Click pločica akcelerometra

1.3 Razvojna ploča Clicker 2 za PIC18FJ


Ovo je mala, jeftina, ali moćna razvojna ploča PIC mikrokontrolera (pogledajte sliku 3.3),
koju je proizvela kompanija mikroElektronika. Ova ploča se koristi u svim PIC GSM/GPRS
projektima zasnovanim na PIC mikrokontroleru iz ove knjige. Ploča sadrži dva mikroBUS
konektora, tako da bilo koja od preko 200 Click pločica može da se priključi na nju. Ploča se
isporučuje sa PIC18F87J50 čipom mikrokontrolera srednje performanse, koji sadrži kristal
8MHz.

Glavne funkcije ploče Clicker 2 za PIC18FJ su sledeće:

 PIC18F87J50, 12MIPS mikrokontroler na ploči

 Fleš programska memorija od 128 KB

 3,904 bajtova RAM memorije

 Rad do 48 MHz

 Unutrašnji oscilator

 miniUSB priključak
 Prekidač za resetovanje

 Prekidač za uključivanje/isključivanje

 2 x mikroBUS konektora

 2 x prekidača tastera

 2 x LED-ova

 5 V (preko USB-a) ili rad na bateriju

 3,3 V napajanja

 U/I signala na ivičnim konektorima

 Program Bootloader na ploči

 25 mA U/I odvođenja/dovođenja struje

 12 10-bitnih ADC-a

 2 x EUSART serijskih portova

 2 x 8-bitni tajmer, 3 x 16-bitni tajmer

 SPI i I2C magistrale

 3 x PWM porta

 Funkcije za upravljanje napajanjem

Očekuje se da su čitaoci upoznati sa programiranjem makar jednog PIC mikrokontrolera


koristeći programski jezik C.
Slika 3.3 – Razvojna ploča Clicker 2 za PIC18FJ

2 Razvojna ploča Arduino UNO


Arduino serija razvojnih ploča je trenutno jedna od najpopularnijih razvojnih ploča
mikrokontrolera. One se zasnivaju na Atmega porodici mikrokontrolera. Neke popularne
razvojne ploče iz ove porodice su Arduino Uno, Arduino Leonardo, Arduino Fio, Arduino
Nano, Arduino Pro, Arduino Mega i druge. Očekuje se da su čitaoci upoznati sa
programiranjem makar jedne Arduino razvojne ploče.

U ovom odeljku ćemo kratko pogledati detalje o razvojnoj ploči Arduino Uno koju koriste
mnogi studenti, istraživači i hobisti.

Na slici 3.4 prikazana je Arduino Uno razvojna ploča zasnovana na Atmega328


mikrokontroleru koji radi pomoću keramičkog rezonatora od 16 MHz. Ploča sadrži sve što je
potrebno za programiranje. Ploča ima 14 digitalnih pinova ulaza/izlaza i 6 analognih ulaza.
Revizija 3 razvojne ploče Arduino Uno ima sledeće osnovne funkcije:
 Atmega328 mikrokontroler

 14 digitalnih ulaza/izlaza (6 možete da koristite kao PWM izlaze)

 6 analognih ulaza

 32 KB fleš memorije (0,5 KB koristi program Bootloader)

 2 KB SRAM memorije

 1 KB EEPROM memorije

 Ulaz za napajanje 7 – 12 V (rad na 5 V)

 Radni takt od 16 MHz

 USB veza

 Priključak za napajanje

 ICSP zaglavlje

 Dugme za resetovanje

 Utičnice za pinove ulaza/izlaza

Slika 3.4 – Razvojna ploča Arduino Uno

3.2.2 Uređaji za programiranje

Nakon pisanja i pretvaranja programa u izvršivi kod, rezultujuća HEX datoteka treba da se
učita u programsku memoriju ciljnog mikrokontrolera. Uređaji za programiranje se koriste
za učitavanje programske memorije stvarnog čipa mikrokontrolera. Vrsta uređaja za
programiranje koji će se koristiti zavisi od tipa mikrokontrolera koji se programira. Na
primer, jedni uređaji za programiranje mogu samo da programiraju PIC16 seriju, drugi
mogu da programiraju serije PIC16 i PIC18, a treći se koriste za programiranje različitih
modela mikrokontrolera (npr. serije Intel 8051).

Neki razvojni kompleti za mikrokontrolere, takođe, sadrže uređaje za programiranje na ploči


i zato nema potrebe da se čip mikrokontrolera uklanja i stavlja u uređaj za programiranje.
Razvojne ploče Clicker 2 za PIC18FJ i Arduino Uno sadrže programe Bootloader koji su
unapred učitani u programsku memoriju njihovih mikrokontrolera. Zahvaljujući ovim
Bootloaderima, ove razvojne ploče mogu lako da se programiraju sa računara bez upotrebe
spoljnih uređaja za programiranje.
3.2.3 Prototipske ploče

Da bi se napravilo električno kolo, potrebno je povezati komponente, kao što je prikazano


na odgovarajućoj električnoj šemi, obično lemljenjem na strip pločicu ili štampanu pločicu
(PCB). Ovaj pristup je pogodan za kola koja su testirana i funkcionišu po potrebi, kao i za
kola koja su trajna. Međutim, praviti PCB dizajn sa samo nekoliko aplikacija – na primer,
tokom faze razvoja kola – nije ekonomično.

Umesto toga se tokom faze razvoja kola komponente obično sklapaju na ploči bez lemljenja.
Obična prototipska ploča (pogledajte sliku 3.5) sastoji se od redova i kolona rupica koje su
raspoređene tako da se integrisana kola i druge komponente mogu postaviti unutar njih.
Rupice imaju opruge tako da su vodovi komponenata čvrsto pričvršćeni. Postoje različiti
tipovi i veličine prototipskih ploča koje su pogodne za kola različite složenosti. Prototipske
ploče mogu da se spoje da bi se napravile veće ploče za složenija kola. Na slici 3.6 prikazan
je unutrašnji sloj povezivanja prototipske ploče koja je data na slici 3.5.

Slika 3.5 – Obična prototipska ploča


Gornja i donja polovina prototipske ploče su odvojene bez veza između njih. Kolone od 1 do
20 u redovima od A do F su međusobno povezane na osnovu kolone. Isto tako, redovi od G
do L u kolonama od 1 do 20 su međusobno povezani na osnovu kolone. Integrisana kola su
postavljena tako da se nogice na jednoj strani nalaze na vrhu polovine prototipske ploče, a
nogice na drugoj strani kola na donjoj polovini prototipske ploče. Prve dve kolone na levoj
strani ploče su obično rezervisane za napajanje i uzemljenje. Povezivanje komponenata se
obično obavlja pomoću licnastih (ili punih) žica koje su postavljene u rupice radi
povezivanja.
Slika 3.6 – Unutrašnje povezivanje prototipske ploče sa slike 3.5
Na slici 3.7 prikazana je slika prototipske ploče sa dva integrisana kola i nizom otpornika i
kondenzatora.

Slika 3.7 – Slika prototipske ploče sa nekoliko komponenata


Dobra stvar kod dizajna prototipske ploče je što može vrlo lako i brzo da se modifikuje i
mogu da se testiraju različite ideje bez lemljenja svake komponente. Komponente mogu
lako da se uklone, a prototipska ploča može da se koristi za druge projekte nakon što se
kolo testira i utvrdi da pravilno radi.

3.3 Primer programa za razvojnu ploču Clicker 2 za PIC18FJ


Cilj je da se u ovom odeljku prikaže kako može da se razvije jednostavan program za
razvojnu ploču Clicker 2 za PIC18FJ (u daljem tekstu Clicker 2 ploča) pomoću Pro for PIC
jezika i integrisanog razvojnog kola (IDE), kao i kako razvijeni program može da se otpremi
u fleš memoriju ciljnog mikrokontrolera na razvojnoj ploči.
Dva LED-a na Clicker 2 ploči povezana su sa pinovima porta RD4 i RE4, tim redom. U ovom
primeru, LED koji je povezan sa pinom porta RD4 (pinom 4 porta D) će trepereti svake
sekunde. Na slici 3.8 prikazan je listing programa mikroC Pro for PIC ovog primera. Na
početku promenljive programa naziv LED je dodeljen pinu porta RD4. Unutar glavnog
programa pin RD4 je konfigurisan kao izlazni port. Ostatak programa radi u beskonačnoj
petlji koja je kreirana naredbom while. Unutar ove petlje LED se uključuje i umetnuto je
drugo kašnjenje, LED se zatim uključuje i umetnuto je još jedno kašnjenje. Stoga, ukupan
učinak je da LED treperi svake sekunde.
Slika 3.8 – Listing programa primera
Koraci za kreiranje programa su sledeći:

 Pokrenite mikroC for PIC IDE

 Kliknite Project -> New Project i izaberite stavku Standard Project, kliknite Next,
kao što je prikazano na slici 3.9.

Slika 3.9 – Odaberite stavku Standard Project


 Izaberite naziv projekta (ovde je to LED), direktorijum projekta (ovde je C:\ALEVS\)
i uređaj radnog takta 8 MHz, kao što je prikazano na slici 3.10. Kliknite Next.

Slika 3.10 – Izaberite naziv projekta i direktorijum


 Kliknite Next.

 Izaberite opciju Include All Files kao na slici 3.11 i kliknite Finish.
Slika 3.11 – Izaberite opciju Include All Files
Sada treba da se pojavi prazan ekran. Unesite program koji je dat na slici 3.8.

Sada smo spremni da kompajliramo naš program. Ali pre toga, potrebno je da
konfigurišemo radni takt, pošto PIC18F87J50 mikrokontroler ima nekoliko opcija radnog
takta. Na slici 3.12 prikazan je deo konfiguracije radnog takta. U ovom primeru imamo ulaz
radnog takta od 8 MHz na ulazima OSC1 i OSC2. Izabraćemo deljenje radnog takta pomoću
2 PLL preskalera tako da izlaz preskalera bude 4 MHz i radni takt sistema 48 MHz. Takođe
ćemo se pobrinuti da nema postskalera radnog takta i da je omogućen PLL.

Slika 3.12 – Konfiguracija radnog takta za PIC18F87J50


Da biste konfigurisali radni takt, kliknite Project -> Edit Project i podesite konfiguraciju
kao što je prikazano na slici 3.13. Kada završite, kliknite OK.
Slika 3.13 – Konfiguracija radnog takta
Kompajlirajte program tako što ćete kliknuti dugme Build (pogledajte sliku 3.14). Proverite
donji deo ekrana da biste se uverili da nema grešaka (pogledajte sliku 3.15).

Slika 3.14 – Kompajlirajte program


Slika 3.15 –Uverite se da nema grešaka
Otpremanje programa
Sada smo spremni da otpremimo naš program u fleš memoriju ciljnog mikrokontrolera.
Koraci su dati u nastavku:

 Sa veb sajta firme Mikroelektronika (www.mikroe.com) instalirajte microBootloader


za razvojnu ploču Clicker 2 za PIC18FJ na računar.

 Povežite Clicker 2 ploču sa računarom putem mini USB kabla.

 Pokrenite microBootloader na računaru.

 Na Clicker 2 ploči pritisnite dugme Reset. Ploča bi trebalo da je prepoznata i videćete


poruku na ekranu programa Bootloader, kao što je prikazano na slici 3.16.

Slika 3.16 – Clicker 2 ploča je prepoznata


 Kliknite Connect, trebalo bi da vidite poruku Connect, kao što je prikazano na slici
3.12.

Slika 3.17 – Povezivanje putem programa Bootloader


 Na ekranu programa Bootloader kliknite Browse for Hex i izaberite datoteku hex
vašeg programa.
 Kliknite Beging Uploading. Vaš program treba da se učita u fleš memoriju ciljnog
mikrokontrolera. Razvojna ploča treba automatski da se resetuje i program treba da
se pokrene nakon približno 5 sekundi (ovo kašnjenje se dešava zbog toga što nakon
resetovanja, Bootloader na razvojnoj ploči traži vezu sa Bootloaderom na računaru i
ako u roku od 5 sekundi nema odgovora, ova akcija se prekida).

Sada bi trebalo da vidite LED na portu RD4 (na donjoj levoj strani ploče) koji treperi svake
sekunde.

Simuliranje programa
U ovom odeljku videćemo kako se program može simulirati bez hardvera. Koraci su dati u
nastavku:

 Kliknite Run -> Start Debugger. Trebalo bi da vidite plavu traku na ekranu i neke
dodatne prikaze na desnoj strani ekrana. Plava traka označava gde se trenutno
nalazi brojač programa, a trebalo bi da se nalazi na prvoj izvršivoj naredbi programa.

 Sada ćemo dodati promenljive koje hoćemo da pratimo. Otvorite okvir sa listom pod
nazivom „Select variable from list“ i izaberite PORTD.

 Kliknite dugme Add da biste dodali ovu promenljivu listi za praćenje, kao što je
prikazano na slici 3.18.

Slika 3.18 – Dodajte PORTD listi za praćenje


 Promenljivu možemo da pregledamo kao binarnu, decimalnu, heksadecimalnu, u
formatu pokretnog zareza ili kao znak. U ovom primeru biće lakše da je pregledamo
u binarnom formatu. Kliknite polje ispod vrednosti i izaberite binarni format
(pogledajte sliku 3.19).
Slika 3.19 – Izaberite pregled u binarnom formatu
Pomerajte se u jednom koraku kroz program tako što ćete pritiskati funkcijski taster F8.
Svaki put kada pritisnete ovaj taster trebalo bi da vidite brojač programa (plavu traku) koja
se pomera nadole. Trebalo bi da vidite vrednost na pinu 4 PORTD koja se menja iz 0 u 1 i
vraća se na 0 kako se pomerate kroz program. Na slici 3.20 prikazan je slučaj kada je LED
uključen (pin 4 PORTD je na logičkom nivou 1).

Slika 3.20 – Pin 4 PORTD je na logičkom nivou 1

Asemblerski listing
Možemo da vidimo asemblerski listing našeg programa tako što ćemo kliknuti view ->
listing. Na slici 3.21 prikazan je deo asemblerskog listinga programa.
Slika 3.21 – Deo asemblerskog listinga

Statistika
Statistiku potrošnje memorije možemo da vidimo tako što ćemo kliknuti na view ->
statistics. Na slici 3.22 prikazana je potrošnja RAM memorije našeg programa.

Slika 3.22 – Potrošnja RAM memorije


Isto tako, možete da vidite i druge statističke podatke, kao što su potrošnja RAM memorije,
promenljive, funkcije, stablo funkcije i tako dalje. Na primer, na slici 3.23 prikazana je
potrošnja ROM memorije.
Slika 3.23 – Potrošnja ROM memorije

Druge funkcije
Integrisano razvojno okruženje mikroC Pro for PIC obezbeđuje neke druge korisne funkcije,
kao što su ASCII tabela, USART terminal, 7-segmentni uređivač, pomoćni program za
obradu prekida i tako dalje.

3.4 Primer programa za razvojnu ploču Arduino Uno


U ovom odeljku ćemo napisati isti program kao u odeljku 3.3, koji će uključivati LED na
razvojnoj ploči Arduino Uno svake sekunde. LED na ploči Arduino Uno je izlazni port 13.
Koraci su dati u nastavku:

 Instalirajte Arduino Sketch, ako već nije instaliran.

 Pokrenite Arduino Sketch.

 Ukucajte program koji je prikazan na slici 3.24.


Slika 3.24 – Listing programa Arduino Sketch
 Kompajlirajte program tako što ćete kliknuti na Sketch -> Verify/Compile.
 Program treba da bude kompajliran bez grešaka (proverite poruku u donjem delu
ekrana).
 Sada smo spremni da otpremimo program u fleš memoriju mikrokontrolera. Povežite
vašu Arduino Uno ploču sa USB portom računara. Sada ćemo izabrati tip razvojne
ploče i broj serijskog porta za komunikaciju sa računarom.
 Kliknite na Tools -> Board i izaberite Arduino/Genuino Uno.
 Pronađite broj porta na koji je priključen Arduino. Na računaru pokrenite Device
Manager i pronađite broj serijskog porta na koji je priključen vaš Arduino. Na slici
3.25 prikazano je da je naš Arduino priključen na port COM32. Kliknite na Tools ->
Port i u programu Arduino Sketch izaberite COM32.
Slika 3.25 – Serijski port Arduina
Sada možemo da otpremimo program na Arduinu. Kliknite na Sketch -> Upload. Trebalo
bi da vidite poruku Done uploading u donjem delu ekrana kada se program učitava.

LED sada treba da svetli svake sekunde, kao što je i programiran.

3.5 Rezime
U ovom poglavlju su opisani detalji o hardveru razvojnih ploča Clicker 2 za PIC18FJ i
Arduino Uno. Pored toga, za svaku razvojnu ploču dati su primeri programa da bi se
prikazalo kako program može biti napisan i otpremljen u fleš memorije ovih mikrokontrolera
putem programa Bootloader.

U sledećem poglavlju ćemo razmatrati razvoj GSM projekata na razvojnoj ploči Clicker 2 za
PIC18FJ.
3.6 Vežbe
1. Opišite različite faze razvojnog ciklusa sistema zasnovanom na mikrokontroleru.

2. Ukratko opišite programerske alatke mikrokontrolera.

3. Navedite prednosti i nedostatke asemblera i kompajlera.

4. Objasnite zašto simulator može da bude korisna alatka tokom razvoja proizvoda
zasnovanim na mikrokontroleru.

5. Detaljno objasnite šta je to program Bootloader i gde se može koristiti. Objasnite


kako može da se programira mikrokontroler na Arduino Uno razvojnoj ploči.

6. Objasnite kako može da se programira mikrokontroler na razvojnoj ploči Clicker 2 za


PIC18FJ.
Poglavlje 4 – GSM projekti PIC mikrokontrolera na GSM
Click pločici
U ovom poglavlju ćemo razmatrati nekoliko projekata da biste videli kako GSM Click pločica
može da se koristi u projektima zasnovanim na PIC mikrokontroleru. U svim projektima iz
ovog poglavlja koristi se razvojna ploča mikrokontrolera Clicker 2 za PIC18FJ, koja je
opisana u Poglavlju 3.

4.1 Projekat 1 – Slanje SMS tekstualne poruke na mobilni telefon


U ovom projektu ćemo poslati SMS tekstualnu poruku sa mikrokontrolera na mobilni telefon
tako što ćemo koristiti GSM Click pločicu i razvojnu ploču Clicker 2 za PIC18FJ
mikrokontroler koje su opisane ranije u ovoj knjizi.

4.1.1 Hardver

Na slici 4.1 prikazan je blok dijagram projekta. U/I kratkospojnik nivoa GSM Click pločice
mora da bude priključen na 3,3 V (Važno je znati da kada je kratkospojnik u tom položaju,
pločica može da radi iz jednog napajanja od +3,3 V, tj. nije potrebno napajanje od 5 V).
SIM kartica se postavlja u GSM Click pločicu. Pobrinite se da SIM kartica ne bude zaštićena
lozinkom, u suprotnom uklonite lozinku pre umetanja kartice u GSM Click pločicu. GSM Click
pločica se zatim priključuje na mikroBUS konektor 2 razvojne ploče Clicker 2 za PIC18FJ.
Električna šema projekta je prikazana na slici 4.2. TX i RX pinovi GSM Click pločice se
povezuju sa UART pinovima (RC6 i RC7) razvojne ploče mikrokontrolera. Tokom rada GSM
Click pločica može da obezbedi vršnu struju preko 2 A. Maksimalnu struju koju USB
priključak za napajanje može da obezbedi kada je povezan sa računarom je oko 500 mA.
Zbog toga je neophodno da na pločicu priključite spoljno napajanje. Postoje dve opcije:
punjiva litijum-jonska baterija može da se poveže sa GSM Click pločicom, kao što je opisano
u korisničkom priručniku, ili druga i poželjna opcija, spoljno napajanje od +5 V koje može
da isporuči 2,5 A struje i da se poveže sa Vsys pinom (pin sa gornje desne strane) GSM
Click pločice. U projektu je korišćena druga opcija.

Slika 4.1 – Blok dijagram projekta


Slika 4.2 – Električna šema projekta
Konfiguracije pinova mikroBUS konektora 2 razvojne ploče Clicker 2 i GSM Click pločice su
sledeće:

Pinovi mikroBUS konektora 2 razvojne ploče Clicker 2

RA1 RG0

RD0 RB2

RD1 RC7 (RX)

RC3 RC6 (TX)

RC4 RD6

RC5 RD5

3,3V 5V

GND GND

Pinovi mikroBUS konektora GSM Click pločice

PWR GP2

RST CTS

RTS TX

NC RX

NC NC

NC NC

3,3V 5V

GND GND
4.1.2 Softver

Softver projekta je razvijen pomoću mikroPro for PIC jezika i IDE-a. Na slici 4.3 prikazan je
rad softvera kao Jezika za opisivanje programa (PDL, engl. Program Description Language).

Slika 4.3 – PDL programa


Na slici 4.4 prikazan je ceo listing programa projekta (pod nazivom Send-SMS.c). Program
je pojednostavljen tako da nakon slanja AT komande na modem, program ne proverava
odgovore sa modema, već jednostavno čeka neko vreme da modem bude spreman. U ovom
projektu je vreme kašnjenja podešeno na 5 sekundi.

Na početku projekta AT komande koje se koriste u programu su definisane i uskladištene u


znakovnim nizovima koji se završavaju znakom NULL. Zatim se definišu pinovi ploče
modema:

Slika

Unutar glavnog programa GSM Click modem se inicijalizuje pozivanjem funkcije Init_GSM
u kojoj je brzina prenosa preko UART-a podešena na 9600. Ostatak programa šalje
potrebne AT komande na modem radi podešavanja, a zatim se šalje SMS poruka. Funkcija
Sent_To_Modem prima znakovni niz kao komandu modema i zatim šalje tu komandu na
modem. Znak za povratak na početak reda (0x0D) se šalje posle AT komande:

Slika
Komande se šalju po redosledu datom u nastavku. Primetite da je broj mobilnog telefona u
ovom primeru 07415987053:

ATE0 : Onemogućava eho

AT+CMGF=1 : Podešava SMS režim na tekst

AT+CSCS=”GSM” : Podešava režim znakova

AT+CSMP=17,167,0,241 : Podešava parametre režima za SMS

AT+CMGS=”07415987053” : Podešava telefonski broj

SMS from microcontroller : Šalje SMS poruku

Terminator (0x1A) : Šalje završni znak

Trebalo bi da vidite svetlo statusa kako brzo treperi na ploči modema i SMS poruku koja će
biti poslata iz mikrokontrolera na mobilni telefon.
Slika 4.4 – Listing programa projekta
Na slici 4.5 prikazan je hardver projekta sa GSM Click pločicom koja je priključena na
mikroBUS konektor 2 razvojne ploče Clicker 2 za PIC18FJ.

Slika 4.5 – Hardver projekta

4.1.3 Poboljšani program

U programu koji je dat na slici 4.4 odgovor modema se ne proverava i program čeka
nekoliko sekundi nakon slanja komande, pa je modem spreman da prihvati novu komandu.
Iako program funkcioniše, ne postoji način na koji možemo proveriti da li modem pravilno
odgovara na naše komande.
U ovom odeljku ćemo modifikovati program tako se odgovor modema proverava nakon
slanja svake komande na modem. Ova verzija programa je profesionalnija, jer se odgovor
svake komande proverava. Pored toga, brzina prenosa se automatski detektuje tako što se
šalju AT komande i traži tačan odgovor na početku programa.

Na slici 4.6 prikazan je PDL programa. Program se zasniva na UART prekidima tako da
program svaki put kada primi znak preko UART-a (tj. nakon prijema znakova u odgovoru
modema) prelazi na rutinu za obradu prekida. Pod pretpostavkom da je očekivani odgovor
modema OK, iza kojeg sledi znak za povratak na početak reda (0x0D) i znak za novi red
(0x0A), rad mašine stanja je sledeći. Na početku će stanja početi od 0. Kada primi znak O,
stanje se pomera na 1 i očekuje se znak K kao sledeći znak. Ako je u stanju 1 primljen znak
K, onda se sledeće stanje podešava na 2. U stanju 2 se očekuje znak za povratak na
početak reda (0x0D). Ako je očekivani znak primljen, onda se sledeće stanje podešava na 3.
U stanju 3 se očekuje znak za novi red i ako je primljen, onda se pretpostavlja da je tačan
odgovor OK primljen sa modema i da je zastavica primljenog odgovora response_rcvd
podešena u skladu s tim.
Slika 4.6 – PDL modifikovanog programa
Na slici 4.7 prikazan je listing modifikovanog programa (pod nazivom Send-SMS2.c). Na
početku programa definisani su odgovori modema, AT komande koje će se koristiti i pinovi
modema. Unutar glavnog programa brzina prenosa je podešena na 9600 pozivanjem
funkcije Init_GSM i prekidi za UART1 omogućeni su pozivanjem funkcije
Init_UART1_Interrupts.

Program zatim šalje AT komande na modem više puta i proverava da li je odgovor OK. Ova
mala rutina automatski podešava brzinu prenosa modema na istu brzinu prenosa koju
koristi razvojna ploča i izlazi nakon što je primljen tačan odgovor:
while(1)
{
Send_To_Modem(AT);
Delay_Ms(200);
if(Modem_Response() == OK)break;
}

Ostatak programa šalje potrebne komande na modem i proverava odgovor koji je vratio
modem. Kod mašine stanja proverava odgovore modema unutar rutine za obradu prekida.
Slika 4.7 – Listing modifikovanog programa

4.2 Projekat 2 – Slanje temperature kao SMS tekstualne poruke


U ovom projektu ambijentalna temperatura je spremna svakih 15 minuta i zatim se šalje na
određeni mobilni telefon kao SMS tekstualne poruke.

4.2.1 Hardver

Na slici 4.8 prikazan je blok dijagram projekta. U/I kratkospojnik nivoa GSM Click pločice
mora biti priključen na 3,3 V kao u prethodnom projektu, a SIM kartica mora biti umetnuta
u GSM Click pločicu. Uverite se da SIM kartica nije zaštićena lozinkom, u suprotnom uklonite
lozinku pre umetanja kartice u GSM click pločicu. GSM Click pločica se zatim priključuje na
mikroBUS konektor 2 razvojne ploče Clicker 2 za PIC18FJ kao i pre.
Slika 4.8 – Blok dijagram projekta
Poluprovodnički analogni senzor koristi se kao senzor temperature. Mikrokontroler pretvara
izlazni napon senzora iz analognog u digitalni. Temperatura se zatim šalje na mobilni telefon
kao SMS poruka preko GSM Click pločice modema.

4.2.2 Senzor temperature

U ovom projektu se koristi 3-pinski TMP36 tip čipa analognog senzora temperature
(pogledajte sliku 4.9). Ovaj čip senzora ima sledeće funkcije:

 Rad na niskom naponu (2,7 V do 5,5 V)

 Opseg merenja od -40 ºC do +125 ºC

 Preciznost ±2 ºC

 Manje od 50 μA mirne struje

 Nisko samozagrejavanje (manje od 0,1 ºC na mirnom vazduhu)

Slika 4.9 – TMP36 senzor temperature


Izlazni napon Vo je proporcionalan izmerenoj temperaturu i dat je formulom:

T = (Vo – 500) / 10

Gde je T izmerena temperatura u ºC, a Vo je izlazni napon senzora u milivoltima. Stoga, na


primer, izlazni napon na 20 ºC je 700 mV, izlazni napon na 30ºC je 800 mV i tako dalje.
Senzor radi pomoću napona u opsegu od +2,7 do +5 V i zato je kompatibilan sa razvojnom
pločom Clicker 2 za PIC18F.
Mikrokontroler PIC18F87J50 ima 12 10-bitnih ADC konvertora na čipu. U ovom projektu
analogni kanal 0 (pin AN0 ili RA0) se koristi za očitavanje i konvertovanje izlaza senzora u
digitalni format. Ovaj pin je dostupan na mikroBUS konektoru 1 razvojne ploče Clicker 2 za
PIC18F i to je prvi pin u gornjem levom uglu konektora.

Na slici 4.10 prikazana je električna šema projekta uz izlaz TMP36 senzora koji je povezan
sa pinom RA0 mikrokontrolera. Kao i pre, razvojna ploča i pin Vsys se napajaju iz spoljnog
napajanja od +5 V (na 2,5 A).

Senzor je postavljen na prototipsku ploču i povezan je sa razvojnom pločom Clicker 2


pomoću žica kratkospojnika, kao što je prikazano na slici 4.11 (veze napajanja nisu
prikazane).

Slika 4.10 – Električna šema projekta


Slika 4.11 – Povezivanje senzora sa razvojnom pločom

4.2.3 Softver

Listing programa (pod nazivom SMS-TEMP.c) je prikazan na slici 4.12. Program je veoma
sličan onom sa slike 4.7, osim što se ovde ambijentalna temperatura šalje kao SMS
tekstualna poruka. Temperaturu čita funkcija Read_Temperature:

Slika koda
Analogni izlazni napon senzora TMP36 čita kanal 0 ADC konvertora koristeći funkciju
biblioteke ADC_Read i skladišti se u celobrojnu promenljivu Vin. Zatim se pretvara u
napon u milivoltima i skladišti se u promenljivoj s pokretnim zarezom mV. Stvarna fizička
temperatura u stepenima Celzijusa se zatim izračunava kao što je opisano u listi sa
podacima o senzoru TMP36, tj. oduzimanjem 500 mV i deljenjem rezultata sa 10.
Temperatura se zatim skladišti kao celobrojna vrednost u promenljivu Vin radi
jednostavnosti (temperaturu je moguće poslati i kao promenljivu u formatu pokretnog
zareza).

Beskonačna petlja se formira unutar glavnog programa pomoću naredbe for(;;) i


temperatura se šalje svakih 15 minuta kao SMS tekstualna poruka u sledećem formatu:
T=nnC, kao što je prikazano na slici 4.13.

Slika 4.13 – Primljene SMS poruke


Temperatura u Vin-u se pretvara u string u znakovnom nizu Msg2 pomoću funkcije
biblioteke IntToStr. Znakovni niz Msg1 skladišti string T=, a Msg3 skladišti znak C. Ova dva
znakovna niza kombinuju se sa znakovnim nizom Msg2 da bi se dobio format T=nnC, kao
što je prikazano na slici 4.12. Završni znakovni niz Msg1 se šalje na modem:
Slika 4.12 – Listing programa projekta

4.3 Projekat 3 – Relej koji kontroliše SMS


U ovom projektu relej je povezan sa razvojnom pločom Clicker 2. SMS poruka koja se šalje
sa mobilnog telefona kontroliše relej tako da komanda #ON aktivira relej, a poruka #OFF
deaktivira relej. Stoga, električni uređaj, npr. kućni aparat koji je povezan sa relejem može
da se uključi ili isključi daljinskim putem sa mobilnog telefona.

4.31 Hardver

Na slici 4.13 prikazan je blok dijagram projekta. U/I kratkospojnik nivoa GSM Click pločice
mora biti priključen na 3,3 V kao u prethodnom projektu, a SIM kartica mora biti umetnuta
u GSM Click pločicu. Uverite se da SIM kartica nije zaštićena lozinkom, u suprotnom uklonite
lozinku pre umetanja kartice u GSM Click pločicu. GSM Click pločica se zatim priključuje na
mikroBUS konektor 2 razvojne ploče Clicker za PIC18FJ, kao u prethodnim projektima.
Takođe, pločica Relay Click se priključuje na mikroBUS konektor 1 ploče Clicker 2 za
PIC18FJ.
Slika 4.13 – Blok dijagram projekta

3 Relay Click pločica


Relay Click pločica (slika 4.14) je mikroBUS kompatibilna pločica (koju je proizvela
kompanija mikroElektronika, www.mikroe.com) i sadrži dva ugrađena releja. Osnovne
specifikacije ove pločice su sledeće:

 2 nezavisna releja

 Kontrola do 250 V AC ili 30 V DC na 5 A

 Povezivanje pomoću vijčanih stezaljki

 LED-ovi koji označavaju kada je relej aktivan

Slika 4.14 – Relay Click pločica


Signali mikroBUS konektora 1 razvojne ploče Clicker 2 za PIC18FJ su sledeći:

Pinovi mikroBUS konektora 1 razvojne ploče Clicker 2 za PIC18FJ

RA0 RG3

RD2 RB3

RD3 RG2

RC3 RG1

RC4 RD6

RC5 RD5

3,3V 5V

GND GND

Na slici 4.15 prikazana je električna šema Relay Click pločice. Dva releja su nazvana REL1 i
REL2. Kada su REL1 i REL2 umetnuti u mikroBUS konektor 1, oni se kontrolišu iz pinova
RG3 i RD2, tim redom. U ovom projektu se koristi samo REL1, radi jednostavnosti.

Slika 4.15 – Električna šema Relay Click pločice


Na slici 4.16 prikazana je električna šema projekta.
Slika 4.16 – Električna šema projekta

4 Primanje SMS poruke


Korisno je pogledati različite načine za primanje SMS poruke. U suštini, GSM modem može
biti konfigurisan da odgovori na tri različita načina kada primi SMS: trenutni odgovor
(Immediate response), obaveštenje (Notification response) i provereni odgovor (Polled
response).

5 Trenutni odgovor
U trenutnom odgovoru, kada je SMS primljen, detalji o SMS-u se odmah šalju na matični
računar putem CMT komande. Režim trenutnog odgovora se podešava pomoću dve
komande:

AT+CMGF=1 Podešava SMS tekstualni režim

AT+CNMI=1,2,0,0,0 Odgovara kada je SMS primljen

Primera radi, kada je SMS primljen u ovom režimu, poruka slična ovoj šalje se na matični
računar:

+CMT: “123456789”, ,”02/05/28,22:10:00+40”

Ovo je stvarna SMS poruka.


Telefonski broj pošiljaoca, datum i vreme slanja poruke, kao i stvarni kontakt poruke se
odmah šalju na matični računar. Stoga, matični računar mora biti spreman da primi, a zatim
da dekodira detalje o poruci. Prednost ove metode je da će poruka biti primljena veoma
brzo i bez kašnjenja.

6 Obaveštenje
Kod odgovora u vidu obaveštenja modem šalje obaveštenje kada stigne SMS. Matični
računar treba zatim da pošalje AT komandu da bi izdvojio detalje o poruci. Metoda
obaveštenja se podešava na sledeći način:

AT+CGMF=1 Podešava SMS tekstualni režim

AT+CNMI=1,1,0,0,0 Podešava režim obaveštenja

Primera radi, kada je SMS primljen u ovom režimu, poruka slična ovoj šalje se na matični
računar. Ovde se poruka nalazi na indeksu 3 u lokaciji memorije:

+CMTI:

“SM”,3

Detalji o poruci mogu zatim da se izdvoje pomoću sledeće komande:

AT+CMGR=3

Modem će odgovoriti porukom:

+CMG:”REC READ”,”123456789”,,”03/10/25,20:12:00+40”

Ovo je stvarna SMS poruka.

Nakon slanja poruke, treba da bude poslata sledeća AT komanda da bi se izbrisala lokacija
memorije:

AT+CMGD=3

7 Provereni odgovor
U ovom režimu AT komanda se šalje na modem da bi se prikazale nove (UNREAD) poruke.
Stoga, modem ne daje nikakvo upozorenje da je SMS poruka primljena. Potrebne su
sledeće komande:

AT+CGMF=1 Podešava SMS tekstualni režim

AT+CMGL=”REC UNREAD” Prikazuje UNREAD (nepročitane) poruke


Pod pretpostavkom da postoji samo jedna nepročitana poruka, modem može da odgovori
porukom (indeksni broj je 1):

+CMGL: 1,”REC UNREAD”,”123456789”,,”06/11/12,00:25:00+35”

Ovo je stvarna SMS poruka.

Nakon što je poruka primljena, preporučuje se da izbrišete sve poruke iz memorije kako bi
ste oslobodili mesto za sledeću novu poruku:

AT+CMGD=1,4

U ovom projektu ćemo koristiti metod provere zbog njegove jednostavnosti.

Na slici 4.17 prikazane su pločice Relay Click i GSM Click koje su priključene na mikroBUS
konektor 1 i konektor 2 razvojne ploče Clicker 2 za PIC18F, tim redom.

Slika 4.17 – Hardver projekta

4.3.2 Softver

Listing softvera (pod nazivom SMS-CONTROL.c) je prikazan na slici 4.18. Na početku


programa definišu se odgovori modema i znakovnim nizovima se dodeljuju AT komande
koje su korišćene u programu.

Unutar glavnog programa port RG3 (bit 3 za PORTG) releja REL1 se konfiguriše kao izlaz i
relej se deaktivira da bi se pokrenuo tako što će izbrisati PORTG.RG3 = 0. Zatim se
inicijalizuje GSM tako što se brzina prenosa podešava na 9600 i omogućavaju se UART1
prekidi tako da kada je znak primljen sa modema, program prelazi na rutinu za obradu
prekida pod nazivom interrupt.
Program zatim podešava brzinu prenosa modema tako što šalje AT komande i proverava da
li je tačan odgovor OK. Eho modema se zatim onemogućava i SMS režim se podešava na
text. Sve postojeće poruke se zatim brišu iz SIM kartice i program ulazi u beskonačnu
petlju pomoću naredbe while.

Unutar beskonačne petlje komanda AT+CMGL=”REC UNREAD” se šalje na modem da bi


se prikazala lista svih novih nepročitanih poruka. Rutina za obradu prekida proverava da li
je poruka #ON ili #OFF tako što koristi program mašine stanja. Unutar rutine za obradu
prekida promenljiva SMS Arrived se podešava na 1 ako je poruka #ON ili #OFF, a
promenljiva Relay se podešava u skladu sa ON (tj. 1) ili OFF (tj. 0). Kada poruka pristigne,
program proverava sadržaj promenljive Relay. Ako je promenljiva Relay podešena na 1 (tj.
ON) onda se relej uključuje slanjem logičke 1 na port releja, u suprotnom logička 0 se šalje
na port releja.

Kod beskonačne petlje je sledeći:

Slika koda
Nakon obrade primljene komande, sve poruke se brišu iz memorije SIM kartice, a zatim
program čeka 10 sekundi i petlja se ponavlja tražeći novu komandu.

Unutar rutine za obradu prekida program proverava da li su odgovori modema OK, #ON ili
#OFF. U odgovoru na komandu AT+CMGL=”REC UNREAD” modem vraća OK ako nema
novih (UNREAD) poruka, ili ako nova poruka nije dostupna onda modem daje indeksni broj
ove poruke, telefonski broj pošiljaoca, datum, vreme i stvarnu poruku, kao što smo ranije
opisali. Unutar rutine za obradu prekida svaki znak koji daje modem se proverava redom
jedan po jedan i kada se detektuje #ON ili #OFF, onda se promenljiva SMS_Available
podešava na 1 da bi se glavnom programu ukazalo da je pristigla nova poruka.
Slika 4.18 – Listing programa projekta
4.3.3 Poboljšani program

Program koji je prikazan na slici 4.18 može da se poboljša tako da se povratna poruka
pošalje nazad na mobilni telefon da bi se potvrdilo da li je relej aktiviran ili deaktiviran. U
ovoj modifikovanoj verziji programa poruka Relay is ACTIVE će biti poslata na mobilni
telefon kada je relej uspešno aktiviran, a poruka Relay is NOT ACTIVE kada je relej
uspešno deaktiviran.

Na slici 4.19 prikazan je modifikovani program (pod nazivom SMS-CONTROL2.c). Ovaj


program je veoma sličan onom na slici 4.18, ali ovde se povratna poruka šalje nazad na
mobilni telefon.

Kod koji šalje povratnu poruku nazad je sledeći:

Slika koda
Na slici 4.20 prikazan je snimak ekrana mobilnog telefona.
Slika 4.19 – Modifikovani program
Slika 4.20 – Snimak ekrana mobilnog telefona
Ovaj projekat može da se dodatno poboljša sledećim dodacima i modifikacijama:

 SIM kartici može da se doda lozinka radi bezbednosti.

 Telefonski broj pošiljaoca može da se proveri radi autorizacije i prihvatanja SMS-a


samo od ovlašćenih brojeva.

 Više releja može da se doda sistemu radi kontrole dodatnih uređaja. Na primer,
komanda za aktiviranje releja n može da bude #Onn i tako dalje.
 Potvrda o aktiviranju ili deaktiviranju releja može biti poslata samo na ovlašćeni broj
koji postavi zahtev. To će zahtevati od programa da izdvoji telefonski broj iz
primljene poruke i da pošalje potvrdu na taj broj, pod pretpostavkom da je broj
ovlašćen da postavi zahtev.

 Glasovni pozivi mogu biti dodati u program, a releji mogu biti kontrolisani obradom
ovih glasovnih komandi.

U ovom programu se koristi Relay Click pločica. Takođe, možete da koristite bilo koji tip
malog releja sa NPN tranzistorskim prekidačem, kao što je prikazano na slici 4.21.

Slika 4.21 – Upotreba releja sa tranzistorskim prekidačem

4.4 Rezime
U ovom poglavlju videli smo razvoj projekata zasnovanim na PIC mikrokontroleru
korišćenjem GSM Click pločice. Opisana su dva projekta u ovom poglavlju: Slanje SMS-a na
mobilni telefon i slanje temperature kao SMS poruke.

U sledećem poglavlju ćemo razmatrati GSM projekte na razvojnoj ploči Arduino Uno.
Poglavlje 5 – GSM projekti za Arduino Uno SIM900
GSM/GPRS modul
U ovom poglavlju ćemo razmatrati nekoliko projekata da bismo videli kako GSM/GPRS
moduli mogu da se koriste u projektima zasnovanim na Arduinu. U projektima iz ovog
poglavlja koriste se razvojna ploča Arduino Uno i GSM/GPRS modul.

5.1 Projekat 1 – Slanje SMS poruke na mobilni telefon


U ovom projektu ćemo videti slanje tekstualne poruke „Hello from Arduino…“ na mobilni
telefon korišćenjem SIM900 GSM/GPRS modula i razvojne ploče Arduino Uno koji su opisani
ranije u ovoj knjizi.

5.1.1 Hardver

Na slici 5.1 prikazan je blok dijagram projekta. SIM900 GSM/GPRS modul je priključen na
gornji deo ploče Arduino Uno. Uverite se da je SIM kartica koja nema lozinku umetnuta u
držač SIM kartice koji se nalazi na zadnjoj strani SIM900 GSM/GPRS modula. Takođe,
antena mora da bude povezana sa modulom. Modul radi pomoću napajanja od +5 V, ali
može da obezbedi vršnu struju od preko 2,0 A. Zato je neophodno da priključite spoljno
napajanje od 5 V 2,5 A u priključak za napajanje SIM900 GSM/GPRS modula.

Slika 5.1 – Blok dijagram projekta


Na slici 5.2 prikazana je slika podešavanja hardvera.
Slika 5.2 – Podešavanje hardvera projekta
SIM900 GSM/GPRS modul može da se konfiguriše da radi pomoću serijskih portova koje
kontroliše softver ili hardver (npr. UART). U primerima iz ovog poglavlja koriste se veze
softverskog serijskog porta, kao što je prikazano u odeljku 2.4. U ovoj konfiguraciji pin 7 je
pin serijskog porta za prijem, a pin 8 je pin serijskog porta za prenos.

Neki SIM900 GSM/GPRS moduli su dizajnirani za rad samo u određenim zemljama. Način na
koji možete da proverite da li je modul kompatibilan sa vašom zemljom je da napajanje
priključite na modul i pritisnete dugme ON/OFF 2 sekunde. Sačekajte oko 30 sekundi.
Zelena lampica za napajanje i crvena statusna lampica treba da svetle, a plava lampica
treba da treperi 64 ms i da se isključuje svake 3 sekunde. To znači da je modem registrovan
na lokalnu GSM mrežu. U suprotnom, možda ćete morati da nadogradite firmver u čipu
modema (instrukcije za nadogradnju su izvan opsega ove knjige i dostupne su na
Internetu).

5.1.2 Softver

Softver projekta je razvijen pomoću programa Arduino Sketch. Na slici 5.3 prikazan je rad
softvera kao jezika za opisivanje programa (PDL).
Slika 5.3 – PDL programa
Na slici 5.4 prikazan je ceo listing programa projekta (pod nazivom Rcv-SMS.c). Program je
pojednostavljen tako da nakon slanja AT komande na modem ne proverava odgovor sa
modema, ali čeka neko vreme da modem bude spreman za prihvatanje sledeće komande.
Program je veoma sličan onom iz poglavlja 4, koji je napisan za PIC mikrokontroler. Na
početku programa definišu se AT komande koje se koriste. Rutina za podešavanje
inicijalizuje brzinu prenosa na 19200 bps, što je podrazumevana postavka za SIM900
GSM/GPRS modem.

Unutar petlje glavnog programa, program je podešen na noecho, SMS režim je podešen na
text i poruka „Hello from Arduino…“ se šalje na navedeni broj mobilnog telefona.
Slika 5.4 – Listing programa projekta

5.1.3 Modifikovani program

U programu sa slike 5.4 dodato je kašnjenje od jedne sekunde posle svake komande
modema. Pri normalnom radu, modem odgovara u roku koji je mnogo brži od jedne
sekunde. U ovom odeljku je prikazan poboljšani program koji ne čeka, već u kome mi
proveravamo odgovor koji vraća modem i prelazimo na sledeću komandu ako je vraćen
tačan odgovor. Ako modem nije vratio tačan odgovor, onda se uključuje LED povezan sa
pinom 13 na Arduinu da bi ukazao na grešku.

Poboljšani program je prikazan na slici 5.5. On čita odgovor modema koristeći dostupnu
funkciju softverskog serijskog porta. Ova funkcija vraća broj koji je veći od nule kada su
podaci na serijskom portu dostupni za čitanje. Ako se podaci koji su dostupni čitaju
korišćenjem funkcije softverskog serijskog porta za čitanje. Funkcija Wait_For_Resp čita
odgovor modema i upoređuje ga sa očekivanim odgovorom. LED koji je povezan sa pinom
13 na Arduinu koristi se kao indikator greške. Ako modem vrati tačan odgovor, onda LED ne
svetli. Ako odgovor modema nije tačan, onda se LED uključuje i program se završava.
Slika 5.5 – Poboljšani program

5.2 Projekat 2 – Slanje temperature kao SMS poruke


U ovom projektu ambijentalna temperatura se čita svakog minuta i zatim se šalje na
navedeni mobilni telefon kao SMS poruke. Temperatura se šalje u sledećem formatu: T=nn.

5.2.1 Hardver

Na slici 5.6 prikazan je blok dijagram projekta. Senzor temperature je priključen na


prototipsku ploču i modul SIM900 GSM/GPRS je povezan pomoću žica kratkospojnika. Pinovi
Vcc i Gnd čipa senzora TMP36 su priključeni na napajanje od +5V i na GND pinove Arduina,
kao što je prikazano na slici 5.7. Izlazni pin čipa senzora je povezan sa analognim ulazom
A0 na Arduinu. Napominjemo da umesto U/I priključaka na Arduinu možete da koristite U/I
priključke koje se nalaze na modulu, jer prenose iste signale.
Slika 5.6 – Blok dijagram projekta
Slika 5.7 – Hardver projekta
Spoljno napajanje 5 V 2,5 A je povezano na priključak za napajanje modula. Kratkospojnici
serijskog porta treba da budu podešeni onako kako je opisano u prethodnom projektu, tako
da je izabran softverski serijski rad (pinovi 7 i 8).

Mikrokontroler pretvara izlazni napon senzora iz analognog u digitalni. Arduino UNO ADC
konvertor je 10-bitni i ima nivoe kvantizacije od 0 do 1023. ADC referentni napon je +5 V.

Električna šema projekta prikazana je na slici 5.8.

Slika 5.8 – Električna šema projekta

5.2.2 Softver

Listing programa (pod nazivom Send-Temp.c) prikazan je na slici 5.9. Temperaturu očitava
funkcija Read_Temperature:

Slika koda
Kanal 0 ADC konvertora čita analogni izlazni napon senzora TMP36 pomoću funkcije
biblioteke analogRead i skladišti ga u celobrojnu promenljivu val. Zatim se vrednost
pretvara u napon u milivoltima i skladišti u promenljivu s pokretnim zarezom mV. Zatim se
izračunava stvarna fizička temperatura u stepenima Celzijusa, kao što je opisano u listi sa
podacima o senzoru TMP36, tj. oduzimanjem 500 mV i deljenjem rezultata sa 10.
Temperatura se zatim skladišti kao celobrojna vrednost u promenljivu Temperature zbog
jednostavnosti (takođe možete da pošaljete temperaturu kao promenljivu s pokretnim
zarezom). Konačna vrednost se pretvara u niz u promenljivu Msg pomoću ugrađene
funkcije itoa, tako da može da se pošalje kao tekst u SMS poruci. Napominjemo da su prva
dva znaka niza Msg podešena na T=, a vrednost temperature se skladišti počevši
odstupanjem od 2 niza Msg.

Beskonačna petlja se formira unutar glavnog programa pomoću naredbe while i


temperatura se čita i šalje svakog minuta kao SMS tekstualna poruka u sledećem formatu:

T=nn, kao što je prikazano na slici 5.10.

Slika 5.10 – Primljene SMS poruke


Slika 5.9 – Listing programa projekta

5.3 Projekat 3 – Relej koji kontroliše SMS


U ovom projektu relej je povezan sa razvojnom pločom Arduino. SMS poruka koja se šalje
sa mobilnog telefona kontroliše relej, tako da komanda #ON aktivira relej, a poruka #OFF
deaktivira relej. Stoga, bilo koji električni uređaj, npr. kućni aparat, koji je povezan sa
kontaktima releja može da se uključi ili isključi daljinskim putem sa mobilnog telefona.

5.3.1 Hardver

Na slici 5.11 prikazan je blok dijagram projekta. Modul SIM900 GSM/GPRS je priključen na
gornji deo ploče Arduino Uno. U ovom projektu se koristi Relay Click pločica koja je
priključena na prototipsku ploču, kao i u prethodnom projektu. Napajanje od +5 V na releju
se isporučuje sa Arduina. Relejem se upravlja sa digitalnog pina 2 na Arduinu i aktivira se
kada je kontakt tog releja postavljen na logičku 1. Stoga, bilo koji električni uređaj povezan
sa kontaktima releja može da se uključili ili isključi.

Slika 5.11 – Blok dijagram projekta


Električna šema projekta prikazana je na slici 5.12. Na slici 5.13 prikazano je podešavanje
hardvera uz Relay Click pločicu koja je priključena na prototipsku ploču i povezana sa
Arduinom pomoću žica kratkospojnika.
Slika 5.12 – Električna šema projekta
Slika 5.13 – Relay Click pločica priključena na prototipsku ploču

5.3.2 Softver

Na slici 5.14 prikazan je listing programa (pod nazivom Relay-SMS.c). U ovom programu
modem radi u režimu trenutnog odgovora (Immediate Response) i čim je SMS primljen
modem odgovara i šalje detalje o primljenoj poruci.

Na početku programa definišu se AT komande, definiše se pin porta releja i OFF se definiše
kao LOW, a ON kao HIGH. Deo za podešavanje u programu podešava brzinu prenosa na
19200, konfiguriše pin porta 2 kao digitalni izlaz i deaktivira relej da bi se pokrenuo.

Unutar petlje glavnog programa modem je podešen na noecho i SMS režim je podešen na
text.
Sve postojeće SMS poruke se brišu i modem koji je konfigurisan primenom komande
AT+CNMI=1,2,0,0,0 automatski odgovara svaki put kada je primljen SMS. Zatim se
formira beskonačna petlja pomoću naredbe while. Unutar ove petlje poziva se funkcija
Check_Response da bi se proverilo da li je primljena SMS poruka. Ako jeste, promenljiva
SMS_Arrived se podešava na 1. Program zatim traži komandne nizove #ON i #OFF. Ako je
detektovan niz #ON, onda se promenljiva Relay_State podešava na 1. Međutim, ako je
detektovan niz #OFF, onda se promenljiva Relay_State briše na 0:

Slika koda
Ako je poruka primljena, onda glavni program proverava promenljivu Relay_State i aktivira
ili deaktivira relej u zavisnosti od vrednosti te promenljive. Promenljiva SMS_Arrived se,
takođe, briše da bi bila spremna za sledeći put. Gore navedene operacije se ponavljaju
nakon 2 sekunde kašnjenja.
Slika 5.14 – Listing programa projekta

5.3.3 Poboljšani program

Program koji je prikazan na slici 5.14 može da se poboljša tako da se povratna poruka
pošalje nazad na mobilni telefon da bi se potvrdilo da li je relej aktiviran ili deaktiviran. U
ovoj modifikovanoj verziji programa, poruka Relay Has Been ACTIVATED će biti poslata na
mobilni telefon kada je relej uspešno aktiviran, a poruka Relay Has Been DE-ACTIVATED
kada je relej uspešno deaktiviran.

Na slici 5.15 prikazan je modifikovani program (pod nazivom Relay-SMS2.c). Ovaj program
je veoma sličan onom na slici 5.14, ali ovde se povratna poruka šalje nazad na mobilni
telefon.

Kod koji šalje povratnu poruku nazad je sledeći:

Slika koda
Na slici 5.16 prikazana je tipična poruka koja je primljena na mobilni telefon.

Slika 5.16 – Poruka primljena na mobilni telefon


Slika 5.15 – Listing poboljšanog programa

5.4 Projekat 4 – Kontrola sobne temperature pomoću SMS komandi


U ovom projektu temperatura sobe se prati tako što se kontroliše grejač. Pretpostavlja se
da je grejač povezan sa relejem. Sobna temperatura se meri pomoću analognog senzora
temperature. Koriste se tri komande: #Rppqq, #OFF i #ST.

Komanda #Rppqq kontroliše relej. pp i qq predstavljaju dva digitalna cela broja, od kojih
je pp potrebna niža temperatura, a qq je viša temperatura sobe u stepenima Celzijusa.
Stoga, ako je sobna temperatura ispod pp stepeni Celzijusa, onda se relej aktivira (tj.
grejač se uključuje). Isto tako, ako je sobna temperatura iznad qq stepeni Celzijusa, onda
se relej deaktivira (tj. grejač se isključuje). Primera radi, komanda #R1525 aktivira relej
ako je temperatura ispod 15ºC, a deaktivira relej ako je sobna temperatura iznad 25ºC.

Komanda #OFF isključuje sistem u potpunosti, tj. relej se trajno deaktivira dok se ne izda
komanda #Rppqq.

Komanda #ST služi da prikaže status sistema. Kada se izda ova komanda, stanje releja i
trenutna sobna temperatura se vraćaju kao SMS poruka na mobilni telefon.
5.4.1 Hardver

Na slici 5.16 prikazan je blok dijagram projekta. Modul SIM900 GSM/GPRS je priključen na
gornji deo ploče Arduino Uno. Kao i u prethodnom projektu, koristi se Reley Click pločica
(koju je proizvela kompanija mikroElektronika, www.mikroe.com) priključena na prototipsku
ploču (možete da koristite i mali relej sa tranzistorskim prekidačem, kao što je opisano u
Poglavlju 4). Kontrolni ulaz releja je priključen na pin porta 2 Arduina i aktivira se kada je
kontrolni ulaz podešen na logičku 1. Temperatura se očitava pomoću čipa analognog
senzora tipa TMP36, kao u projektu 2. Izlaz senzora je povezan sa analognim ulazom A0 na
Arduinu. Napajanje od +5 V na releju i čipu senzora se isporučuje sa Arduina.

Slika 5.16 – Blok dijagram projekta


Na slici 5.17 prikazana je električna šema projekta na kojoj se relej kontroliše sa pina porta
2 na Arduinu, a izlaz čipa senzora temperature je povezan sa analognim ulazom A0 na
Arduinu.
Slika 5.17 – Električna šema projekta
Na slici 5.18 prikazano je podešavanje hardvera projekta gde su relej i temperatura čipa
senzora priključeni na prototipsku ploču i povezani sa Arduinom (ili modulom SIM900
GSM/GPR) pomoću žica kratkospojnika.
Slika 5.18 – Podešavanje hardvera

5.4.2 Softver

Na slici 5.19 prikazan je rad softvera kao PDL-a.


Slika 5.19 – Rad softvera
Na slici 5.20 prikazan je ceo listing programa (Heater-Control.c). Na početku programa
definišu se AT komande koje se koriste u programu i promenljive releja i senzora čipa
temperature. Unutar glavnog programa modem se podešava na noecho, SMS se podešava
na tekstualni režim, a sve postojeće poruke se brišu. Program zatim ulazi u beskonačnu
petlju koja je uspostavljena naredbom while. Unutar ove petlje poziva se funkcija
Check_Response koja proverava da li modem prima poruke (komande). Funkcija niza
strstr se koristi za proveru komandnog niza. Ako je primljena komanda #R, onda se čita
završetak komande i u skladu sa tim se podešavaju gornje i donje granice temperature.
Komanda #OFF isključuje sistem, a komanda #ST podešava zastavicu Request_Status
tako da status releja može da se prikaže. Glavni program zatim očitava temperaturu (u
celobrojnu promenljivu Templnt) i u skladu sa tim aktivira ili deaktivira relej, kao što je
prikazano u sledećem kodu:

Slika koda

Status releja se šalje kao poruka na mobilni telefon, kao u kodu koji je dat u nastavku.
Stvarna temperatura se očitava i dodaje se na kraju nizova Relay is ON ili Relay is OFF
pomoću funkcije niza strcat:
Slika 5.20 – Listing programa projekta
Na slici 5.21 prikazan je tipičan odgovor na mobilnom telefonu. U ovom primeru, komanda
je #R2230, koja podešava donju granicu za temperaturu od 22 ºC i gornju granicu od 30
ºC.

Slika 5.21 – Tipičan odgovor na mobilnom telefonu

5.5 Rezime
U ovom poglavlju razmatrali smo razvoj GSM projekata na razvojnoj ploči Arduino Uno. U
poglavlju je dato nekoliko testiranih i radnih projekata uz kompletne listinge programa.

U sledećem poglavlju ćemo razmatrati razvoj GPRS projekata na razvojnoj ploči Arduino
Uno uz pomoć SIM900 GSM/GPRS modula.
Poglavlje 6 – GPRS projekti
Do sada smo razmatrali upotrebu GSM usluga u različitim projektima koji se zasnivaju na
mikrokontroleru. U ovom poglavlju ćemo razmatrati GPRS usluge i razviti projekte koristeći
neke od ovih usluga.

Kao što smo videli ranije, GPRS je paketna usluga za prenos podataka na GSM-u. GPRS
omogućava mobilnim mrežama da prenose i primaju IP pakete na mreže, kao što je
Internet.

GPRS omogućava sledeće usluge:

 Brzu razmenu SMS poruka (30 SMS poruka u minuti, u poređenju sa oko 5 do 8 SMS
poruka u minuti)

 Razmenu multimedijalnih poruka (MMS)

 Razgovor na mreži pritiskom na dugme

 Usluge komunikacije od tačke do tačke (P2P)

 Usluge komunikacije od tačke do više tačaka (P2M)

6.1 GPRS veza


GPRS veza se uspostavlja pomoću naziva pristupne tačke (APN), koji definiše usluge kao što
su WAP, SMS, MMS, WWW, e-pošta i tako dalje. Zato pre uspostavljanja GPRS veze,
moramo da odredimo APN (uz korisničko ime i lozinku po izboru).

GPRS uslugama se pristupa pomoću AT komandi. U suštini, zanimaju nas sledeće AT


komande u GPRS aplikacijama (U primerima iz ovog odeljka modem SIM900 GSM/GPSR je
povezan sa računarom pomoću USB-TTL adaptera, a za komunikaciju sa modemom koristi
se program HyperTerm, kao što je opisano u Poglavlju 2):

 AT+CGATT: Ova komanda proverava da li je dodat GPRS. Kao što je prikazano na


slici 6.1, komanda AT+CGATT? vraća 0 ako GPRS nije dodat i vraća 1 ako je GPRS
dodat. Ako GPRS nije dodat, koristite komandu AT+CGATT=1 da biste ga dodali.

Slika 6.1 – Komanda AT+CGATT


 AT+SAPBR: Ova komanda se koristi za podešavanje tipa veze, koja je u ovom
slučaju GPRS.

 Format komande je sledeći:

AT+SAPBR=3, 1, ”Contype”, ”GPRS”

 Podesite APN. Ovo zavisi od vašeg provajdera usluga i zemlje u kojoj se nalazite. U
ovom primeru se koristi SIM kartica provajdera Vodafone (pogledajte sliku 6.2):

AT+SAPBR=3, 1, “APN”, “pp.vodafone.co.uk”

 Omogućite GPRS (pogledajte sliku 6.2).

AT+SAPBR=1,1

Slika 6.2 – Navedite vezu za GPRS i APN


 Proverite da li IP adresu dobijamo primenom komande AT+SAPBR=2,1, i ako je tako,
sve ste uspešno obavili (pogledajte sliku 6.3).

Slika 6.3 – Proverite IP adresu

6.2 Čitanje sadržaja veb stranice


Nakon što smo dobili važeću IP adresu, možemo da pročitamo sadržaj veb stranice. U ovom
primeru ćemo pročitati sadržaj sledeće stranice na Internetu:
http://chortle.ccsu.edu/java5/Notes/appendixA/htmlPart1_4.htm. Koraci su sledeći:

Omogućite HTTP režim pomoću komande:

AT+HTTPINIT

Podesite URL stranice koju ćete čitati:

AT+HTTPPARA=”URL”,”http://chortle.ccsu.edu/java5/Notes/appendixA/htmlPar
t1_4.html”
Pokrenite HTTP GET sesiju:

AT+HTTPACTION=0

Treba da dobijete odgovor koji sadrži 3 broja, npr:

0, 200, 3870

Broj 3870 predstavlja bajtove, pročitano je 0 znakova, a broj 200 je kod za operaciju
čitanja.

Pročitajte podatke.

AT+HTTPREAD

Na slici 6.4 prikazane su komande za čitanje navedene veb stranice (ovde je prikazan samo
deo podataka za čitanje).

Sllika 6.4 – Čitanje sadržaja veb stranice


Primetite da u zavisnosti od veličine primljenih podataka, može da dođe do dugog kašnjenja
nakon što ste izdali komandu AT+HTTPACTION=0.

Prekinite HTTP zahtev:

AT+HTTPTERM

Isključite GPRS.

AT+SAPBR=0,1
6.3 Razmena podataka putem TCP i UDP protokola
Postoje dve vrste protokola za razmenu podataka na mreži. Protokol za upravljanje
prenosom (TCP, engl. Transmission Control Protocol) i protokol za korisničke datagrame
(UDP, User Datagram Protocol). Oba protokola se koriste za slanje paketa podataka na
mreži i nadograđeni su na Internet protokol (IP, engl. Internet Protocol). Kada se koristi TCP
ili UDP, paketi podataka se šalju i primaju na IP adresu. Paketi se normalno usmeravaju sa
svojih izvornih računara na odredišne računare putem rutera. U TCP i UDP protokolima
potrebna je IP adresa, a podaci se šalju i primaju preko portova.

TCP je protokol koji garantuje slanje i prijem paketa na odredište po tačnom redosledu i bez
gubitaka. Odredišni računar šalje prihvaćene pakete nazad radi potvrde prijema paketa
podataka tako da svi paketi koji su primljeni greškom ili koji su izgubljeni mogu biti poslati
ponovo.

UDP je protokol bez uspostavljanja direktne veze u kome se podaci šalju ili primaju bez bilo
kakve potvrde. Zbog toga se UDP ne smatra pouzdanim protokolom za razmenu podataka.

U tabeli 6.1 navedena je lista poređenja TCP i UDP protokola. Kao što se može videti iz ove
tabele, za brzu razmenu podataka u kojoj pouzdanost podataka nije važna, primera radi,
ako se podaci ponavljaju, poželjno je da koristite UDP protokol. Za prenos važnih podataka
treba da se koristi TCP protokol. UDP se najčešće koristi i preporučuje se za prenos
podataka na mreži kada su performanse i brzina važniji nego pouzdana isporuka i kada
potvrda isporuke nije neophodna. Druga važna primena UDP-a je u prenosima višesmernog
emitovanja, pošto TCP ne podržava takve prenose.

Neki uobičajeni primeri u kojima se koristi UDP su sledeći:

 Višesmerni sistemi

 Servisi za imenovanje domena (DNS)

 Jednostavni protokol za upravljanje mrežom (SNMP)

 Protokol za dinamičko konfigurisanje računara (DHCP)

 Protokol informacija o usmeravanju (RIP)

 Gledanje videa tokom preuzimanja i VOIP

 Jednostavan prenos datoteka

UDP paket se sastoji od zaglavlja (Header) i podataka (Data). Zaglavlje uvek sadrži 4
bajtova i izvorne i odredišne brojeve porta, dužinu poruke i kontrolni zbir, a zatim slede
stvarni bajtovi podataka poruke. Kontrolni zbir se izračunava formiranjem UDP
pseudozaglavlja (UDP Pseudo-Header) koje se sastoji od adresa izvora i odredišta, broja
protokola i dužine podataka. UDP paket se kapsulira unutar IP paketa.

Na tržištu je dostupno nekoliko programa koji se mogu koristiti za analiziranje paketa


Ethernet mreže. Neki programi su otvorenog koda, ne pružaju korisničku podršku i mogu se
besplatno preuzeti sa Interneta (npr. Ethereal, Wireshark, Tcpdump, Dsniff), a neki drugi se
isporučuju sa punom korisničkom podrškom i mogu se kupiti (npr. EtherDetect, Colasoft
Capsa itd.)
UDP TCP

protokol bez direktnog povezivanja protokol sa direktnim povezivanjem

bez potvrde (nije pouzdan) koristi se potvrda (pouzdan)

podaci možda neće biti primljeni po tačnom podaci su primljeni po tačnom redosledu
redosledu

brz prenos datoteka sporiji prenos datoteka

npr. TFTP, VOIP npr. FTP, SMTP

Tabela 6.1 – Upoređivanje TCP i UDP protokola

U ovom odeljku ćemo videti kako podaci mogu da se šalju upotrebom UDP (ili TCP)
protokola uz pomoć SIM900 GSM/GPRS modula. Modul je povezan sa računarom pomoću
USB-TTL adaptera kao i pre, a komande se šalju na modul pomoću softvera terminalskog
emulatora HyperTerm. Na računaru se koristi UDP serverski program da biste testirali da li
podaci mogu da se šalju i primaju na ekranu računara. U ovom primeru se koristi softver
emulatora UDP/TCP/Serial port kompanije AGGSoftware. Ovaj softver se može preuzeti na
sledećoj veb stranici:

http://www.aggsoft.com/com-port-emulator/download.htm

Pošto je GPRS spoljna veza naše mreže, potrebno je da znamo privatne i javne IP adrese
računara i da koristimo uslužni program rutera „Port forwarding“ da bismo definisali
pretvaranje porta, tako da možemo da komuniciramo sa računarom na spoljnoj IP adresi.
Privatna IP adresa računara može da se pronađe na sledeći način:

 Kliknite Start.

 Ukucajte CMS za ulaz u komandni režim (Windows 7).

 Unesite komandu ipconfig

 Pronađeno je da je IP adresa 192.168.1.71, kao što je prikazano na slici 6.5.

Slika 6.5 – Privatna IP adresa računara


Možemo da pronađemo javnu IP adresu našeg računara (koja se nalazi na drugom kraju
rutera) tako što ćemo u Google uneti komandu whats my IP. Kao što je prikazano na slici
6.6, javna IP adresa našeg računara je 165.120.247.91.
Slika 6.6 – Pronalaženje javne IP adrese računara
Na slici 6.7 prikazana je konfiguracija rutera na privatnom i javnom kraju. Sada možemo da
dodelimo brojeve porta pomoću uslužnog programa rutera port forwarding tako da se svi
podaci koji dolaze spolja šalju na računar. U ovom primeru ćemo koristiti iste brojeve porta
(2000) na oba kraja našeg rutera.

Slika 6.7 – Konfiguracija rutera

Sada možemo da pošaljemo komande na SIM900 GSM/GPRS modul da bismo uspostavili


UDP vezu i poslali podatke UDP serveru na računar.

Dodajte GPRS:

AT+CGATT=1
Isključite GPRS IP, ako je aktivan.

AT+CIPSHUT

Pribavite status servera (nije obavezno).

AT+CIPSTATUS

Konfigurišite uređaj za jednu IP vezu.

AT+CIPMUX=0

Podesite APN (zavisi od mrežnog provajdera).

AT+CSTT=”pp.vodafone.co.uk”

Pokrenite GPRS vezu.

AT+CIICR

Pribavite GPRS lokalnu IP adresu. U ovom primeru to je 10.33.23.25.

AT+CIFSR

Pokrenite TCP ili UDP vezu. U ovom primeru je pokrenuta UDP veza i navedeni su daljinska
IP adresa 165.120.247.91 i broj porta 2000 (pogledajte sliku 6.8).

AT+CIPSTART=”UDP”,”165.120.247.91”,”2000”

Slika 6.8 – Pokrenite UDP vezu


Konfigurišite AGGSoftware UDP/TCP/Serial port softver emulatora, kao što je prikazano na
slici 6.9, tako što ćete izabrati UDP serverski režim uz lokalnu IP adresu 192.168.1.71 i
broj porta 2000. Kliknite na dugme Start. Softver je sada spreman za prijem podataka sa
GPRS-a. Izaberite karticu Log.
Slika 6.9 – Konfigurišite UDP server na računaru
Pošaljite podatke preko UDP-a. Primetite da podaci treba da se završe znakom Cntrl-Z, kao
što je prikazano na slici 6.10.

AT+CIPSEND

>test[Cntrl-Z]

SEND OK

AT+CIPSEND

>Testing the GPRS connection[Cntrl-Z]

Slika 6.10 – Slanje podataka pomoću UDP-a


Zatvorite vezu.

AT+CIPSHUT

Kliknite Stop da biste prekinuli softver emulatora.

Razmena podataka pomoću TCP protokola je slična, ali naziv protokola u komandi
AT+CIPSTART treba da se promeni u TCP.
6.4 Projekat 1 – Slanje podataka o temperaturi na računar pomoću
UDP protokola
U ovom projektu ambijentalna temperatura se očitava pomoću analognog senzora
temperature TMP36 (pogledajte Poglavlje 5) i zatim se šalje na računar svakog minuta
upotrebom UDP protokola sa razmenom podataka preko GPRS-a. Temperatura se prikazuje
u obrascu na ekranu računara.

6.4.1 Hardver

Na slici 6.11 prikazan je blok dijagram projekta. Senzor temperature je priključen na


prototipsku ploču i spojevi na SIM900 GSM/GPRS modulu su izvedeni pomoću žica
kratkospojnika. Pinovi Vcc i Gnd čipa senzora TMP36 su povezani sa napajanjem od +5V i
GND pinovima na Arduinu, kao što je prikazano na slici 5.7. Izlazni pin čipa senzora je
povezan sa analognim ulazom A0 na Arduinu. Napominjemo da umesto Arduino U/I
priključaka možete da koristite U/I priključke koji su postavljeni na modul, jer prenose iste
signale.

Slika 6.11 – Blok dijagram projekta


Spoljno napajanje 5 V 2.5 V je povezano sa priključkom za napajanje modula.
Kratkospojnici serijskog porta treba da budu podešeni kao što je opisano u prethodnom
projektu, tako da je izabran softverski serijski rad (pinovi 7 i 8).

Mikrokontroler pretvara izlazni napon senzora iz analognog u digitalni. Arduino UNO ADC
konvertor je 10-bitni i ima nivoe kvantizacije od 0 do 1023. ADC referentni napon je +5 V.
Električna šema projekta prikazana je na sledećoj strani.
6.4.2 Softver

Kao što je opisano ranije u ovom poglavlju, računar je povezan sa internetom putem rutera
i računar je za ruter privatni čvor. Međutim, GPRS je za ruter spoljni uređaj i kao što je
pomenuto ranije, neophodno je da uradite prosleđivanje porta (port forwarding) u ruteru
tako da spoljni uređaj može da komunicira sa računarom. U ovom primeru, IP adresa rutera
na javnoj strani je 165.120.247.91.

U ovom projektu postoje dva programa: Arduino program i PC program. Detalji o oba
programa su opisani u ovom odeljku. Na slici 6.12 prikazan je rad celog sistema kao PDL-a.

Slika 6.12 – Rad sistema


8 Arduino program
Arduino program (pod nazivom Arduino-UDP.c) očitava temperaturu sa čipa analognog
senzora svakog minuta i šalje je na računar pomoću UDP protokola preko GPRS razmene
podataka.

Na slici 6.13 prikazan je ceo listing programa. Na početku programa definišu se AT komande
i veza čipa senzora. Zatim se inicijalizuje GPRS tako da paketi podataka mogu da se šalju na
računar pomoću UDP protokola.

Unutar glavnog programa formira se beskonačna petlja u kojoj se čita izlaz čipa senzora
korišćenjem funkcije Read_Temperature. Očitavanje se zatim pretvara u stepene
Celzijusa oduzimanjem 500 mV i deljenjem rezultata sa 10, kao što je opisano u listi sa
podacima proizvođača. Temperatura se zatim pretvara u obliku niza u znakovnom nizu Msg,
pre nego što se pošalje na računar putem GPRS-a:
Slika 6.13 – Listing Arduino programa projekta

9 PC program
PC program je razvijen u okruženju Visual Studio (2015) i Visual Basic, a njegov listing je
dat na slici 6.14. Program se zove VB-UDP i sastoji se od jednog obrasca sa dva natpisa,
jednog polja za tekst i jednog dugmeta. Obrazac se učitava kada se program pokrene.
Program kreira UDP vezu za prijem podataka sa porta 2000 na IP adresu 192.168.1.71
lokalnog privatnog računara. Polje za tekst se naziva Txttemp i prikazuje temperaturu kao
znakovni niz. Dugme se koristi za prekid programa i izdavanje komande END kada se
klikne.

PC program radi kontinuirano tako što čeka pakete podataka na portu 2000 i čim je paket
dostupan biće primljen i uskladišten u promenljivu receiveBytes pomoću komande:

receiveBytes = udpClient.Receive(RemoteIpEndPoint)

Primljeni podaci su u obliku bajta i mora da budu pretvoreni u znakovni niz da bi se prikazali
u polju za tekst. To se radi pomoću koda datog u nastavku u kome su primljeni podaci sada
u promenljivoj znakovnog niza returnData:

Dim returnData As String = Encoding.ASCII.GetString(receiveBytes)


Slika 6.14 – Listing PC programa projekta
Na slici 6.15 pokazan je tipičan prikaz temperature na računaru.

Slika 6.15 – Tipičan prikaz temperature


6.5 Projekat 2 – Slanje podataka o temperaturi na računar pomoću
TCP-a
Ovaj projekat je sličan projektu 1, ali ovde se ambijentalna temperatura očitava pomoću
analognog senzora temperature TMP36 i zatim se šalje na računar svakog minuta pomoću
TCP protokola preko GPRS veze za razmenu podataka. Temperatura se prikazuje na ekranu
računara pomoću emulatora AGGSoftware UDP/TCP/Serial port, kao što je opisano ranije u
ovom poglavlju. Pored toga, razvijena je TCP aplikacija konzole zasnovana na jeziku C# za
prijem TCP paketa sa Arduina i za prikaz na ekranu svakog minuta.

6.5.1 Hardver

Blok dijagram projekta prikazan je na slici 6.11. Senzor temperature je priključen na


prototipsku ploču i spojevi na SIM900 GSM/GPRS modulu su izvedeni pomoću žica
kratkospojnika. Pinovi Vcc i Gnd čipa senzora TMP36 su povezani sa napajanjem od +5V i
GND pinovima na Arduinu, kao što je prikazano na slici 5.7. Izlazni pin čipa senzora je
povezan sa analognim ulazom A0 na Arduinu.

Spoljno napajanje 5 V 2,5 A povezano je sa priključkom za napajanje na modulu, pošto je


za rad potrebna vršna struja od preko 2 A. Kratkospojnici serijskog porta treba da budu
podešeni kao što je opisano u prethodnom projektu, tako da je izabran softverski serijski
rad (pinovi 7 i 8). Električna šema projekta prikazana je na slici 5.8.

6.5.2 Softver

Kao što je opisano u ovom poglavlju, računar je povezan sa Internetom putem rutera i
računar je za ruter privatni čvor. Međutim, GPRS je za ruter spoljni uređaj i kao što je
pomenuto ranije, neophodno je uraditi prosleđivanje porta u ruteru tako da spoljni uređaj
može da komunicira sa računarom. U ovom primeru, IP adresa rutera na javnoj strani je
165.120.247.91.

U ovom projektu postoje dva programa: Arduino program i PC program. Detalji o oba
programa su opisani u ovom odeljku. Na slici 6.16 prikazan je rad celog sistema kao PDL-a.

Slika 16.6 – Rad sistema


Arduino program
Ceo listing Arduino programa dat je na slici 6.17. Arduino program (pod nazivom Arduino-
TCP.c) očitava temperaturu sa čipa analognog senzora svakog minuta i šalje je na računar
pomoću TCP protokola preko GPRS veze za razmenu podataka. Program je vrlo sličan onom
koji je dat na slici 6.13, osim što se ovde GPRS komanda AT+CIPSTART konfiguriše za
korišćenje TCP umesto UDP protokola. Pored toga, format poruke koja sadrži temperaturu
se u ovom projektu malo razlikuje (primetite ispod da je IP adresa javne strane rutera
165.120.247.91 i da je broj porta 2000):

char Cipstart[] = “AT+CIPSTART=\”TCP\”,\”165.120.247.91\”,\”2000\””;


Slika 6.17 – Listing Arduino programa projekta

PC program
PC program (pod nazivom Module1) je razvijen kao aplikacija konzole pomoću Visual Studia
(2015) i C# programa, a njegov listing je dat na slici 6.18. Program je veoma jednostavan
jer kreira TCP link na portu 2000 lokalnog hosta koji je naš računar. Program zatim prima
podatke o temperaturi sa Arduina i prikazuje ih na konzolu primenom komandi
Console.Write. Pošto se čitanje podataka blokira, program radi kao beskonačna petlja,
prima TCP pakete čim oni pristignu na Arduino i zatim ih prikazuje:
Slika 6.18 – Listing PC programa projekta
Na slici 6.19 pokazani su podaci koje program prikazuje na ekranu računara.

Slika 6.19 – Podaci prikazani na ekranu računara

Upotreba emulatora UDP/TCP/Serial Port


Pored prikazivanja podataka pomoću C# aplikacije konzole, softver emulatora AGGSoftware
UDP/TCP/Serial port koristi se za prikaz podataka koje je poslao Arduino. Na slici 6.20
prikazano je podešavanje softvera ovog emulatora za prijem TC podataka. Na slici 6.21
prikazani su stvarni podaci koje je primio softver emulatora. Emulator se konfiguriše za
režim servera TCP/IP uz broj porta 2000 i IP adresu 192.168.1.71.
Slika 6.20 – Podešavanje softvera emulatora
Slika 6.21 – Podaci koje je primio softver emulatora

6.6 Projekat 3 – Skladištenje podataka o temperaturi u oblaku


(cloud)

U ovom projektu modul SIM900 GMS/GPRS je priključen na razvojnu ploču Arduino Uno.
Pored toga, senzor temperature TMP36 je povezan sa analognim ulazom A0 Arduina, kao i u
prethodnom projektu. Temperatura se čita svakih 15 sekundi i skladišti u oblaku
korišćenjem HTTP zahteva na GPRS vezi.

6.6.1 Hardver

Na slici 6.22 prikazan je blok dijagram projekta. Ploča SIM900 GSM/GPRS je priključena na
gornjem delu razvojne ploče Arduino UNO i konfigurisana je za korišćenje serijskih
komunikacionih pinova, kao i ranije. Senzor temperature (TMP36) je priključen na
prototipsku ploču i povezan je sa analognim ulazom A0 na Arduino Uno pomoću žica
kratkospojnika.
Slika 6.22 – Blok dijagram projekta

6.6.2 Oblak (cloud)

U ovom projektu koristi se usluga u oblaku Data.SparkFun.com kompanije SparkFun radi


skladištenja očitavanja temperature u oblaku. Ovo je besplatna usluga koja omogućava
korisniku da podatke, kao što su očitavanja vremenskih uslova, uslove kancelarijskog
okruženja i bilo koje druge podatke, pošalje u oblak. Podaci mogu biti poslati na nekoliko
načina, ali u ovom projektu se za skladištenje podataka koriste jednostavni HTTP zahtevi.

Pre nego što detaljno prikažemo Arduino program, važno je naučiti kako da koristimo
SparkFun uslugu u oblaku (https://learn.sparkfun.com/tutorials/pushing-data-to-
datasparkfuncom/all#introductioon). Da bismo koristili server, moramo da kreiramo
tokove podataka i pribavimo dva ključa: private key (privatni ključ) i public key (javni
ključ). Javni ključ je vidljiv svima onima koji žele da vide naš tok podataka i deo je URL
adrese koja se koristi za pristup toku podataka. Privatni ključ je potreban za postavljanje
svih podataka u oblaku i taj ključ nije javno vidljiv, već je poznat samo vama. Moramo da
kreiramo tok podataka za naše stavke podataka da bismo mogli da skladištimo te podatke.
Za tok podataka potrebni su naslov, opis, polja i tagovi.

Koraci za kreiranje SparkFun usluge u oblaku dati su ispod:

 Otvorite veb sajt: https://data.sparkfun.com/. Treba da vidite opcije kao na slici


6.23.
Slika 6.23 – Glavna stranica SparkFun usluge u oblaku
 Kliknite dugme CREATE da biste kreirali tok podataka. Izaberite naslov, opis, polja,
tagove itd. U ovom primeru su izabrane sledeće stavke (deo unosa pogledajte na
slici 6.24):

Title: Arduino GPRS test

Description: Ovaj primer ilustruje kako možemo da skladištimo podatke u oblaku

Visible: Yes

Fields: Temperature

Stream alias: sim900temp (koristi se za pristup toku podataka)

Tags: weather

Location: London, United Kingdom


Slika 6.24 – Deo unosa
 Kliknite Save da biste sačuvali tok podataka.

 Trebalo bi da vidite prikaz koji je dat u nastavku (ključeve treba da sačuvate na


sigurnom mestu, jer se ne mogu povratiti ako ih izgubite. Na slici 6.25 pokazan je
samo deo prikaza):

Fields: temperature

Tags: weather

Public URL: http://data.sparkfun.com/streams/g6Q3YvvAoms3E7znGvnG

Public Key: g6Q3YvvAoms3E7znGvnG

Private Key: qzw4AxxZd8irnYj6KM6K

Delete Key: k3LgAoo4XKIgdBEJVaJV

 Prijavite se tako što ćete koristiti parametre znakovnog niza upita:

http://data.sparkfun.com/input/[publicKey]?

private_key=[privateKey]&temperature=[value]

 Na primer, ako je temperatura 22,53 stepeni Celzijusa, onda znakovni niz treba da
bude:

http://data.sparkfun.com/input/g6Q3YvvAoms3E7znGvnG?

private_key=qzw4AxxZd8irnYj6KM6K&temperature=22.53
Slika 6.25 – Deo prikaza
Sada smo spremni da pošaljemo naše podatke o temperaturi u oblak tako što ćemo razviti
Arduino program.

6.6.3 Softver

Na slici 6.26 prikazan je ceo listing programa (Arduino-HTTP.c). Nakon inicijalizacije


promenljive programa i konfigurisanja GPRS-a, program očitava temperaturu svakih 15
sekundi i šalje ove podatke u oblak. U programu su korišćene sledeće AT komande:

Slika koda
Program koristi komandu HTTP GET za skladištenje podataka u oblaku. Napominjemo da su
za skladištenje podataka potrebni javni i privatni ključevi.

URL u HTTP komandi AT+HTTPPARA je u formatu koji je dat u nastavku. Temperatura se


dodaje na kraj znakovnog niza Msg1, a zatim se dodaju dvostruki znaci navoda (u
znakovnom nizu Quote) i onda se rezultujući znakovni niz u Msg1, koji je deo komande
HTTPPARA, šalje na modem:
Slika 6.26 – Listing programa projekta
Usluga u oblaku vraća niz 1 kada se podaci uspešno uskladište u oblaku.

To se prikazuje kao 10 bajtova podataka nakon što se izvrši komanda


AT+HTTPACTION=0, kao u sledećem obliku:

HTTPACTION: 0, 200, 10

Uskladištenim podacima u oblaku se može pristupiti pomoću sledeće URL adrese uz javni
ključ koji je dodeljen ranije:

http://data.sparkfun.com/streams/g6Q3YvvAoms3E7znGvnG

Na slici 6.27 prikazan je primer podataka koji su uskladišteni u oblaku. U ovom primeru
temperatura je 12 stepeni Celzijusa.

Slika 6.27 – Podaci uskladišteni u oblaku

6.7 Rezime
U ovom poglavlju razmatrali smo konfigurisanje GPRS modema i upotrebu SIM900
GSM/GPRS modula u Arduino projektima. Prikazana su tri testirana i radna projekta uz cele
listinge programa. U prvom projektu Arduino očitava ambijentalnu temperaturu i šalje je na
računar pomoću GPRS komunikacije sa UDP protokolom. U drugom projektu se podaci o
temperaturi šalju na računar pomoću TCP protokola na GPRS vezi. U završnom projektu se
podaci o temperaturi skladište u oblaku primenom HTTP komandi za GPRS.

You might also like