Arduino:Библиотеки/GSM/Класс GPRS/attachGPRS(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
Строка 141: Строка 141:


<references />
<references />
{{Навигационная таблица/Портал/Arduino}}





Текущая версия от 12:22, 8 июля 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.

Функция attachGPRS()[1]

Подключается к указанному APN (от «access point name», что означает «имя точки доступа»), чтобы инициализировать GPRS-коммуникацию.

У каждого оператора связи есть APN, которая служит мостом между сетью этого оператора и интернетом. Иногда к этой точке привязаны логин и пароль. К примеру, APN для оператора Bluevia – это «bluevia.movistar.es», но логина и пароля у нее нет.

По этой ссылке находится список APN для разных операторов связи. Учтите, впрочем, что этот список может быть устаревшим. В таком случае лучше уточнить информацию об APN у вашего оператора связи.

Синтаксис

gprs.attachGPRS(APN, user, password)

Параметры

APN  APN, предоставленный оператором связи (массив символов)
user  логин для APN (массив символов)
password  пароль для доступа к APN (массив символов)

Что возвращает

Одно из следующих значений  ERROR, IDLE, CONNECTING, GSM_READY, GPRS_READY, TRANSPARENT_CONNECTED (массив символов).

Пример

#include <GSM.h>

// PIN-код:
#define PINNUMBER ""

// Данные об APN:
#define GPRS_APN       "GPRS_APN" // замените на свой APN
#define GPRS_LOGIN     "login"    // замените на свой логин к APN
#define GPRS_PASSWORD  "password" // замените на свой пароль к APN


// инициализируем экземпляр библиотеки:
GPRS gprs;
GSM gsmAccess;     // чтобы включить режим отладки, в скобочках нужно поставить параметр «true»
GSMServer server(80); // порт 80 (по умолчанию для HTTP)

// таймаут:
const unsigned long __TIMEOUT__ = 10*1000;

void setup()
{
  // инициализируем последовательную коммуникацию:
  Serial.begin(9600);

  // состояние соединения:
  boolean notConnected = true;

  // запускаем GSM-модуль; если у 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");    //  "Подключение к GPRS-сети прошло успешно"

  // запускаем сервер:
  server.begin();

  // получаем IP-адрес:
  IPAddress LocalIP = gprs.getIPAddress();
  Serial.println("Server IP address=");    //  "IP-адрес сервера="
  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();
        }
      }
    }
  }
}

См.также

  1. GPRS Constructor

Внешние ссылки