attachGPRS()

描述

连线到指定的接入点(Access Point Name, APN)并初始化 GPRS 连线。

电信提供商会给使用者接入点并且扮演 GPRS 网路和网际网路间的桥樑。有些接入点并不需要使用者名称和密码。

这个网页列出了一些电信提供商的接入点资讯,但可能有一段时间没有更新了。

语法


grps.attachGPRS(APN, user, password)

参数

APN:存放电信提供商网路接入点的字元阵列
user:存放接入点使用者名称的字元阵列
password:存放接入点密码的字元阵列

回传

char arrayERROR, IDLE, CONNECTING, GSM_READY, GPRS_READY, TRANSPARENT_CONNECTED

范例

#include <GSM.h>

// PIN 码
#define PINNUMBER ""

// APN 资料
#define GPRS_APN       "GPRS_APN" // replace your GPRS APN
#define GPRS_LOGIN     "login"    // replace with your GPRS login
#define GPRS_PASSWORD  "password" // replace with your GPRS password


// 初始化函式库
GPRS gprs;
GSM gsmAccess;
GSMServer server(80);

// 时限
const unsigned long __TIMEOUT__ = 10*1000;

void setup()
{
  // 初始化 Serial
  Serial.begin(9600);

  // 连线状态
  boolean notConnected = true;

  // 启动 Arduino GSM shield,如果你的 SIM 卡有 PIN 码,请当作 begin() 的参数
  while(notConnected)
  {
    if((gsmAccess.begin(PINNUMBER)==GSM_READY) &
        (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD)==GPRS_READY))
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }

  Serial.println("Connected to GPRS network");

  // 启动 server
  server.begin();

  // 取得 IP 位址
  IPAddress LocalIP = gprs.getIPAddress();
  Serial.println("Server IP address=");
  Serial.println(LocalIP);
}

void loop() {


  // 监听是否有客户端要求
  GSM3MobileClientService client = server.available();



  if (client)
  {  
    while (client.connected())
    {
      if (client.available())
      {
        Serial.println("Receiving request!");
        bool sendResponse = false;
        while(char c=client.read()) {
          if (c == '\n') sendResponse = true;
        }

       // 判断是否读到换行字元
       if (sendResponse)
       {
          // 送出标准的 HTTP 标头档
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          client.println("<html>");
          // 把每一个类比脚位的值写入封包
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(analogRead(analogChannel));
            client.println("<br />");       
          }
          client.println("</html>");
          // 需要延迟
          delay(1000);
          client.stop();
        }
      }
    }
  }
}

See also

GPRS


函式库参考主页面

The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.