百问网七天物联网课程笔记(第六天)

本文介绍了如何使用ESP8266开发板配置TCP连接,并通过AT指令与小程序进行交互。步骤包括发送AT指令进行设备重启、设置工作模式、连接WiFi、开启多连接模式、设置服务器及获取IP地址。小程序参数配置需注意连接相同WiFi、使用查询到的IP地址及指定端口。成功连接后,开发板将响应特定串口信息以指示操作状态。
摘要由CSDN通过智能技术生成

基础班部分

今日内容:使用开发板配置TCP连接,使用小程序和开发板进行交互。

在这里插入图片描述AT指令发送函数:

// 向ESP8266发送AT指令
uint8_t ESP8266_SendCommand(char *cmd, char *reply, uint16_t timeout)
{
	// 1.保存传入的指令
	char buf[256] = {0};
	strcat(buf, cmd);
	// 2.处理AT指令
	if (strstr(buf, "\r\n") == 0)
	{
		strcat(buf, "\r\n");
	}
	// 3.清理前面接收的buf
	USART2_ClearBuf();
	// 4.发送数据
	USART2_Transmit((uint8_t *)buf, strlen(buf), 500);
	// 5.接收数据
	memset(buf, 0, 256);
	while(timeout != 0)
	{
		if(USART2_Receive((uint8_t *)buf))
		{
			if (strstr(buf, reply))
			{
				printf("%s Send ok!\r\n", cmd); // 发送成功
				
				if (strstr(buf, "CIFSR"))
					printf("%s\r\n", buf); // 打印IP地址
				
				return 0;
			}
			else
			{
				timeout--;
				HAL_Delay(1);
			}
		}
	}
	
	printf("%s Send error!\r\n", cmd); // 发送失败
	return 1;
}

TCP连接AT指令配置过程:

  ESP8266_SendCommand("AT+RST", "OK", 500);
  HAL_Delay(1000);
  ESP8266_SendCommand("AT+CWMODE=1", "OK", 500);
  ESP8266_SendCommand("AT+CWJAP=\"TP-LINK\",\"password\"", "OK", 5000);
  ESP8266_SendCommand("AT+CIPMUX=1", "OK", 500);
  ESP8266_SendCommand("AT+CIPSERVER=1,9999", "OK", 500);
  ESP8266_SendCommand("AT+CIFSR", "OK", 500);

小程序参数配置注意事项:
1.手机要和wifi模块连接同一个wifi
2.IP地址为AT+CIFSR指令查询返回的IP
3.端口:9999

在这里插入图片描述连接成功后,
打开“台灯”,串口显示“led on”。
关闭“台灯”,串口显示“led off”。
点击开发板的按键,“门铃”标签亮

字符串处理函数介绍

wifi模块的数据接收和发送都是基于字符串,以下几个是AT指令处理过程中的常用处理函数。
头文件:#include “string.h”

strlen():计算指定字符串的长度
strcat():字符串拼接
strncat():将字符串2的前n个字符拼接到字符串1后面
strcpy():复制字符串。成功返回新字符串的首地址,失败返回NULL
strncpy():复制指定长度的字符串。成功返回新字符串的首地址,失败返回NULL
strstr():在字符串1中查到字符串2出现的位置。成功返回字符串1中,字符串2首次出现的地址
strchr():在字符串1中查到单个字符2出现的位置。成功返回字符串1中,单个字符2首次出现的地址
strcmp():比较字符串1和字符串2是否一样(比较的是字符ASCII码的大小)
strncmp():比较字符串1和字符串2前n个字符是否一样(比较的是字符ASCII码的大小)
strtok():分解参数1的字符串为一组字符串,参数2为分隔符

sprintf():头文件 #include"stdio.h",用于实现字符串和整形数字的组合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值