1.ESP8266WiFi模块介绍
1.1ESP8266wifi 模块
低功耗串口WiFi模块ESP8266内置一个Tensilica(泰思立达) Xtensa架构的32位处理器L106,具有5级流水线(ARM CortexM3是3级流水线),最大时钟速度为160MHz,可以使用高达16MB的外部SPI Flash。 该模块采用串口与MCU(或其他串口设备)通信,内置 TCP/IP协议栈,能够实现串口与 WIFI 之间的转换。通过该模块,传统的串口设备只需要简单的串口配置,即可通过WiFi传输自己的数据。 wifi模块具有两种模式:AP模式 、Station模式 AP模式:就是我们平常用的热点,如无线路由器,手机热点。 Station模式:就是我们连接这些热点的设备,如手机,iPad,笔记本电脑。
1.2AT命令介绍
我们想要与esp8266wifi模块进行通信,那么就需要AT命令进行。就好比我们要和英国国人进行交流时,我们就要用英语交流。在这里,就需要用到esp8266的AT指令进行和pc之间的通信。 AT 即Attention,它由拨号调制解调器(Modem)的发明者贺氏公司(Hayes)为了控制Modem发明的控制协议。协议本身采用文本,每个命令均以AT打头,因此得名。90年代初,AT指令仅被用于Modem操作。 几年后,主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和HP共同为GSM 研制了一整套AT指令,其中就包括对SMS的控制。AT指令在此基础上演化并被加入GSM 07.05标准以及现在的GSM07.07标准,其中拨打电话、收发短信、收发传真等全部由AT命令实现。而在随后的GPRS控制,3G模块,以及工业上常用的PDU,均采用AT命令集来控制,这样AT指令也就成为了完全标准化和比较健全的标准。
1.3AT命令格式
AT指令是以AT作为开头,\r\n字符结束的字符串,每个指令执行成功与否都有相应的返回。其他的一些非预期的信息(如有人拨号进来、线路无信号等),模块将有对应的一些信息提示,接收端可做相应的处理。
类型 | 指令格式 | 描述 |
---|
执?指令 | AT+ | 该命令?于执?受模块内部程序控制的变参数不可变的功能 | 测试指令 | AT+=? | 该命令?于该命令?于查询设置指令的参数以及取值范围 | 查询命令 | AT+? | 该命令?于返回参数的当前值 | 设置指令 | AT+=<…> | 该命令?于设置?户?定义的参数值 |
注意:不同模块的AT命令可能不一样的,这要对着模块的AT指令手册来查看。可以通过esp8266应答的信息来判断你们之间是否建立通信了。(每当发送一个AT指令之后,相应地就会在结尾给PC发 OK或者ERROR)
原理分析
下图是STM32开发板上预留的ESP8266模块接口,由此可知WiFi模块连到了CPU的USART2这个串口上。
配置使能串口USART1和USART2及中断。
按下CTRL+S生成代码。之后下篇博客会将代码实现写出来。
连接
如果我们用AT命令去操作ESP8266模块的话,我们就需要通过USART1,和USART2两个串口 桥接连接来实现通信. 我们通过两个串口来实现PC和ESP8266模块来发送AT指令。进而配置相应的内容。 1.AT+RST 重启、复位ESP8266命令 AT AT确认模块是否正常工作 2.AT+CWMODE_CUR=1 设置WiFi为Station模式和使能DHCP服务 这样我们就完成了通过AT指令来配置esp8266WiFi模块的station模式和使能DHCP服务; 然后我们就可以用AT指令去连接我们的路由器,刚才也说过station模式就是我们来连接热点的设备。连接之后我们就可以和局域网内的PC通过TCP连接进行通信。 3.AT+CWJAP_CUR=“输入WiFiID”,“输入路由器连接密码” 连接无线路由器 然后我们就可以TCP连接服务器进行数据通信。 4.AT+CIPSEND=5 发送5个字节数据等收到模块返回 > 后再输入5个字节数据将会通过WiFi模块发送出去。 我们通过”AT+CIPSEND=5“这条命令给ESP8266发送hello,然后可以收到TCP服务器发送回来的信息。所以说,AT命令对操作ESP8266来进行通信非常重要。至此我们完成了通过串口来发送AT命令来完成配置相关内容及TCP连接服务器。如有错误请留言指正,谢谢。
|