所以我有这个代码:
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
尝试查看 github 代码以了解您可以从该库中获得哪些公共成员,没有诸如
SGP30::TVOC()
之类的公共函数,而是一个成员变量 SGP30::TVOC
。甚至回溯消息也是不言自明的,告诉您 TVOC
不是函数表达式。
所以你的代码很可能应该是:
server.send(200, "text/plain", mySensor.TVOC);