esp8266 上的网络服务器出现问题,我想从 SGP30 传感器返回 tvoc

问题描述 投票:0回答:1

所以我有这个代码:

void setup() {
  Serial.begin(9600);
  Wire.begin();
  
  if (mySensor.begin() == false) 
  {
    while (1);
  }
  sencon = true;

  mySensor.initAirQuality();
  pinMode(led, OUTPUT);
  digitalWrite(led, 0);
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  if (MDNS.begin("esp8266")) { Serial.println("MDNS responder started"); }
  
  server.on("/", []() {
    server.send(200, "text/plain", mySensor.TVOC());
  });

我想从 SGP30 传感器返回 tvoc。 但我得到:

expression cannot be used as a function

编译时出错。我尝试将其转换为字符串,但它对我不起作用。 (如果我弄错了,我不知道)我正在使用 WeMos D1 R1 板。 完整的编译器输出:

error: expression cannot be used as a function
   74 |     server.send(200, "text/plain", mySensor.TVOC());
      |                                                  ^
exit status 1
expression cannot be used as a function

我希望有人可以帮助解决这个错误,因为我是 C++ 菜鸟。 完整代码:https://pastebin.com/derki1df

c++ arduino-esp8266
1个回答
0
投票

尝试查看 github 代码以了解您可以从该库中获得哪些公共成员,没有诸如

SGP30::TVOC()
之类的公共函数,而是一个成员变量
SGP30::TVOC
。甚至回溯消息也是不言自明的,告诉您
TVOC
不是函数表达式。

所以你的代码很可能应该是:

server.send(200, "text/plain", mySensor.TVOC);

© www.soinside.com 2019 - 2024. All rights reserved.