Описание
Метод объекта GSMClient устанавливает соединение с удаленным IP-адресом через указанный порт. Значение, возвращаемое функцией, содержит информацию об успешности выполнения данной операции. Функция поддерживает DNS-запросы, поэтому допускается использование доменного имени вместо IP-адреса.
Синтаксис
client.connect(ip, port);
client.connect(URL, port);
Параметры
client - объект класса GSMClient.
ip - IP-адрес, с которым необходимо установить соединение (массив из 4 байт)
URL - доменное имя сервера, с которым необходимо установить соединение (строка, например "arduino.cc")
port - порт, через который необходимо установить соединение
Возвращаемые значения
int - возвращает 0, если команда всееще выполняется, 1 - в случае успеха, 2 - если нет ресурсов.
Пример
/*
Веб-клиент
Данная программа с помощью GSM-платы расширения заходит на указанный веб-сайт.
В примере показана процедура скачивания страницы по адресу "http://arduino.cc/" и
вывод ее содержимого в программу Serial monitor через последовательный порт.
Схема:
* GSM-плата расширения, подключенная к Ардуино
* установленная SIM-карта
создано 8 Марта 2012
Автор - Tom Igoe
http://arduino.cc/en/Tutorial/GSMExamplesWebClient
*/
// библиотеки
#include <GSM.h>
// PIN-код
#define PINNUMBER ""
// Данные точки доступа APN
#define GPRS_APN "GPRS_APN" // замените на свою GPRS-точку доступа
#define GPRS_LOGIN "login" // замените на свой логин для подключения к GPRS
#define GPRS_PASSWORD "password" // замените на свой пароль для подключения к GPRS
// инициализируем экземпляры классов
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.");
// состояние соединения
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)==1)
{
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(;;)
;
}
}
Смотрите также:
конструктор GSMClient
ready()
beginWrite()
write()
endWrite()
connected()
read()
available()
peek()
flush()
stop()
Библиотека GSM
Справочник
Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.
Источник: http://arduino.cc/en/Reference/GSMClientConnect |