You are on page 1of 14

1.

Gii thiu tng quan v h thng:


Module SMS Controller sim900 vi vic giao tip gia vi iu khin PIC v Breakout sim900 l
mt gii php ton din cho vic gim st v iu khin thit b mt cch hiu qu. c tch hp 4
ng ra relay iu khin 4 thit b bt k trong nh, kh nng iu khin hon ho k c cc thit b
in xoay chiu 220V v c s cch li hon ton vi mch iu khin thng qua relay. Vi bn
cng ng vo bo ng, ngi s dng c th kt ni vi mt thit b cm bin bt k no vi mt
mc tnh hiu ng vo, mch s gim st v bo ng. Ngoi ra vi 8 cng RF m rng, vic kt ni
vi mch RF ri l rt tin li, cho ta kh nng iu khin bng remote hiu qu v nhanh chng hn,
cng l c bn m rng ng vo gim st cho module hot ng din rng.
Cc tnh nng ni bt ca mch:
H tr kt ni Breakout SIM900:
o Quad-Band 850/ 900/ 1800/ 1900 MHz
o GPRS multi-slot class 10/ class 8 support the GPRS coding schemes
o CS-1, CS-2, CS-3 and CS-4.
o H tr ch tit kim nng lng.
o Tch hp giao thc TCP/IP.
MCU: PIC18F4620-I/PT
o Program Memory (KB): 64, RAM Bytes: 3,968
o Data EEPROM (bytes): 1024,
o 1-A/E/USART, 1-MSSP(SPI/I2C)
o 2CCP, Timers: 1 x 8-bit, 3 x 16-bit
o ADC: 13 ch, 10-bit, Comparators: 2
Vcc: 2 to 5.5VOutput:
o 4 ng ra dng relay 12VDC. Tip im chung, thng ng, thng h.
Input:
o 4 ng vo s dng opto cch ly.
o 8 ng vo RF Receiver 315Mhz 433Mhz
Ngun xung s dng IC LM2596 cho dng ti 3A, tn s p ng 150Khz
in p hot ng 7-15VDC
a. Khi PIC iu khin:



Khi vi iu khin trung tm s dng PIC 18F4620 vi ngun cp l 4.5V, thc hin giao tip vi
Sim900 thng qua b UART gm 2 chn truyn nhn, Tx(C6), Rx(C7). Bn chn iu khin 4 relay
c b tr cc chn RD4, RD5, RD6, RD7 tng ng vi cc relay 1,2,3 v 4. Tng t nh vy,
4 chn ng vo bo ng c b tr cc chn RB0, RB1, RB2, RB3 tng ng IN1, IN2, IN3,
IN4. Ngoi ra cc chn ng vo RF cng c b tr mt port ring bit, cc chn RA1, RA2, RA3,
RA4 tng ng D3, D2, D1, D0 ca b 1 v cc chn RC5, RC4, RD3, RD2 tng ng D0, D1, D2,
D3 ca b 2.
s trn, nhn chung ch s dng nhng chn c bn ca PIC vi chc nng xut nhp I/O v
dng b UART giao tip vi SIM900, vi nhng th c bn cc bn c th pht trin thm
nhiu ng dng khc lm tng kh nng cho board nh ng dng b ADC trong vic c nhit ,
m rng port I/O c th iu khin vi s lng thit b ln hn, v.v
b.Khi ngun:


Mch ngun y dng cung cp cho ton h thng bao gm cc khi vi iu khin, module
sim900, cc khi I/O v vy ta cn mt mch ngun c dng ln. y ta chn mch ngun vi
thit k LM2596 -ADJ, y l IC ngun c kh nng dng ti ln n 3A m bo h thng lm vic
n nh. H thng ca chng ta s dng ngun 4.5V cung cp in cho ton mch, do ta cn phn
p in tr cho LM2596 ADJ sao cho u vo 12V v u ra l 4.5V. Theo datasheet ca IC
LM2596 ADJ th ta c cng thc phn p nh sau:
Vout =1.23.(1+R2/R3)
Ta phi chn cp in tr sao cho Vout bng 4.5V, vi R3=2.1K v R2=5.6K th tha mn iu
kin trn.
c.Khi Input:


Yu cu t ra l khi c mt tc ng t bn ngoi hay ni cch khc l c mt xung vo th vi
iu khin hiu v thc hin bo ng qua SIM900, cng l chc nng ca khi ng vo input
ny. thc hin c vic thu thp tn hiu ng vo chng ti s dng mt con Oppto m u vo
lm vic .
Cu to ca Oppto bao gm 1 con led v 1 con transistor quang, nu ng vo led mc cao tc led
trong oppto sng khi lm cho transistor quang dn, iu cng ng ngha ng ra mc cao nu
ng ra c ni ln ngun.
Mch input dng oppto c kh nng thu thp tn hiu ng vo vi mc cao l 5V-12V cch li hon
ton vi mch h thng nh tnh cht v cu to ca Oppto.
d.Khi iu khin Output:


Khi iu khin thit b c nhim v iu khin cc thit b ngoi vi thng qua tip im thng
ng v thng h. Mch s dng cc oppto kch transistor v relay cch li iu khin thit b vi
kh nng ng dng cao, c th s dng iu khin c cho rt nhiu loi thit b khc nhau k c
thit b dng ngun 220V xoay chiu.
Nguyn l hot ng ca 1 knh tiu biu trong khi nh sao: nhn vo s nguyn l ta thy, khi
c tn hiu ng ra t chn vi diu khin mc cao 5V-12V kch vo Anot led ca oppto lm led
oppto sng, khi transistor quang ca oppto dn ngun 12V qua in tr 10K kch vo cc B ca
transistor C1815. Khi transistor C1815 dn tip tc lm ngun 12V qua cun dy relay xung
mass. Khi c in qua cun dy relay th cng tc ca relay s bt v kt thc qu trnh iu khin
thit b.
e.Khi kt ni Breakout SIM900:


Da vo s chn ca Breakout SIM900 m ta thit k connector giao tip vi PIC. Cu to v
s nguyn l Breakout SIM900 cc bn c th tham kho y:
http://at-sky.com.vn/san-pham/2-breakout-sim900.html#.UfnRAazebBM
Khi ny c nhim v rt quan trng trong mch SMS Controller SIM900, Breakout SIM900 l
cu ni gia h thng vi in thoi di ng, nhim v l tip nhn tin nhn t in thoi v chuyn
bn tin n vi iu khin x l ng thi nhn ni dung tin nhn t vi iu khin v pht n in
thoi ngi dng thng qua mng GSM.
f.Khi RF:

Khi RF bao gm cc connector kt ni vi mch RF ri bn ngoi c kh nng nhn tn hiu t
b RF a v cho vi x l iu khin. Mch SMS Controller c tch hp 8 knh RF tng ng 2
b RF ri vi mi b 4 knh.
Vic tch hp cc b RF trn Board rt quan trng v li ch m rng rt ln, vi cc b RF ta c
th thc hin iu khin thit b bng remote mt cch d dng. Nhng ng vo RF cn c th s
dng nh nhng input bo ng khng dy.
2.Hot ng:
Cc bn c th hnh dung tng qut ton b h thng qua s khi nh sau:

AT-COM pht trin mt h thng code demo cho SMS Controller SIM900,vit trn nn CCS,
vi h thng ny mch SMS Controller c kh nng thc hin cc chc nng c bn l nhn tin iu
khin thit b cng nh gim st ng vo thng qua cc cng input.
Vic nhn tin iu khin h thng thit b v cng n gin vi kh nng c php hon ton do
ngi lp trnh quy nh.

y chng ti quy nh c php nhn tin bng on chng trnh trn. Vi cc c php nh sau:
M thit b 1: #[pass] On1.
M thit b 2: #[pass] On2.
M thit b 3: #[pass] On3.
M thit b 4: #[pass] On4.
Tt thit b 1: #[pass] Tat1.
Tt thit b 2: #[pass] Tat2.
Tt thit b 3: #[pass] Tat3.
Tt thit b 4: #[pass] Tat4.
Pass l 1 chui k t bo mt do ta quy nh v th hin trn code dng lnh char
MK[]=123456; khi nhn tin cc bn ch vic nhn ng c php quy nh l vi iu khin c
th hiu v lm vic theo yu cu ca bn. Kh nng m rng on code ny rt cao, cc bn c th
pht trin vi c php hon ton khc v d trn, on k t bo mt c th di hn hn th na iu
s gip kh nng bo mt cao hn.
vi iu khin c th nhn c ni dung tin nhn t SIM900 gi xung thng qua b UART
thun li hn trong chng trnh ta phi c thit lp ngt UART.

y l chng trnh ngt UART vi vic nhn k t v lu vo mng buffer, y cn nhn bit
c u chui v kt thc chui thng qua 2 k t c bit # v . hiu qu qun l chui ti
u nht. V tc nhin l khng th thiu 2 dng lnh khi to ngt UART trong main() khi s
dng ngt ny:
enable_interrupts(INT_RDA); //cho phep ngat uart
enable_interrupts(GLOBAL); //cho phep ngat toan cuc
Breakout SIM900 ngoi vic cp ngun cho mch, Module c th bt u hot ng th ta
cn phi kch mt xung mc cao vo chn s 1 ON/OFF ca Breakout SIM900, v vi x l s m
nhim cng vic . on chng trnh Init_sim900 c t u on Main c tc dng kch hot
Breakout SIM900 hot ng.

PWU l chn kch Breakout SIM900 tng ng vi chn RC3 ca vi iu khin. Sao khi kch
Breakout SIM900 thnh cng bng vic gi lnh AT ln SIM, mch s bo ng cho ta bit h thng
khi ng hon tt bng vic gi tin nhn n s in thoi ci t trong code.
Lnh send_sms(num1,0); m nhn vic gi tin nhn , y l lnh thc hin gi tin nhn phn
hi n ngi dng khng ch khi ng hon tt m tt c cc bo ng lin quan bao gm m
thit b, tt thit b, v.v

Ni dung tin nhn cc trng hp gi phn hi nm trong cc case ca lnh switch case, khi
trng hp no xy ra n ch vic ly ng case ni dung ca trng hp v gi i. S in thoi
my ch ta quy nh trn vi on lnh:
char num1[]="01265105xxx";
V nh vy trong chng trnh gi tin nhn, ta ch vic ly s in thoi ra v thc hin lnh
gi theo c php lnh AT Command. Lnh gi tin nhn c c php nh sau:
At+CMGS=sdt
>(ni dung SMS)
Tng t chng trnh gi SMS phn hi, chng ti cng xy dng ring cho trng hp bo
ng ng vo mt on chng trnh gi SMS ring, gi l on chng trnh send_cb(char *p);
on chng trnh ny cng vi chc nng gi SMS phn hi nhng dng trong vic gi SMS khi c
tc ng u vo.

Cu trc chng trnh khng c g mi so vi chng trnh gi SMS phn hi, ch thay i phn
ly ni dung SMS gi i, thay v ni dung c lu trong tng case ca hm switch case th y
ta s qut iu kin ca tng trng thi ng vo v nu ng vo no b tt ng ch vic gi ng
ni dung ng vo .
ly trng thi ng vo cho chng trnh send_cb, chng trnh chnh khng th thiu mt
on chng trnh qut ng vo:

y l on chng trnh qut trc tip trng thi cc ng vo input t chn RB0 n chn RB3,
v thc hin gi tin nhn.
Phn cui cng khng th thiu l on chng trnh nhn ni dung SMS v iu khin thit b:

y l ton b h thng nhn, so snh ni dung tin nhn v iu khin thit b theo yu cu.
hiu r hn hot ng ca chng trnh ti xin v d mt on trong iu khin thit b 1 v qua
cc on cn li cc bn c th t tm hiu thm:

on chng trnh trn cc bn thy, bin sms_mode c nhim v nhn bin khi no c SMS
n, sms_mode = true khi c tin nhn, ngc li sms_mode = false, bin ny s c set trong
chng trnh ngt cc bn c th xem li ni dung chng trnh ngt trn. Hm if(sms_mode= =
true) c chc nng kim tra SMS n.
Gi s c tin nhn n v sms_mode = true bc tip theo ca chng trnh l kim tra mt khu,
so snh mt khu mc nh vi mt khu c trong tin nhn, th hin hai on chng trnh tip
theo:
Ptr1=strstr(buffer,MK);
If(strncmp(ptr1,MK,6)= = 0)
Hm strstr() c s dng tm kim s xut hin u tin ca chui MK bn trong chui
buffer, kt qu tr v ca hm l con tr Ptr1 ch n phn t u tin ca chui buffer c cha chui
MK. Hm tip theo strncmp() c s dng so snh hai chui MK v con tr Ptr1 c gi tr v tr
u tin xut hin chui MK trong chui buffer, vi gi tr so snh l 6 phn t, nu hai chui ging
nhau th tr v gi tr bng 0.
Bc cui cng trong vic kim tra tin nhn l kim tra k t iu khin, cng dng hai lnh tng
t nh phn kim tra mt khu:
ptr2=strstr(buffer,mo_tb1);
if(strncmp(ptr2,mo_tb1,3)= =0)
Nu ton b iu kin u ng th h thng vi x l s lm vic bt tt cc thit b theo ng yu
cu ca ngi dng nhn tin.
3.Tng kt:
Tm li, ton b ni dung trn gii thiu cho cc bn tng quan ht tt c cc hot ng c
bn ca mch SMS Controller SIM900, nhng chc nng m cc bn c thy trn ch l cc
chc nng c bn nht m mt mch SMS Controller SIM900 phi lm, da trn on code cng nh
hng dn trn cc bn c th t pht trin ng dng mi cho mnh mt cc linh hot, vic trin
khai thm tin ch trn board l khng kh. Phn hn ch ca on code demo trn cn rt nhiu,
code cha c chc nng iu khin thit b qua b thu pht RF, cha c c nhiu my ch bo tin
nhn.
Cc bn c th pht trin thm nhiu chc nng quan trng khc nh thay i mt khu, lu mt
khu trong epprom phong mt in, tng kh nng gim st thit b, c thm khi hin th gip
ngi dng trc quan hn, v.v
Sao y l file hex v file code demo m chng ta theo di t u bi:

You might also like