Пример работы с библиотекой через протокол HTTPS на ESP8266

Пример работы с библиотекой через протокол HTTPS на ESP8266

Общие сведения

Для работы с сервисом через протокол HTTPS необходимо оборудование с поддержкой шифрования. На данный момент (Март 2020) это можно осуществить только на ESP32 и ESP8266. Данная статья рассматривает работу только с ESP8266.

Нам понадобится

  • Отладочная плата ESP8266.
  • Маршрутизатор с точкой доступа WiFi
  • Подключение к сети Интернет.

Подключение оборудования

Подключите ESP8266 к ПК

Скетч Arduino

Если Вы никогда не работали в среде разработки Arduino, по этой ссылке можно узнать как её установить и настроить.

Для работы в среде Arduino с платами ESP32 необходимо установить их поддержку

Установка поддержки плат ESP8266

Выберите пункт меню Файл -> Настройки (или на клавиатуре нажмите ctrl+,). В поле ввода "Дополнительные ссылки для Менеджера плат" вставьте ссылку https://arduino.esp8266.com/stable/package_esp8266com_index.json. Далее необходимо выбрать пункт меню Инструменты -> Плата: -> Менеджер плат. Откроется окно Менеджера плат. В поле поиска наберите ESP8266 и установите последнюю версию плат. Подробнее об установке плат можно узнать по ссылке.

Установка библиотеки

Для работы с библиотекой её необходимо установить в Arduino IDE. Для установки скачайте библиотеку и в Arduino IDE в меню выберите Скетч -> Подключить библиотеку -> Добавить .ZIP библиотеку и выберите скачанный .zip файл библиотеки. Подробнее об установке библиотек можно узнать по этой ссылке.

Скетч

// Подключаем бибилиотеки WiFi
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>

// Подключаем библиотеку сервиса
#include <iocontrol.h>

// Данные Вашей точки доступа WiFi
const char* ssid = "название_точки_доступа";
const char* password = "пароль_точки_доступа";

// Отпечаток сертификат SSL сайта iocontrol.ru, так же его можно получить из браузера,
// нажав на пиктограмму замка рядом с полем ввода адреса
const char fingerprint[] PROGMEM = "39 46 08 B8 98 E9 5A D5 81 CD C5 47 C6 E5 09 80 C0 3E 93 36";

// Создаём объект клиента класса WiFiClientSecure
WiFiClientSecure client;

// Создаём объект iocontrol, передавая в конструктор название панели и клиента
iocontrol mypanel("test1", client);

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

    // Ждём подключения
    while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");
        delay(500);
    }

    // Устанавливаем отпечаток SSL/TLS сертификата
    client.setFingerprint(fingerprint);

    /* Функция setHttps() переключает порт с 80 на 443
       и меняет процесс формирование строки запроса */

    // Переключаем режим работы объекта библиотеки
    mypanel.setHttps();

    // Вызываем функцию первого запроса к сервису
    mypanel.begin();

}

void loop()
{
    // Если данные в памяти обновлены...
    if (mypanel.readUpdate() == OK) {
        // ...выводим информацию о панели в последовательный порт
        Serial.println(mypanel.info());
    }
}

Выберите последовательный порт к которому подключена отладочная плата нажав в меню Инструменты -> Порт -> %НОМЕР ПОРТА%, затем нажмите на кнопку загрузка или на клавиатуре ctrl+u.

Откройте монитор последовательного порта нажав левой кнопкой мыши на пункт меню Инструменты -> Монитор порта или сочетанием клавиш CTRL+SHIFT+M. В монитор последовательного порта будет выводиться информация о созданной нами тестовой панели "test1", полученная через протокол HTTPS.

О сервисе
Библиотека
    Для работы с Arduino, Piranha, ESP32 или ESP8266
  • Скачать: ZIP, GitHub