对不起,我的英语也不太好。我想制作一个显示客户端结果的服务器Esp32。 2位客户发送温度和湿度。我在识别哪个客户发送数据以及温度是tempeartura还是湿度方面遇到问题。该服务器基于tcp。我正在寻求有关如何识别客户和数据的帮助。 客户发送: Tem(1)= 21 嗡嗡声(1)= 60
#include <LiquidCrystal_I2C.h>
// set the LCD number of columns and rows
int lcdColumns = 16;
int lcdRows = 2;
// set LCD address, number of columns and rows
// if you don't know your display address, run an I2C scanner sketch
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);
const char* ssid = "xxxx";
const char* password = "xxx";
WiFiServer wifiServer(8088);
void setup() {
lcd.init();
// turn on LCD backlight
lcd.backlight();
Serial.begin(115200);
delay(1000);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi..");
}
Serial.println("Connected to the WiFi network");
Serial.println(WiFi.localIP());
wifiServer.begin();
}
void loop() {
WiFiClient client = wifiServer.available();
if (client) {
while (client.connected()) {
while (client.available()>0) {
lcd.setCursor(0, 0);
String Message = client.readStringUntil('\n');
Serial.println(Message);
lcd.println(Message);
delay(1000);
lcd.clear();
}
delay(10);
}
client.stop();
Serial.println("Client disconnected");
答案 0 :(得分:0)
如果我对您的理解正确,则希望客户端使用其调用的URL通过TCP / IP发送温度数据。
由于在每个给定时间只有一个客户端可以连接到您的Web服务器,所以我认为区分不同客户端的最简单方法是让它们在发送到服务器的字符串中使用标识符,然后您在将其发送到LCD之前可以对其进行处理。
请让我知道您是否正在尝试这样做。