Arduino:Библиотеки/WiFi101/Класс WiFiSSLClient

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

{{#setlogo:ArduinoCommunityLogo.png}}

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


Класс WiFiSSLClient[1]

Этот класс позволяет создавать клиента, который всегда подключается к указанным IP-адресу и порту при помощи SSL, даже если вместо client.connectSSL() используется client.connect(). Это нужно, если у вас библиотека, которая принимает только простой Client, но вы хотите, чтобы она использовала SSL, а названия функций в клиенте без SSL остались без изменений.

Синтаксис

WiFiSSLClient client;

Параметры

Нет.

Пример

  1 /*
  2 Этот пример создает объект для клиента, который подключается и
  3 передает данные только при помощи SSL. 
  4 
  5 Он совместим с функциями, используемыми, как правило, для простых
  6 подключений – вроде client.connect(host, port).
  7 
  8 Создан Артуро Гаудалупи (Arturo Guadalupi), последняя правка – в
  9 ноябре 2015 года.
 10 
 11 */
 12 
 13 #include <SPI.h>
 14 #include <WiFi101.h>
 15 
 16 char ssid[] = "yourNetwork"; //  SSID вашей сети (название) 
 17 char pass[] = "secretPassword";    // пароль к вашей сети (для WPA; для WEP используйте это значение в качестве ключа)
 18 int keyIndex = 0;            // индекс ключа для вашей сети (нужно только для WEP)
 19 
 20 int status = WL_IDLE_STATUS;
 21 // если не хотите использовать DNS (и сократить размер скетча)
 22 // используйте числовой IP вместо названия сервера:
 23 //IPAddress server(74,125,232,128);  // числовой IP для Google (без DNS)
 24 char server[] = "www.google.com";    // название сервера для Google (с DNS)
 25 
 26 // инициализируем клиент из библиотеки WiFi101 с IP-адресом и портом,
 27 // к которым вы хотите подключиться (порт 80 по умолчанию используется для HTTP):
 28 WiFiSSLClient client;
 29 
 30 void setup() {
 31   // инициализируем последовательную коммуникацию и ждем открытия порта: 
 32   Serial.begin(9600);
 33   while (!Serial) {
 34     ; // ждем подключения последовательного порта (нужно только для плат со штатным USB-портом) 
 35   }
 36 
 37   // проверяем наличие модуля:
 38   if (WiFi.status() == WL_NO_SHIELD) {
 39     Serial.println("WiFi shield not present");  // "WiFi-модуль не подключен"
 40     // дальше не продолжаем:
 41     while (true);
 42   }
 43 
 44   // пытаемся подключиться к WiFi-сети:
 45   while (status != WL_CONNECTED) {
 46     Serial.print("Attempting to connect to SSID: ");  // "Пытаемся подключиться к SSID: "
 47     Serial.println(ssid);
 48     // подключаемся к сети WPA/WPA2; при подключении к открытой 
 49     // или WEP-сети эту строчку нужно изменить: 
 50     status = WiFi.begin(ssid, pass);
 51 
 52     // ждем 10 секунд для подключения: 
 53     delay(10000);
 54   }
 55   Serial.println("Connected to wifi");  // "Подключились к WiFi"
 56   printWifiStatus();
 57 
 58   Serial.println("\nStarting connection to server...");  // "\nЗапуск подключения к серверу..."
 59   // если подключились, сообщаем об этом через монитор порта: 
 60   if (client.connect(server, 443)) {
 61     Serial.println("connected to server");  // "подключились к серверу"
 62     // делаем HTTP-запрос:
 63     client.println("GET /search?q=arduino HTTP/1.1");
 64     client.println("Host: www.google.com");
 65     client.println("Connection: close");  // "Соединение: закрыто"
 66     client.println();
 67   }
 68 }
 69 
 70 void loop() {
 71   // если есть какие-либо входящие байты, считываем их и показываем: 
 72   while (client.available()) {
 73     char c = client.read();
 74     Serial.write(c);
 75   }
 76 
 77   // если сервер отключился, останавливаем работу клиента:
 78   if (!client.connected()) {
 79     Serial.println();
 80     Serial.println("disconnecting from server.");  // "отключились от сервера"
 81     client.stop();
 82 
 83     // дальше вечно ничего не делаем:
 84     while (true);
 85   }
 86 }
 87 
 88 
 89 void printWifiStatus() {
 90   // показываем SSID сети, к которой подключились: 
 91   Serial.print("SSID: ");
 92   Serial.println(WiFi.SSID());
 93 
 94   // показываем IP-адрес нашего WiFi-модуля:
 95   IPAddress ip = WiFi.localIP();
 96   Serial.print("IP Address: ");  // "IP-адрес: "
 97   Serial.println(ip);
 98 
 99   // показываем мощность приемного сигнала:  
100   long rssi = WiFi.RSSI();
101   Serial.print("signal strength (RSSI):");  // "мощность сигнала (RSSI):"
102   Serial.print(rssi);
103   Serial.println(" dBm");
104 }

См.также

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