Arduino:Библиотеки/GSM/Класс GSMClient/connect()

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

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.

Библиотека GSM
(Обсуждение Arduino:Библиотеки/GSM#disqus_thread)

Функции:

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

Подключается к указанным IP-адресу и порту. Возвращает значение, сообщающее об успехе или неудаче.

Синтаксис

client.connect(ip, port)

Параметры

ip  IP-адрес, к которому должен подключиться клиент (массив из 4 байтов)
port  порт, к которому должен подключиться клиент. Тип данных  int

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

Если подключение прошло успешно  true, если нет  false. Тип данных  boolean.

Пример

/*
  Веб-клиент

 Этот скетч при помощи GSM-модуля подключается к вебсайту. Если
 точнее, он загружает URL «http://arduino.cc» и отображает его 
 через монитор порта. 

 Цепь:
 * GSM-модуль, подключенный к Arduino
 * SIM-карта с активным тарифным планом

 Создан 8 марта 2012 года Томом Иго (Tom Igoe)

 http://arduino.cc/en/Tutorial/GSMExamplesWebClient

 */

// библиотеки:
#include <GSM.h>

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

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

// инициализируем экземпляр библиотеки:
GSMClient client;
GPRS gprs;
GSM gsmAccess; 

// URL, путь и порт (к примеру, «arduino.cc»):
char server[] = "arduino.cc";
char path[] = "/";
int port = 80; // порт 80 – это дефолтный порт для HTTP

void setup()
{
  // инициализируем последовательную коммуникацию:
  Serial.begin(9600);
  Serial.println("Starting Arduino web client.");  //  "Запуск веб-клиента Arduino."
  // состояние соединения:
  boolean notConnected = true;

  // запустив модем функцией GSM.begin(),
  // подключаем модуль к GPRS-сети при помощи APN, логина и пароля:
  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("connecting...");  //  "подключение..."

  // если подключение прошло успешно, сообщаем через монитор порта:
  if (client.connect(server, port))
  {
    Serial.println("connected");  //  "соединение установлено"
    // делаем HTTP-запрос:
    client.print("GET ");
    client.print(path);
    client.println(" HTTP/1.0");
    client.println();
  } 
  else
  {
    // если подключиться к серверу не удалось:
    Serial.println("connection failed");  //  "Соединение не удалось"
  }
}

void loop()
{
  // если у сервера есть какие-нибудь байты для считывания, 
  // считываем их и показываем через монитор порта:
  if (client.available())
  {
    char c = client.read();
    Serial.print(c);
  }

  // если сервер отключился, останавливаем работу клиента:
  if (!client.available() && !client.connected())
  {
    Serial.println();
    Serial.println("disconnecting.");  //  "отключение."
    client.stop();

    // вечно ничего не делаем:
    for(;;)
      ;
  }
}

См.также

  1. ready()
  2. connect()
  3. beginWrite()
  4. write()
  5. endWrite()
  6. connected()
  7. read()
  8. available()
  9. peek()
  10. flush()
  11. stop()

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