< >
Home » Arduino库教程 » Arduino库教程-GSM-Test Modem

Arduino库教程-GSM-Test Modem

GSM Test Modem

  • 这个程序测试GSM shield上的调制解调器,来检查是否正确工作。这个例子里,您不需要SIM卡。

硬件要求

  • Arduino or Genuino Board
  • Arduino + Telefonica GSM/GPRS Shield

电路

请输入图片描述
这是在一块Arduino或者Genuino开发板上的Arduino GSM Shield图

样例代码

  • 首先,加上GSM库
#include <GSM.h>
  • 实例化一个GSMModem类:
GSMModem modem;
  • 创建一个变量来保存调制解调器的IMEI号码
String IMEI = "";

[Get Code]

  • 在setup里,打开一个到电脑的串口连接。打开连接之后,发送一个信息示意程序已经开始。
void setup(){
  Serial.begin(9600); 
  Serial.print("Starting modem test...");

[Get Code]

  • 调用modem.begin()来开始调制解调器。发送一个状态信息(取决于输出),并结束setup()。
if(modem.begin()) 
    Serial.println("modem.begin() succeeded");
  else
    Serial.println("ERROR, no modem answer.");
}

[Get Code]

  • 在loop里,用 modem.getIMEI()返回一个调制解调器的IMEI号码。这个号码对你的GSM shield来说是独一无二的。
void loop()
{
  // get modem IMEI
  Serial.print("Checking IMEI...");
  IMEI = modem.getIMEI();

[Get Code]

  • 通过getIMEI()如果获得有效响应,打印其到串口监视器,并通过modem.begin()重置调制解调器。
if(IMEI != NULL)
  {
    // show IMEI in serial monitor
    Serial.println("Modem's IMEI: " + IMEI);
    // reset modem to check booting:
    Serial.print("Reseting modem...");
    modem.begin();

[Get Code]

  • 一旦重置,重新检查IMEI。如果又有有效返回,调制解调器就按预期发挥功能。
if(modem.getIMEI() != NULL)
    {
      Serial.println("Modem is functoning properly");
    }

[Get Code]

  • 重置调制解调器之后,getIMEI()里如果没有有效返回,报告一个error
else
    {
      Serial.println("Error: getIMEI() failed after modem.begin()");
    }

[Get Code]

  • 开始程序后,如果你从来没有接收到一个IMEI,报告,并结束程序。
}
  else
  {
    Serial.println("Error: Could not get IMEI");
  }
  // do nothing:
  while(true);
}

[Get Code]

  • 一旦上传代码,打开串口监视器。当接收到是,你会看到HTML(http://arduino.cc) 打印在屏幕上。

  • 完整程序如下:

/*

 This example tests to see if the modem of the
 GSM shield is working correctly. You do not need
 a SIM card for this example.

 Circuit:
 * GSM shield attached

 Created 12 Jun 2012
 by David del Peral
 modified 21 Nov 2012
 by Tom Igoe

 http://www.arduino.cc/en/Tutorial/GSMToolsTestModem

 This sample code is part of the public domain

 */

// libraries
#include <GSM.h>

// modem verification object
GSMModem modem;

// IMEI variable
String IMEI = "";

void setup() {
  // initialize serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  // start modem test (reset and check response)
  Serial.print("Starting modem test...");
  if (modem.begin()) {
    Serial.println("modem.begin() succeeded");
  } else {
    Serial.println("ERROR, no modem answer.");
  }
}

void loop() {
  // get modem IMEI
  Serial.print("Checking IMEI...");
  IMEI = modem.getIMEI();

  // check IMEI response
  if (IMEI != NULL) {
    // show IMEI in serial monitor
    Serial.println("Modem's IMEI: " + IMEI);
    // reset modem to check booting:
    Serial.print("Resetting modem...");
    modem.begin();
    // get and check IMEI one more time
    if (modem.getIMEI() != NULL) {
      Serial.println("Modem is functoning properly");
    } else {
      Serial.println("Error: getIMEI() failed after modem.begin()");
    }
  } else {
    Serial.println("Error: Could not get IMEI");
  }
  // do nothing:
  while (true);
}

[Get Code]
更多

  • Arduino GSM Shield – 完整的产品描述。

  • Getting started with the GSM Shield – 在几分钟内启动所有东西

  • GSM library – GSM 库的参考网页

  • GSMModem Constructor

  • begin()

  • getIMEI()

  • GSMToolsTestGPRS - 试图用提供的APN和证书来通过GPRS访问互联网 。

  • GSMToolsGsmScanNetworks - 扫描可用网络和打印关于IMEI和SIM卡号码的信息。

  • GSMToolsPinManagement - 如何更改或删除引脚数。

  • GSMToolsTestModem - 测试看看GSM shield的调制解调器是否正确工作。

  • GSMToolsTestWebServer - 一个简单的Web服务器,没有任何答复,只打印客户端的请求和服务器IP地址。

  • GSMExamplesMakeVoiceCall - 如何用麦克风和扬声器进行语音通话。。

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: arduino库教程, arduino test modem