2、以设备模式接入家中路由器配置

AT
+
CWJAP

“wifi名称”
,
“wifi密码”
//
指令

WIFI CONNECTED
//
结果

WIFI GOT IP
//
结果

3、查询IP地址

AT
+
CIFSR
//
指令

//结果

CIFSR
:
APIP
,
“192.168.4.1”                           //表示ESP作为路由器的ip地址

CIFSR
:
APMAC
,
“4e:75:25:0d:ae:2f”

CIFSR
:
STAIP
,
“192.168.0.148”                     //连接服务器的ip地址

CIFSR
:
STAMAC
,
“4c:75:25:0d:ae:2f”

OK

三、 连接到TCPserver并发送数据

1. 开关网络助手,设立TCP服务器

esp8266 at 波特率 esp8266波特率怎么修改_服务器

2. 连接服务器

AT
+
CIPSTART

“TCP”
,
“100.117.98.129”
,
8888
//
指令,注意双引号逗号都要半角
(
英文
)
输入

CONNECT
//
结果:成功

OK
//
结果:成功

3 . 发送数据

AT
+
CIPSEND

5
//
设置即将发送数据的长度 (这里是5
个字节)

hello
 
//
看到大于号后,输入消息,hello
,不要带回车

Response
:
SEND OK
//
结果:成功

//
注意,这种情况下,每次发送前都要先发送AT+CIPSEND=长度 的指令,再发数据!

4、数据透传

由于发送数据要设置数据的长度,比较麻烦,如果设置为透传,就可以不设置数据长度,想发多少就多少

AT
+
CIPMODE

1
//
开启透传模式

Response
:
OK

AT
+
CIPSEND
//
带回车

Response
:

//
这个时候随意发送接收数据咯

退出透传

//在透传发送数据过程中,若识别到单独的⼀包数据 “+++”,则退出透传发送

四、esp8266-01s与stc51单片机相连,通过串口通信点亮led灯

1.直接上代码

#include "reg52.h"
#include<intrins.h>
#include<string.h>
#define SIZE 12

sbit led1=P3^7;
sbit led2=P3^6;

sfr  AUXR=0x8E;
char buffer[SIZE];

 code char LJWL[] ="AT+CWJAP=\"5613\",\"12345678\"\r\n";   //转意在两双引号之前,以设备模式接入家中路由器配置
 code char LJFWQ[]="AT+CIPSTART=\"TCP\",\"100.117.64.126\",8888\r\n";//连接TCP server
char TCMS[] ="AT+CIPMODE=1\r\n";      //透传
char SJCS[] ="AT+CIPSEND\r\n";        //发送数据

char RESET[] = "AT+RST\r\n"; //重启模块指令

char AT_OK_Flag=0;
char AT_Connect_Net_flag=0;


void Delay1000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 8;
	j = 1;
	k = 243;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}


void UartInit(void)		//9600bps@11.0592MHz
{
    SCON=0x50;//配置串口方式1,REN使
  	TMOD &= 0xF0;
	  TMOD|=0x20;//配置定时器1模式8位自动
	  TH1 =0xFD;
	  TL1 =0xFD;//9600的波特率
	  TR1=1;//启动定时器
	  AUXR=0x01;
	  EA=1;//打开总中断
	  ES=1;//打开串口中断
	
}

void sendByte(char data_msg)
{
	SBUF=data_msg;
	while(TI==0);//发送中断
		TI=0;
}

void sendstring(char *str)
{
	while(*str!='\0')
	{
		sendByte(*str);
		str++;
	}
		
}
void main()
{
	    int mark=0;
	    led1=1;//灭灯状态
	//配置C51串口的通信方式
	    UartInit();
	    Delay1000ms();//给wifi模块上电时间
	   sendstring(LJWL);
		while(!AT_Connect_Net_flag);
    while(!AT_OK_Flag);
	   AT_OK_Flag = 0;
	//发送连服务器指令并等待成功
	  sendstring(LJFWQ);
		while(!AT_OK_Flag);
  	AT_OK_Flag=0;
	//发送透传模式指令并等待成功
	  sendstring(TCMS);
		while(!AT_OK_Flag);
	  AT_OK_Flag=0;
	//发送数据传输指令并等待成功
	  sendstring(SJCS);
	  while(!AT_OK_Flag);
   	AT_OK_Flag=0;
	 
		
		if(AT_Connect_Net_flag)
		{
	     led1=0;//点亮led1,代表入网成功
		}
		
		while(1)
		{
			Delay1000ms();
		//往发送缓冲区写入数据,就完成数据得发送
			sendstring("shangguan shuai");
	
		}

	

}
void Uart_Handler() interrupt 4
{
	char tmp;
	static int i=0;//静态变量,被初始化一次
	if(RI)//中断处理函数中,对于接收中断的响应
	{
		  RI=0;
		tmp=SBUF;//一个字母一个字母的输入
		//tmp=='W'||tmp=='O'||tmp=='L'||tmp=='F'
  if(tmp=='W'||tmp=='O'||tmp=='A'||tmp=='P')
#