Arduino MQTT 发布主题问题

Arduino MQTT publish to topic issues

我试图让我的 ESP8266 发布到一个主题,其 mac 地址作为子地址以区分许多设备,但是当我创建一个主题字符串时,其中包含 mac client.publish(Topic, String) 中断... 我收到此错误

error: no matching function for call to 'PubSubClient::publish(<unresolved overloaded function type>, const char*)'
   if (client.publish(Topic.c_str, msg.c_str())){
                                              ^
void loop() {
      val = ( 100.00 - ( (analogRead(analogPin)/1023.00) * 100.00 ) );  // read the input pin
     // Serial.println(val);   
      client.loop();
      //client.publish("esp/test" val);
      String mac = WiFi.macAddress();

      String Topic = String("esp/test/moisture/" + mac);

      String msg = String("{Moisture:") + String(val) + String(", mac:") + String(mac) + String("}");
      if (client.publish(Topic.c_str, msg.c_str())){
          Serial.println("Message Sent!");
         // Serial.println(msg);
          Serial.println(msg.c_str());
      delay(10000);
    }
}

您在 client.publish() 的第一个参数中缺少函数调用的括号。该行当前显示为:

if (client.publish(Topic.c_str, msg.c_str())){

应该是

if (client.publish(Topic.c_str(), msg.c_str())){