0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用ESP8266 SDK开发WiFi的Station和AP连接

CHANBAEK 来源:嵌入式攻城狮 作者:嵌入式攻城狮 2023-04-25 15:10 次阅读

WiFi站点(Station)和接入点(Access Point)

WiFi是由无线接入点AP(Access Point) 、站点(Station)等组成的无线网络。 Station (STA)是指每个连接到无线网络中的终端; 接入点 (AP)是无线网络的创建者,是网络的中心节点

图片

ESP8266模组支持STA、AP、STA+AP三种工作模式

  • STA模式:ESP8266模块通过路由器连接互联网,PC或手机通过互联网实现对设备的远程控制
  • AP模式:ESP8266模块作为热点,PC或手机直接与模块通讯,实现局域网无线控制
  • STA+AP模式:两种模式的共存,既可以通过路由器连接到互联网,通过互联网控制设备; 也可以作为WiFi热点,供其他WiFi设备连接。 实现了局域网和广域网的无缝切换

下面将介绍如何使用ESP8266 SDK开发WiFi的Station和AP连接

1. Station连接

WiFi Station入网流程如下图示:

图片

实现步骤如下:

在ESP8266_RTOS_SDK目录下新建station文件夹,把LED灯实验中的led目录下所有文件拷贝到该文件夹中

图片

使用Source Insight编辑器,编辑和浏览代码; 新建工程,并将station和include文件夹下的文件添加到工程中; 在led灯程序基础上,在user_main.c文件中的user_init()函数下添加如下代码

user_init(void)
{
    printf("SDK version:%s\\n", system_get_sdk_version());
    Led_init();
    wifi_set_opmode(STATION_MODE);	//配置WiFi为Station模式
    struct station_config *config = (struct station_config *)
    	zalloc(sizeof(struct station_config));//动态的分配内存空间
    sprintf(config->ssid,SSID);    
    sprintf(config->password,PASSWORD);     
    wifi_station_set_config(config);	//配置设置到寄存器里面
    free(config);	                //释放动态分配的内存
    wifi_station_set_auto_connect(TRUE);//启动wifi的一键连接
    xTaskCreate(ATaskLed, "LED", 256, NULL, 2, NULL);
}

图片

回到ESP8266编译器中,在station文件夹下,运行gen_misc.sh文件,依次确认配置(Y/1/2/3/4),编译完成后,烧写bin文件到ESP8266

图片

打开串口助手,模组复位后,串口输出相关信息后,模块显示连接到无线网络中,并获取到路由分配的IP

图片

2. AP连接

WiFi AP入网流程如下图示:

图片

实现步骤如下:

在ESP8266_RTOS_SDK目录下新建ap文件夹,把LED灯实验中的led目录下所有文件拷贝到该文件夹中

图片

使用Source Insight编辑器,编辑和浏览代码; 新建工程,并将ap和include文件夹下的文件添加到工程中; 在led灯程序基础上,在user_main.c文件中的user_init()函数下添加如下代码

user_init(void)
{
    printf("SDK version:%s\\n", system_get_sdk_version());
    Led_init();  
    wifi_set_opmode(SOFTAP_MODE);	//设置为AP模式 
    struct softap_config *config = (struct softap_config *)
	zalloc(sizeof(struct softap_config)); 
    wifi_softap_get_config(config);	//获取当前参数
    sprintf(config->ssid,SSID);		//传入自己定义的网络名称
    sprintf(config->password,PASSWORD);	//传入自己定义的网络密码
    config->authmode = AUTH_WPA_WPA2_PSK;//授权加密方式
    //设置网络名称长度为0,表示网络名称字符串中遇到'\\0'时结束
    config->ssid_len = 0;		
    config->max_connection = 4;		//设置最大连接数
    wifi_softap_set_config(config);	//设置到寄存器
    free(config);			//释放动态存储
    xTaskCreate(ATaskLed, "LED", 256, NULL, 2, NULL);
}

图片

回到ESP8266编译器中,在ap文件夹下,运行gen_misc.sh文件,依次确认配置(Y/1/2/3/4),编译完成后,烧写bin文件到ESP8266

图片

烧写bin文件到ESP8266后,打开串口助手,模组复位后,串口输出相关信息,用手机连接AP,获取到AP分配的地址

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 无线网络
    +关注

    关注

    6

    文章

    1374

    浏览量

    65247
  • WIFI
    +关注

    关注

    81

    文章

    5160

    浏览量

    199432
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48617
  • SDK
    SDK
    +关注

    关注

    3

    文章

    966

    浏览量

    44703
  • ESP8266
    +关注

    关注

    50

    文章

    947

    浏览量

    43946
收藏 人收藏

    评论

    相关推荐

    stm32+esp8266通过手机配置连接本地wifi的问题

    两种方案:1、AP模式。esp8266设置为AP或者AP+STA模式建立TCP server,然后手机连接该设备的
    发表于 06-15 17:03

    ESP8266串口WiFi模块 STATION 模式

    ESP8266串口WiFi模块 STATION 模式
    发表于 10-28 13:50

    如何利用stm32+esp8266通过手机配置连接本地wifi

    两种方案:1、AP模式。esp8266设置为AP或者AP+STA模式建立TCP server,然后手机连接该设备的
    发表于 07-30 01:57

    WIFI_AP_STA软AP只有STATION连接时才工作是为何?

    嗨,我在“WIFI_AP_STA”模式下使用 ESP8226。STATIONESP8266 作为客户端连接
    发表于 02-21 07:52

    ESP8266_SDK_User_Manual_Version 1.4

    ESP8266__IOT_SDK_User_Manual,ESP8266 SDK 使用指南
    发表于 12-30 14:23 20次下载

    esp8266,tcp通信实例详解

    ESP8266工作在station模式下,需确认ESP8266已经连接AP(路由器)并分配到IP地址,启用client
    发表于 11-04 10:14 4.3w次阅读
    <b class='flag-5'>esp8266</b>,tcp通信实例详解

    如何烧写F103-霸道/指南者上的 ESP8266 WIFI的固件

    烧写的地址也要设置好,具体的软件配置见下图。 4-用USB线连接电脑与开发板的USB转串口,然后在ESP8266 WIFI 烧写软件上搜索串口,设置波特率,具体见下图。 5-把
    发表于 11-24 17:46 18次下载
    如何烧写F103-霸道/指南者上的 <b class='flag-5'>ESP8266</b> <b class='flag-5'>WIFI</b>的固件

    ESP8266 SDK开发环境搭建初级教程

    ESP8266 SDK 开发环境 本章主要从开发环境搭建、工程模板建立、开发流程说明三个方面进行,在开发
    发表于 12-07 14:42 14次下载
    <b class='flag-5'>ESP8266</b> <b class='flag-5'>SDK</b><b class='flag-5'>开发</b>环境搭建初级教程

    esp8266串口wifi实例

    ESP8266串口WiFi扩展板是深圳四博智联科技有限公司开发的一款基于乐鑫ESP8266的超低功耗的UART-WiFi模块,本文介绍了
    发表于 12-08 13:34 1.8w次阅读

    esp8266中文资料汇总(esp8266引脚图_与单片机连接_串口wifi实例)

    本文首先介绍了esp8266引脚图功能与esp8266特性,其次介绍了 单片机与ESP8266串口连接及最小系统连接与程序分享,最后介绍了
    发表于 05-24 08:36 22.1w次阅读
    <b class='flag-5'>esp8266</b>中文资料汇总(<b class='flag-5'>esp8266</b>引脚图_与单片机<b class='flag-5'>连接</b>_串口<b class='flag-5'>wifi</b>实例)

    如何将ESP8266连接WiFi

    在之前的ESP8266项目中,我简要介绍了ESP8266 WiFi模块,如何开始使用ESP8266和Arduino,ESP8266
    的头像 发表于 07-29 11:32 8.5w次阅读
    如何将<b class='flag-5'>ESP8266</b><b class='flag-5'>连接</b>到<b class='flag-5'>WiFi</b>

    ESP8266 wifi模块开发汇总

                                  ESP8266 wifi模块开发汇总 ESP8266 wifi模块
    发表于 11-05 19:21 184次下载
    <b class='flag-5'>ESP8266</b> <b class='flag-5'>wifi</b>模块<b class='flag-5'>开发</b>汇总

    ESP8266连接手机

    esp8266的三种模式1为Station 模式:ESP8266 模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。2为AP
    发表于 11-30 16:06 37次下载
    <b class='flag-5'>ESP8266</b><b class='flag-5'>连接</b>手机

    ESP8266--SDK开发(HelloWorld!)

    ESP8266--SDK开发(HelloWorld!)
    发表于 12-03 17:21 12次下载
    <b class='flag-5'>ESP8266--SDK</b><b class='flag-5'>开发</b>(HelloWorld!)

    esp8266学习笔记(5)——连接wifiAP、UDP通信

    终于开始接触网络了,基础不行,这个摸索了有点久,还好网上资料多,有些细节还是没有怎么吃透。哈哈,开始联网了。ESP8266有三种模式:station模式:0x01soft-AP模式
    发表于 12-14 18:39 2次下载
    <b class='flag-5'>esp8266</b>学习笔记(5)——<b class='flag-5'>连接</b><b class='flag-5'>wifi</b>、<b class='flag-5'>AP</b>、UDP通信