[HD] Test Module SIM với tập lệnh AT để gọi điện/nhắn tin

Nội dung bài viết sẽ giúp cho các bạn sử dụng module họ SIM (SIM900, SIM800) với tập lệnh AT (vẫn sử dụng  được chức năng GSM với các module SIM có tích hợp GPS như SIM908, 808)

Thiết bị cần có:

  • Module SIM: SIM900, 900A, 908, 800, 800A, 800L, 800C, 808…
  • Nguồn: 3.6-4.5V, dòng 2A (nếu nguồn ra điện áp không nằm trong khoảng này cần có mạch hạ áp như LM2596, MIC29302…)
  • Mạch chuyển đổi USB sang Serial (UART) như: CH340, CP2102…
  • Phần mềm giao tiếp Serial trên máy tính (Terminal) như: Hercules

Thực hiện:

Bước 1: Gắn nguồn cho thiết bị, mở thiết bị qua chân PWRON (nếu có), led STATUS sẽ sáng lên, led NETLIGHT chớp nhanh cho tới khi hoạt động ổn định sẽ chớp chậm lại

Bước 2: Nối các chân giao tiếp của module SIM vào mạch chuyển đổi theo dạng chéo (nhớ nối chung MASS)

TXSIM -> RX (mạch usb-serial)

RXSIM -> TX (mạch usb-serial)

Bước 3: Gửi lệnh AT, sau các lệnh AT, nếu không có lỗi xảy ra (báo FAIL nếu có lỗi) thường sẽ có nội dung trả về, nếu không có nội dung sẽ gửi về OK, các lệnh AT phổ biến và ý nghĩa như sau:

Các lệnh chung

AT : Kiểm tra module có hoạt động không

  • Trả về: OK nếu hoạt động bình thường, báo lỗi hoặc không trả về nếu có lỗi xảy ra

ATEx : Bật (x=1) hoặc tắt (x=0) chế độ phản hồi lệnh vừa gửi (nên tắt đi)

AT+CPIN? : Kiểm tra Simcard

  • Trả về: +CPIN: READY OK (nếu tìm thấy simcard)

AT+CSQ : Kiểm tra chất lượng sóng

  • Trả về: +CSQ: xx,0 OK (xx là chất lượng sóng, tối đa là 31)

AT+COPS? : Kiểm tra tên nhà mạng

  • Trả về: +COPS: 0,0,”Viettel Mobile” OK (nhận dạng được nhà mạng là Viettel Mobile)
  • Trả về: +COPS: 0 (không thấy nhà mạng)

Các lệnh gọi điện

ATD0123456789; : Gọi điện cho số điện thoại 0123456789

ATA : Chấp nhận cuộc gọi đến

ATH : Hủy cuộc gọi

AT+CUSD=1 : Chuyển chế độ USD để tra số dư tài khoản

ATD*101#; : Kiểm tra tài khoản

  • Trả về: +CUSD: 0, “Tai khoan goc cua quy khach la ….

Các lệnh nhắn tin

AT+CMGF=x : Cấu hình tin nhắn (x=0: DPU, x=1:dạng ký tự)

AT+CNMI=2,x,0,0 : Chọn x=1 (chỉ báo vị trí lưu tin nhắn) hoặc x=2 (hiển thị ra ngay nội dung tin nhắn)

  • Trả về: +CMTI: “SM”,3 (x=1)
  • Trả về: +CMT: “+84938380171″,””,”17/07/30,14:48:09+28″ noidungtinnhan

AT+CMGR=x : Đọc tin nhắn tại vị trí lưu x

  • Trả về: nội dung tin nhắn

AT+CMGD=x : Xóa tin nhắn được lưu ở vị trí x

AT+CMGS=”sodienthoai” : Gửi tin nhắn cho sodienthoai, sau dòng lệnh này sẽ nhận được ‘>’ (mã HEX là 0x3C), bây giờ có thể nhập vào nội dung tin nhắn, nhập tiếp 0x1A để gửi tin nhắn đi hoặc 0x1B để hủy gửi tin nhắn

Trả lời

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *