Станция ( сети) — Station (networking)
В терминологии IEEE 802.11 (Wi-Fi), станция (сокращенно STA ) — это устройство, которое может использовать протокол 802.11. Например, станция может быть портативным компьютером, настольным ПК, КПК, точкой доступа или телефоном Wi-Fi. STA может быть фиксированной, мобильной или переносной. Обычно в терминологии беспроводных сетей терминал, беспроводной клиент и узел часто используются как взаимозаменяемые, без строгого различия между этими терминами. Станция также может называться передатчиком или приемником в зависимости от ее характеристик передачи. IEEE 802.11-2007 формально определяет станцию как: любое устройство, которое содержит интерфейс управления доступом к среде (MAC) и физический уровень (PHY), соответствующий стандарту IEEE 802.11, к беспроводной среде (WM).
См. Также
- Базовый набор услуг
- Идентификатор набора услуг
Внешние ссылки
- Документ стандартов IEEE 802.11-2007 (неработающий)
Контакты: mail@wikibrief.org
WiFi STA нестабильные подключения
В настройках роутера особо настраивать нечего. замечено что если передернуть канал на роутере какое то время начинает подключаться. Пробовал на двух разных роутерах. одна и та же песня.
так выглядит нормальный журнал роутера, когда ESP подключается
22 ноя 22:22:30 udhcpd[4629] Found static lease ip address: 192.168.1.34 22 ноя 22:22:30 udhcpd[4629] Sending OFFER of 192.168.1.34 22 ноя 22:22:30 udhcpd[4629] Found static lease ip address: 192.168.1.34 22 ноя 22:22:30 udhcpd[4629] Sending ACK to 192.168.1.34
В те моменты когда она подключается, логи роутера пустые.
В попытках понять причину обнаружил интересную ситуацию, что убрав весь код подключения ESP к WiFi она стала подключаться к WiFi .
#include void setup() < Serial.begin(115200); Serial.setDebugOutput(true); >void loop()
возник вопрос, ESP как то сама подключается к последней точке? или я чего то не врубаюсь.
reconnect f 0, scandone state: 0 -> 2 (b0) state: 2 -> 0 (2) reconnect f -180, scandone state: 0 -> 2 (b0) state: 2 -> 3 (0) state: 3 -> 5 (10) add 0 aid 4 cnt chg_B1:-140 connected with Businka_YarNet, channel 9 dhcp client start. chg_B1:-100 ip:192.168.1.34,mask:255.255.255.0,gw:192.168.1.1 chg_B1:-60 pm open,type:2 0
на сайте arduiono вообще предлагаю другую концепцию подключения
int status = WL_IDLE_STATUS; // the Wifi radio's status void setup() < // attempt to connect to Wifi network: while ( status != WL_CONNECTED) < Serial.print("Attempting to connect to WEP network, SSID: "); Serial.println(ssid); status = WiFi.begin(ssid, keyIndex, key); // wait 10 seconds for connection: delay(10000); >
один фиг проблема та же. на ровном месте перестает подключаться к WiFi. уже всю голову сломал. помогите плз.
businka
New member
код из примера библиотеки WebSocket
arduinoWebSockets/WebSocketServer.ino at master · Links2004/arduinoWebSockets · GitHub
выдает следующий лог, выходит что ESP пытается установить параллельно два соединения
[SETUP] BOOT WAIT 4. [SETUP] BOOT WAIT 3. scandone state: 0 -~ 2 (b0) [SETUP] BOOT WAIT 2. state: 2 -> 0 (2) reconnect f 0, scandone state: 0 -> 2 (b0) state: 2 -> 3 (0) state: 3 -> 5 (10) add 0 aid 4 cnt [SETUP] BOOT WAIT 1. connected with Businka_YarNet, channel 9 dhcp client start. state: 5 -> 0 (0) rm 0 f r0, scandone f r0, scandone state: 0 -> 2 (b0) state: 2 -> 3 (0) state: 3 -> 5 (10) add 0 aid 4 cnt connected with Businka_YarNet, channel 9 dhcp client start. ip:192.168.1.34,mask:255.255.255.0,gw:192.168.1.1 pm open,type:2 0
pvvx
Активный участник сообщества
В попытках понять причину обнаружил интересную ситуацию, что убрав весь код подключения ESP к WiFi она стала подключаться к WiFi .
.
возник вопрос, ESP как то сама подключается к последней точке? или я чего то не врубаюсь.
Подключается сама, что не совместимо с Arduino.
Ещё много у ESP8266 различий и специфик от стандартов в Arduino.
businka
New member
Подключается сама, что не совместимо с Arduino.
Ещё много у ESP8266 различий и специфик от стандартов в Arduino.
какой тогда правильный код подключения к wifi?
pvvx
Активный участник сообщества
какой тогда правильный код подключения к wifi?
Во первых зависит от установок вашего роутера.
Функции WiFi.begin() отличаются по кол-ву и типу параметров.
Как их использовать, в цикле с проверкой на соединение или ещё как зависит от ваших предпочтений.
Вопрос поставлен не верно — «правильной код»? Какие условия и т.д.?
Вы сами привели код из «примеров». Он не всегда оптимален и не учитывает все условия.
У меня, к примеру, если установка уровня RF TX в WiFi по умолчанию (стоит на max), то соединяется плохо на предпоследней SDK. Как это сменить на Arduino я не в курсе, но думаю что можно.
Последнее редактирование: 23 Ноя 2016
rybeg
New member
У меня, к примеру, если установка уровня RF TX в WiFi по умолчанию (стоит на max), то соединяется плохо на предпоследней SDK. Как это сменить на Arduino я не в курсе, но думаю что можно.
Изменяюсь, что влез в тему, SDK ver: 1.5.2. какой уровень RF TX ставить оптимальный . И еще бывает при перезагрузке модуля, нет соединения с WIFI роутером, по логам роутера, вижу, что пытается соединиться, но что то не дает, пока сам не подключусь и не перегружу. Спасибо.
pvvx
Активный участник сообщества
Изменяюсь, что влез в тему, SDK ver: 1.5.2. какой уровень RF TX ставить оптимальный . И еще бывает при перезагрузке модуля, нет соединения с WIFI роутером, по логам роутера, вижу, что пытается соединиться, но что то не дает, пока сам не подключусь и не перегружу. Спасибо.
Function: Set maximum value of RF TX Power, unit : 0.25dBm Prototype: void system_phy_set_max_tpw(uint8 max_tpw) Parameter: uint8 max_tpw : maximum value of RF Tx Power, unit : 0.25dBm, range [0, 82] it can be set refer to the 34th byte (target_power_qdb_0) of esp_init_data_default.bin(0127byte) Return: none
Стоит уровень 82 ед. Ставил на о бум 75 — тогда всегда работало.
rybeg
New member
Из доки:
Стоит уровень 82 ед. Ставил на о бум 75 — тогда всегда работало.
Стояло 78, поставил 70 посмотрю, спасибо.
businka
New member
мне кажется дело было в питании. поставил более мощный блок питания. проблемы с Wifi вроде ушли. у уход в перезагрузку при подключении по websocket тоже — видимо шла нагрузка при активном WiFi и модуль ребутился.
businka
New member
все таки какая фигня со стандартной библиотекой WiFi. Соединение устанавливается автоматически, а статус этого не видит.
имеет ли какое то значение, что я из своей библиотеки соединение устанавливаю.
[SETUP] BOOT WAIT 3. scandone state: 0 -> 2 (b0) [SETUP] BOOT WAIT 2. state: 2 -> 0 (2) reconnect f 0, scandone state: 0 -> 2 (b0) state: 2 -> 3 (0) state: 3 -> 5 (10) add 0 aid 4 cnt chg_B1:-40 connected with Rediska_VDSL, channel 5 dhcp client start. [SETUP] BOOT WAIT 1. ip:192.168.1.39,mask:255.255.255.0,gw:192.168.1.1 Connecting to Rediska_VDSL f r-40, 6scandone 66pm open,type:2 0 66666666666666666666666Fatal exception 28(LoadProhibitedCause): epc1=0x401028dc, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000220, depc=0x00000000 Exception (28): epc1=0x401028dc epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000220 depc=0x00000000 ctx: sys sp: 3ffffcd0 end: 3fffffb0 offset: 01a0 >>>stack>>> 3ffffe70: 3ffed7c0 40102a6e 00000000 00000000 3ffffe80: 00000000 01b1b157 53000000 4000050c 3ffffe90: 3fffc278 401028c4 3fffc200 00000022 3ffffea0: 3ffffeb0 0195151f 40214ef7 3fff15b4 3ffffeb0: 40000f68 00000030 0000001e ffffffff 3ffffec0: 40000f58 00000000 00000020 00000000 3ffffed0: 3ffe9d50 c162d3d8 3ff20a00 c0000000 3ffffee0: 00002000 00000000 0000001c 3fffdab0 3ffffef0: 00000000 3fffdcc0 3ffe9758 00000030 3fffff00: 3ffe8004 0000003c 40101993 3ffecef0 3fffff10: 00000000 00000000 00000020 4010184a 3fffff20: 3ffe9640 402098c7 3ffecef0 3ffed8e0 3fffff30: 000005e0 00000000 40103949 3ffed7c0 3fffff40: 0000003c 00000000 00000000 00000100 3fffff50: 0000001c 00000001 40104a72 3ffed7c0 3fffff60: 3ffecef0 401013de 00000000 3ffed3e4 3fffff70: 3ffecef0 401011ab 00000000 00000000 3fffff80: 401011e6 00000000 00000002 00000000 3fffff90: 40209582 3fffdab0 00000000 3fffdab0 3fffffa0: 3ffe9758 40000f49 3fffdab0 40000f49
void CbWebSocketServer::setup() < char ssid[] = "Rediska_VDSL"; char pass[] = ""; // your network password Serial.println(); for (uint8_t t = 3; t >0; t--) < Serial.printf("[SETUP] BOOT WAIT %d. \n", t); Serial.flush(); delay(3000); >Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.mode(WIFI_STA); WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) < Serial.print(WiFi.status()); delay(3000); >Serial.println(""); Serial.println("WiFi connected");
ESP32 WiFi Board
ESP32 WiFi Board — плата разработки на основе Wi-Fi/BT модуля ESP-WROOM-32. Поддерживаются 802.11 b/g/n/e/i стандарты беспроводной сети, STA/AP режимы. Может быть использован как сервер или клиент, поддерживает TCP, UDP и FTP протоколы. Также поддерживается Bluetooth соединение.
Артикул: 220002458 Категории: Wi-Fi платы и модули, Модули и DIY наборы
- Назначение и особенности
- Технические характеристики
Описание
Поддерживаются 802.11 b/g/n/e/i стандарты беспроводной сети, STA/AP режимы. Может быть использован как сервер или клиент, поддерживает TCP, UDP и FTP протоколы. Также поддерживается Bluetooth соединение.
Размер платы составляет 2.8×5.2 см. Расстояние между контактами составляет 2.54 мм.
ESP8266 Урок 14. Wi-Fi. Режим STA (Станция)
Ну вот, наконец-то, дошли мы до той темы, к которой стремились и ради чего начинался цикл уроков по контроллерам ESP8266 — это приём и передача данных при помощи возможностей ESP8266 по беспроводной сети Wi-Fi.
Я думаю, что все знают, что это за тип сети и для чего она применяется.
Напомню лишь, что Wi-Fi — это протокол передачи данных, осуществляемой без применения проводов, физического уровня.
Как именно передаются данные по сети и как они подготавливаются, как заворачиваются в протоколы различного уровня, мы также очень хорошо знаем. Кто не помнит, напомню — смотрите уроки 40, 41, 44, 45, 46, 47, 48, 49, 50, 51, 52 по программированию контроллеров AVR, а также аналогичные уроки по контроллерам STM32. В данных уроках мы очень подробно рассмотрели многие протоколы всех уровней модели OSI. Те же самые протоколы будут использоваться и здесь, причём нам особо не придётся их программировать вручную, но знать, как они устроены, для чего нужны, мы обязаны, чтобы избежать ошибок при передаче данных, а также, если они и возникнут, то оперативно их устранить. И рассмотренных нами протоколов нам не потребуется протокол физического уровня Ethernet, его заменит протокол Wi-Fi.
Мы пока подробно не будем изучать протокол Wi-Fi, так как с ним работает наш контроллер аппаратно, но режимы работы мы должны знать. И знакомится с их разновидностями мы будем постепенно.
А пока мы должны знать, что наш контроллер ESP8266 поддерживает три основных режима работы — станция (Station mode или кратко STA), программная точка доступа (SoftAP), а также смешанный — Station + SoftAP.
Самым простым из этих режимов является первый — режим станции.
Режим станции (STA) — это такой режим, в котором контроллер не создает собственную сеть, а подключается к любой существующей сети Wi-Fi, например, к существующей локальной сети или к другому устройству, работающему в режиме точки доступа (AP).
На данном уроке мы настроим режим станции и попробуем подключиться к существующей точке доступа, например к роутеру, который раздаёт Wi-Fi по дому. Роутер от просто точки доступа отличается тем, что трафик, идущий от станций, подключенных к нему, он транслирует во внешнюю сеть и наоборот.
Пока воспользуемся возможностями SDK, то есть не будем лезть глубоко в дебри аппаратной части. Всему своё время.
Схема у нас будет простейшая — отладочная плата, подключенная к USB компьютера
Весь процесс соединения с точкой доступа и вхождение в различные стадии соединения мы будем отслеживать с помощью терминальной программы с помощью UART.
Проект наш выполнен из проекта прошлого урока с именем OS_TIMER и назван WIFI_STA.
Откроем наш проект в Eclipse и в файле main.c подключим библиотеку для работы с UART