Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

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

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

{{#setlogo:ArduinoCommunityLogo.png}}

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Класс 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. }

См.также

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

  1. Arduino.cc - WiFi101SSLClient