WiFi modes RU
Режимы работы WiFi:
- Модуль WiFi в режиме точки доступа (WiFi AP - Access Point)
- Модуль WiFi в режиме станции (WiFi STA - Station)
- Модуль WiFi в режимах точки доступа и WiFi станции одновременно (WiFi AP и WiFi STA)
- Модуль WiFi выключен
Настройка режимов WiFi модуля из UI
RESTful API для управления режимами WiFi модуля
OWLOS Source Code, управляющие WiFi модулем
Позволяет создать собственную WiFi сеть на основе модуля ESP8266 и подключать к ней другие WiFi станции, например, - Ваш телефон, ноутбук или другой модуль ESP8266. По умолчанию:
- поддерживает подключение до 4 станций (это значение можно менять).
- IP адрес точки доступа для собственной сети 192.168.4.1 (его можно изменить).
- OWLOS назначает имя точки доступа (SSID) "owlnodeNNN", где "NNN" - значение ID чипа ESP8266 chipID, и пароль "1122334455". При первом запуске OWLOS возьмите телефон или ноутбук и просканируйте доступные WiFi сети Вы должны увидеть примерно следующее:
- Monty_Python
- Brazil
- owlnode777452
- The_Meaning_of_Life
- где owlnode777452 - точка доступа, созданная OWLOS. Соединитесь с ней и введите пароль "1122334455". Если соединение окажется успешным - Вы сделали все правильно. Перед началом использования новой копии OWLOS мы настоятельно рекомендуем изменить имя точки доступа и пароль по умолчанию.
Позволяет модулю ESP8266 подключаться к WiFi точке доступа сети (созданной вашим роутером или другим модулем ESP8266, работающем в режиме точки доступа).
Позволяет использовать преимущество обоих режимов, строить по-настоящему гибкие системы.
- Вы можете создавать сети с разветвленной топологией, используя множество модулей ESP8266, "связанные" друг с другом в режимах AP-STA-STA-AP.
- режим точки доступа может использоваться как аварийный канал связи. Например, когда множество OWLOS узлов подсоединены к WiFi роутерам, то в случае сбоя в работе роутера у Вас будет канал связи с каждым OWLOS узлом, и Вы не потеряете контроль над системой.
На самом деле, такой режим WiFi модуля также применим. Дело в том, что Вы можете настроить драйверы устройств OWLOS и управляющий скрипт, после чего отключить модуль WiFi. Это дает следующие преимущества:
- Вы разгружаете CPU модуля ESP8266, нет необходимости обрабатывать стек сетевых протоколов и обслуживать канал связи.
- Ваше устройство более не доступно в сети ни как точка доступа, ни как станция, что безопасно. Да, Вы теряете возможность управления OWLOS по сети. Поэтому Вам нужно продумать способы включения WiFi модуля:
- при помощи встроенного скрипта, через определенный временной интервал, по нажатию на кнопку, подключенную к модулю ESP8266.
- можно изменить файл конфигурации WiFi OWLOS, загрузить его в SPIFFS модуля ESP8266 и нажать на кнопку "Сброс".
При выборе в UI меню "Настройки" для определенного OWLOS узла, в правом верхнем углу UI будет отображаться панель индикаторов состояния сети.
- Индикатор Online/Offline - доступность OWLOS узла по сети:
- зеленый цвет - узел доступен
- синий цвет - в данный момент узел опрашивается по сети
- серый цвет - узел недоступен
- Индикатор WiFi AP - состояние режима WiFi точки доступа (Access Point) для данного узла
- зеленый цвет - WiFi находится в режиме точки доступа
- красный цвет - WiFi находится в режиме точки доступа, но произошел сбой
- серый цвет - WiFi не находится в режиме точки доступа
- Индикатор WiFi ST - состояние режима WiFi станции (Station) для данного узла:
- зеленый цвет - WiFi находится в режиме станции
- красный цвет - WiFi находится в режиме станции, но произошел сбой (скорее всего - не удалось подключится к точке доступа)
- серый цвет - WiFi не находится в режиме станции 2&3. Индикаторы 2 и 3 зеленые - узел находится в смешанном режиме WiFi: доступен и как WiFi точка доступа, и как WiFi станция. 4,5,6. Индикаторы состояния RESTful, MQTT, ОТА. Их описание смотрите в соответствующих разделах. Их состояния зависят от индикаторов 1,2,3. В случае сбоя сначала проверьте доступность модуля WiFi и его режимы.
RESTful API | Описание |
---|---|
[host]/getdeviceproperty?id=wifi&property=wifiaccesspointavailable | получить состояние режима WiFi точки доступа (результат: 1 включен, 0 выключен) |
[host]/setdeviceproperty?id=wifi&property=wifiaccesspointavailable&value=B | установить состояние WiFi точки доступа (параметр value: 1 - включить, 0 - выключить)(результат: 1 - OK, иначе - код ошибки) |
[host]/getdeviceproperty?id=wifi&property=wifiaccesspointssid | получить SSID WiFi точки доступа (результат: текущий SSID или пустая строка) |
[host]/setdeviceproperty?id=wifi&property=wifiaccesspointssid&value=S | установить SSID WiFi точки доступа (параметр value: новый SSID)(результат: 1 - OK, иначе - код ошибки) |
[host]/getdeviceproperty?id=wifi&property=wifiaccesspointpassword | получить пароль WiFi точки доступа (результат: текущий пароль или пустая строка) |
[host]/setdeviceproperty?id=wifi&property=wifiaccesspointpassword&value=S | установить пароль WiFi точки доступа (параметр value: новый пароль)(результат: 1 - OK, иначе - код ошибки) |
[host]/getdeviceproperty?id=wifi&property=wifiaccesspointip | получить IP адрес WiFi точки доступа (результат: текущий IP адрес или пустая строка) |
[host]/setdeviceproperty?id=wifi&property=wifiaccesspointip&value=S | установить IP адрес WiFi точки доступа (параметр value: новый IP)(результат: 1 - OK, иначе - код ошибки) |
RESTful API | Описание |
---|---|
[host]/getdeviceproperty?id=wifi&property=wifiavailable | получить состояние режима WiFi станции (результат: 1 - включена, 0 - выключена) |
[host]/setdeviceproperty?id=wifi&property=wifiavailable&value=B | установить состояние WiFi станции (параметр value: 1 - включить, 0 - отключить)(результат: 1 - OK, иначе - код ошибки) |
[host]/getdeviceproperty?id=wifi&property=wifissid | получить SSID WiFi точки доступа, к которой должна подключится OWLOS WiFi станция (результат: SSID или пустая строка) |
[host]/setdeviceproperty?id=wifi&property=wifissid&value=S | установить SSID WiFi точки доступа для подключения OWLOS WiFi станции (параметр value: новый SSID)(результат: 1 - OK, иначе - код ошибки) |
[host]/getdeviceproperty?id=wifi&property=wifipassword | получить пароль WiFi точки доступа, к которой должна подключится OWLOS WiFi станция (результат: пароль или пустая строка) |
[host]/setdeviceproperty?id=wifi&property=wifipassword&value=S | установить пароль WiFi точки доступа для подключения OWLOS WiFi станции (параметр value: новый пароль)(результат: 1 - OK, иначе - код ошибки) |
[host]/getdeviceproperty?id=wifi&property=wifiip | получить IP адрес WiFi станции, выданный WiFi точкой доступа, например - роутером или другой ESP8266 (результат: IP адрес или пустая строка) |
[host]/setdeviceproperty?id=wifi&property=wifiip&value=S | установить IP адрес WiFi станции (параметр value: новый IP адрес)(результат: 1 - OK, иначе - код ошибки) |
[host]/getdeviceproperty?id=wifi&property=wifiisconnected | получить состояние режима WiFi станции. Отличается от wifiavailable тем, что опрашивает WiFi модуль на физическом уровне, не учитывая режимы WiFi уровня OWLOS (результат: 1 - включен, 0 - выключен) |
[host]/setdeviceproperty?id=wifi&property=wifiisconnected&value=B | установить состояние режима WiFi станции на физическом уровне, в обход OWLOS (параметр value: 1 - включить режим WiFi станции не зависимо от wifiavailable, 0 - выключить режим WiFi станции. При этом, если OWLOS установила wifiavailable=1, при проверке WiFi соединения WiFi модуль будет переподключен самой OWLOS. Эта API - хороший способ "встряхнуть" WiFi модуль, убрав "залипшие" WiFi сессии)(результат: 1 - OK, иначе - код ошибки) |
[host]/getdeviceproperty?id=wifi&property=connectedwifissid | получить SSID WiFi точки доступа, к которой подключена OWLOS WiFi станция. Отличается от wifissid тем, что возвращает имя физически подключенной точки доступа. В свою очередь wifissid устанавливает SSID точки доступа, к которой необходимо подключится. (результат: SSID или пустая строка) |
[host]/getdeviceproperty?id=wifi&property=wifirssi | получить уровень сигнала WiFi точки доступа, к которой подключена OWLOS WiFi станция (результат: уровень сигнала в dBm. Чем больше уровень сигнала, тем лучше: 77 dBm лучше, чем -80 dBm, идеальный сигнал -60 dBm .. 65 dBm) |
RESTful API | Описание |
---|---|
[host]/getdeviceproperty?id=wifi&property=wifimode | получить код текущего режима WiFi модуля (результат: код режима - целочисленное значение) |
[host]/getdeviceproperty?id=wifi&property=allwifimodes | расшифровать "код режима WiFi модуля", полученный от wifimode (результат - 0:WIFI_OFF; 1:WIFI_STA; 2:WIFI_AP; 3:WIFI_AP_STA; в формате "код режима":"расшифровка") |
[host]/getdeviceproperty?id=wifi&property=wifistatus | получить код статуса WiFi (результат: целочисленное значение) |
[host]/getdeviceproperty?id=wifi&property=wifistatustostring | по коду получить строковое значение статуса WiFi (результат: строка с расшифровкой WiFi статуса) |
[host]/getdeviceproperty?id=wifi&property=allwifistatuses | получить все коды статуса WiFi с расшифровкой (результат: строка "0:WL_IDLE_STATUS;1:WL_NO_SSID_AVAIL; 2:WL_SCAN_COMPLETED; 3:WL_CONNECTED; 4:WL_CONNECT_FAILED; 5:WL_CONNECTION_LOST; 6:WL_DISCONNECTED;" - список значений всех кодов и их строковая расшифровка) |
RESTful API | Описание |
---|---|
[host]/getdeviceproperty?id=wifi&property=scanwifinetworks | запускает поиск всех доступных WiFi точек доступа, этот процесс занимает достаточно длительное время (результат: количество найденных WiFi точек доступа) |
[host]/getdeviceproperty?id=wifi&property=wifinetworkscount | возвращает количество WiFi точек доступа, найденных предыдущим вызовом API scanwifinetworks (результат: количество найденных WiFi точек доступа или ноль, если API scanwifinetworks не была предварительно вызвана) |
[host]/getdeviceproperty?id=wifi&property=wifinetworksparameters | получить список свойств всех доступных WiFi точек доступа. Вызов возможен после вызова APIs scanwifinetworks или wifinetworkscount (результат: строка в специальном формате со списком свойств или пустая строка в случае ошибки) |
[host]/getdeviceproperty?id=wifi&property=allwifiencryptiontypes | получить список всех возможных типов шифрования WiFi точек доступа. (результат: строка символов с кодами и названиями типов шифрования WiFi точек доступа) |
необходимо сначала вызвать API scanwifinetworks и дождаться результата. Если результат не нулевой - вызвать API wifinetworksparameters. При этом API wifinetworkscount можно использовать как индикатор того, что поиск WiFi точек доступа уже осуществлялся ранее (тогда результат API wifinetworkscount не будет нулевым)
В UI свойства драйвера WiFi каждого узла находятся по пути "Настройки/[имя_узла]/Драйверы/WiFi" (Settings/[Node name]/Drivers/WiFi)
На стороне OWLOS узла режимами WiFi модуля управляет драйвер WiFi, файл [UnitProperties.cpp] (https://github.com/KirinDenis/owlos/blob/master/OWLOS/UnitProperties.cpp)
UI файлы:
- [settingsui.js] (https://github.com/KirinDenis/owlos/blob/master/OWLOS/data/settingsui.js) реализует панели настройки WiFi, панели индикаторов состояния сети (Находится в файле [settingsui.js (function onDeviceLoaded(..)]), а также выборку и отображение таблицы (tablewidget) со свойствами драйверов
- [devicescore.js] (https://github.com/KirinDenis/owlos/blob/master/OWLOS/data/devicescore.js) реализует получение данных о состоянии драйверов из OWLOS узла
- [tablewidget.js] (https://github.com/KirinDenis/owlos/blob/master/OWLOS/data/tablewidget.js) Виджет таблицы. В частности, используется для визуализации свойств драйверов.
Documentation English / Russian | Source Code | License/Лицензия