ESP8266 Arduino IDE MQTT Subscribe в 2 топика с выводом данных.

Нет ответов
VaDoSiQ
VaDoSiQ аватар
Offline
Зарегистрирован: 19.01.2017

Здравствуйте. Имеется проблемный вопрос.

Есть сервер MQTT, есть LCD диспей и есть 2 датчика: температура и освещение.

С датчиков я отправляю данные на брокер и хочу считывать эти данные и выводить на LCD диспелей.

Если подключать к дисплею 1 датчик и делать в коде подписку на 1 топик, данные отображаются корректно, но когда я добавляю подписку на еще на 1 топик, оно выводит поочередно данные люксов и температуры, то есть сначала отображает температуру, потом люксы.

Мне нужно сказать функции callback, чтобы она понимала с какого конретного топика показывать мне данные.

Должно поучиться примерно так:

Temperature: 22.2 C

Lux: 3213 lx

Вот собственно моя функция callback с выводом (пока что в Serial), с подпиской на 2 топика:

void callback(char* topic, byte* payload, unsigned int length) {
    int i = 0;
    for(i = 0; i < length; i++) {
      data[i] = payload[i];
    }
    data[i] = '\0';
    String message = String(data);
    Serial.println(message);
}

void Reconnect() {
  while(!client.connected()) {
    Serial.println("Connection to MQTT server...");
    if(client.connect("GreenhouseLCD")) {
      Serial.println("MQTT connected..");
      client.subscribe("lcd/temperature");
      client.subscribe("lcd/lux");
    } else {
      Serial.print("Failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds.");
      delay(5000);
    }
}
}

Вот что отображается в Serial:

Буду благодарен за любую помощь. Всем добра:)