Arduino 在客户端-服务器设置中加快两个ESP8266之间的通信
我正在尝试在两个ESP8266 12 E模块之间进行通信,一个设置为接入点模式,另一个设置为站点。我的目标是在两者之间建立沟通Arduino 在客户端-服务器设置中加快两个ESP8266之间的通信,arduino,serial-port,iot,esp8266,Arduino,Serial Port,Iot,Esp8266,我正在尝试在两个ESP8266 12 E模块之间进行通信,一个设置为接入点模式,另一个设置为站点。我的目标是在两者之间建立沟通 如何使数据传输更快 这就是所谓的TCP/IP连接吗 接入点的代码: #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #include <WiFiClient.h> WiFiServer server(80); void setup() { WiFi.mode(WIFI
#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);
}
数据的长长度是我收到的字符串,如何将其转换为整数?我试过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");
}
}
原始帖子中的代码不会建立网络,除非密码长度至少为8个字符。使用“lol12345”将有效。希望有帮助-这个遗漏的细节花费了我4天的时间。它可能是我的IDE版本(arduino 1.8.1)的一个手动版本。您正在接收您发送的内容。10128128123,123@ShanilFernando但是接收数据时会有大约1秒的延迟。。这能更快吗?
client.readStringUntil('\n')
读取直到有换行符或1秒内没有数据。并且您不发送任何换行符。你甚至没有发送一个字符串,只是随机的字节。我在工作站的串行监视器上没有收到任何东西。应该一直读到行尾吗?取出client.available()有帮助。数据发送速率现在太快了。哦,对不起,我忘记从客户端删除client.available()
。不管怎样,很高兴我能帮助你。@Prathikgurudat如果它能解决你的问题,请接受它作为正确答案。如果您有更多问题,请在这里发表评论。我非常乐意帮助您。也可以用串行输入替换阵列吗?我正在从一个python代码生成一个数组,该代码串行传输到AP。
WiFi connected
Time for connection(s): 3
IP address:
192.168.4.2
10128128123123
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);
}
}