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.