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 = "";
- 在setup里,打开一个到电脑的串口连接。打开连接之后,发送一个信息示意程序已经开始。
void setup(){
Serial.begin(9600);
Serial.print("Starting modem test...");
- 调用modem.begin()来开始调制解调器。发送一个状态信息(取决于输出),并结束setup()。
if(modem.begin())
Serial.println("modem.begin() succeeded");
else
Serial.println("ERROR, no modem answer.");
}
- 在loop里,用 modem.getIMEI()返回一个调制解调器的IMEI号码。这个号码对你的GSM shield来说是独一无二的。
void loop()
{
// get modem IMEI
Serial.print("Checking IMEI...");
IMEI = modem.getIMEI();
- 通过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();
- 一旦重置,重新检查IMEI。如果又有有效返回,调制解调器就按预期发挥功能。
if(modem.getIMEI() != NULL)
{
Serial.println("Modem is functoning properly");
}
- 重置调制解调器之后,getIMEI()里如果没有有效返回,报告一个error
else
{
Serial.println("Error: getIMEI() failed after modem.begin()");
}
- 开始程序后,如果你从来没有接收到一个IMEI,报告,并结束程序。
}
else
{
Serial.println("Error: Could not get IMEI");
}
// do nothing:
while(true);
}
一旦上传代码,打开串口监视器。当接收到是,你会看到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 - 如何用麦克风和扬声器进行语音通话。。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号