资讯专栏INFORMATION COLUMN

ESP32+TFTLCD实现WiFi天气语音播报(七)

jas0n / 2762人阅读

摘要:串口调试助手默认波特率为,在使用串口调试助手的时候如果接受到的是乱码可以试一下其他的波特率。代码在这提取码总结串口调试助手的使用就不在说明了,有什么不足还请指出,谢谢。

ESP8266WiFi模块



前言

ESP8266 WIFI串口通信模块需要用到的资源都在这了
提取码:lwm2


一、模块简介

1、原理图

原理图呈上,ESP8266 模块采用串口(LVTTL)与 MCU(或其他串口设备)通信,内置
TCP/IP 协议栈,能够实现串口与 WIFI 之间的转换。

注:我们使用的模块已经安装在板子上,模块通过 6 个 2.54mm 间距的排针与外部连接

2、功能参数说明

模块支持串口转WIFI STA、串口转AP和WIFI STA+WIFI AP 的模式。
ATK-ESP8266 模块支持 STA/AP/STA+AP 三种工作模式。

  • STA 模式:ESP8266 模块通过路由器连接互联网,手机或电脑通过互联网实
    现对设备的远程控制。
  • AP 模式:默认模式 ATK_ESP8266 模块作为热点,实现手机或电脑直接与模
    块通信,实现局域网无线控制。
  • STA+AP 模式:两种模式的共存模式,(STA 模式)即可以通过路由器连接到
    互联网,并通过互联网控制设备;(AP 模式)也可作为 wifi 热点,其他 wifi
    设备连接到模块。这样实现局域网和广域网的无缝切换,方便操作。

要想进行串口通信,可以通过板载usb插口连接电脑,也可以通过 USB 转 TTL 模块
下面是模块连接图

在使用USB转TTL模块与电脑连接之后,就可以使用串口调试助手进行WIFI模块的调试了。串口调试助手默认波特率为115200,在使用串口调试助手的时候如果接受到的是乱码可以试一下其他的波特率(9600)。

3、AT指令

AT 指令可以细分为四种类型:

注意:
• 不是每条 AT 指令都具备上述 4 种类型的命令。
• [ ] 括号内为缺省值,不必填写或者可能不显示。
• 使⽤双引号表示字符串数据 ”string”,例如:AT+CWSAP=“ESP756290”,“21030826”,1,4
• 波特率为 115200,串⼝设置如图 2-1 所示。
• AT 指令不区分⼤小写,以回⻋换⾏符结尾 /r/n。

基础 AT 指令列表如表 2.2.3.1 所示:

ESP8266可以连接当前环境的热点,与服务器建立TCP连接,传输数据。
一般步骤为:
AT+CWMODE=1:设置工作模式(STA模式)
AT+RST:模块重启(生效工作模式)
AT+CWJAP=“swd”,“12345678”:连接当前环境的WIFI热点(热点名,密码)
AT+CIPMUX=0:设置单路连接模式
AT+CIPSTART=“TCP”,“xxx.xxx.xxx.xxx”,xxxx:建立TCP连接
AT+CIPMODE=1:开启透传模式
AT+CIPSEND:透传模式下,传输数据
+++:退出透传模式

二、代码实现

1.USART2串口

这里用到的串口是USART2 ,要进行串口初始化

代码如下:

//串口初始化//USART2	//TX:PA2		复用推挽输出//RX:PA3		浮空输入/上拉//1 8 0 1void Usart3_Config(uint32_t brr){	//开时钟	WIFI_PIN_CLK_CMD(WIFI_PIN_CLK, ENABLE);	WIFI_UART_CLK_CMD(WIFI_UART_CLK, ENABLE);		GPIO_InitTypeDef GPIO_InitStructure;	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;	GPIO_InitStructure.GPIO_Pin = WIFI_TX_PIN;	GPIO_Init(WIFI_PIN_PORT, &GPIO_InitStructure);	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;	GPIO_InitStructure.GPIO_Pin = WIFI_RX_PIN;	GPIO_Init(WIFI_PIN_PORT, &GPIO_InitStructure);		USART_InitTypeDef USART_InitStructuer;	USART_InitStructuer.USART_BaudRate = brr;	USART_InitStructuer.USART_HardwareFlowControl = USART_HardwareFlowControl_None;	USART_InitStructuer.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;	USART_InitStructuer.USART_Parity = USART_Parity_No;	USART_InitStructuer.USART_StopBits = USART_StopBits_1;	USART_InitStructuer.USART_WordLength = USART_WordLength_8b;	USART_Init(WIFI_UART, &USART_InitStructuer);	//使能接收中断	USART_ITConfig(WIFI_UART, USART_IT_RXNE, ENABLE);	USART_ITConfig(WIFI_UART, USART_IT_IDLE, ENABLE);	//配置NVIC  NVIC_InitTypeDef NVIC_InitStructure;  NVIC_InitStructure.NVIC_IRQChannel = WIFI_IRQn;  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01;  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  NVIC_Init(&NVIC_InitStructure);	//使能串口	USART_Cmd(WIFI_UART, ENABLE);		ESP8266_EN_CLK_INIT(ESP8266_EN_CLK, ENABLE);	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;	GPIO_InitStructure.GPIO_Pin = ESP8266_EN_PIN;	GPIO_Init(ESP8266_EN_PORT, &GPIO_InitStructure);		ESP8266_ENABLE();	}

2.初始化ESP8266

代码如下:

//初始化 ESP8266//成功返回 0   失败 >0uint8_t ESP8266_Init(void){	uint8_t recv = 0;	Usart3_Config(115200);	Delay_ms(5000);	printf("退出透传/r/n");	ESP8266_SendCmd_RecAck("+++", NULL, 100, 1);	printf(" TSET esp8266/r/n");	recv = ESP8266_SendCmd_RecAck("AT/r/n", "OK", 100, 2);	if(recv)	return recv;		/*********添加内容************/	recv = ESP8266_SendCmd_RecAck("AT+RST/r/n", "ready", 10000, 1);	//先连接固定wifi热点	//	wifi名字	密码	recv = ESP8266_SendCmd_RecAck("AT+CWJAP=/"xyd/",/"12345678/"/r/n", "WIFI GOT IP", 10000, 2);	/****************************/		printf("1111111111111111111111111111111111111111111/r/n");			recv = ESP8266_SendCmd_RecAck("AT+RST/r/n", "ready", 10000, 1);	//设置station模式	recv = ESP8266_SendCmd_RecAck("AT+CWMODE=1/r/n", "OK", 500, 1);	//设置上电自动连接wifi	recv = ESP8266_SendCmd_RecAck("AT+CWAUTOCONN=1/r/n", "OK", 10000, 1);	printf("测试通过,等待自动接入WIFI/r/n");	recv = ESP8266_SendCmd_RecAck(NULL, "WIFI GOT IP", 20000, 1);//	if(recv){//连接超时 进入一键配网//		ESP8266_ConnectHotspot();//	}	printf("接入WIFI成功");			return 0;}

这里的WiFi名称和密码要换成你自己的

//先连接固定wifi热点	//	wifi名字	密码	recv = ESP8266_SendCmd_RecAck("AT+CWJAP=/"xyd/",/"12345678/"/r/n", "WIFI GOT IP", 10000, 2);

不要忘了在.h文件里面进行声明。

代码在这 提取码:lwm2


总结

串口调试助手的使用就不在说明了,有什么不足还请指出,谢谢。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/123562.html

相关文章

  • 爆肝一周,用Python在物联网设备上写了个智能语音助手

    摘要:背景介绍智能语音助手作为物联网领域的一个重要生态成员,是一种全新的交互方式,它能够解放双手,随时提供服务,无须借助任何按键。学完该案例让你对智能语音助手有一个全新的认识。快来打造你的智能语音助手吧 1. 背景介绍 智能语音助手作为物联网领域的一个重要生态成员,是一种全新的交互方式,它能够解...

    I_Am 评论0 收藏0
  • EMB-nodeMCU自动化控制实现空气质量管家

    摘要:寻思着实现个自动化控制玩玩。自从穹顶之下的信息被普及,不仅要出门带口罩,还要家里开空气净化器。效果图代码家庭空气质量管家为传感器口为继电器控制口引脚初始化网络串口监听颗粒温湿度烟雾继电器源码 背景 前阵子树莓派由于没外壳不小心短路烧掉了。最近得手nodeMCU的板子,不仅便宜还支持串口交互式调试,很是方便。寻思着实现个自动化控制玩玩。自从穹顶之下的信息被普及,不仅要出门带口罩,还要家里...

    Terry_Tai 评论0 收藏0
  • EMB-nodeMCU自动化控制实现空气质量管家

    摘要:寻思着实现个自动化控制玩玩。自从穹顶之下的信息被普及,不仅要出门带口罩,还要家里开空气净化器。效果图代码家庭空气质量管家为传感器口为继电器控制口引脚初始化网络串口监听颗粒温湿度烟雾继电器源码 背景 前阵子树莓派由于没外壳不小心短路烧掉了。最近得手nodeMCU的板子,不仅便宜还支持串口交互式调试,很是方便。寻思着实现个自动化控制玩玩。自从穹顶之下的信息被普及,不仅要出门带口罩,还要家里...

    junbaor 评论0 收藏0
  • ESP32-C3入门教程 网络篇①——WiFi Scan 快速扫描附近AP无线热点

    摘要:,初始化底层堆栈,创建默认事件循环。,使用默认配置创建对象,将连接到并注册默认处理程序。,为驱动初始化分配资源,如控制结构缓冲区结构等,这个也启动任务。必须先调用此,然后才能调用所有其他,设置工作模式为或,默认模式为模式。 ...

    Simon_Zhou 评论0 收藏0
  • 基于STM32ESP8266 WIFI与ONENET通信连接(2),云平台以及手机APP数据显示

    摘要:基于的与通信连接,实现温湿度数据互传,控制第一步,在实现将传感器数据采集之后,并且完成配网步骤,可以正常通过模块正常将数据发送到云平台之后进行以下阅读,上述内容可以跳转到以下链接进行查看具体操作。 ...

    antz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<