在客户端-服务器设置中两个 ESP8266 之间的通信速度更快

2023-11-29

我正在尝试在两个 ESP8266 12 E 模块之间进行通信,一个设置为接入点模式,另一个设置为站。我的目的是在两者之间建立沟通。

  1. 如何才能使数据传输更快?
  2. 这就是所谓的TCP/IP连接吗?

接入点的代码:

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiClient.h>
WiFiServer server(80);

void setup() {
  WiFi.mode(WIFI_AP);
  WiFi.softAP("esp", "lol123");
  server.begin();
  Serial.begin(9600);
  IPAddress IP = WiFi.softAPIP();
  //Serial.flush();
  Serial.println();
  Serial.print("Server IP is: ");
  Serial.println(IP);

}

void loop() {
  char ID, R, G, B, anim_ID;
  WiFiClient client = server.available();



  int data_outgoing[5] = {10, 128, 128, 123, 123};
  int mapFun[5];
  Serial.print("Sent data: ");
  Serial.print(ESP.getChipId());
  Serial.println();
  for(int i = 0; i < 5; i++){
    mapFun[i] =data_outgoing[i];
    //mapFun[i] = map(mapFun[i], 0, 255, 0, 128); 
    client.print(mapFun[i]);
    Serial.print(mapFun[i]);

  }

delay(10);
}

对于接收端来说,是站。

const char* ssid = "esp";
const char* password = "lol123";
const char* host = "192.168.4.1";
WiFiServer server(80);

void setup(){
  int count = 0;
  Serial.begin(9600);
  delay(10);
  //Serial.println();
  //Serial.println();
  //Serial.print("Connecting to: ");
  //Serial.print(ssid);
  //Serial.println();
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  //Serial.println("Connecting");

  while(WiFi.status() != WL_CONNECTED){
    delay(1000);
    Serial.print(".");
    count++;
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.print("Time for connection(s): ");
  Serial.print(count);
  Serial.println();
  Serial.println("IP address: ");
  Serial.print(WiFi.localIP());
  Serial.println();
}

void loop(){
 WiFiClient client;

 if((client.connect(host, 80))){
//  Serial.println("Connected");
//  Serial.print(host);
//  Serial.println();

}

String data;
data = client.readStringUntil('\n');
  //Serial.println(data);

 for(int i = 0; i< 100; i++){
    Serial.write(data[i]);
    Serial.print(data[i]);
 }
}

这种设置的问题是数据传输速度很快,但接收数据时速度很慢。在站端接收数据需要相当长的时间,可以采取什么措施来加快这个过程,是否有其他协议可以用来加快这个过程? 输出是这样的..

WiFi connected
Time for connection(s): 3
IP address: 
192.168.4.2
10128128123123

long 长度的数据是我收到的字符串,我如何将其转换为整数?我尝试过ATOI但失败了。

我对网络有点陌生,非常感谢任何建议。


尝试跟随。

服务器循环

void loop() {
  // listen for incoming clients
  WiFiClient client = server.available();
  if (client) {
    Serial.println("new client");
    if (client.connected()) {
      if (client.available()) {

        int data_outgoing[5] = {10, 128, 128, 123, 123};
    for(int i = 0; i < 5; i++){
    client.print(data_outgoing[i]);

    //Edit
    client.print('\n');

  }

     }
    }

    // close the connection:
    client.stop();
    Serial.println("client disonnected");
  }
}

客户端循环

void loop(){
 WiFiClient client;


WiFiClient client = client.connect(host, 80);

while (client.connected()) {             
        char c = client.read();     
       Serial.print(c);
}

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在客户端-服务器设置中两个 ESP8266 之间的通信速度更快 的相关文章

  • 终止导致设备或资源繁忙的进程:“/dev/ttyUSB0”?

    我使用以下 Python 代码连接到我的 Arduino 板 device glob glob dev ttyUSB 0 time sleep 1 arduino serial Serial device 115200 timeout 5
  • 为什么 Thread.Sleep() 在 SerialPort.Open 和 Close 之前?

    我注意到我在 SerialPort 关闭和打开时读到的示例代码 人们会在 SerialPort Open 和 Close 之前添加 Thread Sleep 1000 就像下面这样 Thread Sleep 1000 serialPort1
  • Linux下与CashCode纸币接受器通信

    我已经实现了 CCNET 协议 以便通过 Linux 上的软件与 CashCode 纸币接受器进行通信 最初 我花了很多时间试图弄清楚为什么设备不响应 我发送的命令 使用反复试验的方法 我找到了为串行端口设置以下选项的解决方案 stty F
  • ESP8266 NodeMCU 堆内存不足

    我正在尝试通过从我的笔记本电脑发送 POST 使用 node js 来使用 ESP8266 01 来切换 LED 我现在遇到内存问题 因为每当我发送 POST 请求时 ESP 中使用的内存就会增加 而堆内存会减少 并且当没有剩余内存时它会崩
  • Python Shell:写入一个字节并从串口读取十进制数据

    问题描述 我正在尝试使用 rs232 检索存储在设备上的所有数据 How 对于这个特定设备 我需要 Step 1 发送一个字节 0x80 uInt8 8 位无符号整数 通过串行端口 COM5 并期望收到 0x81 作为响应 Step 2 发
  • Arduino:连接字符串时崩溃和错误

    我尝试将 AES 256 加密的输出连接到一个字符串 将此字符串与从 Android 手机发送的加密字符串进行比较 基本上 连接似乎有效 但在几次运行后会出现错误 不可读的字符 字符串变得更短而不是更长 或崩溃 它是可重现的 重启后在同一点
  • Eclipse Californium CoAP 通配符作为 url 路径

    我正在使用 Eclipse Californium 开发一个 CoAP 应用程序 它将仅显式声明根资源路径 其余资源应通过通配符提供和解析 root 就像在 REST API 或 servlet 上一样 有什么办法可以实现这一点吗 好吧 我
  • PhpSerial:没有可用的 stty——似乎无法让它工作

    我正在开发一个项目 涉及使用 Raspberry Pi 上的 UART 引脚读取和写入串行板 然而 我已经碰壁了 任何时候我尝试使用PhpSerial我总是收到错误 致命错误 没有可用的 stty 无法运行 在 var www PHP Se
  • ESP8266 I2C从机不确认数据

    我有一个 TM4C123 处理器作为 I2C 主处理器 一个 ESP8266 作为从处理器 对于 ESP 我使用的是 Arduino IDE 并在 2 5 2 版安装了 ESP8266 支持 它应该支持 I2C 从模式 但是 我无法让它工作
  • 使用 Qt 打开 SOCAT 创建的虚拟串口

    我正在 MacOS 上开发 Qt5 应用程序 我想测试我的应用程序串行端口通信 我想用socat http www dest unreach org socat 但我无法打开使用 socat 创建的端口 QSerialPortInfo av
  • 使用 awk 读取串行输入,插入日期

    我正在尝试重新格式化串行输入 该输入由两个用逗号分隔的整数组成 从 Arduino 发送 1 2 3 4 0 0 0 1 我想在每行后面附加日期 用制表符分隔所有内容 到目前为止 这是我的代码 cat dev cu usbmodem3d11
  • 在 C - linux 中强制使用原始串行模式

    不知道如何表述标题 但我想做的是用我的 Linux PC 测试我的微控制器 以确保数据正确 经过几个小时的搜索 我发现 stty 命令可以更改通过串行端口管理数据的方式 并且事实证明 默认情况下 如果从端口接收到 xon 或 xoff 字符
  • 只是想从 Java Applet 将数据写入串行端口?

    几天来我一直在抓狂地想弄清楚为什么这似乎永远不起作用 首先 这是我的配置 Windows 7 x64JDK 7 x86JRE 7 x86火狐 x86由 Thin 提供服务的 Rails 3Java 设置使得 下一代插件 不处于活动状态 但它
  • Mosquitto 1.4.2 Websocket 支持

    我正在尝试利用 Mosquittos 最近的更新来支持代理中的 websocket 我正在运行 Mosquitto v1 4 2 并将以下几行添加到 mosquitto 配置文件 mosquitto conf 中 listener 1000
  • 发送一系列命令并等待响应

    我必须更新连接到串行端口的设备上的固件和设置 由于这是通过一系列命令完成的 因此我发送命令并等待收到答案 在答案 多行 中 我搜索一个字符串 该字符串指示操作是否成功完成 Serial gt write boot 1000 Serial g
  • 是否可以在 Arduino 上运行 ZeroMQ

    我想知道是否可以通过 ZeroMQ 与 Arduino 进行通信 我想使用 Arduino 来控制一些设备 并希望将大部分应用程序放在计算机上 为此 如果 Arduino 和控制器可以通过 Zeromq 以及 WiFi 或以太网扩展板进行通
  • 为什么我无法在 Android 上从串口打开/写入?

    我编写了一个 Android 应用程序 它在 Android 4 4 Kitkat 设备上的自定义内核上运行 该设备使用 Android 串行端口 API https code google com p android serialport
  • 在链接时合并全局数组/从多个编译单元填充全局数组

    我想定义一系列的东西 比如事件处理程序 的内容 该数组在编译时是完全已知的 但定义在 多个编译单元 分布在多个库中 至少在最终 静态 链接之前是相当解耦的 我想要 也保持这种方式 因此添加或删除编译单元将 还可以自动管理事件处理程序 而无需
  • C# 计算LRC(纵向冗余检查)

    我一直在到处研究这个问题 所有 LRC 实现似乎都没有给我正确的答案 花了几天时间后 我决定将我的代码放在这里 看看其他人是否可以发现问题 这是代码 C Input Data 31303030315E315E31303030325E315E
  • 如何使用基于HM-10蓝牙模块的BLE Shield?

    我是 arduino 项目的新手 我想请你帮忙 我从 http imall iteadstudio com development platform arduino shields im130704001 html http imall i

随机推荐

  • 通过java App查看PDF

    我想知道如何通过 Java 应用程序查看 PDF 我正在尝试创建一个应用程序来使用 NetBeans 6 8 查看 PDF 很少有 pdf 阅读器库 例如 iText pdfBox 但他们没有帮助我 请帮我 任何帮助都是感激的 谢谢你 这里
  • Spring集成:使用oubound网关处理http错误

    如何处理 http 出站网关中的异常 当我收到状态代码 500 或 400 时 会显示异常 那么我应该如何使用 spring 集成来处理 http 错误 我的配置是这样的
  • 将 JSON 从 ajax 发布到 Struts2 Action

    嘿 我正在尝试将 JSON 从 Ajax 发布到 Struts2 操作类方法 更多信息 我在 WAMP 服务器上运行客户端 在 Eclipse Tomcat 上运行 Struts2 我的客户端代码
  • Vue.js项目中添加Tailwind.css后,某些类没有效果

    我正在尝试将 Tailwind css 添加到 Vue js 项目中 有很多关于如何执行此操作的资源 其中大多数都遵循与这个视频 为了确保我处于与视频中相同的条件 我从头开始创建了一个 Vue 应用程序 使用vue cli使用默认预设 完成
  • 使用脚本在 Powershell 命令提示符中填写多个答案

    我正在尝试使用 Powershell 脚本自动填写提示的答案 提示问题如下所示 这些问题由 cmd 文件一个接一个地生成 这意味着输入不会返回到 Powershell 输入 我找到了很多答案来一次回答一个问题或多个是 否问题 但还没有这样的
  • .NET WebAPI集中授权

    在 NET WebAPI 中 我创建了一种将所有授权规则放在一个中央位置的方法 而不是分散在各个控制器中 我很好奇为什么这种集中化没有更频繁地进行 是否有影响 安全问题 我当前的方法是在 App Start 期间创建一个字典 其中包含我的所
  • 如何在我的应用程序中使用密码锁定场景?

    实际上 我构建了一个包含本地身份验证的应用程序 到目前为止我的代码 func authenticateUser let authenticationContext LAContext var error NSError let reason
  • 类中函数原型中的运算符 & 和 *

    我在这样的课程中遇到问题 class Sprite bool checkCollision Sprite spr 所以 如果我有这门课 我可以这样做 ball checkCollision bar1 但如果我将课程更改为 class Spr
  • 用于解压缩文件的 VBA 脚本 - 只是创建空文件夹

    我正在使用 Ron 的代码 http www rondebruin nl win s7 win002 htm 理论上可以将一堆 zip 文件解压到一个文件夹中 我相信下面的代码获取 下载 目录中的每个 zip 文件 使用 zip 文件的名称
  • 如何用selenium继续填充下一页的数据?

    我想通过以下方式登录Selenium 该过程分为2页 email 密码 现在我可以在第一页输入密钥 然后我应该进入下一页 输入密码并单击提交密钥 但是 如果我只在一个类中添加4个按键代码 则无法完成第二页按键输入 密码和提交 我猜想第一页按
  • 为什么Multiprocessing的Lock不会阻止其他进程使用对象?

    以下代码是一家商店的代码 该商店有 5 件商品 三个顾客各需要一件商品 import multiprocessing as mp class Shop def init self stock 5 self stock stock def g
  • 在映射时使用 adf 管道参数作为源到接收器列

    我有一个具有复制活动的 ADF 管道 我正在将数据从 Blob 存储 CSV 文件复制到 SQL 数据库 这按预期工作 我需要映射 CSV 文件的名称 这来自管道参数 并将其保存在目标表中 我想知道是否有办法将参数映射到目标列 列名不能直接
  • 在自定义控制器工厂中进行通用授权的良好做法?

    我的控制器共享一个客户端 ID 路线 clients clientId controller action id 示例网址 clients 1 orders details 1 clients 2 children index client
  • 通过堆栈进行 32 位扩展乘法

    这是我一直用来实现两个 32 位数字的扩展乘法的代码 有没有办法通过创建子程序并通过参数传递使用堆栈来实现类似的逻辑 使用 MUL 指令还是不使用 MUL 指令 有人可以帮忙吗 org 0x0100 jmp start multiplica
  • 迁移到 androidx 后,膨胀类 androidx.constraintlayout.ConstraintLayout 时出错

    我刚刚通过 Android Studio 菜单选项迁移到 androidxRefactor gt 重构为 AndroidX 我收到以下错误 android view InflateException 二进制 XML 文件行 2 二进制 XM
  • python bokeh,如何制作相关图?

    如何在 Bokeh 中制作相关热图 import pandas as pd import bokeh charts df pd util testing makeTimeDataFrame 1000 c df corr p bokeh ch
  • 使用服务帐号访问 Google Reseller API

    我们在使用服务帐户访问经销商 API 时遇到问题 带有客户端密钥的示例运行良好 但我们需要将其部署在 k8s Kubernetes Engine 中 而不需要定期刷新 oauth 会话 尤其是执行一次 因为在 Docker 容器中有点困难
  • 数据不会导入到 PGAdmin

    找不到 C Program Files PostgreSQL 13 pgAdmin 4 runtime psql exe 文件 请更正首选项对话框中的二进制路径 这是我尝试将数据导入 pg admin 时得到的响应 我之前导入过数据 但没有
  • 将 LIKE 运算符与 DETERMINISTIC 函数结合使用时的 Oracle 执行计划

    现在 当我使用 Oracle 执行计划时 我遇到了一件非常棘手的事情 DETERMINISTIC右侧的功能LIKE操作员 这是我的情况 情况 我认为执行这样的查询 简化的 是明智的 SELECT FROM customers cust JO
  • 在客户端-服务器设置中两个 ESP8266 之间的通信速度更快

    我正在尝试在两个 ESP8266 12 E 模块之间进行通信 一个设置为接入点模式 另一个设置为站 我的目的是在两者之间建立沟通 如何才能使数据传输更快 这就是所谓的TCP IP连接吗 接入点的代码 include