Что такое режим клиента sta. Управление нагрузкой на NodeMCU с помощью мобильного приложения

Функции библиотеки WiFi ESP8266 очень схожи с функциями библиотеки для обычного WiFi шилда.

Список отличий:

  • WiFi . mode (m ) : выбрать режим WIFI_AP (точка доступа), WIFI_STA (клиент), или WIFI_AP_STA (оба режима одновременно).
  • WiFi . softAP (ssid ) создает открытую точку доступа
  • WiFi . softAP (ssid , password ) создает точку доступа с WPA2-PSK шифрованием, пароль должен быть не менее 8 символов
  • WiFi . macAddress (mac ) позволяет получить MAC адрес в режиме клиента
  • WiFi . softAPmacAddress (mac ) позволяет получить MAC адрес в режиме точки доступа
  • WiFi . localIP () позволяет получить IP адрес в режиме клиента
  • WiFi . softAPIP () позволяет получить IP адрес в режиме точки доступа
  • WiFi . RSSI () пока не реализована
  • WiFi . printDiag (Serial ) ; выводит диагностическую информацию
  • Класс WiFiUDP поддерживает прием и передачу multicast пакетов в режиме клиента. Для передачи multicast пакета используйте вместо udp . beginPacket (addr , port ) функцию udp . beginPacketMulticast (addr , port , WiFi . localIP () ) . Когда вы ожидаете multicast пакеты, используйте вместо udp . begin (port ) функцию udp . beginMulticast (WiFi . localIP () , multicast_ip_addr , port ) . Вы можете использовать udp . destinationIP () для определения того, был ли пакет отправлен на multicast адрес или предназначался именно вам. Multicast функции не поддерживаются в режиме точки доступа.

WiFiServer , WiFiClient , и WiFiUDP работаю точно так же, как и с библиотекой обычного WiFi шилда. Четыре примера идет в комплекте с этой библиотекой.

Тикер

Библиотека Ticker может быть использована для выполнения периодически повторяющихся событий через определенное время. Два примера включено в поставку.

В настоящее время не рекомендуется блокировать операции ввода-вывода (сеть, последовательный порт, файловые операции) в callback функциях тикера. Вместо блокирования устанавливайте флаг в callback функциях и проверяйте этот флаг в основном цикле.

EEPROM

Эта библиотека немного отличается от стандартной Arduino EEPROM. Необходимо вызвать функцию EEPROM . begin (size ) каждый раз перед началом чтения или записи, размер (указывается в байтах) соответствует размеру данных, которые вы намереваетесь использовать в EEPROM. Размер данных должен быть в диапазоне от 4 до 4096 байт.

Функция EEPROM . write не производит запись данных во флеш память немедленно, вы должны использовать функцию EEPROM . commit () каждый раз, когда вы хотите сохранить данные в память. Функция EEPROM . end () тоже производит запись данных, а также освобождает оперативную память от данных, запись которых произведена. Библиотека EEPROM использует один сектор во флеш памяти, начиная с адреса 0x7b000 для хранения данных. В поставку включено три примера работы с EEPROM.

I2C (Библиотека Wire)

Реализован только режим ведущего, частота ориентировочно до 450 кГц. Перед использованием шины I2C, нужно выбрать пины SDA и SCL путем вызова функции Wire . pins (int sda , int scl ) , например Wire . pins (0 , 2 ) для модуля ESP-01. Для других модулей пины по умолчанию 4(SDA) и 5(SCL).

SPI

Библиотека SPI поддерживает весь Arduino SPI API, включая транзакции, в том числе фазу синхронизации (CPHA). Clock polarity (CPOL) пока не поддерживается (SPI_MODE2 и SPI_MODE3 не работают).

ESP8266 API

Поддержка функций, специфичных для ESP8266 (режим глубокого сна и сторожевой таймер), реализована в объекте ESP . Функция ESP . deepSleep (microseconds , mode ) переводит модуль в режим глубокого сна. Параметр mode может принимать значения: WAKE_DEFAULT , WAKE_RFCAL , WAKE_NO_RFCAL , WAKE_RF_DISABLED . GPIO16 должен быть соединен с RESET для выхода из режима глубокого сна.

Функции ESP . wdtEnable () , ESP . wdtDisable () , и ESP . wdtFeed () управляют сторожевым таймером.

ESP . reset () перезагружает модуль

ESP . getFreeHeap ()

ESP . getFreeHeap () возвращает размер свободной памяти

ESP . getChipId () возвращает ESP8266 chip IDE, int 32bit

ESP . getFlashChipId () возвращает flash chip ID, int 32bit

ESP . getFlashChipSize () возвращает размер флеш памяти в байтах, так, как его определяет SDK (может быть меньше реального размера).

ESP . getFlashChipSpeed (void ) возвращает частоту флеш памяти, в Гц.

ESP . getCycleCount () возвращает количество циклов CPU с момента старта, unsigned 32-bit. Может быть полезна для точного тайминга очень коротких операций

Библиотека OneWire

Библиотека OneWire была адаптирована для ESP8266 (внесены изменения в OneWire.h) Если у вас установлена библиотека OneWire в папку Arduino/libraries, то будет использоваться именно она, а не из комплекта поставки.

mDNS библиотека ESP8266mDNS

Библиотека позволяет реализовать в вашей программе ответ на мультикастовые DNS запросы для локальной зоны, например “esp8266.local”. В настоящее время поддерживается только одна зона. Позволяет обращаться к WEB серверу ESP8266 по имени, а не только по IP адресу. Дополнительную информацию вы можете найти в прилагаемом примере и в файле readme данной библиотеки.

Библиотека Servo

Библиотека позволяет управлять сервомоторами. Поддерживает до 24 сервоприводов на любых доступных GPIO. По умолчанию первые 12 сервоприводов будут использовать Timer0 и будут независимы от любых других процессов. Следующие 12 сервоприводов будут использовать Timer1 и будут разделять ресурсы с другими функциями, использующими Timer1. Большинство сервоприводов будут работать с управляющим сигналом ESP8266 3,3в, но не смогут работать на напряжении 3,3в и потребуют отдельный источник питания. Не забудьте соединить общий провод GND этого источника с GND ESP8266

  • DHT11 – используйте для инициализации следующие параметры DHT dht (DHTPIN , DHTTYPE , 15 )
  • NeoPixelBus – Arduino NeoPixel библиотека для esp8266
  • PubSubClient Библиотека MQTT by @Imroy. Статья на нашем сайте об этой библиотеке
  • Мной была заказана самая простая плата с ESP8266 - ESP-01, выглядит она так:

    В старой ревизии платы на разьем были выведены только VCC, GND, URXD и UTXD.
    В последней ревизии добавились RST, GPIO0, GPIO2 и CH_PD.

    Всего есть 11 модификаций плат, различающихся количеством выводов и вариантом исполнения:
    ESP-01: PCB antenna, after matching the distance to do about the open 400 meters, easy to use.
    ESP-02: SMD package for submission limit, the antenna can be drawn with the IPX header casing.
    ESP-03: SMD package, the built-in ceramic antenna technology, all available IO leads.
    ESP-04: SMD package, customers can customize the antenna types, flexible design, all the IO leads.
    ESP-05: SMD package, only leads to serial and RST pin, small external antenna.
    ESP-06: bottom mount technology, leads all the IO ports, with metal shielding shell, can be had FCC CEcertification, recommended.
    ESP-07: Semi-hole chip technology, all the IO leads, with metal shielding shell, can be had FCC CE certifiedIPX external antenna, can also be built-in ceramic antenna.
    ESP-08: with the ESP-07, except that the antenna is in the form of customers can define their own.
    ESP-09: Ultra-small size package, only 10 * 10 mm, four-layer board technology 1M bytes!..
    ESP-10: SMD interface, narrow-body design, 10 mm wide, suitable for light with controller.
    ESP-11: SMD interface, ceramic antenna, small volume.

    Распиновка разъёма ESP-01:

    Назначение выводов платы ESP-01 такое:
    VCC, GND - питание платы (+3.3В);
    URXD,UTXD - выводы RS232 толерантны к 3.3В
    RST - Аппаратный сброс (reset)
    GPIO0, GPIO2 - выводы GPIO
    CH_PD - Chip enable, для работы должен быть подключен к +3.3В.

    Для переключения в режим обновления прошивки нужно подать низкий уровень на GPIO0 и высокий на CH_PD.

    Для подключения платы ESP-01 к ПК я использовал USB-to-RS232 преобразователь на FT232R с выходами TTL 3.3В, можно использовать например такой .
    Питание ESP-01 нужно строго 3.3В, поэтому пришлось воспользоваться DC-DC преобразователем, можно использовать такой .

    С базовой прошивкой плата ESP-01 управляется AT командами, поэтому нам потребуется программа-терминал, я использовал CoolTerm .

    Возможно 2 варианта использования модуля:
    1. Использование платы ESP-01 совместно с доп.микроконтроллером, который будет управлять модулем по UART.
    2. Написание собственной прошивки для чипа ESP8266 и его использование как самодостаточного устройства.

    Естественно более выгодным является 2-й вариант, тем более потенциал чипа ESP8266 достаточно велик.

    Для начала мы попробуем вариант №1, то есть управлять платой ESP-01 через RS232.

    Схема подключения очень простая:
    Вывод VCC - питание платы (+3.3В);
    Вывод GND - общий;
    Выводы URXD,UTXD - подключаем к конвертеру USB-to-RS232 (в режиме 3.3В)
    Вывод CH_PD - подключаем к питанию платы (+3.3В);

    В терминале (CoolTerm) устанавливаем скорость COM-порта 57600. Установить нужно именно такую скорость, т.к. если в чипе ESP8266 стоит старая прошивка (а скорее всего это так и есть), то он будет работать только с такой скоростью порта.

    Жмем Connect, вводим команду AT, в ответ должно прийти OK. Если все так, то плата работает, можно двигаться дальше.

    Процедура обновления прошивки

    Вводим команду AT+GMR - проверка версии AT и SDK, в ответ выдает 0016000902, где 0016 - версия SDK, 0901 - версия AT

    На текущий момент (06.11.2014) уже доступна прошивка 0018000902 (Версия SDK - 0018, в версия AT - 0902)

    Теперь можно и нужно обновить прошивку:
    1. Качаем утилиту XTCOM отсюда .
    2. Качаем прошивку ESP_8266_v0.9.2.2 AT Firmware.bin отсюда
    3. Отключаем питание платы, вывод GPIO0 соединяем с общим проводом, включаем питание.
    4. Запускаем XTCOM_UTIL.exe, переходим в Tools -> Config Device, выбираем COM-порт к которому подключена плата, ставим скорость порта 57600, жмем Open, потом Connect, программа должна сказать «Connect with target OK!», закрываем окно настроек. Переходим в меню API TEST, выбираем (4) Flash Image Download, указываем путь к файлу «ESP_8266_v0.9.2.2 AT Firmware.bin», адрес оставляем 0x00000, жмем DownLoad. Должна начаться загрузка прошивки, по окончании будет выдано сообщение.
    5. Отключаем питание платы, вывод GPIO0 отсоединяем от общего провода, включаем питание, запускаем терминал (ВНИМАНИЕ! Меняем скорость порта на 9600), проверяем готовность платы командой AT и версию прошивки командой AT+GMR.

    После обновления до версии 0018000902 изменится дефолтная скорость COM-порта с 57600 на 9600, но эту скорость в новой прошивке теперь можно задать командой AT+CIOBAUD. Смотрим AT+CIOBAUD=? доступные скорости и ставим командой AT+CIOBAUD=115200 скорость 115200, в ответ должно выдать ОК. Даем команду на рестарт: AT+RST. Меняем скорость порта в программе-терминал на 115200.

    Пример:
    AT OK AT+CIOBAUD=? +CIOBAUD:(9600-921600) OK AT+CIOBAUD=115200 BAUD->115200 OK

    Настройка подключения к Wi-Fi

    Теперь попробуем подключить нашу плату ESP-01 к Wi-Fi точке доступа.
    Выполняем следующие команды:
    1. Устанавливаем режим работы Wi-Fi командой: AT+CWMODE= Доступны следующие режимы: 1 - STA, 2 - AP, 3 - BOTH
    Пример:
    AT+CWMODE=1 OK 2. Смотрим список точек доступа командой: AT+CWLAP
    Пример
    AT+CWLAP +CWLAP:(3,"WiFi-DOM.ru-0474",-85,"c8:d3:a3:30:17:40",8) +CWLAP:(4,"Intersvyaz_516C",-89,"2c:ab:25:ff:51:6c",10) +CWLAP:(4,"pletneva",-96,"f8:1a:67:67:2b:96",11) +CWLAP:(4,"Test",-69,"64:70:02:4e:01:4e",13) OK В скобках указывается: SECURITY, SSID, RSSI, BSSID, CHANNEL
    SECURITY может принимать значения:
    0 - OPEN, 1 - WEP, 2 - WPA-PSK, 3 - WPA2-PSK, 4 - MIXED (WPA-WPA2-PSK)
    3. Подключаемся в нашей AP командой: AT+CWJAP="SSID","PASSWORD" Пример:
    AT+CWJAP="Test","habrahabr" OK Подключение длится 2-5 секунд, после чего в случае успешного выполнения появится OK.
    3. Посмотрим какой IP адрес получила наша плата командой: AT+CIFSR
    AT+CIFSR 192.168.1.104 OK Отключение от точки доступа делается командой AT+CWQAP.
    Адрес получен, можно двигаться дальше.

    Плата ESP-01 может выступать в качестве Soft-AP, для включения этого режима выполняем следующие команды:
    1. Отключаемся от точки доступа: AT+CWQAP.
    2. Меняем режим работы Wi-Fi командой: AT+CWMODE=2
    3. Создаем свою AP командой: AT+CWSAP="SSID","PASSWORD",CHANNEL,SECURITY Пример:
    AT+CWSAP="Test2","habrahabr",10,4 OK 4. Пробуем подключиться в нашей AP с компьютера. Посмотрим результат:


    Как видно на картинке скорость только 54Мбит/с и еще меня смущают адреса DNS серверов, думаю они явно китайские, поставить свои через AT-команды нельзя.
    Адрес AP можно узнать командой: AT+CIFSR
    Пример:
    AT+CIFSR 192.168.4.1 OK Список клиентов нашей AP можно посмотреть командой: AT+CWLIF
    Пример:
    AT+CWLIF 192.168.4.101,f4:ec:38:8d:05:62 OK

    Настройка режима TCP-сервер

    На плате ESP-01 можно запустить TCP-сервер для приема-отправки данных или она может выступать TCP-клиентом для приема-отправки данных на сервер.
    Для запуска TCP-сервера выполним следующие команды:
    1. Устанавливаем режим передачи командой AT+CIPMODE= mode = 0 - not data mode (сервер может отправлять данные клиенту и может принимать данные от клиента)
    mode = 1 - data mode (сервер не может отправлять данные клиенту, но может принимать данные от клиента)
    Пример:
    AT+CIPMODE=0 OK 2. Устанавливаем возможность множественных соединений: AT+CIPMUX= mode 0 - single connection
    mode 1 - multiple connection
    Проверить режим соединений можно командой AT+CIPMUX?
    Пример:
    AT+CIPMUX=1 OK AT+CIPMUX? +CIPMUX:1 OK 3. Запускаем сервер на порту 8888: AT+CIPSERVER= [,] mode 0 - to close server
    mode 1 - to open server
    Пример:
    AT+CIPSERVER=1,8888 OK
    Теперь можно подключиться к ESP-01 и отправить-принять какие-нибудь данные. Для подключения будем использовать утилиту
    Запускаем java -jar SocketTest.jar, на вкладке Client вводим адрес и порт ESP-01, жмем Connect. Если подключение будет успешным, то в терминале появится сообщение Link и в SocketTest станет активной строка Message и кнопка Send.
    Посмотреть список активных подключений к ESP-01 можно командой AT+CIPSTATUS
    Пример:
    AT+CIPSTATUS STATUS:3 +CIPSTATUS:0,"TCP","192.168.1.100",44667,1 OK Закрыть активное соединение можно командой AT+CIPCLOSE= или все соединения AT+CIPCLOSE без параметров.
    Пример:
    AT+CIPCLOSE=0 OK Unlink 4. Отправляем данные с ESP-01 на ПК
    ,
    Пример:
    AT+CIPSEND=0,16 > Ping Habrahabr SEND OK 5. Отправляем тестовое сообщение с ПК:


    В терминале появляется строка +IPD,0,16:Ping Habrahabr Сообщение принято.
    Формат принятых данных такой:
    Для режима Single Connection (CIPMUX=0): +IPD,: Для режима Multiple Connection (CIPMUX=1): +IPD,,:

    Настройка режима TCP-клиента

    Теперь поменяем роли, ПК - сервер, ESP-01 - клиент, пробуем:
    1. Рестартуем плату AT+RST
    2. Устанавливаем режим передачи командой AT+CIPMODE= mode = 0 - not data mode (клиент может отправлять данные серверу и может принимать данные от сервера)
    mode = 1 - data mode (клиент не может отправлять данные серверу, но может принимать данные от сервера)
    Пример:
    AT+CIPMODE=0 OK 3. Режим соединений ставим Multiple connection: AT+CIPMUX=1
    4. На ПК в SocketTest запускаем сервер на порту 8888
    5. Запускаем клиента на ESP-01
    Для режима Single connection (+CIPMUX=0) формат такой AT+CIPSTART=,,Для режима Multiple connection (+CIPMUX=1) формат такой AT+CIPSTART=,,Возможные значения параметров:
    id = 0-4
    type = TCP/UDP
    addr = IP адрес
    port= порт
    Пример:
    AT+CIPMUX=1 OK AT+CIPSTART=0,"TCP","192.168.1.100",8888 OK Linked 6. Отправляем данные с ESP-01 на ПК
    Для режима Single connection (+CIPMUX=0) отправка идет так: AT+CIPSEND= Для режима Multiple connection (+CIPMUX=1) отправка идет так: AT+CIPSEND=, После выполнения AT+CIPSEND нужно ввести текст, завершение ввода и отправка осуществляется по Enter.
    Пример:
    AT+CIPSEND=0,16 > Ping Habrahabr SEND OK
    Пример отправки и получения данных:

    Полезная документация:
    Описание AT-команд (На китайском)
    Спецификация на чип ESP8266 (На китайском)
    Спецификация на чип ESP8266 (На английском)

    Заключение:

    Как мы видим, плата успешно справляется с поставленными задачами, а именно - подключение к Wi-Fi в качестве клиента, может выступать в роли Soft-AP, на плате можно поднять TCP-сервер для приема-отправки данных, а можно быть TCP-клиентом.
    В данной статье мы рассмотрели работу с платой ESP-01 через RS232, в качестве управляющего контроллера выступал ПК, можно без проблем подключить плату Arduino или любой микроконтроллер с UART и выполнять отправку-прием данных через Wi-Fi сеть между контроллерами или ПК.

    В следующей статье (как позволит карма) я попробую рассказать о принципах написания собственных прошивок для чипа ESP8266, тем самым плата ESP-01 будет полностью автономной, ей будет не нужен доп.контроллер для управления всеми параметрами. Мы попробуем подключить к плате различные периферийные устройства.

    Буду рад ответить на вопросы, хотя до конца я еще не узучил плату ESP-01.

    В которой отражены наиболее важные изменения в новой редакции стандарта по сравнению с действующим 802.11ac.

    Обратите внимание, что 802.11ax будет работать в полосах частот 2.4 и 5 ГГц (ранее в 802.11ac от диапазона 2.4 ГГц пытались отказаться). Также, в новой спецификации будет в четыре раза увеличено количество поднесущих FFT OFDM. Но наиболее важным изменением является то, что с выходом 802.11ax интервал между поднесущими будет также сокращен в четыре раза, и при этом существующие полосы пропускания каналов остались без изменений:

    Рисунок 1 - Интервалы между поднесущими в 802.11ax

    Таким образом, на рисунке выше мы видим более узкие интервалы между поднесущими. Плюсом к изменениям в OFDM, также добавляется 1024-QAM модуляция, что позволит увеличить максимальную (теоретическую максимально возможную) скорость передачи данных почти до 10 Гбит/сек.

    Перейдем к рассмотрению технологий 802.11ax на физическом уровне

    В 802.11ax будет доработан механизм beamforming’a (автоматического формирования диаграммы направленности в сторону абонента), по сравнению с более ранней версией 802.11ac. В соответствии с этим механизмом, формирователь диаграммы направленности инициирует процедуру зондирования канала с помощью Null Data Packet. При этом он измеряет уровень активности в канале и использует эту информацию для вычисления матрицы каналов. Затем матрица каналов используется для фокусировки радиочастотной энергии в сторону каждого отдельного пользователя. Совместно с beamforming, стандарт 802.11ax будет поддерживать две новые для Wi-Fi многопользовательские технологии: Multi-User MIMO и Multi-User OFDMA.

    Многопользовательские MIMO и OFDMA

    В стандарте 802.11ax будет определено два режима работы:

    Single User (один пользователь). В этом режиме беспроводные станции STA посылают и принимают данные точек доступа AP по одному, как только они получают доступ к среде. Механизм доступа был описан в .

    Multi-User (многопользовательский режим). Этот режим позволяет точке доступа одновременно работать с несколькими STA. Стандарт делит этот режим дальше на многопользовательский Downlink и Uplink.

    Downlink M ulti- U ser позволяет точке доступа AP одновременно передавать данные нескольским беспроводным STA, которые обслуживаются в зоне радиопокрытия AP. Существующий стандарт 802.11ac уже определяет эту функцию. А вот многопользовательский Uplink является нововведением.

    Uplink M ulti- U ser позволяет точке доступа AP одновременно принимать данные от нескольких беспроводных станций STA. Это новая возможность стандарта 802.11ax, которая не существовала ни в одной из предыдущих версий стандарта Wi-Fi.

    В многопользовательском режиме работы стандарт также определяет два разных способа мультиплексирования большего числа пользователей в определенной области: Multi-User MIMO и OFDMA. Для обоих этих методов точка доступа AP выступает в качестве центрального контроллера, аналогично тому, как сотовая базовая станция LTE управляет мультиплексированием пользователей в зоне обслуживания. Рассмотрим MU-MIMO и OFDMA более подробно.

    Многопользовательский MIMO

    Устройства 802.11ax будут использовать методы формирования диаграммы направленности (заимствованные из 802.11ac) для одновременного направления пакетов к нескольким пространственно разнесенным пользователям. То есть, точка доступа AP будет вычислять матрицу каналов для каждого пользователя и управлять параллельными лучами для разных пользователей, причем каждый луч будет содержать пакеты для своего конкретного пользователя.

    В 802.11ax поддерживается одновременная отправка до восьми многопользовательских MIMO-потоков. Кроме того, каждый поток MU-MIMO может иметь собственный MCS (скорость передачи и степень модуляции). К разным пользователям может быть организовано произвольное количество потоков. При использовании пространственного мультиплексирования MU-MIMO, точки доступа можно будет сравнить с коммутатором Ethernet, имеющим несколько портов. Каждый отдельный порт - это отдельный поток MU-MIMO. При этом, до каждого отдельного абонента может быть "проброшено" несколько потоков:


    Рисунок 2 - MU-MIMO Beamforming для обслуживания множества, пространственно разнесенных пользователей

    Новой функциональностью в 802.11ax является MU-MIMO Uplink. Как было указано выше, точка доступа AP может инициировать одновременный прием пакетов от каждой из STA посредством триггерного кадра. Когда несколько STA в ответ на триггерный кадр передают свои собственные пакеты, точка доступа AP применяет матрицу каналов к принятым лучам и отделяет информацию, содержащуюся в каждом луче. Так AP также может инициировать многопользовательский прием одновременный от всех абонентских STA в сети:


    Рисунок 3 -

    Многопользовательский OFDMA

    В стандарте 802.11ax появится новая для Wi-Fi, заимствованная из сетей 4G, технология мультиплексирования большого количества абонентов в общей полосе пропускания: Orthogonal Frequency Division Multiple Access (OFDMA). Эта технология основывается на OFDM, которая уже используется в 802.11ac. Суть ее в том, что OFDMA в 802.11ax позволяет дополнительно "нарезать" стандартные каналы шириной 20, 40, 80 и 160 МГц на более мелкие. Таким образом, происходит разделение каналов на более мелкие подканалы с предопределенным количеством поднесущих. Как и в LTE, в стандарте 802.11ax наименьший подканал называется Resource Unit (RU), имеющий минимальный размер в 26 поднесущих. Для наглядности, на рисунке ниже изображено разделение частотных ресурсов для одного пользователя с использованием OFDM (слева) и мультиплексирование четырех пользователей в одном канале с использованием OFDMA (справа):


    Рисунок 4 -

    В загруженных средах, где многие пользователи обычно будут неэффективно бороться за использование канала, новый для Wi-Fi механизм OFDMA обслуживает их одновременно с меньшим, но выделенным специально для пользователя подканалом, что улучшает среднюю пропускную способность для каждого отдельного пользователя.

    На рисунке ниже показано, как система 802.11ax может мультиплексировать канал, используя разные размеры RU. Обратите внимание, что наименьшее разделение канала вмещает до 9 пользователей на каждые 20 МГц полосы пропускания:


    Рисунок 5

    Разделение каналов Wi-Fi с использованием каналов шириной 40 МГц:


    Рисунок 6

    Разделение каналов Wi-Fi с использованием каналов шириной 80 МГц:


    Рисунок 7

    В следующей таблице показано количество пользователей (для различной ширины каналов), которые теперь могут получать частотно-мультиплексированный доступ OFDMA:

    Количество подканалов RU Ширина канала 20 МГц Ширина канала 40 МГц Ширина канала 80 МГц Ширина канала 160 МГц
    26 9 18 37 74
    52 4 8 16 32
    106 2 4 8 16
    242 1-SU/MU-MIMO 2 4 8
    484 N/A 1-SU/MU-MIMO 2 4
    966 N/A N/A 1-SU/MU-MIMO 4
    2x966 N/A N/A N/A 1-SU/MU-MIMO

    Работа Multi-User Uplink

    Как было отмечено выше, в 802.11ax появится возможность одновременной передачи пакетов от нескольких абонентов к точке доступа. Для координации работы MU-MIMO или Uplink OFDMA, точка доступа AP передает триггерный кадр всем пользователям. Этот кадр указывает количество пространственных потоков и / или параметры OFDMA (частоту и размеры RU) каждого пользователя. Триггерный кадр также содержит информацию об управлении мощностью, так что отдельные пользователи могут увеличивать или уменьшать свою передаваемую мощность, стремясь уравнять мощность, получаемую точкой доступа AP от всех пользователей, и улучшать тем самым качество приема кадров. AP также инструктирует всех пользователей, когда начинать и останавливать передачу. AP отправляет многопользовательский триггерный кадр, который указывает всем пользователям точный момент времени, когда они все должны начать передавать данные, и точную продолжительность их кадров, чтобы гарантировать, что все они завершат передачу одновременно. Как только AP получает кадры от всех пользователей, она отправляет обратно ACK блок, говорящий о завершении передачи:


    Рисунок 8 - Координация многопользовательской работы устройств в Wi-Fi-сети

    Заключение

    Одной из основных целей стандарта 802.11ax является обеспечение более высокой средней пропускной способности на каждого пользователя (в среднем в 4 раза) в плотных беспроводных сетях. С этой целью, устройства 802.11ax поддерживают работу многопользовательских технологий MIMO и OFDMA. Также добавлена возможность одновременной передачи от нескольких устройств точке доступа AP, тем самым планируется снижение времени ожидания и простоя оборудования из-за неудачных попыток захватить среду передачи. В теории все выглядит, как всегда, четко и красиво, однако, какой эффект будет на практике - покажет время. Пока же можно с уверенностью сказать лишь то, что эффект от 802.11ax будет только в том случае, если в сети все устройства будут поддерживать новый стандарт. Иначе, должно будет пройти еще несколько лет, прежде чем мы перейдем от старого доброго Wi-Fi (с его зависаниями в крупных сетях) к эффективному 802.11ax.

    В данной статье показан пример использования платы NodeMCU. А именно управление нагрузкой с помощью релейного модуля из 4 реле и приложения на мобильный телефон андроид.

    Подключаем все контакты по схеме

    После подключения всех компонентов необходимо скопировать программный код приведенный ниже и вставить его в программу Arduino IDE и загрузить этот программный код в саму плату Arduino.

    #include // Имя и пароль вашей сети WiFi const char* ssid = "test"; const char* password = "test"; // Создаем сервер и порт для прослушки 80 WiFiServer server(80); void setup() { Serial.begin(115200); delay(10); // Подготовка GPIO pinMode(5, OUTPUT); digitalWrite(5, 1); pinMode(4, OUTPUT); digitalWrite(4, 1); pinMode(0, OUTPUT); digitalWrite(0, 1); pinMode(2, OUTPUT); digitalWrite(2, 1); // присваиваем статичесий IP адрес WiFi.mode(WIFI_STA); // режим клиента WiFi.config(IPAddress(192,168,1,131),IPAddress(192,168,1,111),IPAddress(255,255,255,0),IPAddress(192,168,1,1)); WiFi.begin(ssid, password); // Ожидание подключения while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Запуск сервера server.begin(); Serial.println("Server started"); // Вывод полученного IP адреса Serial.println(WiFi.localIP()); } void loop() { // Проверка подключения WiFiClient client = server.available(); if (!client) { return; } // Ожидание данных Serial.println("new client"); while (!client.available()) { delay(1); } // Чтение первой строки запроса String req = client.readStringUntil("\r"); Serial.println(req); client.flush(); // Работа с GPIO if (req.indexOf("/1/0") != -1) digitalWrite(5, 0); else if (req.indexOf("/1/1") != -1) digitalWrite(5, 1); else if (req.indexOf("/2/0") != -1) digitalWrite(4, 0); else if (req.indexOf("/2/1") != -1) digitalWrite(4, 1); else if (req.indexOf("/3/0") != -1) digitalWrite(0, 0); else if (req.indexOf("/3/1") != -1) digitalWrite(0, 1); else if (req.indexOf("/4/0") != -1) digitalWrite(2, 0); else if (req.indexOf("/4/1") != -1) digitalWrite(2, 1); else if (req.indexOf("/5") != -1) { Serial.println("TEST OK"); String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\r\n\r\nTest OK. Uptime: "; // Подстчет UpTime int Sec = (millis() / 1000UL) % 60; int Min = ((millis() / 1000UL) / 60UL) % 60; int Hours = ((millis() / 1000UL) / 3600UL) % 24; int Day = ((millis() / 1000UL) / 3600UL / 24UL); s += Day; s += "d "; s += Hours; s += ":"; s += Min; s += ":"; s += Sec; s += "\n"; client.print(s); client.stop(); return; } else // Если неверный запрос написать об ошибке { Serial.println("invalid request"); String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\r\n\r\nInvalid request"; s += "\n"; client.print(s); client.stop(); return; } client.flush(); // Формирование ответа String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\r\n\r\nGPIO set OK"; s += "\n"; // Send the response to the client client.print(s); delay(1); Serial.println("Client disonnected"); }

    Исходники можно посмотреть по этой ссылке: https://yadi.sk/d/ehabE3C_3M36Yo по этой ссылке скачается файл с расширением.aia и его можно добавить в MIT app invertor и посмотреть полностью из чего состоит программа.

    Comfast CF-WU715N — самый дешевый беспроводной сетевой WiFi адаптер, который мне удалось найти на просторах интернет-магазинов. Так что в сегодняшнем обзоре будет интересный продукт, который очень понравится тем, кто любит экономить. Посмотрим на его характеристики, узнаем, как установить драйвера и настроить WiFi приемник Comfast WU715N.

    У него еще есть более мощный «братик» — Comfast CF-WU720N. У него почти те же параметры, но за счет более производительного железа, корпус значительно больше.

    Сразу хочу оговориться, что Comfast WU715N не самый-самый недорогой адаптер — есть и еще дешевле, но качество их не удовлетворит даже самого неискушенного пользователя. Поэтому я провел небольшую работу по поиску действительно подходящего продукта, который был бы недорогим, но в то же время качественным. И нашел модель от малоизвестного в России но весьма популярного в Китае производителя сетевого оборудования Comfast.


    Внешний вид сетевого адаптера Comfast CF-WU715N

    Внешне адаптер имеет очень маленький размер — не больше двухрублевой монетки. Благодаря этому, будучи подключенным к ноутбуку или компьютеру в порт USB, он совершенно не мешает и не обращает на себя внимания.

    Поскольку я делал заказ в интернет-магазине в самой недорогой комплектации, в нее входили лишь само устройство и установочный диск, на который записаны программа для настройки и драйвера для адаптера — по сути, больше ничего и не нужно для работы.


    Если же брать его в фирменной коробке, то это будет выглядеть вот так:

    Драйвера адаптера подходят для Windows 7 и 8, так что любой современный компьютер сможет с ним работать.

    Технические характеристики

    Это самая бюджетная модель из линейки данного производителя, поэтому ждать от него чего-то сверхъестественного было бы наивно. Но технические характеристики позволяют стабильно и без проблем работать с беспроводным подключением внутри небольшой квартиры.

    • Чипсет — Ralink RT5370
    • Антенна — 2 децибела
    • Интерфейс — USB 2.0
    • Стандарт WiFi — B, G, N
    • Скорость — до 150 мБит/с
    • Шифрование — WEP, WPA, WPA2

    Из возможностей данного адаптера следует отметить умение работать не только в стандартной роли клиента, получая сигнал по WiFi на компьютер, но и в роли точки доступа, одновременно принимая и раздавая беспроводной сигнал. Также есть встроенная функция WiFi Direct. Это когда устройства коннектятся между собой по wifi без использования роутера. Купив два таких адаптера и установив на разные ПК, можно наладить между ними связь без настройки традиционной локальной сети.

    То есть сразу три в одном — неплохо для бюджетной модели!

    Установка драйвера и настройка Comfast CF-WU715N

    Теперь давайте посмотрим, как настраивается этот маленький беспроводной адаптер.
    Вставляем его в порт USB, а прилагающийся диск с драйверами для адаптера и программой для конфигурации в CD-Rom. Диск лучше не терять, так как потом скачать драйвер для сетевого адаптера будет проблематично — русской версии, равно как и любой другой, кроме китайской и английской, у официального сайта производителя нет. Я путем долгих поисков методом «научного тыка» все же смог найти страницу модели Comfast CF-WU715N, но никакого ПО в разделе загрузок так и не нашел.


    Так что, если боитесь потерять установочный CD, рекомендую скопировать с него все файлы на жесткий диск компьютера или флешку.

    Открыв его содержание увидим папки, название которых говорит о том, что здесь есть весь нужный софт для работы как в Windows 7/8, так и в Linux и MacOS.

    Нам нужно запустить файл 3070setup.exe. Сначала соглашаемся с лицензионным соглашением, после чего выбираем тип установки — только драйвера Comfast или вместе с фирменным приложением — перевод китайцев немного хромает, но суть содержимого понятна.

    Если вы не планируете использовать свой беспроводной адаптер для подключений WiFi Direct, то саму программу для настройки можно не ставить, так как все подключения к сети делаются стандартными средствами Windows.


    После установки в нижней панели значков в Windows появится характерная иконка беспроводного соединения. Можно по ней кликнуть и выбрать из списка доступных сетей свой WiFi.

    Но мы пойдем другим путем и посмотрим, что нам предлагает установившаяся утилита «Ralink Wireless Utility», которая была на диске.

    Программка очень простая и позволяет управлять основным функционалом сетевого адаптера. Кликнув на значок «Лупа», увидим тот же список беспроводных сетей, но с детальным описанием их свойств — качества сигнала, типом шифрования, MAC адресом точки доступа и т.д.

    Выбираем нужный нам WiFi и пошагово к нему коннектимся. После чего в основном окошке программы отобразится вся информация о текущем подключении.

    Если же вы хотите напрямую соединиться с другим компьютером, на котором также установлен беспроводной адаптер, поддерживающий работу через WiFi Direct, то кликаем в приложении на иконку WiFi и открываем новое окно

    Для включения дважды кликаем по зоне этого окошка и задаем имя нашего компьютера для обнаружения

    После этого проделываем то же самое на других ПК, после чего в основном окне будут отображаться все находящиеся в зоне доступа компы для подключения. К сожаленью, из-за отсутствия второго адаптера, работающего с этой технологией, пока у меня нет возможности показать подробно, как это происходит, так что ждите новой отдельной статьи!

    Адаптер Comfast в качестве точки доступа

    Теперь посмотрим на третью возможность сетевого адаптера Comfast — работать в качестве точки доступа (Access Point), то есть раздавать интернет по WiFi на другие устройства.

    Для активации данного режима находим в правом нижнем углу на панели значков «стрелку» и в открывшемся окошке — иконку программы Ralink Utility в виде буквы «R».

    Кликаем по ней правой кнопкой мыши и видим несколько пунктов. Нас в данный момент интересует второй и третий — «Переключить в режим STA+AP» и «Переключить в режим точки доступа».

    • STA+AP — это режим, при котором адаптер будет одновременно принимать интернет по wifi от роутера и тут же раздавать его другим.
    • AP — это режим простой точки доступа, при котором ваш компьютер должен быть подключен к интернету по кабелю или через другой беспроводной сетевой адаптер — напрямую или через роутер не важно, — а Comfast будет только раздавать сигнал, но не принимать его.

    Выберем режим AP, поскольку на практике, когда у вас нет роутера и надо подключить интернет от одного компа, подключенного к провайдеру, он будет более востребован.

    Откроется новое окно, в котором нам из списка нужно выбрать тот сетевой адаптер или карту, которая в данный момент уже подключена к интернету и с которого он будет раздаваться через наш Comfast.

    После этого наша точка заработает, а иконка приложения в панели сменится на букву «A». Открыв снова данную утилиту можно будет настроить уже параметры точки доступа.

    Для этого кликаем на первую иконку в меню и задаем SSID, частоту, канал, тип шифрования и пароль.

    После этого новая сеть появится в списке для подключения.

    Тест скорости

    Все это классно, но что с результатом работы? Ведь мы покупаем сетевой адаптер прежде всего для стабильной работы в интернете. ПОэтому мы произвели замеры скорости через сервис SpeedTest.net. Сначала для точки отсчета — скорость ПК, подключенного к роутеру через кабель.

    После чего — через адаптер Comfast

    В результате имеем 27 MB/s на загрузку через беспроводной адаптер против 39 MB/s по кабелю и чуть более низкий показатель на загрузку — 24 против 41. Весьма неплохие показатели для такого устройства, которые гарантируют нам достаточно высокую скорость при работе в интернете по WiFi соединению.

    И почти такие же результаты адаптера при работе в качестве точки доступа — мы подключили к нему iPad Air и замерили показатели через приложение от того же SpeedTest.

    Наконец, последнее снятие показаний в режиме одновременной работы как клиента и точки, когда адаптер получал сигнал по WiFi и раздавал его дольше на iPad.

    Как видим, скорость еще немного упала, что не вызывает удивления, так как теперь наше устройство выполняло двойную работу и наличие еще одного звена в цепочке от провайдера к конечному пользователю, как всегда, повлияло не лучшим образом на результат.

    Где купить этот сетевой адаптер, спросите Вы? Я его заказал в моем любимом китайском интернет-магазине AliExpress и обошелся он около 5$, что на наши деньги на момент покупки составляло около 170 рублей. Сейчас из-за курса доллара он стал немного дороже, но где еще за такие деньги вы найдете что-то стоящее??

    Если есть вопросы, отвечу в комментариях..

    Если статья помогла, то в благодарность прошу сделать 3 простые вещи:
    1. Подписаться на наш YouTube канал
    2. Отправить ссылку на публикацию к себе на стену в социальной сети по кнопке выше