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