AP是Access Point简称,也就是访问接入点,是网络的中心节点。一般家庭的无线路由器就是一个AP,众多站点(STA)加入到它所组成的无线网络,网络中的所有的通信都通过AP来转发完成。

软AP也叫做Soft-AP,硬件部分是一块标准的无线网卡比如ESP8266,但其通过驱动程序使其提供与AP一样的信号转换、路由等功能

与传统AP相比,它的成本很低,功能上也能凑合。在基本功能上,Soft AP与AP并没有太大的差别,不过因为用软件来实现AP功能,SoftAP的接入能力和覆盖范围远不如AP

注意点:一般能同时连接到Soft-AP 的station的个数上线到8个,但是一般默认是4个

ESP8266WiFiAP库

ESP8266WiFiAP库,大家使用的时候不需要     #include <ESP8266WiFiAP.h>
只需要引入    #include <ESP8266WiFi.h>
 
对于AP类库的描述,可以拆分为三个部分:
1. 第一部分方法,建立AP网络(Access Point,wifi热点)
2. 第二部分方法,管理第一部分方法建立的连接
3. 第三部分方法,获取AP的信息,包括MAC地址、IP地址等

 
 
建立AP网络:
说明:
ssid                     SSID账号 (max 63 char,最大63个字符)
passphrase        密码(对于WPA2加密类型最少8个字符,对于开放网络设置为NULL)----账号密码尽量都是英文字符
channel             WiFi 通道数字, 1 - 13.默认是1 
ssid_hidden      WiFI是否需要隐藏 (0 = broadcast SSID, 1 = hide SSID),通过它设置别人是否能看到你的WiFi网络
max_connection   最大的同时连接数 1 - 4.当超过这个数,再多的station想连接也只能等待
bool              返回设置soft-AP的结果
 
语法:

bool softAP(const char* ssid, const char* passphrase = NULL, int channel = 1, int ssid_hidden = 0, int  max_connection = 4);
WiFi.softAP(ssid);    开放网络---不需要密码,只需要知道AP名字就可以了
WiFi.softAP(ssid, password);      校验式网络-----(需要输入账号密码),通道为1,wifi不隐藏,最大连接数=4
WiFi.softAP(ssid, password,2,1);       校验式网络(需要输入账号密码),通道为2,wifi隐藏,最大连接数=4 
softAPConfig —— 配置AP网络信息:

说明:

local_ip              ip地址
gateway            网关IP地址
subnet              子网掩码
soft-AP             建立的网络,默认的IP地址是192.168.4.1
语法:

bool softAPConfig(IPAddress local_ip, IPAddress gateway, IPAddress subnet);   
 
管理网络:
 
语法:uint8_t WiFi.softAPgetStationNum() ;     获取连接到AP上的station数目
 
bool softAPdisconnect(bool wifioff = false);      关闭AP模式
 
 
 
 
获取信息:
IPAddress addr;
 addr=WiFi.softAPIP();     获取AP的ip地址(默认192.168.4.1)   
 
 
获取AP的mac地址:
uint8_t macAddr[6]; 
WiFi.softAPmacAddress(macAddr);    获取AP的mac地址---保存在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
 
Serial.printf("MAC address = %s\n", WiFi.softAPmacAddress().c_str());      输出地址
 
WiFi.softAPmacAddress().c_str()      获取AP的mac地址并转化成指针
 
 
 
 
获取AP的SSID :----账号
String softAPSSID() ;     获取AP的SSID 
获取AP的PSK:---密码
String softAPPSK() ; 

实例

 #include <ESP8266WiFi.h>
#define AP_SSID "AP_明哥" //这里改成你的AP名字--AP账号
#define AP_PSW "lm654321" //这里改成你的AP密码 8位以上
IPAddress local_IP(,,,); //实例化IP地址
IPAddress gateway(,,,); //实例化网关IP地址
IPAddress subnet(,,,); //实例化子网掩码 void setup() {
Serial.begin();
delay();
Serial.print("配置AP网络信息。。。。。。");
WiFi.mode(WIFI_AP); //设置WIFI模式为AP模式
delay();
Serial.println(WiFi.softAPConfig(local_IP, gateway, subnet) ? "网络信息成功" : "网络信息失败"); //配置AP网络信息---并且串口提示输出
Serial.print("设置AP......");
bool result = WiFi.softAP(AP_SSID, AP_PSW); //设置账号和密码,通道为1,wifi不隐藏,最大连接数=4
//返回值:是否成功
if(result){
Serial.println("账号密码设置成功");
Serial.println(String("Soft-AP IP 地址是: ") + String(WiFi.softAPIP().toString()));
//WiFi.softAPIP() 获取AP的IP地址--就是IPAddress local_IP(192,168,4,44)
Serial.println(String("MAC 地址是: ") + WiFi.softAPmacAddress().c_str());
//WiFi.softAPmacAddress().c_str() 获取AP的mac地址并转化成指针 }else{
Serial.println("账号密码设置失败");
}
Serial.println("设置完成");
} void loop() {
//不断打印当前的station个数
int i=WiFi.softAPgetStationNum();
Serial.println(String("SAT连接数: ") +String(i));
delay();
}

天子骄龙

ESP8266-Soft AP模式 —— 谁想连上我的更多相关文章

  1. ESP8266-Station模式--我想连上谁

    Station模式又叫做站点工作模式,类似于无线终端 处于Station模式下的ESP8266,可以连接到AP.通过Station(简称为“STA”)模式,ESP8266作为客户端连接到路由的wifi ...

  2. 用shell脚本实现linux系统上wifi模式(STA和soft AP)的转换

    转载请注明出处:http://blog.csdn.net/hellomxj1/ 功能:在linux系统上实现wifi STA与AP功能的转换 实现成果:1.加入wifipassword账户add_wi ...

  3. 数据库设计中的Soft Delete模式

    最近几天有点忙,所以我们今天来一篇短的,简单地介绍一下数据库设计中的一种模式——Soft Delete. 可以说,该模式毁誉参半,甚至有非常多的人认为该模式是一个Anti-Pattern.因此在本篇文 ...

  4. 关于 RTL8723BS 同时开启 STA/AP 模式

    最近接到一个调试 wifi 驱动的任务,使用的是 rtl8723bs 芯片组.要求是让无线设备工作在 station 模式的时候同时开启一个 ap 热点.简单来讲就是连接其他 wifi 的同时发出一个 ...

  5. Visual C++ 编程实现Soft AP (HostedNetwork / 承载网络) 功能

    从Windows 7开始,微软在操作系统中加入的Soft AP功能,使用户能够通过无线网卡,开启虚拟AP,从而实现网络共享.Soft AP又称HostedNetwork(承载网络),在Windows ...

  6. 利用airbase-ng建立Soft AP

    利用airbase-ng建立Soft AP,再利用一些常见工具进行嗅探,或对抓包进行分析是出现比较早的一种MITM攻击方法.网上有很多关于手动实现的文章,也有一些自动实现脚本.这些脚本通常分两类,一类 ...

  7. Marvell w8782 sdio wifi AP模式设置

    http://blog.csdn.net/junllee/article/details/8895908 w8782工作在station模式一切正常,于是想试试AP模式(master mode): A ...

  8. CentOS下VMware用桥接模式,静态ip上外网

    15年的时候,写过一篇博客:VMware中网络设置之Bridged  也是关于linux下vmware桥接模式.静态ip上外网的配置,不过当时更多的是用图形界面来实现的,通用性不强.生产环境,极少有l ...

  9. 树莓派配置AP模式

    所需硬件:树莓派.无线网卡 1.查看无线网卡是否被识别 pi@raspberrypi ~ $ sudo lsusb Bus Device : ID : Standard Microsystems Co ...

随机推荐

  1. Delphi中基本控件之SaveDialog控件的使用总结

    首先向Form窗体拖一个SaveDialog控件,Name属性改为:dlgSave,然后添加一个按钮,Caption属性改为:浏览,Name属性改为:btnBrowse. 然后双击浏览按钮添加如下代码 ...

  2. 短信验证码api

    最近遇到的项目需要个随机短信验证码实现注册用户 选用的是“云信使”,因为有15条免费的测试短信可以验证代码是否正确调用该短信api 地址 进入短信平台 一.实名认证 + 短信模板 用户认证完成后,创建 ...

  3. 从git上pull下的代码,执行时提示:ModuleNotFoundError: No module named '......',解决方法如下:

    方法一: 如果没有安装,如下: 1.PyCharm : file-> setting->Project interpreter–>package2.右侧有个+ 点击3.进入后 搜索p ...

  4. 【VS开发】字符串进制等转换关系及方法

    C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串.以下是用itoa()函数将整数转换为字符串的一个例子:# include <stdio.h># in ...

  5. Oracle数据库跟踪存储过程

    1.[右击]该存储过程 ——>勾选[添加调试信息]——>点击[测试]选项 2.输入对应参数,点击下图左上角红框按钮,开始跟踪,可逐语句逐过程跟踪

  6. 用C#取个中文名字

    *注意:此方法获得的名字很可能出现生僻字,若要get一个好记/常见的名字,还请另作操作. 以百家姓(444个单姓,60个复姓)作为姓氏,再添加两个随机的中文,You can get a chinese ...

  7. day 02 while 循环 格式化输出 运算符 and or not - 编码的初识

    while 循环 while 条件:    循环体 循环如何终止? 改变条件. flag = Truewhile flag:    print('狼的诱惑')    print('我们不一样')   ...

  8. webpack4.x + vue2.x 构建前端工程化(1)

    本篇文篇纯属个人笔记,实现工程化打包(用打包后的文件可以正常渲染页面),后续继续更新配置开发环境与生产环境,如果有不合理的地方还望各位指点! 不用脚手架,直接用vue和webpack搭建前端工程化项目 ...

  9. oracle三种表连接方式

    1. 排序合并连接(Sort Merge Join) 排序合并连接的执行过程如下所示: * 将每个行源的行按连接谓词列排序 * 然后合并两个已排序的行源,并返回生成的行源 例如: select * f ...

  10. vue中如何开发插件

    1.vue中提供了install方法用来开发插件 官方:Vue.js 的插件应该有一个公开方法 install.这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象. 2.我的插件目 ...