Arduino:Библиотеки/WiFi101/Класс WiFiClient/connectSSL()
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Функция connectSSL()[1]
Подключается к указанным IP-адресу и порту при помощи протокола SSL. Эта функция нужна, когда сервер осуществляет только HTTPS-подключения. Перед использованием функции connectSSL() в модуль Arduino WiFi Shield 101 нужно загрузить сертификат SSL, используемый этим сервером. Впрочем, модуль уже поставляется с сертификатами и должен быть сразу готов к использованию. Инструкций по смене и загрузке новых SSL-сертификатов пока нет, но разработчики обещают в скором времени их выложить.
Функция connectSSL() также поддерживает поиск DNS, если используется доменное имя (например, google.com).
Синтаксис
client.connectSSL(ip, port)
client.connectSSL(URL, port)
Параметры
ip – IP-адрес, к которому должен подключиться клиент (массив из 4 байтов)
URL – доменное имя, к которому должен подключиться клиент (например, arduino.cc). Тип данных – string
port – порт, к которому должен подключиться клиент. Тип данных ¬– int
Что возвращает
Если подключение выполнено успешно – true, если нет – false.
Пример
/*
Веб-клиент
Этот скетч подключается к веб-сайту через SSL-соединение
при помощи WiFi-модуля.
Этот пример написан для сети, использующей WPA-шифрование.
Если нужно WEP, соответствующим образом поменяйте функцию begin()
Цепь:
* Модуль WiFi101, подключенный к Arduino
Создан 13 июля 2010 года пользователем dlf (Metodo2 srl),
модифицирован 31 мая 2012 года Томом Иго (Tom Igoe)
*/
#include <SPI.h>
#include <WiFi101.h>
char ssid[] = "yourNetwork"; // SSID вашей сети (ее название)
char pass[] = "secretPassword"; // пароль к вашей сети (используйте его для WPA; для WEP используйте ключ)
int keyIndex = 0; // индекс ключа для вашей сети (нужно только для WEP)
int status = WL_IDLE_STATUS;
char server[] = "www.arduino.cc"; // адрес для сайта Arduino (при использовании DNS)
// инициализируем класс WiFiClient:
WiFiClient client;
void setup() {
// инициализируем последовательную коммуникацию и ждем открытия порта:
Serial.begin(9600);
while (!Serial) {
; // ждем подключения последовательного порта (нужно только для Leonardo)
}
// проверяем наличие WiFi-модуля:
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield not present"); // "WiFi-модуль отсутствует"
// дальше не продолжаем:
while (true);
}
// пробуем подключиться к WiFi-сети:
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: "); // "Пытаемся подключиться к SSID: "
Serial.println(ssid);
// подключаемся к сети WPA/WPA2 (при использовании открытой сети или WEP-сети эту строчку нужно поменять):
status = WiFi.begin(ssid, pass);
// 10 секунд ждем подключения:
delay(10000);
}
Serial.println("Connected to wifi"); // "Подключились к WiFi"
Serial.println("\nStarting connection to server..."); // "\n Начинаем подключаться к серверу..."
// если подключились, сообщаем об этом:
if (client.connectSSL(server, 443)) {
Serial.println("Connected to server"); // "Подключились к серверу"
// делаем HTTP-запрос:
client.println("GET /asciilogo.txt HTTP/1.1");
client.println("Host: www.arduino.cc"); // "Хост: www.arduino.cc"
client.println("Connection: close"); // "Соединение: закрыто"
client.println();
Serial.println("Request sent"); // "Запрос отправлен"
}
}
void loop() {
// если от сервера есть какие-нибудь входящие байты,
// считываем их и показываем через монитор порта:
while (client.available()) {
char c = client.read();
Serial.write(c);
}
// если сервер отключился, останавливаем работу клиента:
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting from server."); // "отключение от сервера"
client.stop();
// вечно ничего не делаем:
while (true);
}
}
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |