ESP8266_设置AP模式,WiFi名称密码

本文介绍了如何使用ESP8266模块设置为AP模式,包括配置SSID、密码,以及通过定时器查询工作模式、IP地址和连接设备数量。重点讲解了加密方式、IP地址获取和设备连接管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、AP(Access Point)访问接入点

ESP8266设置成AP模式,就等于了创建一个WiFi环境的无线局域网,知道这个WiFi名字和密码的终端设备就可以连接此WiFi;

可以想象,网络拓扑是星型,ESP8266在中间,四周连接不同的设备;

2、配置AP

#define ESP8266_AP_SSID 	"LOVEYOU"
#define ESP8266_AP_PASS		"Be Happy"

//初始化AP模式,设置WiFi名和密码
void ICACHE_FLASH_ATTR AP_mode_init()
{
	struct softap_config ap_config;

	wifi_set_opmode(0x02);							// 设置为AP模式,并保存到Flash

	os_memset(&ap_config, 0, sizeof(struct softap_config));	// AP参数结构体 = 0
	os_strcpy(ap_config.ssid,ESP8266_AP_SSID);		// 设置SSID(将字符串复制到ssid数组)
	os_strcpy(ap_config.password,ESP8266_AP_PASS);	// 设置密码(将字符串复制到password数组)
	ap_config.ssid_len=os_strlen(ESP8266_AP_SSID);	// 设置ssid长度(和SSID的长度一致)
	ap_config.channel=1;                      		// 通道号1~13
	ap_config.authmode=AUTH_WPA2_PSK;           	// 设置加密模式
	ap_config.ssid_hidden=0;                  		// 不隐藏SSID
	ap_config.max_connection=4;               		// 最大连接数
	ap_config.beacon_interval=100;            		// 信标间隔时槽100~60000 ms

	wifi_softap_set_config(&ap_config);				// 设置soft-AP,并保存到Flash

}

注意:加密方式是AUTH_WPA2_PSK,也就是要求密码长度是8~63ASCII码,如果你设置的密码长度小于8,则是默认的一个WiFi名称且没有密码的,如果你想设置一个没有密码的WiFi可以将authmode改为AUTH_OPEN;

3、查询ESP8266工作模式、IP地址、连接设备数量

os_timer_t timer_1s_cyc;	//1s循环定时器

//1s更新一次信息,本机IP,连接数
void timer_callback()
{
	struct ip_info IP_info;
	u8 ip_dec[4];
	u8 buffer[20];

	// 查询并打印ESP8266的工作模式
	switch(wifi_get_opmode())	// 输出工作模式
	{
		case 0x01:	os_printf("\nESP8266_Mode = Station\n");		break;
		case 0x02:	os_printf("\nESP8266_Mode = SoftAP\n");			break;
		case 0x03:	os_printf("\nESP8266_Mode = Station+SoftAP\n");	break;
	}

	//AP模式下,默认开启DHCP,默认IP:192.168.4.1
	//-----------------------------------------------------------------------------------
	wifi_get_ip_info(SOFTAP_IF,&IP_info);	// 参数2:IP信息结构体指针

	//32位二进制IP地址,将它转换为点分十进制的形式
	ip_dec[0] = IP_info.ip.addr;			// 点分十进制IP
	ip_dec[1] = IP_info.ip.addr>>8;		// 点分十进制IP
	ip_dec[2] = IP_info.ip.addr>>16;		// 点分十进制IP
	ip_dec[3] = IP_info.ip.addr>>24;		// 点分十进制IP

	// 打印ESP8266的IP地址
	os_printf("ESP8266_IP = %d.%d.%d.%d\n",ip_dec[0],ip_dec[1],ip_dec[2],ip_dec[3]);
	os_sprintf(buffer,"IP:%d.%d.%d.%d",ip_dec[0],ip_dec[1],ip_dec[2],ip_dec[3]);
	oled_show_string(0,0,buffer,FONT_8x16);

	// 查询并打印接入此WIFI的设备数量
	os_printf("Number of devices connected to this WIFI = %d\n",wifi_softap_get_station_num());

}

void ICACHE_FLASH_ATTR timer_init()
{
	os_timer_disarm(&timer_1s_cyc);
	os_timer_setfn(&timer_1s_cyc,timer_callback,NULL);
	os_timer_arm(&timer_1s_cyc,1000,1);

}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值