(SKU:TEL0113)Gravity A6 GSM&GPRS Module

来自DFRobot Product Wiki
跳转至: 导航搜索


目录

简介

随着物联网概念的普及,越来越多的人开始制作自己的物联网产品。而传统的物联网大多基于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制式(移动、联通)。


技术规格

  • 工作电压:5-12V
  • 待机电流:<3mA
  • 接口方式:UART (TTL)
  • 工作温度:-30℃~+80℃
  • 安装孔尺寸:内径3.1mm/外径6mm
  • GSM/GPRS频段:850/900/1800/1900 MHz
  • 灵敏度:<-105 dBm
  • GPRS Class 10
  • 支持语音通话
  • 支持SMS短信
  • 支持GPRS数据业务,最大数据速率,下载85.6Kbps,上传42.8Kbps
  • AT命令支持标准AT和TCP/IP命令接口
  • 支持数字音频和模拟音频,支持HR,FR,EFR,AMR语音编码
  • 模块尺寸:45x37 mm
  • 安装孔位置:25x30 mm
  • 重量:34 g


引脚说明

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接口供电,模块将出现功能无法使用的情况。



准备

  • 硬件
    • 1 x UNO R3
    • 1 x Gravity UART A6 GSM & GPRS Module
    • 1 x PC
    • 1 x 耳机(带麦)
    • 若干 杜邦线
  • 软件


接线图

  • 将模块与Arduino UNO控制板按照如下图的方式连接
  • 将耳机完全插入预留耳机孔
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.语音通话

  • 通过Ardunio串口发送AT指令拨打和接听电话
    • ATD+拨打号码; //拨打指定号码
      • eg. ATD10086;
    • Ring //有来电
    • ATA //接听来电
    • ATH //挂断当前通话
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指令使用教程

准备

  • 硬件
    • 1 x USB转串口模块
    • 1 x Gravity UART A6 GSM & GPRS Module
    • 1 x PC
    • 1 x 耳机(带麦)
    • 若干 杜邦线
  • 软件
    • 串口调试工具
  • 注意
    • 调试时若出现电话通讯异常,可考虑usb供电不足的情况,可选择将模块VCC与GND外接5V电源。


接线图

  • 将模块通过USB转串口模块,与PC相连接,按照如下图的方式连接
  • 将耳机完全插入预留耳机孔
AT Command Setting


GSM教程

  • 下图为串口调试软件界面
AT Command Setting


1.模块初始化检查

  • 模块连接后,会自动与基站连接,通过串口读取基站下发信息
  • 通过以下三个命令查看模块是否正常初始化
    • AT+CCID //用于查询SIM的CCID,也可以用于查询SIM是否存在或者插好
      • eg. AT+CCID +CCID:898602A02216719D7171
    • AT+CSQ //查询模块信号质量
      • eg. AT+CSQ=? +CSQ: (0-31,99),(0-7,99)(31表示信号质量最好)
    • AT+CREG? //查询网络注册情况
      • eg. AT+CREG? +CREG: 1,1 //网络已注册,本地模式
AT Command Setting

2.语音通话

  • 通过两个命令切换到耳机模式
    • AT+SNFS=0 //切换耳机模式(AT+SNFS=1 表示扬声器模式)
    • AT+CRSL=2 //调整音量(值为0-15,15表示音量最大)
  • 拨打和接听电话
    • ATD+拨打号码; //拨打指定号码
      • eg. ATD10086;
    • Ring //有来电
    • ATA //接听来电
    • ATH //挂断当前通话
AT Command Make a Phone Call

3.短信发送

  • TEXT短信模式
    • AT+CMGF=1 //配置短信模式为TEXT模式,只能发送英文短信!
    • AT+CMGS=13548199303 //配置发送的对象
    • 配置完成后会弹出输入指示符 > ,即可输入发送的英文内容;点击发送。
    • 勾选串口调试软件“HEX发送”选项发送一个“1A”,或者将光标移动到串口显示界面英文内容末尾并键入Ctrl+Z,两种操作均相当于输入一个指示符→。随即发送短信,返回OK则表示发送成功。
    • 整个TEXT短信发送格式为 >xxxx→
AT Command Send a Message
AT Command PDU SMS
    • AT+CMGF=0 //配置短信模式为PDU模式,中英文都可发送
    • AT+CMGS=31 //PDU码长(网址转换的为 AT+CMGW=31 是编写PDU到存储,我们使用 AT+CMGS 直接将短信发送)
    • 配置完成后会弹出输入指示符 > ,输入已经转换的PDU码, 取消发送新行后再点击发送
    • 勾选串口调试软件“HEX发送”选项发送一个“1A”,或者将光标移动到串口显示界面PUD码末尾后键入Ctrl+Z,两者都相当于输入一个指示符→。随即发送短信,返回OK则表示发送成功。
AT Command Send PDU SMS


GPRS教程

  • AT+CGATT=1 //附着网络,如果需要上网,这条指令是必选的
  • AT+CGDCONT=1,"IP","CMNET" //设置PDP参数
  • AT+CGACT=1,1 //激活PDP,正确激活以后就可以上网了
  • AT+CIFSR //获得本地IP地址
  • AT+CIPSTART=TCP,www.baidu.com,80 //连接服务器,该服务器是果云的测试服务器,会返回发送的数据
  • AT+CIPSEND //向服务器发送数据,输入命令后会弹出输入指示符 > ,输入要发送的内容,点击发送
  • 以“HEX发送”方式发送一个0X1A,或者在串口显示界面上将光标移动到信息内容末尾并键入Ctrl+Z,返回OK则发送成功
AT Command GPRS


常见问题

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


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


更多资料


DFshopping car1.png DFRobot商城购买链接

个人工具
名字空间

变换
操作
导航
工具箱