GPRS Shield V2.0 GPRS扩展板

来自Duinopeak_COM
跳转至: 导航搜索

产品简介

GPRS shield.jpg GPRS back.jpg

GPRS扩展板采用带四频SIM900A模块能,能让让你简单的用Arduino搭建出一部简单的能够打电话,发短信的手机。想要把你的Arduino变成一部手机吗?或者想要通过简单的信息发送就控制家里的灯吗?那么这款GPRS Shield就是专门为你的这种需求设计的!

规格参数

  • GSM/GPRS模块SIM900
  • 支持频段850/900/1800/1900MHz
  • 支持协议TCP/UDP
  • 通过AT指令集控制标准-GSM 07.07&07.05
  • 加强-SIMCOM AT指令集
  • 供电电压5~12V
  • I/O电压2.8V
  • 默认波特率19200
  • 最高波特率 115200

产品特点

  • 兼容标准的Arduino以及Arduino Mega
  • 可自由选择硬串口和软串口
  • 二合一耳机接口
  • 外部SIM卡槽
  • 低功耗:1.5mA (Sleep mode)
  • 标准化的外形设计


接口功能

  • 天线接口(Antenna interface:):接插外部天线
  • 串口选择(Serial port select):选择软串口或硬串口作为与Arduino的接口
  • 硬串口(Hardware Serial):Arduino/Seeeduino的D0和D1
  • 软串口(Software serial): 只有Arduino/Seeeduino的D7和D8
  • 状态指示(Status indicator):指示SIM900是否启动
  • 电源指示(Power-on indicator):指示GPRS Shiled电源状况
  • 网络指示(Net indicator):指示SIM900连接网络的状态
  • SIM900的GPIO, PWM 和ADC:SIM900的GPIO,PWM和ADC的管脚引出口
  • 耳机接口(Headsets interface):麦克风和耳机二合一接口
  • 电源开关(Power button ): 开关SIM900

Arduino的接口用法

  • D0:被用于硬串口的数据接收(RX)
  • D1:被用于硬串口的数据发送(TX)
  • D7: 被用于软串口的数据接收(RX)
  • D8: 被用于软串口的数据发送(TX)
  • D9: 被用于SIM900的软电源开关
  • VIN: 当你选择6.5V~12V的外部电源作为Arduino和GPRS Shiled的供电时被使用

LED状态描述

LED 状态 功能
电源指示(绿) GPRS Shield的电源关闭
GPRS Shield的电源接通
状态指示(红) SIM900电源关闭
SIM900电源接通
网络指示(绿) SIM900没有工作
64ms 亮/800ms 灭 SIM900没有找到网络
64ms 亮/3000ms 灭 SIM900 找到网络
64ms 亮/300ms 灭 GPRS正在通信

注意事项

  • 确保你的SIM卡解锁。
  • GPRS没有进行ESD保护。在干燥天气使用时,请特别小心。
  • GPRS Shield出厂设置的UART是19200 bps 8-N-1(可以使用AT命令来改变)。


应用示例1 AT命令打电话和发送短信

GPRS shield 扩展板的SIM900模块可以通过外部串口(UART)将AT命令发送到SIM900模块,实现对SIM900模块的直接控制 也就是说你可以使用串口终端软件对GPRS Shield扩展进行通信。

硬件连接

请按照以下步骤来搭建你的硬件系统。

1. 在SIM卡卡槽中插入一张解锁的SIM卡

GPRS Shield使用的是一个6 Pin的SIM卡卡槽。SIM900同时支持1.8 伏3.0伏的SIM卡, 它能自动识别SIM卡的电压类型。


Shield GPRS shield and SIM card 1.jpgShield GPRS shield and SIM card 2.jpg

Shield GPRS shield and SIM card 3.jpgShield GPRS shield and SIM card 4.jpg

2.检查天线

确保天线正确接到天线接口。


3.通讯接口配置

GPRS Shield能通过Arduino的硬戒软串口来控制。我们默认使用软串口,按图中所示插上跳线帽。


Shield GPRS shield and SIM card 5.jpg


4.插上Arduino

将GPRS Shield插到Arduino上。
Shield GPRS shield AT command connection2.jpg

5.给Arduino供电

通过USB口或者DC接口给Arduino供电。一旦通电后,电源指示灯就会亮起。
Shield GPRS shield AT command connection3.jpg

6.外置电源给Arduino和GPRS shield供电 因为我们的GPRS Shield扩展板在启动的时候,瞬间所需电流比较大,所以我们在Arduino主控板旁边的外置电源端子接上外置电源7-15V;


Shield GPRS shield AT command connection1.jpg

程序下载

我们将下载一个串口通信的程序进行收发AT指令。

步骤 1: Test Setup

1.创建一个新的Arduino sketch 文件并粘贴下面的代码.

//Serial Relay - Arduino will patch a 
//serial link between the computer and the GPRS Shield
//at 19200 bps 8-N-1
//Computer is connected to Hardware UART
//GPRS Shield is connected to the Software UART 
 
#include <SoftwareSerial.h>
 
SoftwareSerial GPRS(7, 8);
unsigned char buffer[64]; // buffer array for data recieve over serial port
int count=0;     // counter for buffer array 
void setup()
{
  GPRS.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);             // the Serial port of Arduino baud rate.
 
}
 
void loop()
{
  if (GPRS.available())              // if date is comming from softwareserial port ==> data is comming from gprs shield
  {
    while(GPRS.available())          // reading data into char array 
    {
      buffer[count++]=GPRS.read();     // writing data into array
      if(count == 64)break;
  }
    Serial.write(buffer,count);            // if no data transmission ends, write buffer to hardware serial port
    clearBufferArray();              // call clearBufferArray function to clear the storaged data from the array
    count = 0;                       // set counter of while loop to zero
 
 
  }
  if (Serial.available())            // if data is available on hardwareserial port ==> data is comming from PC or notebook
    GPRS.write(Serial.read());       // write it to the GPRS shield
}
void clearBufferArray()              // function to clear buffer array
{
  for (int i=0; i<count;i++)
    { buffer[i]=NULL;}                  // clear all index of array with command NULL
}

2.上传代码到Arduino主控板中,如果你不知道如何上传代码,请先学习Arduino之入门篇 3.如果你没有串口助手软件的话,首先下载串口显示软件SSCOM,文件:Serial tool Sscom42.zip;选择正确的Arduino主控板COM口,设置波特率为19200,数据位为8,停止位为1,校验位为 None 流控为None;然后点击“关闭串口”,这个按钮变成“打开串口”,如下图:
Shield GPRS shield Serial open.PNG

4.通过按下GPRS shield 侧边的电源开关约2S,来启动SIM900模块,接着我们可以看到红色状态指示LED亮了,说明SIM900电源接通了;旁边的黄色网络指示LED灯开始闪烁,闪烁10秒钟后,如果这个GPRS shield扩展板成功加入到网络后,这个黄色网络指示灯变为每3秒中闪烁一次。说明我们的SIM卡有用。如下图:


Shield GPRS shield AT command connection1.jpg

5.首先我们给串口软件中的“发送新行”打上勾,如下图所示;然后我们在字符串输入框中输入“AT+IPR=19200”,点击“发送”按钮,我们可以看到串口软件返回字符“ok”,说明我们把SIM900的波特率设为19200,AT命令起效了。


Shield GPRS shield AT command1.PNG


步骤 2: 发送一条短信

在步骤1的基础上,我们现在尝试用AT指令发送一条短信到我们想要发送的目标手机中。

1.GPRS Shield 扩展板可以发送两种形式的短信:文本形式和PDU(二进制)形式。为了发送一个人类可识别的短信,我们通过在串口软件中发送AT 指令“AT+CMGF=1”来实现发送一个文本格式的短信。如果成功的话,这个GPRS Shield扩展板会返回一个“OK",如下图所示:


Shield GPRS shield AT command2.PNG

2.接下来发送目标手机的号码。我们在串口软件字符输入框中输入AT+CMGS="136*****556",这样将指示GPRS Shield接下来发送消息到指定的手机号码(你需要把上面的手机数组替换为你自己想要发送信息的目标手机号码);点击发送后,我们在串口软件上面的窗口中返回一个”>"符号,指示你接下来需要输入你要发送的信息;
Shield GPRS shield AT command3.PNG

3.我们接着在字符输入框中输入我们的信息,比如我发送“How are you",然后点击发送,串口软件又返回一个”>"字符,指示你接下来发送确定命令。如下图所示:
Shield GPRS shield AT send message1.PNG

4.接下来发送确定指令。首先我们在软件串口的“HEX发送"前面打上勾!!必须打上勾。然后我们在字符框中输入1A,点击发送;我们在串口软件上面的显示窗口中,可以看到返回了”CMCS:XXX,还有"OK",如下图所示:说明短信发送成功了!我们在目标手机上就能收到“How are you"。到这里短信的应用示例就成功了。


Shield GPRS shield AT send message1 reply.PNG

步骤 3: 通过AT命令打电话

1.我们接下来由短信发送模式转为打电话模式。我们首先把串口软件中的"HEX发送”前面的勾去掉,因为我们接下来在打电话的时候发送AT指令是发送字符串。还有我们需要把带有耳麦的耳机插入到GPRS shield扩展板上的耳机接口中。 2.在字符串输入框中输入“ATD186*****308;”,把手机号码替换为你的目标手机号码,点击发送;如下图所示:
Shield GPRS shield AT phone call.PNG

3.下来我们就可以听到电话打出去的声音,目标手机也响应了!我们按下目标手机的接听按钮,就可以实现双方通话了!这时候我们的串口软件显示如下图:
Shield GPRS shield AT phone call ok.PNG

步骤 4: 进一步探究


通过上面的发送短信和打电话的例子,相信你已经大概懂了如何使用AT指令来控制GPRS Shield扩展板,你可以下载这个页面下资源目录下的,GPRS Shield V2.0 GPRS扩展板SIM900 AT指令PDF,仔细阅读,举一反三,发挥出SIM900模块的属于各种功能。


应用示例1 DIY一个Arduino手机

gprs打电话 详细的文档,请点击文件:Gprs-phone-test.pdf查看。

gprs扩展板+TFT触摸屏 代码在文件:ArduinoPhone.zip,另外这个小项目,你需要使用到TFT Shield 扩展板这块触摸屏.
Gprs tft phone.JPG

Gprs tft phone 01.JPG
为了让你的ArduinoPhone看起来更像一个手机,你需要一些外壳,这里提供了一些文件:3DShell.zip 3D打印的外壳文件供下载。

应用场合

  • 物联网传感器数据的传输
  • 自动监测系统
  • 污染源远程监控
  • GPRS气象信息采集系统
  • 工业能耗监测方面应用
  • 仓库监控管理


资源


GPRS Shield V2.0 GPRS扩展板原理图PDF: 文件:Shield GPRS shield schematic.pdf

GPRS Shield V2.0 GPRS扩展板演示程序: 文件:GPRS Shield.zip

GPRS Shield V2.0 GPRS扩展板Arduino电话机库程序: 文件:ArduinoPhone.zip

GPRS Shield V2.0 GPRS扩展板Arduino电话机3D外壳打印文件: 文件:3DShell.zip

GPRS Shield V2.0 GPRS扩展板Arduino电话机供电电路PDF: 文件:ArduinoPhoneChargeCircuit schematic.pdf

GPRS Shield V2.0 GPRS扩展板SIM900 AT指令PDF: 文件:Shield GPRS shield SIM900 AT Command V1 00.pdf

GPRS Shield V2.0 GPRS扩展板SIM900模块硬件设计手册PDF: 文件:Shield GPRS shield SIM900 Hardware Design V1.05.pdf
文件:MTK USB DRIVER.rar

如何购买

Duinopeak 官方淘宝商城
GPRS Shield V2.0 GPRS扩展板购买链接

支持

如果你有什么建议或者好的点子, 你可以来我们的DuinoPeak论坛参与讨论.

外部链接

链接到外部网页将会给你提供更多应用创意,文档/数据表或软件库

视频