ESP8266配置为TCP客户端,连接电脑和手机(使用Arduino配置)

一、简介

        基于 ESP8266 的 Arduino 代码,其主要功能是将 ESP8266 连接到指定的 Wi-Fi 网络,并与指定 IP 地址和端口号的服务器建立 TCP 连接。在连接成功后,实现了串口和网络数据的双向传输,也就是将从串口接收到的数据通过 Wi-Fi 发送给服务器,同时将从服务器接收到的数据通过串口输出。

二、代码

#include <ESP8266WiFi.h>const char* ssid = "WIFI名字";
const char* password = "WIFI密码";
const char* serverIP = "IP地址";
const int serverPort = 端口号自己设置即可  例如:8080;WiFiClient client;
void setup() {Serial.begin(115200);WiFi.begin(ssid, password);Serial.print("Connecting to ");Serial.println(ssid);while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}Serial.println("");Serial.println("WiFi connected");Serial.print("Connecting to server at ");Serial.print(serverIP);Serial.print(":");Serial.println(serverPort);while (!client.connect(serverIP, serverPort)) {delay(100);Serial.print(".");}Serial.println("");Serial.println("Connected to server");
}
void loop() {// 检查连接状态,如果断开则尝试重新连接if (!client.connected()) {Serial.println("Connection lost, trying to reconnect...");while (!client.connect(serverIP, serverPort)) {delay(100);Serial.print(".");}Serial.println("");Serial.println("Reconnected to server");}// 串口数据→Wi-Fiif (Serial.available()) {client.write(Serial.read());}// Wi-Fi数据→串口if (client.available()) {Serial.write(client.read());}
}

三、手机连接

1.手机连接wifi

手机连上和8266相同的wifi即可

2.wifi地址查询

打开手机wifi查询IP地址我的IP如下图

3.修改代码

修改serverIP为你查询到的IP,serverPort自己起一个就行我用的是8080,然后编译上传即可。

上传完成如图所示

4.手机端配置

手机端APP,调试时我用的网络调试精灵

 点击右下角+号进行配置,主机就是刚才查询的IP地址,端口就是你自己设置的serverPort,点击保存然后打开。

 因为我的8266已经上电所以我刚打开就显示已经连接上了,然后我们使用串口助手发送1,2,3,5可以看到我们的手机已经接收到了

然后我们的手机发送helo,可以看到串口助手也成功接收到了,至此TCP通信建立完成。

 

四、电脑连接

1.电脑连接wifi

有网卡的连接wif没有的用宽带即可

2.电脑IP地址查询

按下win+R输入cmd进入命令行

输入ipconfig

按下回车,查找自己的IP地址 

3.修改代码

将代码中的serverIP改为自己查到的IP然后,其他需要修改的按自己的情况修改即可,然后编译下载,重新上电后完成实验。

4.电脑端配置

电脑的服务端我用的是NetAssist.exe,配置如下:

5.数据传输

出现online是此时表明已经监听到客户端了

 服务端发送Welcome to NetAssist可以看到客户端这边的XCOM就已经接收到了,如下图

当客户端发送1,2,3,5时服务端也可以接收到如下图

 

至此电脑端TCP连接建立已经完成了 

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

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

相关文章

未来科技趋势浅析

基因编辑技术在农业育种上越来越火。这技术能改植物的基因&#xff0c;让它长得更好。比如&#xff0c;科学家用它来培育抗病虫害的作物。这样&#xff0c;农民就不必喷那么多农药了。还有&#xff0c;这种技术还能让作物适应不同的气候条件&#xff0c;这样即使天气不好&#…

力扣-栈与队列-347 前k个高频元素

思路 利用优先队列进行排序&#xff0c;然后利用multiset对count进行排序&#xff0c;最后收集k个高频元素就行 代码 class Solution { public:vector<int> topKFrequent(vector<int>& nums, int k) {priority_queue<int> pq;for(int i 0; i < nu…

【深度学习】多目标融合算法(四):多门混合专家网络MMOE(Multi-gate Mixture-of-Experts)

目录 一、引言 二、MMoE&#xff08;Multi-gate Mixture-of-Experts&#xff0c;多门混合专家网络&#xff09; 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 2.3.1 业务场景与建模 2.3.2 模型代码实现 2.3.3 模型训练与推理测试 2.3.4 打印模型结构 三、总结 一、…

关于“i18n“在vue中的使用

关于"i18n"在vue中的使用 <!-- vue2中 --> <template><div>{{ $t("This campaign has expired.") }}}}</div> </template> <script> export default {created() {this.onLoading();},methods: {onLoading () {this.$…

9 数据流图

9 数据流图 9.1数据平衡原则 子图缺少处理后的数据操作结果返回前端应用以及后端数据库返回操作结果到数据管理中间件。 9.2解题技巧 实件名 存储名 加工名 数据流

Hdoop之MapReduce的原理

简单版本 AppMaster: 整个Job任务的核心协调工具 MapTask: 主要用于Map任务的执行 ReduceTask: 主要用于Reduce任务的执行 一个任务提交Job --> AppMaster(项目经理)--> 根据切片的数量统计出需要多少个MapTask任务 --> 向ResourceManager(Yarn平台的老大)索要资源 --…

网络协议课程笔记上

一、 TCP 协议核心概念 端口: 0-65535 范围&#xff0c;用于区分不同应用和服务。 0-1023: 系统/特权端口 (root 用户)。1024-49151: 应用/注册端口 (常用服务)。49152-65535: 动态/私有端口 (客户端临时分配)。 三次握手 (Three-way Handshake): 建立可靠 TCP 连接的关键步骤…

Linux云计算SRE-第六周

1. 总结openssh服务安全加固和总结openssh免密认证原理&#xff0c;及免认证实现过程。 1、 openssh服务安全加固 OpenSSH&#xff08;Open Secure Shell&#xff09;服务安全加固是确保远程登录会话和其他网络服务安全性的关键步骤。以下是一些常见的OpenSSH服务安全加固措施…

SQL最佳实践(笔记)

写在前面&#xff1a; 之前baeldung的Java Weekly &#xfeff;Reviews里面推荐了一篇关于SQL优化的文章&#xff0c;正好最近在学习数据库相关知识&#xff0c;记一些学习笔记 原文地址&#xff1a;SQL Best Practices Every Java Engineer Must Know 1. 使用索引 使用索引…

2025清华:DeepSeek从入门到精通.pdf(附下载)

本文是一份关于如何深入理解和使用DeepSeek技术的全面指南&#xff0c;由清华大学新闻与传播学院新媒体研究中心元宇宙文化实验室的余梦珑博士后及其团队编撰。DeepSeek是一家中国科技公司&#xff0c;专注于通用人工智能&#xff08;AGI&#xff09;的研发&#xff0c;其开源推…

Excel 笔记

实际问题记录 VBA脚本实现特殊的行转列 已知&#xff1a;位于同一Excel工作簿文件中的两个工作表&#xff1a;Sheet1、Sheet2。 问题&#xff1a;现要将Sheet2中的每一行&#xff0c;按Sheet1中的样子进行转置&#xff1a; Sheet2中每一行的黄色单元格&#xff0c;为列头。…

Unity Shader Feature

Shader Feature 设置Keyword //0:Red 1:Green 2:Blue Mat.SetInt(“_Color”,0); 需要在创建时进行设置&#xff0c;运行时不可设置 Shader "Unlit/KeywordEnum" {Properties{[KeywordEnum(Red,Green,Blue)] _Color("Color",int) 0}SubShader{Pass{HLSL…

react使用if判断

1、第一种 function Dade(req:any){console.log(req)if(req.data.id 1){return <span>66666</span>}return <span style{{color:"red"}}>8888</span>}2、使用 {win.map((req,index) > ( <> <Dade data{req}/>{req.id 1 ?…

Java从入门到精通 第三版 读书笔记

第一章 初识Java Java同时是编译型(编译器将Java源代码静态编译为Java字节码)和解释型(JVM将Java字节码动态解释为本地机器码)语言。Java程序的运行需要解释器(如JVM)。因Java字节码本具有平台无关性,那么若要在一个新目标平台上运行一个Java程序,则仅需解释器做好目标…

iOS主要知识点梳理回顾-3-运行时消息机制

运行时&#xff08;runtime&#xff09; 运行时是OC的重要特性&#xff0c;也是OC动态性的根本支撑。动态&#xff0c;如果利用好了&#xff0c;扩展性就很强。当然了&#xff0c;OC的动态性只能算是一个一般水平。与swift、java这种强类型校验的语言相比&#xff0c;OC动态性很…

【零基础学习CAPL】——Panel之弹窗的创建与使用

🙋‍♂️【零基础学习CAPL】系列💁‍♂️点击跳转 ——————————————————————————————————–—— 从0开始学习CANoe使用 从0开始学习车载测试 相信时间的力量 星光不负赶路者,时光不负有心人。 文章目录 1.概述2. panel制作2.1 panel窗体…

C# OpenCV机器视觉:对位贴合

在热闹非凡的手机维修街上&#xff0c;阿强开了一家小小的手机贴膜店。每天看着顾客们自己贴膜贴得歪歪扭扭&#xff0c;不是膜的边缘贴不整齐&#xff0c;就是里面充满了气泡&#xff0c;阿强心里就想&#xff1a;“要是我能有个自动贴膜的神器&#xff0c;那该多好啊&#xf…

JavaScript 中的防抖和节流,它们的区别是什么,以及如何实现?

在前端开发中&#xff0c;防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle&#xff09;是两种常用的优化高频率事件处理的技术。 它们能够有效减少事件处理函数的执行次数&#xff0c;从而提升页面性能和用户体验。 下面将详细解释这两种技术的概念、区别、…

推荐一个免费的、开源的大数据工程学习教程

在当今信息爆炸的时代&#xff0c;每一个企业都会产生大量的数据&#xff0c;而大数据也已经成为很多企业发展的重要驱动力&#xff0c;然而如何有效得处理和分析这些海量的数据&#xff0c;却是一个非常有挑战的技术。 今天推荐一个免费的数据工程教程&#xff0c;带你系统化…

2月10日QT

作业> 将文本编辑器功能完善 include "widget.h" #include "ui_widget.h" #include <QMessageBox> //消息对话框类 #include <QFontDialog> //字体类对话框 #include <QFont> //字体类 #include <QColorDialog> //颜…