首先,我们要了解一下什么叫AP模式,其术语我就不介绍了,在我看来,就是我们让ESP8266创建一个WIFI,让它成为一个WiFi,我们用手机或者电脑去连接它,而不是让ESP8266去连接其它WiFi。
首先我们调用bool wifi_set_opmode (uint8 opmode)这个API,将ESP8266的wifi模式设置为softAP模式
API:wifi_set_opmode(uint8 opmode)
功能:设置 Wi-Fi ⼯作模式(Station, SoftAP 或者 Station+SoftAP),并保存到 Flash
参数:0x01(Station模式)、0x02(softAP模式)、0x03(Station + softAP模式)
然后我们要配置bool wifi_softap_set_config (struct softap_config *config)这个API,其参数为一个struct softap_config类型的结构体的指针
API:wifi_softap_set_config (struct softap_config *config)
功能:设置wifi SoftAP接口配置
参数:struct softap_config {
uint8 ssid[32]; //WIFI名称
uint8 password[64]; //密码
uint8 ssid_len; // WIFI名称长度
uint8 channel; //通道号
AUTH_MODE authmode; // 加密方式
uint8 ssid_hidden; // 是否隐藏密码,0为不隐藏
uint8 max_connection; // 最大连接数,就是允许几个人连入ESP8266创建的WIFI
uint16 beacon_interval; //信标间隔时槽,这个我不懂,有空问一问
};
所以我们首先要新建一个struct softap_config类型的结构体,然后配置其各个参数,值得注意的是其中的ssid和password是两个数组,应该使用os_strcpy()来赋值。我的赋值如下
struct softap_config AP_config;
wifi_set_opmode(0x02);//将8266设置为AP模式
os_memset(&AP_config, 0, sizeof(struct softap_config)); // AP参数结构体 = 0
AP_config.authmode = AUTH_WPA2_PSK;
AP_config.beacon_interval = 100;//信标间隔时槽
AP_config.channel = 1;
AP_config.max_connection = 2;
AP_config.ssid_hidden = 0;
AP_config.ssid_len = os_strlen(ESP8266_SSID);
os_strcpy(AP_config.ssid,ESP8266_SSID); // 设置SSID(将字符串复制到ssid数组)
os_strcpy(AP_config.password,ESP8266_PASSWORD); // 设置密码(将字符串复制到password数组)
wifi_softap_set_config(&AP_config);
其中为了防止我们使用的那段内存中本身存在一些值,使用了os_memset(&AP_config, 0, sizeof(struct softap_config))先将我们定义的struct softap_config类型结构体AP_config先清零
至此,ESP8266设置wifi模式就已将完成了。
其实现在看来,其实就是调用了两个API
wifi_set_opmode(uint8 opmode)
wifi_softap_set_config (struct softap_config *config)
首先,我们要了解一下什么叫AP模式,其术语我就不介绍了,在我看来,就是我们让ESP8266创建一个WIFI,让它成为一个WiFi,我们用手机或者电脑去连接它,而不是让ESP8266去连接其它WiFi。
首先我们调用bool wifi_set_opmode (uint8 opmode)这个API,将ESP8266的wifi模式设置为softAP模式
API:wifi_set_opmode(uint8 opmode)
功能:设置 Wi-Fi ⼯作模式(Station, SoftAP 或者 Station+SoftAP),并保存到 Flash
参数:0x01(Station模式)、0x02(softAP模式)、0x03(Station + softAP模式)
然后我们要配置bool wifi_softap_set_config (struct softap_config *config)这个API,其参数为一个struct softap_config类型的结构体的指针
API:wifi_softap_set_config (struct softap_config *config)
功能:设置wifi SoftAP接口配置
参数:struct softap_config {
uint8 ssid[32]; //WIFI名称
uint8 password[64]; //密码
uint8 ssid_len; // WIFI名称长度
uint8 channel; //通道号
AUTH_MODE authmode; // 加密方式
uint8 ssid_hidden; // 是否隐藏密码,0为不隐藏
uint8 max_connection; // 最大连接数,就是允许几个人连入ESP8266创建的WIFI
uint16 beacon_interval; //信标间隔时槽,这个我不懂,有空问一问
};
所以我们首先要新建一个struct softap_config类型的结构体,然后配置其各个参数,值得注意的是其中的ssid和password是两个数组,应该使用os_strcpy()来赋值。我的赋值如下
struct softap_config AP_config;
wifi_set_opmode(0x02);//将8266设置为AP模式
os_memset(&AP_config, 0, sizeof(struct softap_config)); // AP参数结构体 = 0
AP_config.authmode = AUTH_WPA2_PSK;
AP_config.beacon_interval = 100;//信标间隔时槽
AP_config.channel = 1;
AP_config.max_connection = 2;
AP_config.ssid_hidden = 0;
AP_config.ssid_len = os_strlen(ESP8266_SSID);
os_strcpy(AP_config.ssid,ESP8266_SSID); // 设置SSID(将字符串复制到ssid数组)
os_strcpy(AP_config.password,ESP8266_PASSWORD); // 设置密码(将字符串复制到password数组)
wifi_softap_set_config(&AP_config);
其中为了防止我们使用的那段内存中本身存在一些值,使用了os_memset(&AP_config, 0, sizeof(struct softap_config))先将我们定义的struct softap_config类型结构体AP_config先清零
至此,ESP8266设置wifi模式就已将完成了。
其实现在看来,其实就是调用了两个API
wifi_set_opmode(uint8 opmode)
wifi_softap_set_config (struct softap_config *config)
举报