Gravity: UART A6 GSM & GPRS Module

简介

随着物联网概念的普及,越来越多的人开始制作自己的物联网产品。而传统的物联网大多基于WiFi技术开发,对于本地网络有一定要求,并且无法移植到户外场景。随着摩拜,ofo等共享单车的盛行,人们开始考虑使用GSM作为移动物联网的解决方案。 DFRobot新一代物联网力作,Gravity UART A6 GSM & GPRS无线通信模块。仅需一张支持GSM的电话卡,即可打电话,发短信,GPRS无线数据传输。体积小巧,方便携带;模块采用5V供电,串口电平2.8V,完美兼容Arduino,树莓派等5V和3.3V控制器。模块拥有一个3.5mm耳机接口,可以制作一台DIY手机。

注意:

  1. 模块采用标准SIM卡,也就是俗称的大卡,Micro-SIM和Nano-SIM卡用户,请使用SIM卡卡套。
  2. 选择SIM卡时,请注意SIM的信号制式,仅支持GSM制式(移动、联通)。

技术规格

引脚说明

Pin Map Overview
标号 名称 功能描述
1 TX UART发送引脚(2.8V)
2 RX UART接收引脚
3 GND 电源负
4 VCC 电源正
5 RST 复位
6 INT 休眠/唤醒
7 MIC+/- 麦克风
8 REC+/- 扬声器
9 VIN 外部电源

引脚说明

Arduino使用教程

目标:通过Arduino UNO R3的软串口,连接并使用模块的GSM和GPRS功能
注意
Arduino控制器和模块同时使用时需要外接电源或充足的USB供电。在使用语音通话功能时,若仅以PC的usb接口供电,模块将出现功能无法使用的情况。

准备

接线图

Gravity UART A6 GSM & GPRS Module Arduino Connection

GSM教程

1.模块初始化检查

|


#include <SoftwareSerial.h>
SoftwareSerial mySerial(11, 10);  // TX-Pin11, RX-Pin10
void updateSerial()
{
  delay(2000);
  while (Serial.available()) {
    mySerial.write(Serial.read());//如果Serial收到数据则通过mySerial输出
  }
  while(mySerial.available()) {
    Serial.write(mySerial.read());//如果mySerial收到数据则通过Serial输出
  }

}

void setup()
{
  Serial.begin(9600);
  mySerial.begin(9600);
}

void loop()
{
  mySerial.println("AT");          //握手测试,成功则返回OK
  updateSerial();

  mySerial.println("AT+CSQ");      //信号质量测试,值为0-31,31表示最好
  updateSerial();

  mySerial.println("AT+CCID");    //读取SIM,可以检测是否有SIM卡或者是否接触良好
  updateSerial();

  mySerial.println("AT+CREG?");    //检测是否注册网络
  updateSerial();

  mySerial.println("AT+SNFS=0");  //调整为耳机模式(AT+SNFS=1 表示扬声器模式)
  updateSerial();

  mySerial.println("AT+CRSL=2");  //调整音量,值为0-15,15表示音量最大
  updateSerial();

  while(1)
  {
    if(mySerial.available())
    {
      Serial.write(mySerial.read());//如果mySerial收到数据则通过Serial输出
    }
    if(Serial.available())
    {
      mySerial.write(Serial.read());//如果Serial收到数据则通过mySerial输出
    }
  }
}

|} Gravity UART A6 GSM & GPRS Module GSM Information 2.语音通话

Gravity UART A6 GSM & GPRS Module Make a Phone Call 3.短信发送

|


#include <SoftwareSerial.h>
SoftwareSerial mySerial(11, 10);  // TX-Pin11, RX-Pin10
void updateSerial()
{
  delay(2000);
  while (Serial.available()) {
    mySerial.write(Serial.read());//如果Serial收到数据则通过mySerial输出
  }
  while(mySerial.available()) {
    Serial.write(mySerial.read());//如果mySerial收到数据则通过Serial输出
  }

}

void setup()
{
  Serial.begin(9600);
  mySerial.begin(9600);
}

void loop()
{
  mySerial.println("AT");          //握手测试,成功则返回OK
  updateSerial();
  mySerial.println("AT+CMGF=1");   //配置短信模式为TEXT模式,只能发送英文短信!
  updateSerial();
  mySerial.println("AT+CMGS=\"xxxxxxxxxxx\"");//xxxxxxxxxxx为电话号码
  updateSerial();
  mySerial.print("Hello, this is a test"); //短信内容
  updateSerial();
  mySerial.write(26);
  while(1)
  {
    if(mySerial.available())
    {
      Serial.write(mySerial.read());//如果mySerial收到数据则通过Serial输出
    }
    if(Serial.available())
    {
      mySerial.write(Serial.read());//如果Serial收到数据则通过mySerial输出
    }
  }
}

|} Gravity UART A6 GSM & GPRS Module Send a Message

GPRS教程

|


#include <SoftwareSerial.h>
SoftwareSerial mySerial(11, 10);  // TX-Pin11, RX-Pin10
void updateSerial()
{
  delay(2000);
  while (Serial.available()) {
    mySerial.write(Serial.read());//如果Serial收到数据则通过mySerial输出
  }
  while(mySerial.available()) {
    Serial.write(mySerial.read());//如果mySerial收到数据则通过Serial输出
  }
}

void setup()
{
  Serial.begin(9600);
  mySerial.begin(9600);
}

void loop()
{
  mySerial.println("AT");          //握手测试,成功则返回OK
  updateSerial();
  mySerial.println("AT+CGATT=1 ");//附着网络,如果需要上网,这条指令是必选的
  updateSerial();
  mySerial.println("AT+CGDCONT=1,\"IP\",\"CMNET\"");//设置PDP参数
  updateSerial();
  mySerial.println("AT+CGACT=1,1");//激活PDP,正确激活以后就可以上网了
  updateSerial();
  mySerial.println("AT+CIFSR");//获得本地IP地址
  updateSerial();
  mySerial.println("AT+CIPSTART=TCP,www.baidu.com,80");//连接服务器,该服务器是百度的测试服务器
  updateSerial();
  updateSerial();
  delay(2000);
  updateSerial();
  mySerial.println("AT+CIPSEND");//向服务器发送数据请求
  updateSerial();
  mySerial.print("TEST");//向服务器发送数据内容
  updateSerial();
  mySerial.write(26);//结束符
  while(1)
    {
    if(mySerial.available())
    {
      Serial.write(mySerial.read());//如果mySerial收到数据则通过Serial输出
    }
    if(Serial.available())
    {
      mySerial.write(Serial.read());//如果Serial收到数据则通过mySerial输出
    }
  }
}

|} Gravity UART A6 GSM & GPRS Module GPRS

AT指令使用教程

准备

接线图

AT Command Setting

GSM教程

AT Command Setting

1.模块初始化检查

AT Command Setting 2.语音通话

AT Command Make a Phone Call

3.短信发送

AT Command Send a Message

AT Command PDU SMS

AT Command Send PDU SMS

GPRS教程

AT Command GPRS

常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多资料

DFshopping_car1.png DFRobot商城购买链接