我正在尝试在两个 ESP8266 12 E 模块之间进行通信,一个设置为接入点模式,另一个设置为站。我的目的是在两者之间建立沟通。
- 如何才能使数据传输更快?
- 这就是所谓的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但失败了。
我对网络有点陌生,非常感谢任何建议。