Wifi——STA模式简介(透传例程)
0. 本文参考例程:野火物联
例程和APP 只支持手机跟WIFI 模块通信,是属于局域网的点对点通信,没有实现公网通信功能。
1. Wifi模块ESP8266简介
ESP8266 是串口型WIFI,速度比较低,不能用来传输图像或者视频这些大容量的数据,主要应用于数据量传输比较少的场合,比如温湿度信息,一些传感器的开关量等。
ESP8266与单片机串口连接。一方面单片机可以通过串口发送AT命令给ESP8266,ESP8266会返回给单片机一个返回值;另一方面,当手机与ESP8266连接后,APP通过Wifi发送命令给ESP8266模块,ESP8266接收并通过串口将命令发送至单片机。
2. Wifi的两种模式
AP模式: Access Point,提供无线接入服务,允许其它无线设备接入,提供数据访问,一般的无线路由/网桥工作在该模式下。AP和AP之间允许相互连接。
Sta模式: Station, 类似于无线终端,sta本身并不接受无线的接入,它可以连接到AP,一般无线网卡即工作在该模式。
3. 例程分析
例程中的main()函数首先对各个硬件进行初始化,包括串口,系统时钟,ESP8266连接引脚,以及温度传感器等硬件设备。其中ESP8266模块的初始化函数ESP8266_Init()函数初始化了所有与ESP8266模块相连引脚的初始化,包括:uart_tx,uart_rx,使能引脚CH,复位引脚RST。
然后,进入函数体ESP8266_ApTcpClient_UnvarnishTest()中,并在其中无限循环,大致工作如下:
macESP8266_CH_ENABLE();
使能ESP8266模块。
ESP8266_AT_Test ();
发送AT命令测试ESP8266模块是否正常。
ESP8266_Net_Mode_Choose ( STA );
设置模块为STA模式。
ESP8266_JoinAP ( macUser_ESP8266_ApSsid, macUser_ESP8266_ApPwd );
设置模块连接外部WiFi的名字和密码。
ESP8266_Enable_MultipleId ( DISABLE );
禁能多连接模式。
ESP8266_Link_Server ( enumTCP, macUser_ESP8266_TcpServer_IP, macUser_ESP8266_TcpServer_Port, Single_ID_0 );
建立TCP连接,参数为需要连接设备的IP和端口。
ESP8266_UnvarnishSend ();
设置模块为透传模式。
while(1){...};
上面单片机通过发送AT命令将ESP8266设置完毕后,进入循环的主体,向目标的IP和端口发送温度湿度信息,可在上位机中的网络助手中读取,并在每次循环检测连接状态。代码的具体解释如下:
while(1) { 获取温湿度信息; 发送温湿度信息到网络调试助手; if(连接断开) { 退出透传模式; 重新进行连接; if(确认失去连接) { 重新加入; 重新建立连接; } 进入透传模式; } }
- 点赞
- 收藏
- 关注作者
评论(0)