当前位置:首页 > 单片机 > 单片机
[导读]由于项目要求要涉及到物联网,公司要采用wifi于是就采购了一块串口wifi模块,ESP8266开始拿到后首先应该掌握的就是测试,熟悉AT指令,因为串口wifi通信是采用AT指令进行通信的,在这里需要注意一点的就是:在编写程序

由于项目要求要涉及到物联网,公司要采用wifi于是就采购了一块串口wifi模块,ESP8266

开始拿到后首先应该掌握的就是测试,熟悉AT指令,因为串口wifi通信是采用AT指令进行通信的,

在这里需要注意一点的就是:在编写程序的时候,一个串口(usart2)连接ESP8266,另一个串口(USart1)通过USB-TTL连接PC机查看输出信息,

boolESP8266_Cmd(char*cmd,char*reply1,char*reply2,u32waittime){strEsp8266_Fram_Record.InfBit.FramLength=0;//从新开始接收新的数据包macESP8266_Usart("%srn",cmd);if((reply1==0)&&(reply2==0))//不需要接收数据returntrue;Delay_ms(waittime);//延时strEsp8266_Fram_Record.Data_RX_BUF[strEsp8266_Fram_Record.InfBit.FramLength]='';//增加一个结束符。printf("%s",strEsp8266_Fram_Record.Data_RX_BUF);//将USART2接收到的东西全部打印出来,接收到的保存在这个数组里,通过串口1发送出来,这样就能看到,我们发送的指令的响应,是否出错,例如:发送AT,响应是OK,USART2接收到的数据是ATOK.在交给USART1发送,在PC机的串口调试助手可以看到这些信息,if((reply1!=0)&&(reply2!=0))return((bool)strstr(strEsp8266_Fram_Record.Data_RX_BUF,reply1)||(bool)strstr(strEsp8266_Fram_Record.Data_RX_BUF,reply2));elseif(reply1!=0)return((bool)strstr(strEsp8266_Fram_Record.Data_RX_BUF,reply1));elsereturn((bool)strstr(strEsp8266_Fram_Record.Data_RX_BUF,reply2));}123456789101112131415161718192021222324252627

用的是这款,


这个是连接图,
GPIO0 默认是工作模式(不接线)。如果接了低电平就是下载模式(给模块刷固件!!),所以可以不接线,当然也可以接高电平。

反正一开始连接的时候CH_PD必须为高电平。其余的可以不接。

如果电脑的wifi上显示了你的wifi信号说明模块已经工作。

注意默认的波特率是115200!!!!!!设置好串口调试助手的波特率,再贴张图片吧防止亲们忘。

记得输入各种AT指令前,勾选上“发送新行”,然后输出READY!代表系统正

系统启动后,系统会输出一堆乱码,就是系统开机启动电平的变化状态,不影响。开机后,蓝灯会闪,红灯长亮,

来谈谈EPS8266的AT指令

先说一下EPS8266模快的两(三)种工作模式:Station 模式,AP 模式和AP 兼 Station 模式;有玩过路由器的应该知道路由器除了正常使用(AP模式)外,还可以接收其他路由器的信号(Station 模式),然后再发出来(AP 兼 Station 模式)。这两(三)种工作模式各怎样用呢!

先说一下AP模式下的通信:就设置他的模式为AP模式(就相当于普通路由器)

AT+CWMODE=? 响应返回当前可支持哪些模式

AT+CWMODE? 响应当前处于哪种模式

AT+CWMODE=2 1-Station 模式,2-AP 模式,3-AP 兼 Station 模式

步骤1 发送AT+CWMODE=2设置为AP 模式

这种模式下模块发出无线wifi信号。用电脑连接它。
步骤2 发送AT+RST 重启模块使AT+CWMODE=2模式生效

步骤3 发送AT+CIPMUX=1 启动多连接


为什么要启动多路连接模式,意思是允许多个客户端连接,当然模块最多允许5个客户端连接(每个客户端对应一个id号,0–4)。也是必须设定的,不然配置为服务器会出错

接着就是怎样与它通信。当然是网络通信,也就是TCP/UDP通信两种。{UDP–分为发送端和接收端,面向无连接的通信(速度快),只向指定的ip(每一台电脑都有自己的ip地址,向指定的ip地址发数据,数据就发送到了指定的电脑)端口(我把数据发送到电脑了,电脑中的哪个程序接收呢。不知道亲们知不知道,其实每一个网络软件都有自己的通信端口,像qq,酷狗音乐的下载端口等等。现在知道了吧,向指定的ip地址和指定的端口发数据,才能发送到指定的电脑的指定的程序上)不管你接没接收到,只管发}

{TCP–分为服务器和客户端,与udp不同的是双方建立正常的连接后,才能通信,每次通信都会检测连接正不正常,(通信可靠,速度比udp慢)}

模块作为服务器
步骤4 发送AT+CIPSERVER=1,8080开启服务器模式,端口号8080


打开电脑的网络调试助手(别忘了连接它的无线网)

对了远程主机地址为什么是192.168.4.1

你可以发送AT+CIFSR指令查看一下模块的自身ip地址

点击连接


接着就是发信息(客户端发给服务器)

接着就是发信息(服务器发给客户端)

去掉发送新行点击发送

客户端接收

模块作为客户端,PC作为服务器,最有意思的来了

模块作为客户端咱从头再来,

1,还是设置模块的工作模式为ap模式AT+CWMODE=2

2,复位一下AT+RST

3,发送AT+CIPMUX=0 启动单连接,先弄单连接后弄多连接,多连接比较有意思,想知道就慢慢的往下看

4,AT+CIPSTART=”TCP”,”192.168.4.2”,8080

TCP说明是tcp连接,如果写udp就是udp连接

192.168.4.2连接的ip地址,电脑的ip,端口号8080




接着就可以通信了

单路连接时发送指令为AT+CIPSEND=x , x为发送的字节数

看多路连接(首先提醒:一个模块可以做到四路连接)

1,还是设置模块的工作模式为ap模式AT+CWMODE=2

2,复位一下AT+RST

3,发送AT+CIPMUX=1 启动多连接

4,AT+CIPSTART=0,”TCP”,”192.168.4.2”,8080

5, AT+CIPSEND=0,20

6,去掉回车随便打些东西

7,发送

接着再发送

AT+CIPSTART=1,”TCP”,”192.168.4.2”,8080

AT+CIPSTART=2,”TCP”,”192.168.4.2”,8080

AT+CIPSTART=3,”TCP”,”192.168.4.2”,8080

AT+CIPSTART=4,”TCP”,”192.168.4.2”,8080

都连接上了!!!!!!

5, AT+CIPSEND=1,20

6,去掉回车随便打些东西

7,发送

5, AT+CIPSEND=2,20

6,去掉回车随便打些东西

7,发送

5, AT+CIPSEND=3,20

6,去掉回车随便打些东西

7,发送

5, AT+CIPSEND=4,20

6,去掉回车随便打些东西

7,发送


再用网络调试助手给模块发信息试一试

好了AP模式就讲这么多,该Station 模式了

Station模式与AP模式不同在于,Station模式需要让模块连接上家里的路由器的wifi。其余的都一样吧!

就让模块在Station模式下做服务器,然后与电脑通信(要在一个wifi下,电脑和模块连接同一个wifi信号)

1,发送AT+CWMODE=1设置为Station模式

2,AT+RST 重启生效

3,连接家里的路由AT+CWJAP=”TP-LINK_A52”,”1234567890”


发送AT+CWLAP可以查询周围的wifi信号

发送AT+CWJAP可以看一看wifi是否真的连接上

4,AT+CIPMUX=1 启动多连接

5,AT+CIPSERVER=1,8080 打开服务器端口为8080

6,AT+CIFSR 看一下你模块现在分得的ip是多少,因为只要模块连网就会重新分配ip地址。这也是网络助手里面远程主机栏要填写的ip地址



通信啥的就不多说了。

用模块做客户端

1 连接路由器AT+CWJAP=”TP-LINK_A52”,”1234567890”

2 AT+CIPMUX=0 单连接

3 AT+CIPSTART=”TCP”,”192.168.1.101”,8080

后面就是发送数据,如果出现一直连接不上关闭电脑防火墙


多连接就不演示了,

AT+CIPSTART=0,”TCP”,”192.168.1.101”,8080或

AT+CIPSTART=1,”TCP”,”192.168.1.101”,8080或

AT+CIPSTART=2,”TCP”,”192.168.1.101”,8080或

AT+CIPSTART=3,”TCP”,”192.168.1.101”,8080或

AT+CIPSTART=4,”TCP”,”192.168.1.101”,8080或

发送数据

AT+CIPSEND=0,20或

AT+CIPSEND=1,20或

AT+CIPSEND=2,20或

AT+CIPSEND=3,20或

AT+CIPSEND=4,20


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭