上一篇讲了ESP8266模块的连接方法,这一篇写写模块连好后如何进行调试吧。
参考文档:《ESP8266新手入门调试指导(补全)》《Espressif AT指令集》
调试软件:有人串口网络调试助手
按照上一讲将8266模块与USB转TTL正确连接并确保模块工作正常后,在电脑的设备管理器可看到硬件信息,我这里显示为COM4(如图一),这时可打开串口调试助手(如图二)
【图一】
【图二】
根据自己硬件设备选择COM口号,勾选自动换行显示复选框,再点击“打开”按钮,如果正常运行此时“打开”按钮会变成红色的“关闭”按钮,此时说明模块运行正常,8266使用的是AT命令进行参数配置的,命令详细使用方法可查阅《Espressif AT指令集》,相关操作可参照《ESP8266新手入门调试指导(补全)》的内容。
为了后面讲解方便,这里把做客户端和做服务器端的操作在这里讲一下
一、客户端
这里先提前说明一下会用到的命令
重启模块命令:AT+RST
设置模块模式命令:AT+CWMODE=<mode>
说明:<mode>:1-Station模式,2-AP模式,3-AP兼Station模式,需重启后生效(AT+RST)
查看本模块的IP地址命令:AT+CIFSR
注意:AP模式下无效!可能会造成死机现象!
服务器连接指令:AT+CIPSTART=2,”TCP”,”192.168.1.109″,8080
说明:1)单路连接时(+CIPMUX=0),指令为:AT+CIPSTART= <type>,<addr>,<port>
2)多路连接时(+CIPMUX=1),指令为:AT+CIPSTART=<id>,<type>,<addr>,<port>
响应:如果格式正确且连接成功,返回 OK,否则返回 ERROR 如果连接已经存在,返回 ALREAY CONNECT 说明:<id>:0-4,连接的id号 <type>:字符串参数,表明连接类型,”TCP”-建立tcp连接,”UDP”-建立UDP连接 <addr>:字符串参数,远程服务器IP地址 <port>:远程服务器端口号 。
信息发送命令:AT+CIPSEND=2,10
说明:1)单路连接时(+CIPMUX=0),指令为:AT+CIPSEND=<length> 2)多路连接时(+CIPMUX=1) ,指令为: AT+CIPSEND= <id>,<length> 响应:收到此命令后先换行返回”>”,然后开始接收串口数据 当数据长度满length时发送数据。 如果未建立连接或连接被断开,返回ERROR 如果数据发送成功,返回 SEND OK 。<id>:需要用于传输连接的id号 <length>:数字参数,表明发送数据的长度,最大长度为2048 。
下面我们来测试怎样通过模块当客户端,向服务器端发送信息。
打开串口网络调试助手,首先建立一个服务器监听(如图),协议类型选择“TCP Server”,确认本机地址是否正确,随便填写一个本地端口号,这里我们使用8080作为本地监听端口,确认无误后点击“开始监听”按钮。监听启动成功后,“开始监听”按钮会变成红色“断开”按钮,网络数据接收输入框下会显示连接对象下拉列表框。(如图)
【创建服务监听】
将上一节接好的电路插上电脑,8266模块会闪两下蓝灯,红灯常亮。确保串口设置正确,点击“打开”按钮(如图)。
输入AT+RST命令,查看模块是否运行正常。
输入AT+CIFSR命令,查看模块的IP地址。
输入AT+CWMODE?命令,查看当前模块启用的模式,如果模式不是3,可使用命令AT+CWMODE=3将模式设置为3。
使用命令AT+CIPMUX?查看当前连接模式,如果为0,请使用AT+CIPSTART=”TCP”,”192.168.31.198″,8080连接服务器,如果为1,则使用AT+CIPSTART=2,”TCP”,”192.168.31.198″,8080连接服务器。连接成功后,串口数据接收会显示“Linked”字样,连接对象下拉框会会显示当前连接到服务器的客户端IP地址。
下面我们使用命令AT+CIPSEND=2,10向客户端发送字符,命令输入后会显示>符号,这时我们输入要发送的内容,可看到服务器端会显示接收到的内容(如图)。
至此,无线模块的客户端发送模式介绍就到这里。
二、服务器
补充这一篇中会用到的命令
开启多连接模式命令:AT+CIPMUX=<mode>
说明:<mode>:0-单路连接模式,1-多路连接模式
创建服务器命令:AT+CIPSERVER=<mode>[,<port>]
说明:<mode>:0-关闭server模式,1-开启server模式 <port>:端口号,缺省值为333。(1) AT+ CIPMUX=1时才能开启服务器;关闭server模式需要重启 (2)开启server后自动建立server监听,当有client接入会自动按顺序占用一个连接。
下面我们来测试怎样通过模块当服务器端,接收客户端发送过来的数据。
打开串口网络调试助手,连接无线模块。输入AT+RST命令重启模块,确保模块运行正常。
输入AT+CIFSR命令,查看模块的IP地址。
运行AT+CIPMUX=1设置连接模式。
运行AT+CIPSERVER=1,8080命令,开启服务器,并监听8080端口,返回“OK”说明服务启动正常。
下面我们来测试一下无线模块是否真的能够接受客户端发送的数据,在网络设置的协议类型选择“TCP Client”,本地IP地址填上无线模块的地址,可在上面查询IP地址命令中获取,端口选择之前无线模块设置的端口号,这里是8080,确认无误后点击“连接”按钮,这时网络数据接收对话框下会显示本机地址IP,在对话框中输入测试字符,可在串口数据接收窗口看到客户端发送过来的数据(如图)。
至此,8266模块的服务器使用方法也介绍完毕了,其它相关设置,大家可参照参考资料。在这里补充一下,8266当服务器的时候,客户端如果没有数据传输,隔一段时间会自动断开连接,可通过AT+CIPSTO=<time>命令设置超时时间(说明:<time>:服务器超时时间,0~2880,单位为s)。
这里说说在调试中遇到的几个小细节:
1、网络调试助手输入命令的时候一定要在命令后多打一个回车,不然命令无响应,这里折腾了老半天,起初愣是不知道怎么回事,后来才发现这个细节问题。
2、使用AT+CIPSERVER=1,启用模块的服务器模式的时候,请一定要先确保模块开启了多连接模式,即运行了AT+CIPMUX=1,否则命令会报错,这个也是之前没细看,折腾了老半天才搞定的,其它的设置参考那位哥们的新手入门调试指导就可以了~~
今天的文章【Arduino学习笔记】手把手教你使用ESP8266—-②调试篇分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/57849.html