esp8266局域网内的TCP通信实验
本文以esp8266作为STA,以手机WIFI作为AP,电脑端用网络调试助手与esp8266共同连接至手机WIFI并建立TCP连接,操作步骤与我在另一篇博文提到的一致。
下面分别以“esp8266作为TCP客户端”和“esp8266作为TCP服务器”两种情况进行实验示范:
准备工具:
USB转TTL、
esp8266模块、
串口调试助手、
网络调试助手、
一、esp8266作为TCP客户端
1、设置工作模式&连接热点
通过串口发送AT指令来设置esp8266的工作模式,并连接手机WIFI热点。
这里我们设置为STA模式。(电脑端也记得连上手机热点)(网线建议拔掉)
2、建立TCP连接
这里我们让esp8266作为TCP客户端,电脑端的网络调试助手作为TCP服务器。
于是,我们要先打开网络调试助手并建立一个TCP服务器。其中,端口号自行设置,(ip地址的话,软件会自动根据电脑的WIFI情况帮你填好,无法人为更改)
紧接着,我们将esp8266连接至网络调试助手建立的服务器上,即建立TCP连接。模块返回连接成功,同时可以看见网络调试助手上显示客户端上线。(注意ip和端口号填写正确,否则无法正确连接)
3、进入透传模式&开始透传
TCP连接建立之后,就可以进入透传模式,进行数据传输了。
指令发送完成后,当模块返回>,说明透传开始,接下来由串口助手发送出的数据将不再被认为是AT指令,而会被当作是纯数据,并通过TCP传送到网络助手上。
我们通过串口向网络调试助手发送“This is a message!”数据,可以看到网络助手原封不动的收到了数据。由于是透传模式,此时如果我们发送“AT”,会被当做是数据发送给网络助手,而并不是指令。
所以,可以看到,网络助手收到“AT”这个数据,而串口调试助手中,并没有反馈OK,也没有将我们发送的“This is a message!”和“AT”显示出来,再次表明当前是透传模式。
(同时要注意,从本文开始至此,我们的串口调试助手发送数据时都是勾选“发送新行”的)
4、退出透传
当数据发送完了,不想再发送数据了,则通过发送+++退出透传模式。此时,请注意,先取消勾选“发送新行”,再发送+++
发送+++后,可以看见串口助手和网络助手均无任何反馈,如上图。
紧接着,我们再次勾选“发送新行”,并通过串口发送AT,可以看到模块返回OK,说明模块退出透传模式,AT被当成了指令而不是数据。如下图:
于是,模块成功退出透传模式。至此,我们就完成了TCP通信的简单实验。
.
.
.
二、esp8266作为TCP服务器
下面我们来讲解esp8266作为TCP服务器的情况,相关步骤与上面“esp8266作为TCP客户端”时相似,有细微差别。
1、设置工作模式&连接热点
与上面提到的相同,这里略过不讲。
二、建立TCP连接
这里我们让esp8266作为TCP服务器,电脑端的网络调试助手作为TCP客户端。
所以,这一次网络调试助手要建立一个TCP客户端,以便稍后连接至esp8266建立的TCP服务器。
那么,网络调试助手的客户端参数(ip地址和端口号)怎么设置呢?该设置成多少呢?为了解决这个问题,我们先不忙着操作我们的网络助手,先操作esp8266。
通过AT指令,我们设置8266为多连接模式(因为我们要让其作为服务器,服务器需满足供多个设备连接的要求,所以是多连接),同时,我们配置8266的端口号(自行定义)。而8266建立的TCP服务器的ip地址,我们通过AT+CIPSTA_CUR?指令查得,返回数据的第一个ip则为我们要的。
TCP服务器建立好之后,接下来我们就用网络助手作为客户端连接,客户端的参数为8266设置的端口号和其ip。连接成功后,模块返回CONNECT。
3、透传
8266作为服务器时,不能开启透传模式(并不等于不能透传),我们需要通过AT+CIPSEND=<>,<>指令完成数据的传输,其第一个参数为ID号,即要发送数据给连接此服务器的第几个客户端(注意到CONNECT前的0了吗?),第二个参数为数据长度。注意,编号是从0开始的。
大概就是这样。
P.S. 类似的,其实在上一个模式,当esp8266作为客户端时,也可以使用AT+CIPSEND=<>指令实现透传(注意此时只有一个参数,即数据长度),由于不用选择客户端,所以只有一个参数。
以上就是本实验的基本内容,再进一步的,与外网建立TCP连接,也是相似的步骤,就不再赘述。
esp8266局域网内的TCP通信实验相关推荐
- 使用wireshark抓取聊天信息(局域网内的udp通信)
少年 一.实验目的 二.实验操作 三.总结 四.资源 一.实验目的 1.分析这程序所采用的是udp还是tcp 2.在抓取包中找到窃取到的聊天信息 (英文字符和汉字可能经过了某种编码转换,数据包中不是明 ...
- micropython中文社区 socket通讯_基于MicroPython结合ESP8266模块实现TCP通信(AT指令版)...
转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 实验目的 - 学习ESP8266模块(ESP-01) ...
- 【未解决】局域网内通过MAC查看服务器IP
最近跑代码需要用组里的服务器,一直是通过ssh连接的.但一旦实验室断电,重启服务器后动态分配IP就会导致我需要重新配置ssh的地址.每次都麻烦师姐帮我查一下也不是很方便,于是想自己找个办法扫一下局域网 ...
- 如何在局域网内实现文件夹共享
开通博客后写的第一篇博客,以后也会不定时的更新博客,如果您在阅读过程中发现错误,可以给我私信,我再检查纠正 下面是我总结的在局域网内共享文件的操作,之后会更新通过编程实现局域网内的主机通信,如果您有兴 ...
- 如何访问局域网内宿主机上的虚机服务
问题 最近在验证网关及数据库切换方案,由于测试环境机器都在使用,于是在局域网内的一个windows机器上通过WMware虚拟出服务器来实现的,但是虚拟机上完成网关及数据库的搭建后,发现在局域网内无法访 ...
- 虚拟机桥接模式上网,局域网内ping通
项目场景: 项目场景:使用虚拟机的桥接模式,完成局域网内的ping通,而不仅仅是只能与宿主机ping通 问题描述 网上的解答非常杂乱,不能很好匹配Ubuntu 21的问题.在后面成功上网后,虚拟机也不 ...
- 西门子S7-1200的TCP通信
西门子S7-1200的TCP通信 摘要: 西门子S7-1200集成以太网接口,通过该接口可以与其它设备进行以太网通信.S7-1200的以太网通信主要有S7.Modbus_TCP和开放式用户通信,其中开 ...
- ESP8266学习笔记:实现ESP8266的局域网内通信
ESP8266学习笔记:实现ESP8266的局域网内通信 现在就以实例入手.工程使用的是IOT_DEMO,据DEMO文档可以知道ESP8266初始工作模式为softAP+station共存的模式.于是 ...
- STM32玩转物联网实战篇:2.ESP8266 WIFI模块TCP通信示例详解
1.准备开发板 开发板功能区分布图 开发板俯视图 2.ESP8266简介 ESP8266 WIFI模块内置TCP/IP网络协议,模块支持三种网络模式,AP.STA和AP+STA模式,AP模式: ...
最新文章
- 应用Spark解决Kaggle数据科学问题
- jquery版本冲突问题
- tracepro应用实例详解_建筑安装工程造价,高清PPT图文详解,小白也能学会的简单步骤...
- fastjson序列化原理详解
- TensorFlow--线性回归问题初步
- [数据结构]邻接矩阵和邻接表存储的图DFS,BFS算法时间复杂度分析
- input输入框汇总
- 听听优秀的人讲 AI!带你探知目标检测以及分割的现状和挑战
- 基于算法的建模--小结
- (vc)分享一个读写ini文件的类,支持多种数据类型的读写,二进制数据都能保存和读取...
- 基于JAVA疫情防控期间网上教学管理计算机毕业设计源码+系统+mysql数据库+lw文档+部署
- css背景透明 字体不透明
- SQL去重的三种方法汇总​
- 庄子《天下》:道与术,取与予,利与害,方与圆,常与变,生与死
- 我在b站上推荐一个看小电影的网站,结果被骂了
- mysql my.cnf文件_详解MySql的配置文件my.cnf
- 利普希茨【NOIP2017模拟8.7A组】
- MonoRail学习-介绍篇
- [无线连接手机]-通过局域网无线连接调试手机设备
- 优达学城《无人驾驶入门》学习笔记——卡尔曼滤波器实现详解
热门文章
- 视频拼接 python_LeetCode-python 1024.视频拼接
- BZOJ2437: [Noi2011]兔兔与蛋蛋
- CHINC 2022|熙牛医疗CEO墙辉演讲实录-医疗行业双中台架构探索与实践
- Settings学习
- spring integration sftp
- Java 的垃圾回收
- Robotics: Aerial Robotics(空中机器人)笔记(三):无人机运动学建模
- localhost 拒绝了我们的连接请求。Swagger
- javac ‘javac‘ 不是内部或外部命令,也不是可运行的程序 的解决办法
- Android开发,登录注册界面中如何添加视频背景,亲测可用