ESP8266_STA模式
1、AP、STA的含义
AP:Access Point,访问接入点,终端设备通过访问接入点接入网络,ESP8266在AP模式相当于创建了一个WiFi局域网;
STA:Station,站点,就是所谓的终端设备,ESP8266在STA模式是作为终端设备接入另一个WiFi;
2、设置ESP8266为STA模式
像手机、笔记本一样,接入WiFi,起码要知道WiFi名和密码;
还要配置IP地址、子网掩码、默认网关,不过默认启动DHCP可以自动获取IP等;
2.1、使能STA模式、配置WiFi名和密码
#define ESP8266_STA_SSID "402"
#define ESP8266_STA_PASS "abc123456"//初始化STA模式,设置WiFi名和密码
void ICACHE_FLASH_ATTR STA_mode_init()
{struct station_config sta_cfg;os_memset(&sta_cfg, 0, sizeof(struct station_config)); // 结构体清0wifi_set_opmode(0x01); // 设置为STA模式,并保存到Flashos_strcpy(sta_cfg.ssid,ESP8266_STA_SSID); // 设置SSID(将字符串复制到ssid数组)os_strcpy(sta_cfg.password,ESP8266_STA_PASS); // 设置密码(将字符串复制到password数组)sta_cfg.bssid_set = 0;wifi_station_set_config(&sta_cfg); //设置STA模式
}
2.2、初始化TCP通信
UDP、TCP的内容前篇已经介绍过,AP或STA模式与其无关,这里把ESP8266当做TCP的服务器端,注意,要在连接完WiFi之后再初始化TCP通信,可通过wifi_station_get_connect_status函数获取连接状态;
os_timer_t timer_wifi_check; //检测wifi连接成功的定时器//检测wifi连接成功的定时器
void timer_wifi_check_callback()
{struct ip_info IP_info;u8 ip_dec[4];u8 buffer[20]; if( wifi_station_get_connect_status() == STATION_GOT_IP ){ // 判断连接状态,是否获取IPwifi_get_ip_info(STATION_IF,&IP_info); //32位二进制IP地址,将它转换为点分十进制的形式ip_dec[0] = IP_info.ip.addr;ip_dec[1] = IP_info.ip.addr>>8;ip_dec[2] = IP_info.ip.addr>>16;ip_dec[3] = IP_info.ip.addr>>24;// 打印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);//初始化TCPTCP_port8266_init();//关闭定时器os_timer_disarm(&timer_wifi_check);}else{ //等待WiFi连接os_printf("connecting wifi ......\n");}
}void ICACHE_FLASH_ATTR timer_init()
{os_timer_disarm(&timer_wifi_check);os_timer_setfn(&timer_wifi_check,timer_wifi_check_callback,NULL);os_timer_arm(&timer_wifi_check,1000,1); //1s}
3、下载、验证
在得知了ESP8266的IP之后,加上程序中写好的端口号,网络调试助手就作为客户端连接服务器,并发送数据了;
作为服务器,当收到数据后你也可以加两行代码打印客户端的IP和端口,知道是谁给你发的;
void ICACHE_FLASH_ATTR TCP_recv_callback(void * arg, char * pdata, unsigned short len)
{struct espconn * T_arg = arg; // 缓存网络连接结构体指针u8 client_ip[4];os_printf("\nESP8266_Receive_Data = %s\n",pdata); // 串口打印接收到的数据os_memcpy(client_ip,T_arg->proto.tcp->remote_ip,4);os_printf("client ip:%d.%d.%d.%d,port:%d\n",client_ip[0],client_ip[1],client_ip[2],client_ip[3],T_arg->proto.tcp->remote_port);// 向对方发送应答espconn_send(T_arg,"ESP8266_TCP_Recv_OK",os_strlen("ESP8266_TCP_Recv_OK"));}
ESP8266_STA模式相关推荐
- 大淘宝服务端技术干货沉淀和总结
网络基础 TCP三次握手 三次握手过程 客户端--发送带有SYN标志的数据包--服务端 一次握手 Client进入syn_sent状态 服务端--发送带有SYN/ACK标志的数据包--客户端 二次握手 ...
- python 各种模块学习
from:https://blog.csdn.net/weiwangchao_/article/details/70570508 转载:.... Python的模块大全,很全,有详细介绍! 另外附Py ...
- 物联网专题22:STA模式
STA 之前使用 ESP8266 的 AP 模式,即不论是 Server 还是 Client,我们都是接入到 8266 创建的 WiFi 热点.现在配置 8266 的STA模式,即将 8266 接入到 ...
- 【Docker】容器的几种网络模式
当你使用Docker时,你会发现需要了解很多关于网络的知识.Docker作为目前最火的轻量级容器引擎,因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求.本文介绍了Docker的4种 ...
- kali2020进入单模式_蚂蚁集团技术专家山丘:性能优化的常见模式及趋势
陈显铭(山丘) 读完需要 6分钟 速读仅需 2 分钟 陈显铭,花名山丘,就职于蚂蚁集团,对分布式应用架构.服务化.性能优化等有深入的理解.参与支付宝支付链路核心系统,设计.调优应用系统关键能力, 高效 ...
- 2022-2028年中国交通建设PPP模式深度分析及发展战略研究报告(全卷)
[报告类型]产业研究 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了PPP模式行业相关概述.中国PPP模式行业运行环境.分析了中国PPP ...
- Redis 笔记(10)— 发布订阅模式(发布订阅单个信道、订阅信道后的返回值分类、发布订阅多个信道)
1. 发布-订阅概念 发布-订阅 模式包含两种角色,分别为发布者和订阅者. 订阅者可以订阅一个或者若干个频道(channel): 而发布者可以向指定的频道发送消息,所有订阅此频道的订阅者都可以收到此消 ...
- 2022-2028年中国新型氟塑料行业市场发展模式及投资机会预测报告
[报告类型]产业研究 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了新型氟塑料行业相关概述.中国新型氟塑料行业运行环境.分析了中国新型氟 ...
- RabbitMQ 入门系列(11)— RabbitMQ 常用的工作模式(simple模式、work模式、publish/subscribe模式、routing模式、topic模式)
1. simple 模式 simple 模式是最简单最常用的模式 2. work 模式 work 模式有多个消费者 消息产生者将消息放入队列.生产者系统不需知道哪一个任务执行系统在空闲,直接将任务扔到 ...
最新文章
- mongodb3 分片集群平滑迁移
- 最后3天,BDTC 2019早鸟票即将售罄,超强阵容及议题抢先曝光!
- ABP官方文档翻译 3.1 实体
- ML.NET Cookbook:(5)如何查看中间过程数据?
- [ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [上篇]
- javafx 自定义控件_JavaFX自定义控件– Nest Thermostat第1部分
- 通过预训练提升语言理解
- ReactHooks+Antd Checkbox Group多选框组单独禁用其中选项
- nlogn求最长不上升子序列
- Confluence 6 自定义管理员联系信息
- java 月度相减_java根据日期获取月龄,按照减法原理,先day相减,不够向month借;然后month相减,不够向year借;最后year相减。...
- 使用源码安装 PostgreSQL 12.5 主从集群
- uwsgi怎么启动停止
- Linux下安装宋体以及微软雅黑字体
- 寒假训练1—H(第一次写出结构体数组)
- 自学编程,痛并快乐着
- BAT前端老鸟总结:未来几年web前端发展四大趋势前瞻
- 黑猴子的家:Scala 中置类型
- Cmake编译配置opencv3.3+contrib+cuda7.5
- 第四章 道德经第四章原文 道德经第四章译文