Arduino:Библиотеки/WiFi101/Класс WiFiSSLClient
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Класс WiFiSSLClient[1]
Этот класс позволяет создавать клиента, который всегда подключается к указанным IP-адресу и порту при помощи SSL, даже если вместо client.connectSSL() используется client.connect(). Это нужно, если у вас библиотека, которая принимает только простой Client, но вы хотите, чтобы она использовала SSL, а названия функций в клиенте без SSL остались без изменений.
Синтаксис
WiFiSSLClient client;
Параметры
Нет.
Пример
/*
Этот пример создает объект для клиента, который подключается и
передает данные только при помощи SSL.
Он совместим с функциями, используемыми, как правило, для простых
подключений – вроде client.connect(host, port).
Создан Артуро Гаудалупи (Arturo Guadalupi), последняя правка – в
ноябре 2015 года.
*/
#include <SPI.h>
#include <WiFi101.h>
char ssid[] = "yourNetwork"; // SSID вашей сети (название)
char pass[] = "secretPassword"; // пароль к вашей сети (для WPA; для WEP используйте это значение в качестве ключа)
int keyIndex = 0; // индекс ключа для вашей сети (нужно только для WEP)
int status = WL_IDLE_STATUS;
// если не хотите использовать DNS (и сократить размер скетча)
// используйте числовой IP вместо названия сервера:
//IPAddress server(74,125,232,128); // числовой IP для Google (без DNS)
char server[] = "www.google.com"; // название сервера для Google (с DNS)
// инициализируем клиент из библиотеки WiFi101 с IP-адресом и портом,
// к которым вы хотите подключиться (порт 80 по умолчанию используется для HTTP):
WiFiSSLClient client;
void setup() {
// инициализируем последовательную коммуникацию и ждем открытия порта:
Serial.begin(9600);
while (!Serial) {
; // ждем подключения последовательного порта (нужно только для плат со штатным USB-портом)
}
// проверяем наличие модуля:
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"
printWifiStatus();
Serial.println("\nStarting connection to server..."); // "\nЗапуск подключения к серверу..."
// если подключились, сообщаем об этом через монитор порта:
if (client.connect(server, 443)) {
Serial.println("connected to server"); // "подключились к серверу"
// делаем HTTP-запрос:
client.println("GET /search?q=arduino HTTP/1.1");
client.println("Host: www.google.com");
client.println("Connection: close"); // "Соединение: закрыто"
client.println();
}
}
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);
}
}
void printWifiStatus() {
// показываем SSID сети, к которой подключились:
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
// показываем IP-адрес нашего WiFi-модуля:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: "); // "IP-адрес: "
Serial.println(ip);
// показываем мощность приемного сигнала:
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):"); // "мощность сигнала (RSSI):"
Serial.print(rssi);
Serial.println(" dBm");
}