1、SmartConfig
2、连接固定的路由
在程序中写死;
例如:
void ESP8266_Init_Fixed_WiFi(void)
{
ESP8266_Clear();
/* AT测试 */
printf("0. ATrn");
ESP8266_SendCmd("ATrn", "");
delay_ms(500);
/* 重启 */
printf("1. RSTrn");
ESP8266_SendCmd("AT+RSTrn", "");
delay_ms(500);
/* 设置WiFi模式
* 1:Station 模式
* 2:SoftAP 模式
* 3:SoftAP+Station 模式
*/
printf("2. CWMODErn");
while(ESP8266_SendCmd("AT+CWMODE=1rn", "OK"))
delay_ms(500);
/* 连接路由 */
printf("3. CWJAPrn");
while(ESP8266_SendCmd(ESP8266_WIFI_INFO, "OK"))
delay_ms(500);
/* 建立TCP连接 */
printf("4. CIPSTARTrn");
while(ESP8266_SendCmd(ESP8266_TCP_INFO, "CONNECT"))
delay_ms(500);
printf("5. ESP8266 Init OKrn");
}
#define ESP8266_WIFI_INFO "AT+CWJAP="FAST_E162","12345678"rn"
#define ESP8266_TCP_INFO "AT+CIPSTART="TCP","www.bilibili.com",80rn"
例子中:
第三步实际发送的指令是 AT+CWJA,"12345678"rn
在一对双引号内要表示双引号要加转义字符;
WiFi名称及密码,连接的服务器及端口需要修改,这里只是作为例子;
3、自动连接上一次配置的路由
void ESP8266_Init_Disconnected(void)
{
ESP8266_Clear();
printf("1. RSTrn");
ESP8266_SendCmd("AT+RSTrn", "");
delay_ms(500);
ESP8266_Clear();
while(1)
{
if(strstr((char *)esp8266_buf, "GOT IP"))
break;
delay_ms(500);
}
/* 建立TCP连接 */
printf("2. CIPSTARTrn");
while(ESP8266_SendCmd(ESP8266_TCP_INFO, "CONNECT"))
delay_ms(500);
}
发送完命令后的延时不可少,可以适当调小,自行调试;
重启后会自动连接上次配置过的WiFi,如果该WiFi可用;
连接成功后ESP-01S会通过串口发送包含 GOT IP 字符串;
STM32通过检测串口接收到的数据有无包含该字符串来判断有无连上WiFi;
使用时可以注释掉 printf(); 语句,这里只是方便串口调试。
1、SmartConfig
2、连接固定的路由
在程序中写死;
例如:
void ESP8266_Init_Fixed_WiFi(void)
{
ESP8266_Clear();
/* AT测试 */
printf("0. ATrn");
ESP8266_SendCmd("ATrn", "");
delay_ms(500);
/* 重启 */
printf("1. RSTrn");
ESP8266_SendCmd("AT+RSTrn", "");
delay_ms(500);
/* 设置WiFi模式
* 1:Station 模式
* 2:SoftAP 模式
* 3:SoftAP+Station 模式
*/
printf("2. CWMODErn");
while(ESP8266_SendCmd("AT+CWMODE=1rn", "OK"))
delay_ms(500);
/* 连接路由 */
printf("3. CWJAPrn");
while(ESP8266_SendCmd(ESP8266_WIFI_INFO, "OK"))
delay_ms(500);
/* 建立TCP连接 */
printf("4. CIPSTARTrn");
while(ESP8266_SendCmd(ESP8266_TCP_INFO, "CONNECT"))
delay_ms(500);
printf("5. ESP8266 Init OKrn");
}
#define ESP8266_WIFI_INFO "AT+CWJAP="FAST_E162","12345678"rn"
#define ESP8266_TCP_INFO "AT+CIPSTART="TCP","www.bilibili.com",80rn"
例子中:
第三步实际发送的指令是 AT+CWJA,"12345678"rn
在一对双引号内要表示双引号要加转义字符;
WiFi名称及密码,连接的服务器及端口需要修改,这里只是作为例子;
3、自动连接上一次配置的路由
void ESP8266_Init_Disconnected(void)
{
ESP8266_Clear();
printf("1. RSTrn");
ESP8266_SendCmd("AT+RSTrn", "");
delay_ms(500);
ESP8266_Clear();
while(1)
{
if(strstr((char *)esp8266_buf, "GOT IP"))
break;
delay_ms(500);
}
/* 建立TCP连接 */
printf("2. CIPSTARTrn");
while(ESP8266_SendCmd(ESP8266_TCP_INFO, "CONNECT"))
delay_ms(500);
}
发送完命令后的延时不可少,可以适当调小,自行调试;
重启后会自动连接上次配置过的WiFi,如果该WiFi可用;
连接成功后ESP-01S会通过串口发送包含 GOT IP 字符串;
STM32通过检测串口接收到的数据有无包含该字符串来判断有无连上WiFi;
使用时可以注释掉 printf(); 语句,这里只是方便串口调试。
举报