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

    文章

    1432

    浏览量

    65926
  • WIFI
    +关注

    关注

    81

    文章

    5296

    浏览量

    203576
  • 编译器
    +关注

    关注

    1

    文章

    1623

    浏览量

    49108
  • SDK
    SDK
    +关注

    关注

    3

    文章

    1035

    浏览量

    45900
  • ESP8266
    +关注

    关注

    50

    文章

    962

    浏览量

    44964
收藏 人收藏

    评论

    相关推荐

    ESP8266缓存AP后,是否会自动连接到任何缓存的AP

    我有一个关于工作站模式的 AP 缓存的问题。我知道ESP8266最多可以缓存 5 个 AP 已成功连接SDK 说:
    发表于 07-11 07:58

    ESP8266EX连接WIFI AP时,是否需要执行一些特殊程序?

    ESP8266EX处于 STATION 模式。我正在使用 0.9.2 SDK 和 lubuntu 来构建。 1.当模块上电后首次连接WIFI
    发表于 07-15 07:57

    esp8266 AP STA连接丢失的原因?

    通过 wifi_station_set_reconnect_policy(); 这个想法是用户可以通过连接esp8266 AP 来重新配置/修复
    发表于 07-18 07:17

    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 21次下载

    ESP8266中文版SDK编程手册

    2A-ESP8266__IOT_SDK_User_Manual SDK使用手册 2B-ESP8266__SDK__IOT_Demo 2C-ESP8266__SDK__Progra
    发表于 12-30 14:48 0次下载

    esp8266,tcp通信实例详解

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

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

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

    ESP8266(NodeMCU)无线终端模式连接WiFi

    使用NodeMCU无线终端模式连接WiFi,并在串口打印出相关信息。ESP8266有三种工作模式,分别为:AP,STA,AP混合STA,下面
    发表于 10-27 13:21 9次下载
    <b class='flag-5'>ESP8266</b>(NodeMCU)无线终端模式<b class='flag-5'>连接</b><b class='flag-5'>WiFi</b>

    ESP8266 wifi模块开发汇总

                                  ESP8266 wifi模块开发汇总 ESP8266 wifi模块
    发表于 11-05 19:21 188次下载
    <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-01制作WIFI遥控小车(一)

    使用ESP8266-01制作WIFI遥控小车(一)ESP8266简介ESP8266有三种工作模式:STA、AP以及STA+
    发表于 01-12 19:47 46次下载
    使用<b class='flag-5'>ESP8266</b>-01制作<b class='flag-5'>WIFI</b>遥控小车(一)

    ESP8266 SDK⼊⻔指南

    电子发烧友网站提供《ESP8266 SDK⼊⻔指南.pdf》资料免费下载
    发表于 09-23 14:16 18次下载
    <b class='flag-5'>ESP8266</b> <b class='flag-5'>SDK</b>⼊⻔指南

    esp8266wifi模块怎么连接手机

    ESP8266 WiFi模块连接手机主要可以通过两种方式实现: 通过路由器连接(STA模式)和直接作为热点连接
    的头像 发表于 08-19 17:27 2642次阅读