【问题标题】:Server Esp32 with LCd带 LCD 的服务器 Esp32
【发布时间】:2019-12-21 22:18:18
【问题描述】:

对不起,我的英语也不好。我想制作一个显示客户端结果的服务器 Esp32。 2 个客户发送温度和湿度。我无法识别哪个客户发送数据以及是温度还是湿度。服务器基于 tcp。我正在寻求有关如何识别客户和数据的帮助。 客户端发送: 温度(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");

【问题讨论】:

  • 问题太宽泛了,展示一下你试过的代码的sn-ps。
  • 这是一个基本版本的代码,我不知道该怎么做
  • 您是否有权访问发送消息的设备?
  • 是的,我有访问权限
  • 使用原始 TCP 的想法是您正在发送二进制数据,然后您需要对其进行解析。为避免在您的情况下遇到困难,您可以使用 HTTP,arduino 上有很多 http 服务器示例。

标签: esp32


【解决方案1】:

如果我理解正确,您希望客户端使用他调用的 URL 通过 TCP/IP 发送温度数据。

由于在每个给定时间只有一个客户端可以连接到您的网络服务器,我认为区分不同客户端的最简单方法是让他们在发送到您的服务器的字符串中使用一个标识符,然后您可以在将其发送到 LCD 之前对其进行处理。

请让我知道您是否正在尝试这样做。

【讨论】:

    猜你喜欢
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    相关资源
    最近更新 更多