ESP32作为Wi-Fi STA模式的测试
创作时间:
作者:
@小白创作中心
ESP32作为Wi-Fi STA模式的测试
引用
CSDN
1.
https://blog.csdn.net/weixin_55171106/article/details/145057158
STA模式的流程
初始化阶段(Init Phase)
- 1.1: Main task(主任务)初始化LwIP(轻量级TCP/IP协议栈)。
ESP_ERROR_CHECK(esp_netif_init()); - 1.2: 创建和初始化Event task(事件任务)。
ESP_ERROR_CHECK(esp_event_loop_create_default()); - 1.3: 创建和初始化Wi-Fi任务。
esp_netif_create_default_wifi_sta(); wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); ESP_ERROR_CHECK(esp_wifi_init(&cfg)); - 1.4: 创建应用任务。
配置阶段(Configure Phase)
- 2: 配置Wi-Fi,例如SSID、密码等参数。
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config));
启动阶段(Start Phase)
- 3.1: 启动Wi-Fi。
ESP_ERROR_CHECK(esp_wifi_start()); - 3.2: WIFI_EVENT_STA_START事件触发,表示Wi-Fi STA已启动。
- 3.3: 应用任务或事件任务处理STA启动后的逻辑。
连接阶段(Connect Phase)
- 4.1: 连接Wi-Fi网络。
- 4.2: WIFI_EVENT_STA_CONNECTED事件触发,表示Wi-Fi STA成功连接到接入点。
- 4.3: 应用任务处理连接后的操作。
获取IP阶段(Got IP Phase)
- 5.1: 启动DHCP客户端以获取IP地址。
- 5.2: IP_EVENT_STA_GOT_IP事件触发,表示设备已成功获取IP地址。
- 5.3: 应用任务处理与IP相关的逻辑,例如初始化套接字。
- 5.4: 处理与套接字相关的初始化。
断开连接阶段(Disconnect Phase)
- 6.1: WIFI_EVENT_STA_DISCONNECTED事件触发,表示Wi-Fi STA与接入点断开连接。
- 6.2: 处理STA断开连接后的逻辑。
- 6.3: 处理具体的断开连接操作,例如清理资源。
IP变更阶段(IP Change Phase)
- 7.1: IP_EVENT_STA_GOT_IP事件表示设备的IP地址发生变更。
- 7.2: 处理IP地址变更的具体逻辑。
- 7.3: 套接字错误处理,例如由于IP变更引起的网络异常。
去初始化阶段(Deinit Phase)
- 8.1: 断开Wi-Fi连接。
- 8.2: 停止Wi-Fi任务。
- 8.3: 去初始化Wi-Fi,清理相关资源。
代码流程
ESP32作为TCP Client—— IP地址默认分配为192.168.10.x
网络调试助手作为TCP Server——IP地址: 192.168.137.1 端口号:8080
主函数初始化STA模式:wifi_init_sta
- 1.初始化NVS
- 2.初始化 TCP/IP 协议栈
- 3.初始化esp事件循环
- 4.创建 Wi-Fi 接口,包括IP地址、子网掩码和网关
- 5.配置 Wi-Fi 事件处理器和IP事件处理器(函数指针指向函数wifi_event_handler)
- 6.设置 Wi-Fi 模式为STA模式,配置STA模式参数
- 7.启动Wi-Fi
Wi-Fi事件处理器wifi_event_handler
- 1.处理Wi-Fi的STA(Station,客户端模式)启动事件
- 2.处理ESP32成功连接到指定的Wi-Fi AP事件
- 3.处理ESP32与Wi-Fi AP断开连接事件
- 4.处理ESP32成功从AP获取IP地址的事件(启动TCP客户端任务)
TCP客户端任务tcp_client_task
- 1.设置struct sockaddr_in结构体保存目标服务器的地址信息,目标AP的IP地址和端口号
- 2.创建一个TCP套接字socket()
- 3.使用套接字连接到目标服务器connect()
- 4.通过send()函数发送数据到服务器,通过recv()从服务器接收数据,
- 5.在任务退出前,关闭TCP连接和释放资源。shutdown()用于关闭套接字上的连接,close()释放套接字资源。
实现效果
通过网络调试助手作为TCP Server与ESP32建立TCP连接,发送和接收数据。注意电脑使用网络调试助手,热点设置2.5G频段,连接wifi不能使用公司wifi。
热门推荐
巨野:沉积在鲁西南历史中的浩瀚泽国
【案例评析】交通事故赔偿范围的合理认定
佛山跨区居住和上班的居住证怎么办理
我用AI在15分钟内免费制作了一部动画卡通!
26岁小伙甲流后"面瘫"?医生提醒:出现这些信号立刻就医
恋爱中的包容与理解:构建和谐关系的基石
打造独特IP形象的八大策略
国家体育总局发布“儿童青少年科学健身20条” | 孩子如何锻炼,有了新指南
远投路亚竿钓重 路亚竿远投一般要几克的假饵
曾是“广州四大美女”之一的TVB女星冯晓文 ~演过教主夫人苏荃
详谈DVI接口的特点与应用
宝宝吃鸡蛋过敏的症状
吃东西过敏怎么检查
动物疫苗政策解读——为动物健康保驾护航
为什么马桶水箱会漏水?维修方法详解
高睡眠质量必备懒人包:脚底按摩一点也不可怕,十分钟解答各种穴位功能
经济补偿金是按工龄算吗?一文详解计算规则
“低空经济+应急救援” 为高空灭火插上科技翅膀
8个简单低钠饮食小技巧,让你减少钠的摄入量
区块链开发入门:原理、技术与实践
学风水最好的入门书籍 堪舆入门三书
打通虚拟与真实,猫咪链游Catizen将与社区千万用户共同救助流浪猫
贵州20大经典早餐:从遵义羊肉粉到贵阳肠旺面,每一道都是家乡的味道
深入解析Si功能:内向感觉在MBTI中的角色与影响
显卡OC是什么意思?带OC显卡的选购指南与超频设置详解
中国机器人哪能不会点儿中国功夫 前空翻特技震撼亮相
让每一块墓碑都诉说一段深情——解析墓碑的正确写法
网络流行语“册那”的起源、用法及其社会现象解析
针尖上的医术:郭廷英用一针疗法治愈无数难疾,人称“郭一针”
沪C牌照为何不能进市区?详解上海郊区车牌的限行规定