Esp8266 wifi access point

Soft Access Point¶

Example below presents how to configure ESP8266 to run in soft access point mode so Wi-Fi stations can connect to it. The Wi-Fi network established by the soft-AP will be identified with the SSID set during configuration. The network may be protected with a password. The network may be also open, if no password is set during configuration.

Table of Contents¶

The Sketch¶

Setting up soft-AP with ESP8266 can be done with just couple lines of code.

#include void setup()  Serial.begin(115200); Serial.println(); Serial.print("Setting soft-AP . "); boolean result = WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP"); if(result == true)  Serial.println("Ready"); > else  Serial.println("Failed!"); > > void loop()  Serial.printf("Stations connected = %d\n", WiFi.softAPgetStationNum()); delay(3000); > 

How to Use It?¶

In line boolean result = WiFi.softAP(«ESPsoftAP_01», «pass-to-soft-AP») change pass-to-soft-AP to some meaningful password and upload sketch. Open serial monitor and you should see:

Setting soft-AP . Ready Stations connected = 0 Stations connected = 0 . 

Then take your mobile phone or a PC, open the list of available access points, find ESPsoftAP_01 and connect to it. This should be reflected on serial monitor as a new station connected:

Stations connected = 1 Stations connected = 1 . 

If you have another Wi-Fi station available then connect it as well. Check serial monitor again where you should now see two stations reported.

How Does it Work?¶

Sketch is small so analysis shouldn’t be difficult. In first line we are including ESP8266WiFi library:

Setting up of the access point ESPsoftAP_01 is done by executing:

cpp boolean result = WiFi.softAP(«ESPsoftAP_01», «pass-to-soft-AP»);

If this operation is successful then result will be true or false if otherwise. Basing on that either Ready or Failed! will be printed out by the following if — else conditional statement.

Can we Make it Simpler?¶

Can we make this sketch even simpler? Yes, we can! We can do it by using alternate if — else statement as below:

WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP") ? "Ready" : "Failed!" 

Such statement will return either Ready or Failed! depending on result of WiFi.softAP(. ) . This way we can considerably shorten our sketch without any changes to functionality:

#include void setup()  Serial.begin(115200); Serial.println(); Serial.print("Setting soft-AP . "); Serial.println(WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP") ? "Ready" : "Failed!"); > void loop()  Serial.printf("Stations connected = %d\n", WiFi.softAPgetStationNum()); delay(3000); > 

I believe this is very neat piece of code. If ? : conditional operator is new to you, I recommend to start using it and make your code shorter and more elegant.

Conclusion¶

ESP8266WiFi library makes it easy to turn ESP8266 into soft access point.

Once you try above sketch check out WiFiAccessPoint.ino as a next step. It demonstrates how to access ESP operating in soft-AP mode from a web browser.

For the list of functions to manage ESP module in soft-AP mode please refer to the Soft Access Point Class documentation.

© Copyright 2017, Ivan Grokhotkov Revision 521ae60a .

Источник

Как создать точку доступа на ESP8266 за 5 минут. Управление по WI-FI

Давайте рассмотрим пример сканирования WIFI сетей.
Мы будем использовать библиотеку ESP8266WIFI.
Здесь ничего сложного. Запускается встроенная функция сканирования сетей и в цикле выводятся все найденные сети и уровень их сигнала. Затем ждём 5 секунд и снова сканируем.
У меня этот модуль нашёл сего 7 сетей. А вот ноутбук видит гораздо больше. Это говорит о том, что ESP встроенная в NodeMCU имеет гораздо меньшую чувствительность. А что можно было ожидать от антенны нарисованной на плате. Поэтому я в основном использую модули ESP-07 с керамической антенной и разъёмом для подключения внешней антенны. И к тому же ESP не видит сети с частотой 4 ГГц, а только 2,4 ГГЦ.

Теперь давайте рассмотрим второй пример.
Это создание своей точки доступа и вывод двух кнопок на страницу для управления светодиодом. Точно так же можно управлять не только светодиодами, но и различными нагрузками, например реле.
Для этого нам понадобится подключить несколько библиотек. Но они все входят в комплект ARDUINO ide и становятся доступными после того как вы выберете плату ESP.
Здесь мы пишем название своей новой сети. Я назвал её вот так, вы же можете называть как угодно.
И задаём пароль. Если вы не укажете пароль, то у вас будет открытая сеть и каждый сможет к ней подключиться. Оно вам надо?
Это html код который будет выводиться на странице. Это простой код который выведет две ссылки с надписями включить и выключить. А выше их будет отображаться статус указывающий текущее состояние светодиода. Включен или Выключен.
Дальше идут строчки кода которые в основном отвечают за вывод в ComPort. Я по возможности всё написал по русски, и думаю вам не составит труда разобраться что и за что отвечает.
Переходим на созданную сеть. У вас при первом подключении будет выведено окно для ввода пароля. Проверяем, чтобы не было ошибок с паролем, а иначе вы не сможете войти в эту сеть.
Дальше будет вопрос подключать ли общий доступ к устройствам. Можете выбрать что угодно. Я ответил ДА.
Вот мы и подключились к созданной нами сети.
Вводим IP адрес вашего устройства. И вы ничего не должны увидеть. У меня это просто загрузился кэш страницы. Нажимая на кнопки никакого результата на плате я не вижу.
Теперь нужно войти на локальный адрес самой ESP. Он вот такой 192.168.4.1
Вот теперь это уже реальная страница, что можно увидеть нажимая на кнопки. Как видите на плате включается и выключается светодиод. И как я уже говорил, это может быть реле и управлять большой нагрузкой.

Теперь переходим на свою обычную WIFI сеть. Обновляем страницу и видим, что доступ к интерфейсу пропал.

Ну и наконец третий пример.
Выведем UID номер карты на экран компьютера. Для этого загрузим следующий скетч.
Здесь у нас ещё прибавилось библиотек. Одну из них вам придётся установить, так как она не входит в комплект. Если не знаете как, о посмотрите последние видео о RFID модуле. Там подробно всё рассказано.
Мы будем работать с той же сетью, что и в предыдущем примере.
В этом HTML коде мы будем выводить номер карты которую прикладывают с считывателю карт. Это код из предыдущего видео, поэтому здесь рассказывать нечего.
Если в двух словах, то когда вы прикладываете карту к считывателю, то скетч считывает номер карты и отправляет его для вывода на web страницу.

Давайте посмотрим как это работает. Вводим IP адрес устройства и ничего не получаем. Так как мы находимся в своей обычной, домашней сети. Теперь переходим в созданную сеть. Перезагружаем страницу и всё мы не подключены. В следующем видео я расскажу как сделать так чтобы можно было видеть страницу из обычной WIFI сети, а если домашняя сеть пропадёт, то вы автоматически переключитесь на свою созданную сеть.
Переходим на локальный IP и видим текст и ожидание ввода карточки. Подносим карты к картридеру и видим, что их номера отображаются на странице.
На этом я заканчиваю это видео. Сегодня мы рассмотрели как создать точку доступа, просканировать все доступные сети. Поуправляли светодиодом из интерфейса браузера. Получили UID номер карты.

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

Источник

Soft Access Point Class¶

Section below is ESP8266 specific as Arduino WiFi library documentation does not cover soft access point. The API description is broken down into three short chapters. They cover how to setup soft-AP, manage connection, and obtain information on soft-AP interface configuration.

Table of Contents¶

Set up Network¶

This section describes functions to set up and configure ESP8266 in the soft access point (soft-AP) mode.

softAP¶

Set up a soft access point to establish a Wi-Fi network.

The simplest version (an overload in C++ terms) of this function requires only one parameter and is used to set up an open Wi-Fi network.

To set up pre-shared key protected network, or to configure additional network parameters, use the following overload:

WiFi.softAP(ssid, psk, channel, hidden, max_connection) 

The first parameter of this function is required, remaining four are optional.

Meaning of all parameters is as follows:

  • ssid — character string containing network SSID (max. 32 characters)
  • psk — optional character string with a pre-shared key. For WPA2-PSK network it should be minimum 8 characters long and not longer than 64 characters. If not specified, the access point will be open for anybody to connect.
  • channel — optional parameter to set Wi-Fi channel, from 1 to 13. Default channel = 1.
  • hidden — optional parameter, if set to true will hide SSID.
  • max_connection — optional parameter to set max simultaneous connected stations, from 0 to 8. Defaults to 4. Once the max number has been reached, any other station that wants to connect will be forced to wait until an already connected station disconnects.

Function will return true or false depending on result of setting the soft-AP.

  • The network established by softAP will have default IP address of 192.168.4.1. This address may be changed using softAPConfig (see below).
  • Even though ESP8266 can operate in soft-AP + station mode, it actually has only one hardware channel. Therefore in soft-AP + station mode, the soft-AP channel will default to the number used by station. For more information how this may affect operation of stations connected to ESP8266’s soft-AP, please check this FAQ entry on Espressif forum.

softAPConfig¶

Configure the soft access point’s network interface.

softAPConfig (local_ip, gateway, subnet) 

All parameters are the type of IPAddress and defined as follows:

  • local_ip — IP address of the soft access point
  • gateway — gateway IP address
  • subnet — subnet mask

Function will return true or false depending on result of changing the configuration.

#include IPAddress local_IP(192,168,4,22); IPAddress gateway(192,168,4,9); IPAddress subnet(255,255,255,0); void setup()  Serial.begin(115200); Serial.println(); Serial.print("Setting soft-AP configuration . "); Serial.println(WiFi.softAPConfig(local_IP, gateway, subnet) ? "Ready" : "Failed!"); Serial.print("Setting soft-AP . "); Serial.println(WiFi.softAP("ESPsoftAP_01") ? "Ready" : "Failed!"); Serial.print("Soft-AP IP address = "); Serial.println(WiFi.softAPIP()); > void loop() <> 
Setting soft-AP configuration . Ready Setting soft-AP . Ready Soft-AP IP address = 192.168.4.22 

Manage Network¶

Once soft-AP is established you may check the number of stations connected, or shut it down, using the following functions.

softAPgetStationNum¶

Get the count of the stations that are connected to the soft-AP interface.

Serial.printf("Stations connected to soft-AP = %d\n", WiFi.softAPgetStationNum()); 
Stations connected to soft-AP = 2 

Note: the maximum number of stations that may be connected to ESP8266 soft-AP is 4 by default. This can be changed from 0 to 8 via the max_connection argument of the softAP method.

softAPdisconnect¶

Disconnect stations from the network established by the soft-AP.

WiFi.softAPdisconnect(wifioff) 

Function will set currently configured SSID and pre-shared key of the soft-AP to null values. The parameter wifioff is optional. If set to true it will switch the soft-AP mode off.

Function will return true if operation was successful or false if otherwise.

Network Configuration¶

Functions below provide IP and MAC address of ESP8266’s soft-AP.

softAPIP¶

Return IP address of the soft access point’s network interface.

Returned value is of IPAddress type.

Serial.print("Soft-AP IP address = "); Serial.println(WiFi.softAPIP()); 
Soft-AP IP address = 192.168.4.1 

softAPmacAddress¶

Return MAC address of soft access point. This function comes in two versions, which differ in type of returned values. First returns a pointer, the second a String .

Pointer to MAC¶

Function accepts one parameter mac that is a pointer to memory location (an uint8_t array the size of 6 elements) to save the mac address. The same pointer value is returned by the function itself.

uint8_t macAddr[6]; WiFi.softAPmacAddress(macAddr); Serial.printf("MAC address = %02x:%02x:%02x:%02x:%02x:%02x\n", macAddr[0], macAddr[1], macAddr[2], macAddr[3], macAddr[4], macAddr[5]); 
MAC address = 5e:cf:7f:8b:10:13 

MAC as a String¶

Optionally you can use function without any parameters that returns a String type value.

Serial.printf("MAC address = %s\n", WiFi.softAPmacAddress().c_str()); 
MAC address = 5E:CF:7F:8B:10:13 

For code samples please refer to separate section with examples dedicated specifically to the Soft Access Point Class.

© Copyright 2017, Ivan Grokhotkov Revision 521ae60a .

Источник

Читайте также:  Wifi connects but no internet android
Оцените статью
Adblock
detector