|
本帖最后由 allen100 于 2020-3-6 10:19 编辑
在上一节中,我们让esp8266作为station连入了wifi局域网中,那么如何让8266作为AP可以让其他设备接入呢?
直接看代码和注释,一目了然:
示例1:8266开启WiFi热点,当有设备接入或断开,则用蜂鸣器提示。
[mw_shl_code=arduino,true]#include <ESP8266WiFi.h>
#define beepio D3 //蜂鸣器控制IO口
int Num=0;//这里记录一下接入该热点的设备数量
void beep(){
for(int i=0;i<3;i++)
{
digitalWrite(beepio,HIGH);
delay(50);
digitalWrite(beepio,LOW);
delay(50);
}
}
void setup()
{
pinMode(D3,OUTPUT);
Serial.begin(115200);
Serial.println();
Serial.print("Setting soft-AP ... ");
boolean result = WiFi.softAP("ESPsoftAP_01", "");//通过softAP函数开启WiFi热点,两个参数分别是SSID和password,我这里第二个参数设为空,即无密码接入
if(result == true)
{
Serial.println("Ready");
}
else
{
Serial.println("Failed!");
}
}
void loop()
{
Serial.printf("Stations connected = %d\n", WiFi.softAPgetStationNum());
if(WiFi.softAPgetStationNum()!=Num)//在这里如果有设备接入或断开时,我在D3口接的蜂鸣器将会响3次,
{
beep();
Num=WiFi.softAPgetStationNum();
}
delay(3000);
}[/mw_shl_code]
示例2:esp8266作为station扫描附近热点,并从串口输出。
[mw_shl_code=arduino,true]#include <ESP8266WiFi.h>
void setup()
{
Serial.begin(115200);
Serial.println();
WiFi.mode(WIFI_STA);//设置esp8266模式为station
WiFi.disconnect();//断开所连热点,这一步主要是防止esp8266启动自动连接已有热点
delay(100);
}
void loop()
{
Serial.print("Scan start ... ");//输出所有扫描到的热点
int n = WiFi.scanNetworks();
Serial.print(n);
Serial.println(" network(s) found");
for (int i = 0; i < n; i++)
{
Serial.println(WiFi.SSID(i));
}
Serial.println();
delay(5000);
}[/mw_shl_code]
|
|