Hỗ trợ trực tuyến
Mr Tuấn Anh - Hỗ trợ mua hàng

Mobile: 0975.071.259

Hỗ trợ mua hàng 2

Mobile: 0436.231.170

Mr Lập - Tư vấn kĩ thuật 1

Mobile: 01689.951.815

Mr Tuấn Anh - Tư vấn kĩ thuậ 2

Mobile: 0975.071.259

Sim800C Shield (Dùng cho Arduino)

Sim800C Shield (Dùng cho Arduino)
Nhà sản xuất: MLAB
Mã hàng: Sim800C Shield
Trạng thái: Còn hàng
Giá: 460,000 vnđ
Số lượng:  
   - Hoặc -   

Giới thiệu

Sim800C Shield V3.1 là module GSM/GPRS, được MLAB thiết kế dựa trên Sim800C và sử dụng được với các mạch Arduino.

Module này sẽ là rất hữu ích cho những bạn làm về Arduino muốn giải quyết nhanh bài toán điều khiển các thiết bị từ xa hoặc giám sát các sự kiện thông qua GSM hoặc qua internet (GPRS)

Đặc điểm

  • Sử dụng nguồn 9-12VDC (dòng 1A trở lên)
  • Có thể dùng chung nguồn hoặc riêng nguồn với Arduino 
  • Trên mạch đã có phần bảo vệ ESD và chống cắm ngược nguồn đầu vào
  • Module Sim hoạt động ở 4 băng tần 850/900/1800/1900 MHz,
  • Có thể khởi động module sim bằng phím bấm hoặc khởi động mềm bằng cách điều khiển chân PWKEY

Các thiết lập ban đầu về phần cứng với Arduino

  • Lựa chọn việc dùng chung nguồn với Arduino hay sử dụng riêng nguồn với Arduino:

            Trên Shield có Jumper để làm việc đó. Khi Jumper được cắm(mặc định), Shield và Arduino sẽ dùng chung nguồn.Ngược lại, khi Jumper được bỏ ra, Shield và Arduino sẽ phải được cấp riêng nguồn.

  • Bước tiếp theo các bạn chỉ cần cắm Shield lên Arduino, cấp nguồn và bắt đầu lập trình.

Lưu ý:

  • Các chân giao tiếp UART đã được nối với chân TX, RX (chân số 0, số 1) của kit  Arduino
  • Chân PWK trên Shield đã được nối với chân số 9 của kit Arduino
  • Khi module bắt đầu được khởi động: đèn Netlight trên module sẽ nhấp nháy nhanh. Trong khoảng chục giây sau đó, khi module sim đã bắt được mạng, đèn Netlight sẽ nháy chậm lại, khoảng 3 giây 1 lần. Sau thời gian này các bạn có thực hiện được các chức năng GSM/GPRS
  • Có 2 cách để khởi động/ tắt module sim: 

             Cách 1: sử dụng phím bấm trên module sim, nhấn và giữ phím khoảng 1 giây rồi nhả. (Áp dụng cho cả trường hợp khởi động hoặc tắt module sim)    

             Cách 2: Lập trình điều khiển chân PWK, đưa chân PWK lên mức 1 khoảng 1 giây sau đó về mức 0. (Áp dụng cho cả trường hợp khởi động hoặc tắt module sim) 

  • Khi nạp chương trình mới, nếu module sim đang hoạt động các bạn nên tắt module trước khi nạp chương trình (Sử dụng phím bấm)

Lập trình với Arduino

Về tính năng GSM/GPRS module Sim800C và Sim900A là tương tự nhau nên các bạn lập trình Arduino có thể tham khảo bài viết module sim900A với Arduino

Code tham khảo với Arduino

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// 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";     // Thay so cua ban vao day
const int PWR_KEY =  9;                          // Chan so 9 arduino uno dung lam chan dieu khien bat tat module sim800C
const int RELAY =  12;                              // Chan so 12 arduino uno dung lam chan dieu khien dong/cat Relay de On/Off den
 
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;                           // vi tri cua chuoi "LAMP_ON"
int Index_Lamp_Off = -1;                           // vi tri cua chuoi "LAMP_OFF"
 
void Gsm_Power_On();                                            // Bat module Sim800C
void Gsm_Init();                                                       // Cau hinh Module Sim800C
void Gsm_MakeCall(String phone);                            // Ham goi dien
void Gsm_MakeSMS(String phone,String content);     // Ham nhan tin
 
 
void setup() {
  Serial.begin(9600);                           // Cau hinh UART de giao tiep module Sim800C
 
  digitalWrite(RELAY, LOW);               // Khai bao chan  de dieu khien dong cat RELAY
  pinMode(RELAY, OUTPUT);
 
  digitalWrite(PWR_KEY, LOW);         // Khai bao chan PWR_KEY de dieu khien bat bat module Sim800C
  pinMode(PWR_KEY, OUTPUT);
  
  delay(1000);                       
  Gsm_Power_On();                                      // Bat Module Sim800C
  delay(10000);
  Gsm_Init();                                                 // Cau hinh module Sim800C
  Gsm_MakeCall(myphone);                          // Test cuoc goi 
  Gsm_MakeSMS(myphone,"I'm a test");       // Test tin nhan
}
 
void loop() {
  delay(1000);                                                                    // tre 1s 
  Index_Lamp_On = RxBuff.indexOf("LAMP_ON");              // Tim vi tri cua chuoi "LAMP_ON" trong bo dem nhan RxBuff
  if(Index_Lamp_On >= 0)                                                   // Neu tim thay "LAMP_ON" trong RxBuff
  {
    Index_Lamp_On = -1;                                                     // 
    RxBuff = "";                                                                   // Xoa bo dem
    digitalWrite(RELAY, HIGH);                                             // Dong Relay de bat den // Bat bong den
  }
  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() {                                          // Chuong trinh ngat nhan du lieu
  while (Serial.available()) {                               // Doi den khi co du lieu nhan ve
    // get the new byte:
    char inChar = (char)Serial.read();                  // Doc mot byte du lieu vua nhan ve
    RxBuff += inChar;                                       // Ghi byte do vao bo dem nhan RxBuff (ta se xu ly RxBuff trong vong loop()) 
    if(RxBuff.length()>= 128)                              // Neu bo dem qua dai thi xoa bo dem di
    {
      RxBuff = "";
    }
  }
}
 
void Gsm_Power_On()
{
  digitalWrite(PWR_KEY, HIGH);                // Du chan PWR_KEY len cao it nhat 1s 
  delay(1500);                                            // o day ta de 1,5s
  digitalWrite(PWR_KEY, LOW);                  // Du chan PWR_KEY xuong thap
  delay(100);                                              // cac ban xem trong Hardware designed sim800C de hieu ro hon
}
 
void Gsm_Init()
{
  Serial.println("ATE0");                            // Tat che do phan hoi (Echo mode)
  delay(2000);
  Serial.println("AT+IPR=9600");              // Dat toc do truyen nhan du lieu 9600 bps
  delay(2000);
  Serial.println("AT+CMGF=1");                // Chon che do TEXT Mode
  delay(2000);
  Serial.println("AT+CLIP=1");                  // Hien thi thong tin nguoi goi den
  delay(2000);
  Serial.println("AT+CNMI=2,2");              // Hien thi truc tiep noi dung tin nhan
  delay(2000);
}
 
void Gsm_MakeCall(String phone)           
{
  Serial.println("ATD" + phone + ";");         // Goi dien 
  delay(10000);                                        // Sau 10s
  Serial.println("ATH");                              // Ngat cuoc goi
  delay(2000);
}
 
void Gsm_MakeSMS(String phone,String content)
{
  Serial.println("AT+CMGS=\"" + phone + "\"");     // Lenh gui tin nhan
  delay(3000);                                                     // Cho ky tu '>' phan hoi ve 
  Serial.print(content);                                          // Gui noi dung
  Serial.print((char)26);                                         // Gui Ctrl+Z hay 26 de ket thuc noi dung tin nhan va gui tin di
  delay(5000);                                                      // delay 5s
}
 

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Bài viết hướng dẫn sử dụng Module Sim800C

 

 

Viết đánh giá

Họ và tên:


Đánh giá của bạn: Lưu ý: Không hỗ trợ HTML!

Bình chọn: Xấu           Tốt

Nhập mã bảo vệ: