Web-интерфейс для управления ESP32

ESP32 создает подсеть, в которой ей (ESP32) присваивается постоянный адрес 192.168.4.1

Для использования WEB-интерфейса необходимо подключиться к WI-FI сети квадрокоптера и зайти в любой браузер, установленный на вашем компьютере. Настройка квадрокоптера через WEB-интерфейс производится путем отправки команд через адресную строку браузера.

Примечание

Пионер Мини поддерживает лишь одно активное подключение по WI-FI, поэтому, будьте внимательны, если у вас, например, включено автоматическое подключение к сетям на телефоне, с которого вы управляли квадрокоптером через приложение Jump, то с компьютера для входа в WEB-интерфейс вы подключиться не сможете.

Это же стоит помнить и при необходимости соединить в одну сеть несколько квадрокоптеров: вам обязательно понадобится внешняя точка доступа (телефон, роутер, компьюетр с режимом модема).

Важно

Обратите внимание, что для удобства чтения многие управляющие команды представлены в многострочном виде:

http://192.168.4.1/control
    ?function=wifi
    &command=connect
    &ssid=MyGildedCage
    &password=RagingHamster666"

При копировании в строке браузера могут образовываться пробелы:

http://192.168.4.1/control ?function=wifi &command=connect &ssid=MyGildedCage &password=RagingHamster666

Будьте внимательны! Пробелы недопустимы и подлежат удалению:

http://192.168.4.1/control?function=wifi&command=connect&ssid=MyGildedCage&password=RagingHamster666

Информация о версии

Запрос: http://192.168.4.1/info.

Ответ: JSON вида:

["0.2.8-59", "1.6.7481"]

Позиция

Описание

[1]

Версия прошивки ESP32

[2]

Версия прошивки платы, для которой ESP32 служит модулем связи (вероятнее всего - плата автопилота)

Ограничения: Может отсутствовать, если ESP32 не удалось получить информацию о версии


Информация о состоянии

Запрос: http://192.168.4.1/control

Ответ: JSON с описанием текущего состояния коптера вида:

{
    "video_record": false,
    "wifi_sta_connected": false,
    "wifi_sta_ip": [192, 168, 43, 6],
    "camera_frame_size":    [480, 320]
}

Поле

Тип

Значение

video_record

bool

true - запись ведется false - запись не ведется

wifi_ sta_connected

bool

Флаг, обозначающий наличие подключения ESP32 к Wi-Fi Access Point

wifi_sta_ip

array(int)

IP адрес, присвоенный ESP32 WiFi Access Point в виде JSON-массива целочисленных значений. Виден только в случае, если у ESP32 есть IP адрес в сети WiFi Access Point

camera_frame_size

array(int)

Текущее разрешение камеры


Управление состоянием - общие сведения

Управление производится отправкой GET-запросов вида: http://192.168.4.1/control?ARGUMENTS...

Ответ: JSON вида:

{
    "video_record": false,
    "wifi_sta_connected": true,
    "wifi_sta_ip": [192, 168, 43, 6],
    "success":  false,
    "camera_frame_size":    [480, 320],
    "message":  "Wrong input argument(s)"
}

Полученный JSON содержит инфромацию о результате выполнения команды, а также содержит информацию об актуальном состоянии ESP32.

Структура полученного JSON’а справедлива для всех команд управления, если не указано обратное.

Поле

Тип

Значение

success:

bool

true - команда выполнена успешно, false - команда не выполнена успешно

message:

string

Появляется в случае success: false. Содержит информацию о причине провала.


Запись видео

Запуск

Запрос:

http://192.168.4.1/control
    ?function=video_record
    &command=start
    &name=<FILE_NAME>

Параметры:

Параметр

Значение

name

Имя сохраняемого файла

Ограничения: - Максимальная длина - 8 символов

Остановка

Запрос:

http://192.168.4.1/control
    ?function=video_record
    &command=stop

Сохранение фото

Запрос:

http://192.168.4.1/control
    ?function=photo
    &name=<FILE_NAME>

Параметры:

Параметр

Значение

name=FILE_NAME

Имя сохраняемого файла

Ограничения: - Максимальная длина - 8 символов


Изменение разрешения камеры

Начиная с версии 1.0.0

Установка нужного разрешения устанавливается выполнением запроса вида:

http://192.168.4.1/control
    ?function=camera_frame_size
    &width=480
    &height=320

Параметр

Значение

function=camera_frame_size

width=WIDTH

Размер изображения по горизонтали

height=HEIGHT

Размер изображения по вертикали

Допустимые пары (WIDTH, HEIGHT):

  • (240, 240)

  • (320, 240)

  • (400, 296)

  • (480, 320)

  • (640, 480)

При попытке установить недопустимое разрешение будет сформирован JSON вида:

{
    "video_record": false,
    "wifi_sta_connected":   false,
    "camera_frame_size":    [480, 320],
    "success":  false,
    "message":  "Value is out of range, or unacceptible"
}

Wi-Fi Access Point

Начиная с версии 0.4.0

Подключение

Запрос с явным указанием IP адреса (не рекомендуется):

http://192.168.4.1/control
    ?function=wifi
    &command=connect
    &ssid=MyGildedCage
    &password=RagingHamster666
    &ip=10.0.0.42
    &gateway=10.0.0.1
    &netmask=255.255.255.0

Запрос без указания IP адреса (рекомендуется):

http://192.168.4.1/control
    ?function=wifi
    &command=connect
    &ssid=MyGildedCage
    &password=RagingHamster666

Параметр

Значение

function=wifi

command=connect

command=disconnect

Подключиться к сети

Отключиться от сети

ssid=NAME

NAME - Имя Wi-Fi сети

password=PASSWORD

PASSWORD - Пароль Wi-Fi сети

ip=IP

IP Присваиваемый адрес

gateway=GATEWAY

GATEWAY - IP маршрутизатора

netmask=NETMASK

NETMASK - маска подсети

Если хотя бы один параметр из ip, gateway, netmask (1) не указан или (2) указан неверно (ошибка в формате), он будет проигнорирован, и произойдет активация DHCP клиента. ESP32 будет искать DHCP сервер, чтобы тот присвоил IP.

Для того чтобы сменить Wi-Fi сеть, вызывается та же команда. Явный сброс соединения не требуется.

Отключение

http://192.168.4.1/control
    ?function=wifi
    &command=disconnect