Khác biệt giữa các bản “Shield SIM900(A)”

Từ ChipFC Wiki
Bước tới: chuyển hướng, tìm kiếm
(Chương trình gọi điện và nhắn tin đơn giản)
 
(Không hiển thị 32 phiên bản của 2 người dùng ở giữa)
Dòng 1: Dòng 1:
 
[[Category:Arduino Shield]]
 
[[Category:Arduino Shield]]
{{Đang viết}}
+
 
 +
[[Hình:Shield SIM900A.jpg|400px|thumb|alt=Shield SIM900A|right|Shield SIM900A]]
  
 
= Thông tin chung =
 
= Thông tin chung =
 +
Xem [http://www.chipfc.com/shield-sim900a SIM900A Shield] trên trang chủ
 +
 
== Giới thiệu ==
 
== Giới thiệu ==
  
* Module SIM900A của hãng SIMCom, được thiết kế dưới dạng shield cho ChipiUno (hoặc các mạch Arduino khác), có thể sử dụng với các hệ thống mạch khác qua kết nối 6 chân.
+
* SIM900(A) là module GSM/GPRS của hãng SIMCom được thiết kế dưới dạng module chipset, nhỏ gọn, giá thành thấp, hoạt động ổn định và phù hợp cho nhiều mục đích sử dụng. Module SIM900(A) có các tính năng cơ bản của một chiếc điện thoại như gọi điện thoại, nhắn tin, truy cập GPRS,...
* SIM900A là module GSM/GPRS Dual-band 900/1800MHz nhỏ gọn, giá thành thấp, hoạt động ổn định và phù hợp cho nhiều mục đích sử dụng. Tuy nhiên, SIM900A cũng có nhược điểm là dòng tiêu thụ đỉnh có thể lên tới 3A và khó hiện thực phần mạch do được đóng gói dạng LCC - Leadless Chip Carrier, không sử dụng header cắm như các module khác (vd SIM548C...). Ngoài ra, do SIM900A hoạt động với mức điện áp tín hiệu là 2.8V nên khi giao tiếp với các hệ thống ngoài chạy 3.3V/5V sẽ cần bộ chuyển áp.
+
* Shield SIM900(A) của ChipFC thiết kế dựa trên chipset SIM900(A), tương thích hoàn toàn với '''''Arduino'''''. Người dùng có thể cắm trực tiếp lên các bo Arduino (như Arduino UNO, ChipiUNO, ChipiPRO, ChipiLEO...) hoặc nối dây ra để sử dụng với các bo vi điều khiển khác.
* Nắm bắt những điều đó, ChipFC đã đưa ra sản phẩm module shield SIM900A tích hợp các linh kiện, kết nối cần thiết, sẵn sàng cho người sử dụng để nghiên cứu, học tập hoặc demo nhanh chóng, tiện lợi các dự án có ứng dụng GSM/GPRS. Việc thiết kế thành shield Arduino cũng xuất phát từ mục đích này, bởi người sử dụng không chỉ có trong tay một sản phẩm phần cứng ổn định mà còn có thể tham khảo rất nhiều các thư viện lập trình, các luồng trao đổi về SIM900, về GSM/GPRS trên các diễn đàn Arduino.
+
* Shield SIM900(A) nhỏ gọn, được tích hợp các linh kiện, kết nối cần thiết, sẵn sàng cho người sử dụng để nghiên cứu, học tập hoặc làm demo nhanh chóng, tiện lợi các dự án có ứng dụng GSM/GPRS
  
 
== Thông số ==
 
== Thông số ==
  
* Nguồn cấp: 5-9VDC, 2-3A (đã test hoạt động tốt với adapter 5V/2A)
+
* Băng thông:
* Nhiệt độ hoạt động: -40oC đến +85oC
+
** SIM900A: Dual-band GSM/GPRS 900/1800MHz
 +
** SIM900: Quad-band GSM/GPRS 850/900/1800/1900MHz
 +
* Giao diện giao tiếp UART (hỗ trợ cả 3.3V và 5V)
 +
* Điều khiển thông qua tập lệnh AT chuẩn (GSM 07.07 ,07.05) và các lệnh nâng cấp của SIMCOM
 +
* Nguồn cấp: các nguồn có thể dùng
 +
** Adapter 5-12VDC, 2-3A. Jack cắm tròn 3mm.
 +
** Pin Lipo 1-cell (3.7V).
 +
* Nhiệt độ hoạt động: -40°C đến +85°C
 +
* Jack cắm Phone & Mic chuẩn 3.5mm
 +
* Có nút reset bo Arduino
 +
* Kích thước: 63.5mm x 43.2mm x 12.0mm
 +
 
 +
== Kết nối tín hiệu điều khiển ==
 +
 
 +
=== Chuẩn Shield của Arduino ===
 +
 
 +
[[Hình:shield_sim900_pinout.png]]
  
== Các linh kiện tích hợp sẵn ==
+
{| class="wikitable sortable"
 +
|-
 +
! Shield SIM900(A) !! Arduino !! Mô tả
 +
|-
 +
| SIM900_TXD || D2 || Chân tính hiệu TXD của Shield SIM900(A) được nối mặc định với chân D2 của Arduino.
 +
''Đây là kết nối mặc định của sản phẩm khi xuất xưởng, người dùng có thể tùy chọn lại bằng jumper''
 +
|-
 +
| SIM900_RXD || D3 || Chân tính hiệu RXD của Shield SIM900(A) được nối mặc định với chân D3 của Arduino.
 +
''Đây là kết nối mặc định của sản phẩm khi xuất xưởng, người dùng có thể tùy chọn lại bằng jumper''
 +
|-
 +
| SIM900_PwrKey || D9 || Tín hiệu bật nguồn cho SIM900(A).
 +
Tích cực mức cao (HIGH).
 +
Khi cần khởi động SIM900(A) người dùng cần kéo chân này lên mức cao trong khoảng >1 giây.
 +
|}
  
* Đầu cắm nguồn adapter 2.5mm hoặc nguồn pin (khuyến cáo sử dụng pin Lipo 1 cell, điện áp danh định 3.7V)
+
Ngoài ra các chân nguồn (5V, GND) và các chân tín hiệu thông dụng khác (RESET) cũng được kết nối sẵn giữa Shield SIM900(A) và Arduino.
* Khe cắm sim loại push-push FMS006-2600-0
 
* Antenna loại GSM Rubber 50mm connector SMA-RAF-15, IPX SMD PCB
 
* Mic & Speaker dùng jack 3.5mm stereo
 
* Nút power key cho SIM900, led tín hiệu cho Net Light Status
 
* Nút reset cho Arduino
 
  
== Kết nối tín hiệu điều khiển ==
+
=== Rào 6 chân thêm ===
  
'''Hàng rào 6 chân:'''
+
[[Hình:shield_sim900_header6_pinout.png]]
  
* pin 1: Status/output - theo dõi nhanh trạng thái hoạt động của module SIM900
+
{| class="wikitable sortable"
* pin 2: Power/input - bật/tắt module SIM900 (tín hiệu PowerKey)
+
|-
* pin 3: RxD/input - chân UART (tương thích 3.3V/5V)
+
! Thứ tự chân !! Tên gọi !! Loại !! Mô tả
* pin 4: TxD/output - chân UART (tương thích 3.3V/5V)
+
|-
* pin 5: GND/power
+
| 1 || Status || Output || Theo dõi nhanh trạng thái hoạt động của module SIM900
* pin 6: VCC/power - chỉ dùng để so sánh áp cho module chuyển áp tín hiệu (không có tác dụng cấp nguồn cho SIM900)
+
|-
 +
| 2 || Power Key || Input || Chân bật/tắt module SIM900 (tín hiệu PowerKey), tích cực mức cao.
 +
|-
 +
| 3 || RXD || Input|| Chân nhận trong điều khiển UART, tương thích 3.3V/5V tùy thuộc vào VCC
 +
|-
 +
| 4 || TXD || Output || Chân truyền trong điều khiển UART, tương thích 3.3V/5V tùy thuộc vào VCC
 +
|-
 +
| 5 || GND || Power || Điện áp đất 0V
 +
|-
 +
| 6 || VCC || Power || Điện áp so sánh 3.3V/5V. Chỉ dùng để so sánh áp cho mô-đun chuyển áp tín hiệu, không có tác dụng cấp nguồn cho SIM900.
 +
|}
  
 
= Sử dụng cơ bản =
 
= Sử dụng cơ bản =
Dòng 39: Dòng 76:
  
 
'''Thực hiện tuần tự các bước sau:'''
 
'''Thực hiện tuần tự các bước sau:'''
* '''Cấp nguồn''': sử dụng Adapter (khuyên dùng loại 5V/2A). Chú ý:
+
* '''Cấp nguồn''':  
 +
** Có thể sử dụng Adapter chuyển AC-to-DC để cấp nguồn (khuyên dùng loại 5V/2A)
 
** Phần nguồn rất quan trọng, nếu nguồn không đúng sẽ làm ảnh hưởng đến hoạt động của SIM900(A).
 
** Phần nguồn rất quan trọng, nếu nguồn không đúng sẽ làm ảnh hưởng đến hoạt động của SIM900(A).
** Chỗ cái jack tròn đầu ra của Adapter thì ở giữa phải là cực dương, phía ngoài là cực âm.  
+
** Jack đầu ra của Adapter thì ở giữa phải là cực dương, phía ngoài là cực âm.  
** Khi được cấp nguồn, đèn led màu đỏ 4V1 gần Antenna sẽ sáng.
+
** Khi được cấp nguồn, đèn led màu đỏ Power sẽ sáng.
*'''Nhấn nút khởi động''': nhấn giữ nút PowerKey khoảng 2 giây. Khi thấy ked Status chớp tắt tức là module đã được khởi động xong và đang hoạt động.
+
*'''Nhấn nút khởi động''': nhấn giữ nút PowerKey khoảng >1 giây. Khi thấy đèn led NetLight màu xanh lam chớp tắt liên tục tức là module đã được khởi động xong và đang hoạt động.
 +
 
 +
 
 +
'''Chú ý''':
 +
* Khi cần tắt SIM900(A) cũng nhấn giữ nút PowerKey đến khi đèn Status và NetLight tắt hẳn (khoảng 2 giây). Sau đó mới ngắt điện.
 +
* SIM900(A) được điều khiển thông qua các lệnh AT (tập lệnh AT - AT Command Set). Để SIM900(A) thực hiện các tác vụ như: gọi điện thoại, gửi tin nhắn, ... ta cần truyền lệnh điều khiển nó. Hãy xem tiếp phần sau.
 +
 
 +
== Điều khiển thông qua máy tính ==
 +
 
 +
Trong phần này chúng ta sẽ dùng máy tính kết nối với SIM900(A) để truyền lệnh điều khiển. Bạn cần thực hiện tuần tự theo các bước sau:
 +
 
 +
=== Kết nối ===
 +
 
 +
* Dùng mô-đun [http://chipfc.com/usb-to-serial-ftdi USB-to-Serial] làm trung gian giữa Shield SIM900(A) và máy tính:
 +
:''Kết nối USB-to-Serial với SIM900(A) theo thứ tự trong bảng sau:''
 +
 
 +
{| class="wikitable"
 +
|-
 +
! USB to Serial - FTDI !! Shield SIM900(A)
 +
|-
 +
| + || VCC
 +
|-
 +
| - || GND
 +
|-
 +
| Rx || TXD
 +
|-
 +
| Tx || RXD
 +
|}
 +
 
 +
* Kết nối USB-to-Serial với máy tính dùng cáp USB. ''Xem thêm [[USB to Serial - FTDI]]''
 +
* Lắp SIM Card và Anten cho Shield SIM900(A)
 +
* Cấp nguồn và nhấn giữ nút PowerKey để khởi động
 +
 
 +
[[Hình:Kết nối Shield SIM900 với FTDI.jpg|600px]]
 +
 
 +
=== Phần mềm truyền lệnh ===
 +
 
 +
* Phần mềm trên máy tính: Trên máy tính cần có một phần mềm để truyền lệnh điều khiển, bạn có thể sử dụng Terminal, có thể tải về [http://cloud.chipfc.com/File/Download?f=b3gn4qj2oyg tại đây]. Terminal là phần mềm cho hệ điều hành Windows, chạy trực tiếp không cần cài đặt. Sau khi tải về bạn chỉ cần giải nén và nhấp đúp vào tập tin .exe để chạy chương trình.
 +
* Các thao tác sử dụng cơ bản
 +
 
 +
[[Hình:Hướng dẫn SIM900 Terminal.jpg]]
 +
 
 +
 
 +
 
 +
 
 +
Các mũi tên màu đỏ trên hình được giải thích trong bảng sau:
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Số thứ tự !! Tên gọi !! Giải thích
 +
|-
 +
| 1 || Baudrate || Tốc độ truyền dữ liệu. Bạn chọn 115200.
 +
|-
 +
| 2 || ReScan || Quét tìm tất cả các cổng COM có trong máy tính và liệt kê vào danh sách COM Port. Trường hợp khi nhấn nút ReScan mà không thấy cổng COM nào xuất hiện trong danh sách COM Port thì hãy xem lại việc kết nối mô-đun USB to Serial - FTDI với máy tính và việc cài đặt driver.
 +
|-
 +
| 3 || COM Port || Danh sách COM Port
 +
|-
 +
| 4 || Connect || Nhấn nút này để kết nối với cổng COM đã chọn trong danh sách COM Port
 +
|-
 +
| 5 || +CR || Tự động thêm ký tự kết thúc (0x0D) vào sau câu lệnh khi được gửi bằng nút Send. Khi sử dụng SIM900(A) bạn cần chọn ô này.
 +
|-
 +
| 6 || || Ô các ký tự cần gửi qua cổng COM đã kết nối.
 +
|-
 +
| 7 || Send || Nhấn nút này để gửi các ký tự đã nhập trong ô 6 xuống SIM900(A) thông qua cổng COM đã kết nối.
 +
|-
 +
| 8 || Receive || Khung hiển thị các ký tự mà SIM900(A) trả về thông qua cổng COM đã kết nối.
 +
|}
 +
 
 +
=== Các lệnh cơ bản ===
 +
 
 +
* '''AT'''
 +
Lệnh AT là lệnh kiểm tra. Khi gửi lệnh AT mà SIM900(A) trả lời OK tức SIM900(A) đang hoạt động bình thường.
 +
:Máy tính hỏi:
 +
AT
 +
:SIM900(A) trả lời:
 +
AT
 +
OK
 +
 
 +
* '''ATD'''
 +
Lệnh ATD dùng để thực hiện cuộc gọi. Cú pháp '''ATD[số điện thoại];'''. Chú ý là có ký tự dấu chấm phẩy ở cuối. Khi SIM900(A) trả lời OK thì cuộc gọi thực hiện thành công, đang chờ đầu dây bên kia trả lời. Nếu không hãy kiểm tra lại việc lắp SIM Card, Anten...
 +
:Máy tính hỏi:
 +
ATD0913005013;
 +
:SIM900(A) trả lời:
 +
ATD0913005013;
 +
OK
 +
 
 +
* '''ATH'''
 +
Lệnh ATH dùng để ngắt/dừng cuộc gọi đang thực hiện.
 +
:Máy tính hỏi:
 +
ATH
 +
:SIM900(A) trả lời:
 +
ATH
 +
OK
 +
 
 +
* '''AT+CMGS'''
 +
Lệnh AT+CMGS dùng để gửi tin nhắn ký tự. Cú pháp '''AT+CMGS="[số điện thoại]"'''. Sau khi SIM900(A) nhận được lệnh này sẽ trả về ký tự ">". Tiếp đó bạn gửi tiếp nội dung tin nhắn và kết thúc phần tin nhắn bằng 0x1A và 0x00.
 +
 
 +
:Máy tính hỏi:
 +
AT+CMGS="0913005013"
 +
:SIM900(A) trả lời:
 +
>
 +
:Máy tính hỏi:
 +
<nowiki>Hello$1A$00</nowiki>
 +
:SIM900(A) trả lời:
 +
Hello
 +
+CMGS: <nowiki><mr></nowiki>
 +
OK
 +
:Trong đó <nowiki><mr></nowiki> (Message Reference) là một số.
 +
 
 +
= Sử dụng với Arduino =
 +
== Kết nối ==
 +
* Kết nối bo Arduino với Shield SIM900(A) thật đơn giản bằng cách cắm chồng lên nhau như hình sau:
 +
 
 +
[[Hình:Kết nối Arduino với Shield SIM900(A).jpg|600px]]
 +
 
 +
* Kết nối bo Arduino với máy tính bằng cáp USB.
 +
* Cấp nguồn riêng cho Shield SIM900(A) bằng Adapter như ở các phần trên.
 +
* Chắc chắn rằng bạn đã lắp SIM Card và Anten cho Shield SIM900(A) trước khi khởi động bằng cách nhấn nút PowerKey trên Shield SIM900(A).
 +
 
 +
== Tải thư viện ==
 +
* Cộng đồng nguồn mở đã phát triển thư viện GSM/GPRS/GPS cho Arduino giúp bạn tiết kiệm thời gian và dễ dàng tiếp cận với các mô-đun GSM/GPRS/GPS sử dụng tập lệnh AT.
 +
* Xem link tải về ở phần '''Tham khảo thêm''' bên dưới.
 +
* Xem thêm [[Thư viện Arduino]] nếu bạn chưa biết cách sử dụng một thư viện Arduino.
 +
 
 +
== Lập trình điều khiển ==
 +
Sau khi tải thư viện GSM/GPRS/GMS về và giải nén vào thư mục Libraries của thư mục chứa Arduino IDE, bạn mở chương trình Arduino IDE lên để viết chương trình.
 +
 
 +
==== Chương trình gọi điện và nhắn tin đơn giản ====
 +
 
 +
<syntaxhighlight lang="cpp">
 +
#include "SIM900.h"
 +
#include <SoftwareSerial.h>
 +
#include "call.h"
 +
#include "sms.h"
 +
 
 +
CallGSM call;            //Tạo mới một đối tượng CallGSM để thực hiện cuộc gọi
 +
SMSGSM sms;              //Tạo mới một đối tượng SMSGSM để thực hiện nhắn tin
 +
boolean started = false; //Cờ kiểm tra
 +
 
 +
void setup()
 +
{
 +
  Serial.begin(9600);    //Khởi động Serial phục vụ việc debug
 +
  Serial.println("GSM Shield testing.");
  
 +
  if (gsm.begin(2400)){  //Khởi động việc kết nối SIM900(A)
 +
    Serial.println("status=READY");
 +
    started = true;      //Kết mối với SIM900(A) thành công
 +
  }
 +
  else
 +
  {
 +
    Serial.println("status=IDLE");
 +
  }
 +
};
  
'''Chú ý''': khi cần tắt SIM900(A) cũng nhấn giữ nút PowerKey đến khi đèn Status tắt hẳn. Sau đó mới ngắt điện.
+
void loop()
 +
{
 +
  if(started){
 +
    call.Call("0913005013");        //Thực hiện cuộc gọi đến số 0913005013
 +
    Serial.println("Calling");
 +
   
 +
    delay(10000);                  //Chờ 10 giây
 +
   
 +
    call.HangUp();                  //Gác máy
 +
    Serial.println("HangUp");
 +
   
 +
    delay(2000);                    //Chờ 2 giây
 +
   
 +
    sms.SendSMS("0913005013", "Hello SIM900");//Gửi tin nhắn đến số 0913005013
 +
    Serial.println("Send sms");
 +
   
 +
    delay(2000);                    //Chờ 2 giây
 +
   
 +
    Serial.println("Done");
 +
    started = false;                //Để không thực hiện tiếp
 +
  }
 +
  delay(1000);
 +
};
 +
</syntaxhighlight>
  
== Để điều khiển thông qua máy tính ==
+
==== Kết quả ====
 +
Kết quả quan sát qua Serial Monitor của Arduino IDE
  
'''Thực hiện các bước sau:'''
 
* Dùng module USB-to-Serial làm trung gian.
 
** Kết nối VCC,GND,TxD,RxD của bo SIM900A với VCC,GND,Rx,Tx của bo USB-to-Serial. Nhớ là trong giao tiếp UART thì nối chéo tín hiệu, tức là Tx bo này nối với Rx bo kia và ngược lại. Dùng cáp USB để nối bo USB-to-Serial mới máy tính. Driver có thể download tại đây
 
* Trên máy tính cần có một phần mềm để truyền lệnh điều khiển, bạn có thể sử dụng Terminal. Sau khi tải về, chạy trực tiếp không cần cài đặt. Mở chương trình lên, nhấn nút ReScan -> chọn cổng COM Port -> Nhấn nút Connect. Chú ý là sau khi bạn đã kết nối thành khi bạn kết nối
 
* Gắn sim vào khe sim của module SIM900A
 
* Cấp nguồn như trên
 
* Nhấn giữ nút PowerKey để khởi động
 
  
 +
[[Hình:Kết quả SIM900A Arduino.jpg]]
  
= Sử dụng nâng cao =
+
= Tham khảo thêm =
 +
* [http://cloud.chipfc.com/File/Download?f=upaup4dznqh Thư viện code mẫu V3.07.1]
 +
* [http://cloud.chipfc.com/File/Download?f=i4t1ht0iptw Sơ đồ mạch Shield SIM900(A)]
 +
* [http://cloud.chipfc.com/File/Download?f=fdsokmw3z3m Tham khảo tập lệnh AT]
  
(đang thực hiện)
+
= Chú thích =
 +
<references />

Bản hiện tại lúc 11:20, ngày 2 tháng 3 năm 2018

Shield SIM900A
Shield SIM900A

Thông tin chung

Xem SIM900A Shield trên trang chủ

Giới thiệu

  • SIM900(A) là module GSM/GPRS của hãng SIMCom được thiết kế dưới dạng module chipset, nhỏ gọn, giá thành thấp, hoạt động ổn định và phù hợp cho nhiều mục đích sử dụng. Module SIM900(A) có các tính năng cơ bản của một chiếc điện thoại như gọi điện thoại, nhắn tin, truy cập GPRS,...
  • Shield SIM900(A) của ChipFC thiết kế dựa trên chipset SIM900(A), tương thích hoàn toàn với Arduino. Người dùng có thể cắm trực tiếp lên các bo Arduino (như Arduino UNO, ChipiUNO, ChipiPRO, ChipiLEO...) hoặc nối dây ra để sử dụng với các bo vi điều khiển khác.
  • Shield SIM900(A) nhỏ gọn, được tích hợp các linh kiện, kết nối cần thiết, sẵn sàng cho người sử dụng để nghiên cứu, học tập hoặc làm demo nhanh chóng, tiện lợi các dự án có ứng dụng GSM/GPRS

Thông số

  • Băng thông:
    • SIM900A: Dual-band GSM/GPRS 900/1800MHz
    • SIM900: Quad-band GSM/GPRS 850/900/1800/1900MHz
  • Giao diện giao tiếp UART (hỗ trợ cả 3.3V và 5V)
  • Điều khiển thông qua tập lệnh AT chuẩn (GSM 07.07 ,07.05) và các lệnh nâng cấp của SIMCOM
  • Nguồn cấp: các nguồn có thể dùng
    • Adapter 5-12VDC, 2-3A. Jack cắm tròn 3mm.
    • Pin Lipo 1-cell (3.7V).
  • Nhiệt độ hoạt động: -40°C đến +85°C
  • Jack cắm Phone & Mic chuẩn 3.5mm
  • Có nút reset bo Arduino
  • Kích thước: 63.5mm x 43.2mm x 12.0mm

Kết nối tín hiệu điều khiển

Chuẩn Shield của Arduino

Shield sim900 pinout.png

Shield SIM900(A) Arduino Mô tả
SIM900_TXD D2 Chân tính hiệu TXD của Shield SIM900(A) được nối mặc định với chân D2 của Arduino.

Đây là kết nối mặc định của sản phẩm khi xuất xưởng, người dùng có thể tùy chọn lại bằng jumper

SIM900_RXD D3 Chân tính hiệu RXD của Shield SIM900(A) được nối mặc định với chân D3 của Arduino.

Đây là kết nối mặc định của sản phẩm khi xuất xưởng, người dùng có thể tùy chọn lại bằng jumper

SIM900_PwrKey D9 Tín hiệu bật nguồn cho SIM900(A).

Tích cực mức cao (HIGH). Khi cần khởi động SIM900(A) người dùng cần kéo chân này lên mức cao trong khoảng >1 giây.

Ngoài ra các chân nguồn (5V, GND) và các chân tín hiệu thông dụng khác (RESET) cũng được kết nối sẵn giữa Shield SIM900(A) và Arduino.

Rào 6 chân thêm

Shield sim900 header6 pinout.png

Thứ tự chân Tên gọi Loại Mô tả
1 Status Output Theo dõi nhanh trạng thái hoạt động của module SIM900
2 Power Key Input Chân bật/tắt module SIM900 (tín hiệu PowerKey), tích cực mức cao.
3 RXD Input Chân nhận trong điều khiển UART, tương thích 3.3V/5V tùy thuộc vào VCC
4 TXD Output Chân truyền trong điều khiển UART, tương thích 3.3V/5V tùy thuộc vào VCC
5 GND Power Điện áp đất 0V
6 VCC Power Điện áp so sánh 3.3V/5V. Chỉ dùng để so sánh áp cho mô-đun chuyển áp tín hiệu, không có tác dụng cấp nguồn cho SIM900.

Sử dụng cơ bản

Khởi động

Thực hiện tuần tự các bước sau:

  • Cấp nguồn:
    • Có thể sử dụng Adapter chuyển AC-to-DC để cấp nguồn (khuyên dùng loại 5V/2A)
    • Phần nguồn rất quan trọng, nếu nguồn không đúng sẽ làm ảnh hưởng đến hoạt động của SIM900(A).
    • Jack đầu ra của Adapter thì ở giữa phải là cực dương, phía ngoài là cực âm.
    • Khi được cấp nguồn, đèn led màu đỏ Power sẽ sáng.
  • Nhấn nút khởi động: nhấn giữ nút PowerKey khoảng >1 giây. Khi thấy đèn led NetLight màu xanh lam chớp tắt liên tục tức là module đã được khởi động xong và đang hoạt động.


Chú ý:

  • Khi cần tắt SIM900(A) cũng nhấn giữ nút PowerKey đến khi đèn Status và NetLight tắt hẳn (khoảng 2 giây). Sau đó mới ngắt điện.
  • SIM900(A) được điều khiển thông qua các lệnh AT (tập lệnh AT - AT Command Set). Để SIM900(A) thực hiện các tác vụ như: gọi điện thoại, gửi tin nhắn, ... ta cần truyền lệnh điều khiển nó. Hãy xem tiếp phần sau.

Điều khiển thông qua máy tính

Trong phần này chúng ta sẽ dùng máy tính kết nối với SIM900(A) để truyền lệnh điều khiển. Bạn cần thực hiện tuần tự theo các bước sau:

Kết nối

  • Dùng mô-đun USB-to-Serial làm trung gian giữa Shield SIM900(A) và máy tính:
Kết nối USB-to-Serial với SIM900(A) theo thứ tự trong bảng sau:
USB to Serial - FTDI Shield SIM900(A)
+ VCC
- GND
Rx TXD
Tx RXD
  • Kết nối USB-to-Serial với máy tính dùng cáp USB. Xem thêm USB to Serial - FTDI
  • Lắp SIM Card và Anten cho Shield SIM900(A)
  • Cấp nguồn và nhấn giữ nút PowerKey để khởi động
Hình thu nhỏ có lỗi: Không có tập tin

Phần mềm truyền lệnh

  • Phần mềm trên máy tính: Trên máy tính cần có một phần mềm để truyền lệnh điều khiển, bạn có thể sử dụng Terminal, có thể tải về tại đây. Terminal là phần mềm cho hệ điều hành Windows, chạy trực tiếp không cần cài đặt. Sau khi tải về bạn chỉ cần giải nén và nhấp đúp vào tập tin .exe để chạy chương trình.
  • Các thao tác sử dụng cơ bản

Hướng dẫn SIM900 Terminal.jpg



Các mũi tên màu đỏ trên hình được giải thích trong bảng sau:

Số thứ tự Tên gọi Giải thích
1 Baudrate Tốc độ truyền dữ liệu. Bạn chọn 115200.
2 ReScan Quét tìm tất cả các cổng COM có trong máy tính và liệt kê vào danh sách COM Port. Trường hợp khi nhấn nút ReScan mà không thấy cổng COM nào xuất hiện trong danh sách COM Port thì hãy xem lại việc kết nối mô-đun USB to Serial - FTDI với máy tính và việc cài đặt driver.
3 COM Port Danh sách COM Port
4 Connect Nhấn nút này để kết nối với cổng COM đã chọn trong danh sách COM Port
5 +CR Tự động thêm ký tự kết thúc (0x0D) vào sau câu lệnh khi được gửi bằng nút Send. Khi sử dụng SIM900(A) bạn cần chọn ô này.
6 Ô các ký tự cần gửi qua cổng COM đã kết nối.
7 Send Nhấn nút này để gửi các ký tự đã nhập trong ô 6 xuống SIM900(A) thông qua cổng COM đã kết nối.
8 Receive Khung hiển thị các ký tự mà SIM900(A) trả về thông qua cổng COM đã kết nối.

Các lệnh cơ bản

  • AT

Lệnh AT là lệnh kiểm tra. Khi gửi lệnh AT mà SIM900(A) trả lời OK tức SIM900(A) đang hoạt động bình thường.

Máy tính hỏi:
AT
SIM900(A) trả lời:
AT
OK
  • ATD

Lệnh ATD dùng để thực hiện cuộc gọi. Cú pháp ATD[số điện thoại];. Chú ý là có ký tự dấu chấm phẩy ở cuối. Khi SIM900(A) trả lời OK thì cuộc gọi thực hiện thành công, đang chờ đầu dây bên kia trả lời. Nếu không hãy kiểm tra lại việc lắp SIM Card, Anten...

Máy tính hỏi:
ATD0913005013;
SIM900(A) trả lời:
ATD0913005013;
OK
  • ATH

Lệnh ATH dùng để ngắt/dừng cuộc gọi đang thực hiện.

Máy tính hỏi:
ATH
SIM900(A) trả lời:
ATH
OK
  • AT+CMGS

Lệnh AT+CMGS dùng để gửi tin nhắn ký tự. Cú pháp AT+CMGS="[số điện thoại]". Sau khi SIM900(A) nhận được lệnh này sẽ trả về ký tự ">". Tiếp đó bạn gửi tiếp nội dung tin nhắn và kết thúc phần tin nhắn bằng 0x1A và 0x00.

Máy tính hỏi:
AT+CMGS="0913005013"
SIM900(A) trả lời:
>
Máy tính hỏi:
Hello$1A$00
SIM900(A) trả lời:
Hello
+CMGS: <mr>
OK
Trong đó <mr> (Message Reference) là một số.

Sử dụng với Arduino

Kết nối

  • Kết nối bo Arduino với Shield SIM900(A) thật đơn giản bằng cách cắm chồng lên nhau như hình sau:
Hình thu nhỏ có lỗi: Không có tập tin
  • Kết nối bo Arduino với máy tính bằng cáp USB.
  • Cấp nguồn riêng cho Shield SIM900(A) bằng Adapter như ở các phần trên.
  • Chắc chắn rằng bạn đã lắp SIM Card và Anten cho Shield SIM900(A) trước khi khởi động bằng cách nhấn nút PowerKey trên Shield SIM900(A).

Tải thư viện

  • Cộng đồng nguồn mở đã phát triển thư viện GSM/GPRS/GPS cho Arduino giúp bạn tiết kiệm thời gian và dễ dàng tiếp cận với các mô-đun GSM/GPRS/GPS sử dụng tập lệnh AT.
  • Xem link tải về ở phần Tham khảo thêm bên dưới.
  • Xem thêm Thư viện Arduino nếu bạn chưa biết cách sử dụng một thư viện Arduino.

Lập trình điều khiển

Sau khi tải thư viện GSM/GPRS/GMS về và giải nén vào thư mục Libraries của thư mục chứa Arduino IDE, bạn mở chương trình Arduino IDE lên để viết chương trình.

Chương trình gọi điện và nhắn tin đơn giản

#include "SIM900.h"
#include <SoftwareSerial.h>
#include "call.h"
#include "sms.h"

CallGSM call;            //Tạo mới một đối tượng CallGSM để thực hiện cuộc gọi
SMSGSM sms;              //Tạo mới một đối tượng SMSGSM để thực hiện nhắn tin
boolean started = false; //Cờ kiểm tra

void setup() 
{
  Serial.begin(9600);    //Khởi động Serial phục vụ việc debug
  Serial.println("GSM Shield testing.");

  if (gsm.begin(2400)){  //Khởi động việc kết nối SIM900(A)
    Serial.println("status=READY");
    started = true;      //Kết mối với SIM900(A) thành công
  }
  else 
  {
    Serial.println("status=IDLE");
  }
};

void loop() 
{
  if(started){
    call.Call("0913005013");        //Thực hiện cuộc gọi đến số 0913005013
    Serial.println("Calling");
    
    delay(10000);                   //Chờ 10 giây
    
    call.HangUp();                  //Gác máy
    Serial.println("HangUp");
    
    delay(2000);                    //Chờ 2 giây
    
    sms.SendSMS("0913005013", "Hello SIM900");//Gửi tin nhắn đến số 0913005013
    Serial.println("Send sms");
    
    delay(2000);                    //Chờ 2 giây
    
    Serial.println("Done");
    started = false;                //Để không thực hiện tiếp
  }
  delay(1000);
};

Kết quả

Kết quả quan sát qua Serial Monitor của Arduino IDE


Kết quả SIM900A Arduino.jpg

Tham khảo thêm

Chú thích