《ESP8266通信指南》4-以Client进行TCP通信(AT指令)


往期

《ESP8266通信指南》3-常用AT指令详解-8266连WIFI-CSDN博客

《ESP8266通信指南》2-ESP8266 AT测试-CSDN博客

《ESP8266通信指南》1-ESP8266 简介-CSDN博客

1. 小节目标

通过 AT 指令使用 8266 进行 TCP 通信

2. 书接上回

复习以下,上一小节我们讲到了 8266 连接 WIFI,还记得指令吗?复习一下

现使用电脑开启一个移动热点

我的 WIFI 账号密码:

账号:ct-iot

密码:111222333

AT+CWJAP="ct-iot","111222333"

记得改成你自己的移动热点,才能连接哈,像下图一样,就连上去

3. TCP 连接介绍

在连接 TCP 之前,我们需要简单的介绍一下 TCP 的通信方式。

8266 进行 TCP 通信可以有两种,一种是作为 TCP Server 服务器,一种是作为 TCP Client(客户端),在本小节我们先介绍作为 TCP Client 的形式进行通信。

那么我们就需要在电脑上开启一个 TCP 服务器,可以使用以下软件

📎TCP调试组手.zip

4. 开启 TCP 服务器

工作模式选择 TCP 服务器,本地端口任意,建议 8010 或者其他符合格式的端口,然后点击打开就可以了

如下图,看到 TCP 监听端口 8010 成功就可以了,这个时候我们需要测试一下是否则正常,我们再打开一个(TCP服务器不要关)

选择工作模式为客户端,然后将 TCP 服务器的 IP 填写进去(在服务器的左下角)

TCP 服务器 IP 位置:

连接上去之后可以发现,服务器那边输出了一行字,就是以下这个

那么就说明,TCP 客户端和服务器都正常运行

5. 使用 ESP8266 作为 TCP 客户端连接 TCP 服务器

ESP8266 的 TCP 连接 AT 指令如下

AT+CIPSTART="TCP","192.168.101.110",1000
  • TCP :指明使用 TCP 连接
  • 192.168.101.110:TCP Server IP 地址
  • 1000:TCP Server Port 端口

更改为我们自己的就是

AT+CIPSTART="TCP","192.168.137.1",8010

5.1. TCP 服务器发到 ESP8266

接着使用 TCP 服务器发送数据“213”,可以看到,串口那边接收到了数据 “213”,至此,ESP8266 可以接收到 TCP 服务器发来的发来的数据了

5.2. ESP8266 TCP Client 上报数据

  1. 设置数据要发送的长度
AT+CIPSENDEX=<length>
  1. 发送数据

比如我们要发送 123,那么就先发送

AT+CIPSENDEX=3

然后再发送 123

  • 我们就可以看到,这里出现了 123,(两个是因为我刚刚发送了两次,所以才有两个 123)

6. 小结


到此,我们已经可以使用 ESP8266 发送数据到电脑上了,这个时候如果你用后端语言写一个 TCP 服务器,或者你用 C/C++写一个 TCP 服务器,就可以接收数据然后做处理了,也可以写几个简单的按钮,往 ESP8266 发送数据。

当然 ESP8266 的 TCP Client 数据上发还有一个透传的功能,有能力的同学自己可以学一学哈!!

7. 结语


在本小节中,我们介绍了 ESP8266 如何使用 AT 指令作为 TCP 客户端连接到 TCP 服务器,接着教大家如何使用 TCP 服务器往 ESP8266 发消息,使用 ESP8266 TCP Client 往 TCP 服务器发消息。



柴头物联网出品

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/2502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习java第五十天

Spring框架中的Bean的生命周期是什么&#xff1f; 在Spring中&#xff0c;Bean的生命周期可以被划分为以下阶段&#xff1a; 实例化&#xff1a;在这个阶段中&#xff0c;Spring容器根据Bean的定义&#xff0c;通过反射或其他方法来创建Bean的实例。这个阶段包括调用构造方法和…

【MongoDB】--MongoDB的组合索引

目录 一、前言二、Query查询条件转换shell输入命令1、常用shell输入命令2、explain()解析计划三、组合索引的说明一、前言 本文章主要介绍Mongodb的组合索引的使用。 二、Query查询条件转换shell输入命令 1、常用shell输入命令 Query: {"tenantsid": {"$num…

hyperf 三十一 极简DB组件

一 安装及配置 composer require hyperf/db php bin/hyperf.php vendor:publish hyperf/db 默认配置 config/autoload/db.php 如下&#xff0c;数据库支持多库配置&#xff0c;默认为 default。 配置项类型默认值备注driverstring无数据库引擎 支持 pdo 和 mysqlhoststringl…

算法(哈希表

给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以&#xff0c;返回 true &#xff1b;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 示例 1&#xff1a; 输入&#…

如何搭建邮箱服务器?mail系统架设的两种方法

邮件mail通信是常用的办公场景&#xff0c;对于技术和网管等人员&#xff0c;往往需要搭建自己的邮箱服务器。那么&#xff0c;如何架设邮箱系统呢&#xff1f;通常有两种方案&#xff0c;一种是在在本地主机部署&#xff0c;另一种是在云端如云服务器上部署应用。根据主机IP情…

立即刷新导致请求的response没有来得及加载造成的this request has no response data available

1、前端递归调用后端接口 const startProgress () > {timer.value setInterval(() > {if (progress.value < 100) {time.value--;progress.value Math.ceil(100 / wait_time.value);} else {clearInterval(timer.value);progress.value 0;timer.value null;time.…

暴力数据结构之单链表专题

1. 单链表的初始化 首先定义节点的结构&#xff0c;然后动态内存申请一部分空间&#xff0c;每一个节点都有一个值以及指向下一个节点的指针&#xff0c;称作值域和指针域。 //定义节点的结构 //数据 指向下一个节点的指针typedef int SLTDataType;typedef struct SListNode…

40. UE5 RPG给火球术增加特效和音效

前面&#xff0c;我们将火球的转向和人物的转向问题解决了&#xff0c;火球术可以按照我们的想法朝向目标发射。现在&#xff0c;我们解决接下来的问题&#xff0c;在角色释放火球术时&#xff0c;会产生释放音效&#xff0c;火球也会产生对应的音效&#xff0c;在火球击中目标…

【深度学习】DDoS-Detection-Challenge aitrans2024 入侵检测,基于机器学习(深度学习)判断网络入侵

当了次教练&#xff0c;做了个比赛的Stage1&#xff0c;https://github.com/AItransCompetition/DDoS-Detection-Challenge&#xff0c;得了100分。 一些记录&#xff1a; 1、提交的flowid不能重复&#xff0c;提交的是非入侵的数量和数据flowid,看check.cpp可知。 2、Stage…

大数据入门——概念、工具等

目录 一、基本概念 1.大数据技术 2.大数据特点 3.常见概念 4.数据分析师、数据开发工程师 二、相关工具 三、应用场景 四、大数据业务流程及组织结构 一、基本概念 1.大数据技术 主要解决海量数据的采集、存储和分析计算问题 2.大数据特点 大量、高速、多样、价值、…

【六十】【算法分析与设计】用一道题目解决dfs深度优先遍历,dfs中节点信息,dfs递归函数模板进入前维护出去前回溯,唯一解的剪枝飞升返回值true

路径之谜 题目描述 小明冒充X星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是nn个方格。如下图所示。 按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着音走,也不能跳跃。每走到一个新方格,就要向正北 方和正西…

ESP32开发

目录 1、简介 1.1 种类 1.2 特点 1.3 管脚功能 1.4 接线方式 1.5 工作模式 2、基础AT指令介绍 2.1 AT指令类型 2.2 基础指令及其描述 2.3 使用AT指令需要注意的事 3、AT指令分类和提示信息 3.1 选择是否保存到Flash的区别 3.2 提示信息 3.3 其他会保存到Flash的A…

基础SQL DQL语句

基础查询 select * from 表名; 查询所有字段 create table emp(id int comment 编号,workno varchar(10) comment 工号,name varchar(10) comment 姓名,gender char(1) comment 性别,age tinyint unsigned comment 年龄,idcard char(18) comment 身份证号,worka…

排序算法:顺序查找

简介 顺序查找&#xff08;也称为线性查找&#xff09;是一种简单直观的搜索算法。按照顺序逐个比较列表或数组中的元素&#xff0c;直到找到目标元素或搜索完整个列表。 应用场景 数据集比较小&#xff0c;无需使用复杂的算法。数据集没有排序&#xff0c;不能使用二分查找…

书生·浦语大模型实战营(第二期):OpenCompass司南大模型评测实战

目录 大语言模型评测中的挑战如何评测大模型模型客观题&主观题提示词工程长文本评测OpenCompass评测流水线CompassHub&#xff1a;高质量评测基准社区 OpenCompass介绍作业&#xff1a;使用OpenCompass评测internlm2-chat-1_8b模型在C-Eval数据集上的性能准备阶段环境配置数…

html--canvas粒子球

<!doctype html> <html> <head> <meta charset"utf-8"> <title>canvas粒子球</title><link type"text/css" href"css/style.css" rel"stylesheet" /></head> <body><script…

element plus:tree拖动节点交换位置和改变层级

图层list里有各种组件&#xff0c;用element plus的tree来渲染&#xff0c;可以把图片等组件到面板里&#xff0c;面板是容器&#xff0c;非容器组件&#xff0c;比如图片、文本等&#xff0c;就不能让其他组件拖进来。 主要在于allow-drop属性的回调函数编写&#xff0c;要理清…

解决JDK7调用https报:java.net.SocketException: Connection reset错误

原因分析&#xff1a; 大多数现代的 HTTPS 连接将使用 TLS 1.2协议 或 TLS 1.3协议&#xff0c;具体取决于服务器和客户端支持的版本以及其之间的协商&#xff0c;而JDK7及以下版本默认使用是TLS v1协议&#xff0c;所以在调用HTTPS接口时&#xff0c;会出现java.net.SocketExc…

ElasticSearch笔记一

随着这个业务的发展&#xff0c;我们的数据量越来越庞大。那么传统的这种mysql的数据库就渐渐的难以满足我们复杂的业务需求了。 所以在微服务架构下一般都会用到一种分布式搜索的技术。那么今天呢我们就会带着大家去学习分布搜索当中最流行的一种ElasticSearch&#xff0c;Ela…

基于harris角点和RANSAC算法的图像拼接matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ....................................................................... I1_harris fu…