- 29a Bùi Xuân Phái, P.Tây Thạnh, Quận Tân Phú, TPHCM
- linhkienduchuy2018@gmail.com
- 0942954739
Giao miễn phí trong nội thành TPHCM đối với đơn hàng trên 1 triệu đồng
Tặng ngay 50.000đ cho đơn hàng trên 2 triệu đồng
Module SIM800C này được cải tiến so với phiên bản SIM800L, mạch hỗ trợ chuyển mức logic tự động giữa 5V/3V3 trên cùng board mạch. Điều đó rất tiện lợi khi người sử dụng không cần phải gắn thêm điện trở chia áp để chuyển mức cho tương thích như khi sử dụng với module SIM800L.
THÔNG SỐ KỸ THUẬT: Mô tả chức năng các chân.
+ Chân 5V: chân cấp nguồn cung cấp cho module (lưu ý: khi cấp nguồn pin lithium đến chân VBAT thì không cấp nguồn thêm ở chân 5V này)
+ Chân GND: chân cấp nguồn 0V cho module.
+ Chân V_TTL: chân chọn mức logic cho module, cấp 5V (khi logic là 5v) hoặc 3V3 (khi logic 3v3) tương ứng vào chân này.
+ Chân TXD: chân truyền dữ liệu UART-TTL từ module SIM800C.
+ Chân RXD: chân nhận dữ liệu UART-TTL gửi đến module SIM800C.
+ Chân SPKP và chân SPKN: chân đầu ra cung cấp âm thanh khi thoại, chân này cần qua bộ khuếch đại và loa để nghe được rõ hơn.
+ Chân MICP và chân MICN: chân đầu vào tín hiệu micro khi thoại.
+ Chân RI: chân đầu ra báo tín hiệu đổ chuông.
+ Chân VRTC và GND: chân cấp nguồn pin 3V cho bộ RTC của module SIM.
+ Chân PWR: khởi động module khi nối xuống GND.
+ Chân VBAT và GND: nguồn cấp từ pin Lithium 3.3V - 4.4V (lưu ý: không cấp nguồn cho VBAT khi đã cấp nguồn đến chân 5V)
SOFTWARE GIAO TIẾP MODULE SIM 800C VỚI USB TTL:
https://www.hw-group.com/software/hercules-setup-utility
TẬP LỆNH AT CƠ BẢN GIAO TIẾP VỚI MODULE SIM:
LỆNH KIỂM TRA MODULE SIM HOẠT ĐỘNG:
Lệnh: AT<CR><LF> (
MODULE SIM Trả lời: OK
Mô tả : Kiểm tra đáp ứng , nếu trả về OK thì Module hoạt động tốt
LỆNH KIỂM TRA TỐC ĐỘ BAUD GIAO TIẾP VỚI MODULE SIM:
Lệnh: AT+IPR=[baud rate]<CR><LF>
Trả lời: OK
Mô tả : cài đặt tốc độ giao tiếp dữ liệu với module SIM, chỉ cài được các tốc độ sau
Baud rate : 0 (auto), 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
CÁC LỆNH ĐIỀU KHIỂN CUỘC GỌI:
Mô tả : Hiển thị thông tin cuộc gọi đến
Mô tả : Lệnh thực hiện cuộc gọi, với XXXXX: là số điện thoại cần gọi
Mô tả : Lệnh thực hiện kết thúc cuộc gọi, hoặc cúp máy khi có cuộc gọi đến
Mô tả : Lệnh thực hiện chấp nhận khi có cuộc gọi đến
CÁC LỆNH ĐIỀU KHIỂN TIN NHẮN:
Mô tả : Lệnh đưa SMS về chế độ Text , phải có lệnh này mới gửi nhận tin nhắn dạng Text
XXXXXXX: là số điện thoại cần gửi tin nhắn.
Đợi đến khi có ký tự ‘>’ được gửi về thì đánh nối dung tin nhắn.
Gửi mã Ctrl+Z hay 0x1A để kết thúc nội dung và gửi tin nhắn.
Mô tả : Lệnh gửi tin nhắn
x là địa chỉ tin nhắn cần đọc
Mô tả : Đọc một nhắn vừa gửi đến, lệnh được trả về nội dung tin nhắn, thông tin người gửi, thời gian gửi
Mô tả : Xóa toàn bộ tin nhắn trong các hộp thư
Mô tả : Hiển thị nội dung tin nhắn ngay khi có tin nhắn đến
HỖ TRỢ CODE GIAO TIẾP VỚI MOUDLE SIM800C:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(9, 10);// 9:RX, 10:TX TRÊN ARDUINO
char msg;
char call;
void setup()
{
mySerial.begin(9600); // Setting the baud rate of GSM Module
Serial.begin(9600); // Setting the baud rate of Serial Monitor (Arduino)
Serial.println("GSM SIM800C BEGIN");
Serial.println("Enter character for control option:");
Serial.println("h : to disconnect a call");
Serial.println("i : to receive a call");
Serial.println("s : to send message");
Serial.println("c : to make a call");
Serial.println("e : to redial");
Serial.println();
delay(100);
}
void loop()
{
if (Serial.available()>0)
switch(Serial.read())
{
case 's':
SendMessage();
break;
case 'c':
MakeCall();
break;
case 'h':
HangupCall();
break;
case 'e':
RedialCall();
break;
case 'i':
ReceiveCall();
break;
}
if (mySerial.available()>0)
Serial.write(mySerial.read());
}
void SendMessage()
{
mySerial.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
delay(1000); // Delay of 1000 milli seconds or 1 second
mySerial.println("AT+CMGS=\"+84336408177\"\r"); // Replace x with mobile number
delay(1000);
mySerial.println("sim900a sms");// The SMS text you want to send
delay(100);
mySerial.println((char)26);// ASCII code of CTRL+Z
delay(1000);
}
void ReceiveMessage()
{
mySerial.println("AT+CNMI=2,2,0,0,0"); // AT Command to recieve a live SMS
delay(1000);
if (mySerial.available()>0)
{
msg=mySerial.read();
Serial.print(msg);
}
}
void MakeCall()
{
mySerial.println("ATD+84336408177;"); // ATDxxxxxxxxxx; -- watch out here for semicolon at the end!!
Serial.println("Calling "); // print response over serial port
delay(1000);
}
void HangupCall()
{
mySerial.println("ATH");
Serial.println("Hangup Call");
delay(1000);
}
void ReceiveCall()
{
mySerial.println("ATA");
delay(1000);
{
call=mySerial.read();
Serial.print(call);
}
}
void RedialCall()
{
mySerial.println("ATDL");
Serial.println("Redialing");
delay(1000);
}
Bình luận