You are on page 1of 10

Hng dn lp trn

h module sim900A va Arduino


Xin chao cac bn!
Hm nay, mn
h hng d n cac ban cach lp trn
h module Sim900A vi Arduino
Uno (Trong bi mnh s dng mch Uno VN01)
C th, bi vit hng dn cc bn cc phn sau:

1 s lnh AT c bn thng dng vi Module Sim900A,

Cch kt ni Module Sim900A vi Arduino v module Relay iu khin bt


/tt 1 thit b in

Code tham kho trn Arduino, iu khin bt/tt thit b bng cch gi tin
nhn ti Module Sim900A

Mt s ln AT thng dng vi module Sim900A


1.L nh chung
L nh:

AT<CR><LF>

Tra li: OK<CR><LF>


M ta : Kim tra p ng ca Module Sim 900A, n u tra v OK th Module hoat ng

L nh:

ATE[x]<CR><LF>

Tra li: OK<CR><LF>


M ta : Ch echo l ch phan h i d liu truy n n cua module Sim 900A,
x = 1 bt ch echo , x = 0 tt ch echo (ban nn tt ch nay)

L nh:

AT+IPR=[baud rate]<CR><LF>

Tra li: OK<CR><LF>


M ta : cai t t c giao ti p d liu vi module Sim 900A, ch ci c cac t c
sau

baud rate :

0 (auto), 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200

2.L nh iu khi n cuc goi


L nh:

ATD[S _in_thoai];<CR><LF>

Tra li: OK<CR><LF>


M ta : Lnh thc hin cuc goi

L nh:

ATH<CR><LF>

Tra li: OK<CR><LF>


M ta : Lnh thc hin kt thuc cuc goi , hoc cup may khi co cuc goi n
L nh:

ATA<CR><LF>

Tra li: OK<CR><LF>


M ta : Lnh th c hin ch p nhn khi c cuc goi n
Chu y: khi nhn c cuc gi n th Module Sim 900A se phan hi v nh sau
RING
RING
N u mu n hi n thi thng tin ngi gi n cac ban th c hin thm lnh sau
L nh:

AT+CLIP=1<CR><LF>

Tra li: OK<CR><LF>

3.L nh iu khi n tin nh n


L nh:

AT+CMGF=1<CR><LF>

Tra li: OK<CR><LF>

M ta : Lnh a SMS v ch Text , phi co lnh nay mi gi nhn tin nh n dang


Text

C u truc gi tin nh n
L nh:

AT+CMGS=S _i n _thoai<CR><LF>

i n khi co ky t > c gi v
Gi ni dung tin nh n : This is a test
Gi ma Ctrl+Z hay 0x1A k t thuc ni dung va gi tin nh n
Tra li : OK<CR><LF>

L nh:

AT+CMGR=1<CR><LF>

M ta : c mt nhn va gi n, lnh c tra v ni dung tin nh n, thng tin


ngi gi, thi gian gi
Chu y: N u Module Sim 900A nhn c mt tin nh n b t ky, th no gi v cum
+CMTI thng bao
Trong trng h p ban mun hi n thi tr c tip ni dung tin nh n(khng lu vao b
nh ca sim) ban gi lnh sau
AT+CNMI=2,2<CR><LF>
Ch : sau mi lnh cac ban thng th y <CR><LF> th c ch t no la hai ma i u
khi n <CR> tng ng 0x0D(hexa)
<
LF> tng ng 0x0A(hexa)
n u cac ban test trn may tn
h sau mi lnh cac ban ch c n n phm
Enter
V du : go AT r i n Enter

Chu n bi ph n cng v kt ni

1 Ngu n 12VDC/1A
1 Sim b t k (co th nghe , goi c)
1 Sim900A Shield
1 Uno VN01
1 Module Relay 12V
1 thit b in m bn mun iu khin. Trong bi hng dn ny mnh s dng
bong en 12V.
Dy k t ni
Ban co th xem hn
h se th y trc quan hn

Quy trn
h k t n i ,
n gin, ch cn c m Shield Sim900A ln kit Arduino Uno

Lc ny c dy chn Gnd, Rx, Tx, PWR_KEY c k t n i gia Module Sim900A v


Arduino
Tip theo dng dy kt n i cac thanh phn con lai (ban k t n i nh hnh m ta
trn cung)

C m dy USB 5V vo Arduino , Cm ngun 12V vo Shield Sim900A c p ngu n


cho module Sim900A hoat ng
Nh vy ta chu n bi xong ph n cng
Ph n lp trn
h , cac ban m Arduino IDE ln va copy oan code di vao

new 1

Tuesday, December 20, 2016 15:27

// Bai toan : nhan tin dieu khien bat tat bong den
// Neu noi dung tin nhan la : LAMP_ON
thi bat bong den
// Neu noi dung tin nhan la : LAMP_OFF
thi tat bong den

const String myphone = "01689951815";


const int PWR_KEY = 9;
khien bat tat module sim900A
const int RELAY = 12;
dieu khien dong/cat Relay de On/Off den

// Thay so cua ban vao day


// Chan so 9 arduino uno dung lam chan dieu
// Chan so 12 arduino uno dung lam chan

String RxBuff = "";

// Khai bao bo dem nhan du lieu


// Tat ca du lieu nhan ve tu
module sim deu duoc luu
trong day

int Index_Lamp_On = -1;


int Index_Lamp_Off = -1;

// vi tri cua chuoi "LAMP_ON"


// vi tri cua chuoi "LAMP_OFF"

void Gsm_Power_On();
void Gsm_Init();
Sim 900A
void Gsm_MakeCall(String phone);
void Gsm_MakeSMS(String phone,String content);

void setup() {
Serial.begin(9600);
digitalWrite(RELAY, LOW);
pinMode(RELAY, OUTPUT);
digitalWrite(PWR_KEY, LOW);
Sim 900A
pinMode(PWR_KEY, OUTPUT);
delay(1000);
Gsm_Power_On();
delay(10000);
Gsm_Init();
Gsm_MakeCall(myphone);
Gsm_MakeSMS(myphone,"I'm a test");

// Bat module Sim 900A


// Cau hinh Module
// Ham goi dien
// Ham nhan tin

// Cau hinh UART de giao tiep module Sim 900A


// Khai bao chan

de dieu khien dong cat RELAY

// Khai bao chan PWR_KEY de dieu khien bat bat module

// Bat Module Sim 900A


// Cau hinh module Sim 900A
// Test cuoc goi
// Test tin nhan

}
void loop() {
delay(1000);
Index_Lamp_On = RxBuff.indexOf("LAMP_ON");
trong bo dem nhan RxBuff
if(Index_Lamp_On >= 0)
"LAMP_ON" trong RxBuff
{
Index_Lamp_On = -1;
RxBuff = "";
dem
digitalWrite(RELAY, HIGH);
bat den // Bat bong den
}

// tre 1s
// Tim vi tri cua chuoi "LAMP_ON"
// Neu tim thay

//
// Xoa bo
// Dong Relay de

-1-

new 1

Tuesday, December 20, 2016 15:27

else
{
//
Neu khong tim thay "LAMP_ON" thi tiep tuc tim "LAMP_OFF"
Index_Lamp_Off = RxBuff.indexOf("LAMP_OFF");
// Tim vi tri cua chuoi "LAMP_OFF"
trong bo dem nhan RxBuff
if(Index_Lamp_Off >= 0)
// Neu tim thay
"LAMP_OFF" trong RxBuff
{
Index_Lamp_Off = -1;
//
RxBuff = "";
// Xoa bo
dem
digitalWrite(RELAY, LOW);
// Cat Relay de
tat den
}
}
}
void serialEvent() {
lieu
while (Serial.available()) {
// get the new byte:
char inChar = (char)Serial.read();
RxBuff += inChar;
RxBuff (ta se xu ly RxBuff trong vong loop())
if(RxBuff.length()>= 128)
dem di
{
RxBuff = "";
}
}
}
void Gsm_Power_On()
{
digitalWrite(PWR_KEY, HIGH);
delay(1500);
digitalWrite(PWR_KEY, LOW);
delay(100);
designed sim900A de hieu ro hon
}
void Gsm_Init()
{
Serial.println("ATE0");
delay(2000);
Serial.println("AT+IPR=9600");
delay(2000);
Serial.println("AT+CMGF=1");
delay(2000);
Serial.println("AT+CLIP=1");
delay(2000);
Serial.println("AT+CNMI=2,2");
delay(2000);
}

// Chuong trinh ngat nhan du


// Doi den khi co du lieu nhan ve
// Doc mot byte du lieu vua nhan ve
// Ghi byte do vao bo dem nhan
// Neu bo dem qua dai thi xoa bo

// Du chan PWR_KEY len cao it nhat 1s


// o day ta de 1,5s
// Du chan PWR_KEY xuong thap
// cac ban xem trong Hardware

// Tat che do phan hoi (Echo mode)


// Dat toc do truyen nhan du lieu 9600 bps
// Chon che do TEXT Mode
// Hien thi thong tin nguoi goi den
// Hien thi truc tiep noi dung tin nhan

void Gsm_MakeCall(String phone)


{
-2-

new 1

Serial.println("ATD" + phone + ";");


delay(10000);
Serial.println("ATH");
delay(2000);

Tuesday, December 20, 2016 15:27

// Goi dien
// Sau 10s
// Ngat cuoc goi

}
void Gsm_MakeSMS(String phone,String content)
{
Serial.println("AT+CMGS=\"" + phone + "\"");
delay(3000);
ve
Serial.print(content);
Serial.print((char)26);
ket thuc noi dung tin nhan va gui tin di
delay(5000);
}

// Lenh gui tin nhan


// Cho ky tu '>' phan hoi
// Gui noi dung
// Gui Ctrl+Z hay 26 de
// delay 5s

-3-

Cac n bin dich


ri nap chng trn
h xu ng
Chu y: Do Arduino Uno R3 ch c 1 cng UART , ma lai co hai chc nng
- Nap chng trn
h xu ng Chip
- Giao ti p Module Sim900A
V th trong qu trnh nap ban c n t t Module Sim900A i (trn module co mt nt
n, ban n gi khoang 2 s r i nha ra)
Th y en trn module khng nhay na th ban mi nap chng trn
h xu ng
Trong chng trn
h: co lnh test goi in va gi tin nh n ngay khi b t u chay.
Da vo iu ny ban l y s trn ca Sim va th c hin i u khi n bt t t bong en
qua in thoai
Cu phap "LAMP_ON" bt en
LAMP_OFF" t t en
Va y la k t qua

Chuc cac ban thanh cng!

http://smart-techvn.com/bai-viet-ki-thuat/huong-dan-su-dung-cac-module/9216-huongdan-lap-trinh-module-sim900a-va-arduino.html

You might also like