orphan: |
---|
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.
Setting up soft-AP with ESP8266 can be done with just couple lines of code.
#include <ESP8266WiFi.h>
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);
}
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.
Sketch is small so analysis shouldn't be difficult. In first line we are including ESP8266WiFi
library:
#include <ESP8266WiFi.h>
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 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 <ESP8266WiFi.h>
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.
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 :doc:`Soft Access Point Class <soft-access-point-class>` documentation.