Как использовать библиотеку ESP8266SecureClient для отправки HTTP-запросов с заголовками и данными?

Как подключить библиотеку ESP8266WiFi в Arduino IDE?
  • 7 февраля 2024 г. 3:48
Ответы на вопрос 2
Вопрос связан с двумя разными темами: использованием библиотеки для отправки HTTP-запросов и подключением библиотеки `ESP8266WiFi` в Arduino IDE.

1. Подключение библиотеки `ESP8266WiFi` в Arduino IDE:
Чтобы использовать библиотеку `ESP8266WiFi`, сначала вам необходимо установить пакет для ESP8266. Вот как это сделать:

   - Откройте Arduino IDE.
   - Перейдите в "Файл" > "Настройки" (или "Arduino" > "Preferences" на MacOS).
   - Найдите поле "Дополнительные ссылки для Менеджера Плат" и введите следующий URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json
   - Нажмите OK, чтобы закрыть окно настроек.
   - Теперь перейдите в "Инструменты" > "Плата" > "Менеджер плат…" и дождитесь окончания загрузки списка плат.
   - В поисковой строке введите "ESP8266" и установите появившийся пакет.
   - После установки Вы сможете выбрать вашу плату в "Инструменты" > "Плата".

После установки пакета для ESP8266, вы автоматически получите доступ ко всем стандартным библиотекам для ESP8266, включая `ESP8266WiFi`.

2. Отправка HTTP-запросов с заголовками и данными с использованием `ESP8266SecureClient` (вероятно, подразумевается `WiFiClientSecure`, так как `ESP8266SecureClient` не является стандартным классом в пакете ESP8266 для Arduino):

Так как `ESP8266SecureClient` не является стандартным классом, я предположу, что имеется в виду отправка HTTPS запросов с помощью `WiFiClientSecure`.

Для этого вам понадобится:

```cpp
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>

const char* ssid = "имя-сети";
const char* password = "пароль-сети";

const char* host = "your.https.host.com";
const int httpsPort = 443; // Por lo general, los servidores HTTPS escuchan en el puerto 443

WiFiClientSecure client;

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Соединение с Wi-Fi...");
  }

  Serial.println("Подключен к Wi-Fi");

  // Подключение к серверу HTTPS
  if (!client.connect(host, httpsPort)) {
    Serial.println("Соединение не установлено");
    return;
  }

  Serial.println("Соединение установлено с сервером");
  
  // Делаем HTTP-запрос:
  client.println("GET /path HTTP/1.1");
  client.println("Host: your.https.host.com");
  client.println("Connection: close");
  client.println(); // Примечание: Дважды println, чтобы завершить HTTP-запрос

  // Чтение ответа
  while (client.connected()) {
    String line = client.readStringUntil('\n');
    if (line == "\r") {
      // Строка пустая, и это разделитель между заголовками и содержимым
      break;
    }
  }
  String line = client.readString(); // Прочитать содержимое ответа
  Serial.println(line);

  client.stop(); // Завершить соединение
}

void loop() {
  // Ваш основной код
}
```

В примере выше мы включаем библиотеку `WiFiClientSecure`, инициализируем соединение с Wi-Fi сет
https://dzen.ru/a/ZBC7dQKVTTCDHm0y 
Ну гуглится же на каждом углу. Что не так например с этой инструкцией?
Похожие вопросы