“连接ESP8266和PC端/单片机的优化方案”

PC端连接ESP8266

硬件:ESP8266模块,USB转TTL
连接方式 : esp8266的TX接转串口的RX,RX接TX


安装阿信可的esp8266调试工具
[ESP8266网络调试工具]ESP8266网络调试工具 提取码:djsz

什么是AT指令:

AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal
Equipment,DTE)向终端适配器(Terminal Adapter,TA)或数据电路终端设备(Data Circuit
Terminal Equipment,DCE)发送的。
其对所传输的数据包大小有定义:即对于AT指令的发送,除AT两个字符外,最多可以接收1056个
字符的长度(包括最后的空字符)。
每个AT命令行中只能包含一条AT指令;对于由终端设备主动向PC端报告的URC指示或者response
响应,也要求一行最多有一个,不允许上报的一行中有多条指示或者响应。AT指令以回车作为结尾,响应或上报以回车换行为结尾。

联网操作

0.上电观察ESP8266指示灯闪烁一会后不再闪烁

1.ESP-01s出厂波特率正常是115200, 注意:AT指令,控制类都要加回车,数据传输时不加回车(上电后,通过串口输出一串系统开机信息,购买的部分模块可能电压不稳,导致乱码,以 ready 为准

2.0上电后发送AT指令测试通信及模块功能是否正常

3.通过一下命令配置成9600波特率

AT+UART=9600,8,1,0,0

4.入网设置(设置工作模式)

AT+CWMODE=3 //1. 是station(设备)模式 2.是AP(路由)模式 3.是双模

5.以设备模式接入家中路由器配置

6.查询IP地址

AT+CIFSR //指令

7. 连接到 TCP server( 开关网络助手,设立TCP服务器)

pc端网络调试助手 提取码:djsz

!!!!!把本地端口号设置为 8880
如何查询自己电脑的ip地址
win + r 打开命令行
输入ipconfig


192.168.31.216就是我们需要的地址

7. 连接到服务器

AT+CIPSTART="TCP","192.168.31.216",8880//指令,注意双引号逗号都要半角(英文)输入

8.发送数据

AT+CIPSEND=4 // 设置即将发送数据的长度 (这里是4个字节)
>CLCA // 看到大于号后,输入消息,CLCA,不要带回车
Response :SEND OK //结果:成功
//注意,这种情况下,每次发送前都要先发送AT+CIPSEND=长度 的指令,再发数据!

9.设置透传模式(不受上面发送数据的约束,和麻烦)

AT+CIPMODE=1 //开启透传模式
Response :OK
AT+CIPSEND //带回车
Response: > //这个时候随意发送接收数据咯

10.退出透传模式

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

利用51单片机接通esp8266

串口初始化函数
void UartInit(void)		//9600bps@11.0592MHz
{
	PCON &= 0x7F;		//波特率不倍速
	SCON = 0x50;		//8位数据,可变波特率
	AUXR &= 0xBF;		//定时器时钟12T模式
	AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		//设置定时器模式
	TMOD |= 0x20;		//设置定时器模式
	TL1 = 0xFD;		//设置定时初始值
	TH1 = 0xFD;		//设置定时重载值
	ET1 = 0;		//禁止定时器%d中断
	TR1 = 1;		//定时器1开始计时
}
发送字节和字符串函数
void SendByte(char sum)
{
	SBUF = sum;
	while(!TI);
	TI = 0;
}

void SendString(char *str)
{
	while(*str != '\0'){
		SendByte(*str);
		str++;
	}
}

包装命令字符串
code char LJWL[] = "AT+CWJAP=\"Xiaomi_70B6\",\"dianke513\"\r\n";  
code char LJFWQ[] = "AT+CIPSTART=\"TCP\",\"192.168.31.216\",8880\r\n";
char TCMS[] = "AT+CIPMODE=1\r\n";
char SJCS[] = "AT+CIPSEND\r\n";

在主函数中调用
int main()
{
	UartInit();
	Uart_exit();
	Delay(5000);
	SendString(LJWL);
	Delay(5000);
	SendString(LJFWQ);
	Delay(5000);
	SendString(TCMS);
	Delay(5000);
	SendString(SJCS);
	Delay(5000);
	while(1)
	{
		SendString("RIGHT CONNECT\r\n");
		Delay(1000);
	}
}

(要给定足够的延时时间)

观察网络端口的数据

同时可以加命令,让网络端口发数据指挥单片机工作

物联沃分享整理
物联沃-IOTWORD物联网 » “连接ESP8266和PC端/单片机的优化方案”

发表评论