关于模块的信息我在这里简单的介绍一下:

        在使用前要确保电压为3.3V   接线为3v3- 3.3V电源  RX和TX分别接USB转串口线的TX和RX,即要交叉着接。最后还有一个EN引脚接到3.3V置高。 串口初始波特率为115200(可修改)。最后上电连接电脑串口终端如下图

串口设置如上图,看到乱码不要慌,属正常现象,这里重点说一下一定要把(发送新行)勾上,不然指令不起作用。如果其他串口软件没有这个选项,那么在每个指令后面都要按一下回车键,如果是使用单片机发指令则要跟上"\r\n"。最终上电后出现ready,可以直接输入测试指令AT,返回OK字样表示模块正常。

好了接下来开始正文:

服务器端部分:

  • 第一条指令是选择 WIFI 的应用模式:AT+CWMODE=3


       在这里说明下在我看来AP(Wireless Access Point的简称,中文名称:无线接入点)模式可以理解为(被连接)模式,Station可以理解为(去连接)模式。这里可选择模式2也可选择模式3。
指令执行完后应返回OK代表响应成功

  • 接着是重启模块指令:AT+RST

重启后有乱码属正常现象,之后出现ready表示重启生效完毕

  • 启动多连接指令:AT+CIPMUX=1


同样返回OK

  • 最后是建立服务器server指令: AT+CIPSERVER=1,8089

1代表开启,0代表关闭,8089为设置的端口号,如果直接写1,那么服务器的默认端口就设置为333端口。

以上就是服务器端的配置,只需要4个指令即可完成。

这里提一下如何修改无线名字(SSID)和密码,指令介绍如下图所示

这是我用的指令: AT+CWSAP="ONE-ETA","a1234567",11,3 至于为什么通道号填11,我也没去了解,看网上的说法是1-13都可行。最后设置好后电脑应该看到此wifi了

具体更多指令信息可以参考这个PDF 链接: https://pan.baidu.com/s/141pbmFAZ8N_AiXDpxsG_Hw 密码: j578 里面还有一些工具及模块的资料可供参考。

客户端部分:

这里我用另一块8266供上电然后连上串口作为客户端。

左边是服务器端,右边就是我们要配置的客户端:

  • 首先还是配置wifi模式:AT+CWMODE=1
    这里我们配置成模式1,就是说现在是"去连接"模式。
  • 然后还是重启生效:AT+RST
  • 连接无线指令:AT+CWJAP="ONE-ETA","a1234567"

在这里电脑先要连上名为"ONE-ETA"的无线,然后用这个命令才能连接成功哦。

成功后,可以输入查询指令:AT+CIFSR查看本设备的IP地址 如图:

从图中我们我们可以看到左边(服务器)的IP地址是192.168.4.1 右边分配给客户端的IP地址是192.168.4.2都在同一网段下。然后就可以通过服务器的IP地址连接上去,如下:

  • 设备连接服务器指令:AT+CIPSTART="TCP","192.168.4.1",8089

第一个参数TCP代表连接使用的协议是TCP协议,还有一个可选择协议是UDP协议,有兴趣的朋友可以自己去了解使用下。

第二个参数是我们刚才查询到的服务器那端的IP地址,最后一个参数是我们之前配置服务器的时候设置的端口号。

连接成功后如上图所示两边都有响应。

再次补充下如果长时间没有进行通讯,那么一段时间后(可设置,具体参考指令说明)将会断开通讯如下图。这时候需要重新输入连接指令AT+CIPSTART="TCP","192.168.4.1",8089。

到此两端的配置全部完成,可以进行接下来的互相通讯实验了。

客户端发送消息给服务器:

  • 发送指令:AT+CIPSEND=4


参数4表示要发送的字节数,在发送指令成功后串口将会显示'>'符号,代表可以输入信息了。

     例如我发送的是123456那么由于我设置的传输大小为4字节那么多余的两字节(5和6)将会被截断。左边服务器收到了+IPD,0,4:1234,+IPD代表接收,0代表编号0,4代表收到4字节大小的数据,而冒号后边的就是我们接收到的信息了。至于为什么是编号0,可以通过指令:AT+CIPSTATUS来查看连接详情。如下图,第一个参数就是上面的接收编号0,第二个参数代表连接协议为TCP,第三个参数是连接设备的IP地址,第四个参数是客户端的端口,第五个就是服务器端口。

但是每次输入前都要先发送命令AT+CIPSEND有点麻烦,所以我们可以开启透传模式,具体如下:

  • AT+CIPMODE=1    //开启透传模式
  • AT+CIPSEND         //开始透传

效果如图,最后串口终端会一直显示‘>’我们就可以直接输入消息,而不用输入指令和指定传输大小了。是不是很方便很多。
如果要结束透传的话需要发送+++,如下图,需要注意的是将重新发送新行给取消。但是透传模式只支持单连接模式,即服务器在开启多连接模式下是一对多的,就不能使用透传模式了。

服务器发送消息给客户端:

  • 发送指令:AT+CIPSEND=0,4


       第一个参数是要发送的编号,这边为什么是0是通过指令AT+CIPSTATUS来获取的,上面也有说,这里就不再废话了。第二个参数就是要发送的字节数。这里同样是发送"123456"但是因为设置4字节,所以也被截止了。

补充说明:以上这是我两天调ESP8266的总结加上网上的一些教程,如有不对之处,欢迎指出。其实不只是能两设备互相通信,只要连接在服务器下的客户端都可以通讯,即服务器可以与多个客户端通讯,这样的话就相当于组了一个局域网,在这个局域网内都是可以实现通讯的。

经过这几天的调试发现有以下问题:

1.esp8266在供电不足的情况,会出现反复重启的现象。

2.如果双向同时通讯(服务器端发送客户端的同时,客户端也发送给服务器),将会出现客户端强制重启的现象,但服务器那端却正常,这点很郁闷。

3.发热有点严重,估摸着温度能有50-60了,但基本使用正常。

4.客户端断开连接,然后再次连接的时候,会出现id编号增加的现象(即这里的0会依次增加为1,2,3,4)曾试过

AT+CIPSTART=0,"TCP","192.168.4.1",8089

这个指令强制设置连接id号为0,但依然不行,应该是服务器端那边还占用着这个id号没有释放,客户端再次连接这个id号就会出现问题。

ps:

有些朋友可能会用这块软件来做客户端,但我死活用这个软件连不上不知道什么原因。

所以我改用了另一款软件,亲测可行。

两个ESP8266一个作为服务器一个作为客户端实现互相通讯相关推荐

  1. 租一个云服务器一个月需要多少钱?

    游戏服务器的选择需要根据游戏性质来决定的,如果是一些小游戏或者一些比较老的游戏,这时游戏服务器的配置就不需要太高,价格自然不高,.但如果一些比较大型的游戏,特别要注重游戏体验的,这时就要选择一些高配置 ...

  2. 最优惠租云服务器_租一个云服务器一个月需要多少钱?

    ++++++++ 12.8日更新「2020双十二活动」 来不及解释了,该上车了!阿里云 双十二拼团会场​www.aliyun.com腾讯云 双十二限时秒杀​cloud.tencent.com 云服务器 ...

  3. 用云服务器windows环境下来搭建一个Minecraft服务器教程以及客户端使用教程java版

    云服务器一台(这边使用天翼云win2012r2系统,配置为硬盘40G,CPU:1核,内存:2G,上行带宽:1M(两个人很流畅,多人使用建议买大点的)) 可以去买学生机!比较优惠!也可以直接用电脑然后内 ...

  4. 两台邮件服务器共用一个公网地址,两个不同域邮件服务器的互通

    两个不同域的邮件服务的互通 如图,有两个不同域的邮件服务器(postfix)通过一个DNS服务器实现互通.首先说明一下IP分配情况 服务器1qq.com eth0(VMnet2): ip:192.16 ...

  5. mysql主库从库在同一台服务器_MySQL_MySQL 数据库两台主机同步实战(linux),当一个从服务器连接到主服务 - phpStudy...

    MySQL 数据库两台主机同步实战(linux) 当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器 ...

  6. 云服务器物理机在,一个云服务器会在两个物理机上吗

    一个云服务器会在两个物理机上吗 内容精选 换一换 快速入门以具体场景为例,指引您使用共享型负载均衡快速创建一个负载均衡实例,将访问请求分发到两台弹性云服务器上.共享型负载均衡就是原增强型负载均衡.基础 ...

  7. 从零开始一个http服务器(五)-模拟cgi

    从零开始一个http服务器-模拟cgi(五) 代码地址 : https://github.com/flamedancer/cserver git checkout step5 运行: make cle ...

  8. js websocket同步等待_WebSocket硬核入门:200行代码,教你徒手撸一个WebSocket服务器...

    本文原题"Node.js - 200 多行代码实现 Websocket 协议",为了提升内容品质,有较大修订. 1.引言 最近正在研究 WebSocket 相关的知识,想着如何能自 ...

  9. 在Linux中搭建一个FTP服务器

    在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用.禁用匿名.第一个小组使用ftp账号:ftp1,工作目录在:/var/ftp/ftp1:第二个小组使用ftp2,工作目录在:/var/f ...

最新文章

  1. Django源码分析6:auth认证及登陆保持
  2. python的一些基本概念知识和面试题
  3. css实现右侧固定宽度,左侧宽度自适应
  4. VC++下的OpenGL编程
  5. 8s nfs 挂载文件_Kubernetes集群使用网络存储NFS
  6. JSP JAVA 自定义 错误页面(404,505,500)
  7. 魔法师突然出现的C++
  8. python读取mysql中表内数据转换成json_使用python将mySql查询结果转换为json
  9. (86)Verilog HDL:三分频设计
  10. java 求集合真子集_【同步练习】高一高中数学必修1集合的关系与元素性质
  11. 通过代码控制ArcGIS Server的服务
  12. Luogu2619[国家集训队2] Tree I
  13. php获取远程数据,教你如何用php实现LOL数据远程获取
  14. 安全基础--21--安全运维
  15. 已解决:Word加载MathType时出现MathPage.wll或MathType.dll文件找不到
  16. LibreOJ 2060 食物链
  17. LCD、OLED、QLED、microLED,细说各种显示技术
  18. 使用 Javascript 与 Flow 交互
  19. 再谈防火墙的流量控制
  20. php测试号推送消息失败,php 给ios推送消息 提示这个错误

热门文章

  1. PHP 实现PDF转图片
  2. OTU/ASV/Feature tabel 表格 过滤 相对丰度 微生物
  3. ubuntu8.04安装配置,现有问题集合,及解决方法
  4. 创业三十年后说了五遍 hard:乔布斯在日本被遗忘的声音
  5. 企业微信中授权小程序
  6. 人脸识别模型评价指标:完整梳理
  7. 【CTSC2010】珠宝商(SAM)(点分治)(根号分治)
  8. pack与aligned的区别
  9. Kubernetes--学习笔记-3-Kubernetes Web UI部署
  10. 利用python将长视频、长语音转换成文字教程 ,非常好用