问题描述
我从传感器读取数据,并像这样显示给串行监视器。
int humidity = dht.readHumidity();
int temperature = dht.readTemperature();
String place = "My Home";
if (online) {
if (!client.connected()) {
reconnect();
}
client.loop();
String data = "{\"data\": {\"humidity\":" + String(humidity) + ",\"temperature\":" + String(temperature) + ",\"place\": " + place + "}}";
data.tochararray(msg,(data.length() + 1));
Serial.println(msg);
输出为
{"data": {"humidity":60,"temperature":27,"place": My Home}}
{"data": {"humidity":2147483647,"temperature":2147483647,"place": My Home}}
运行代码后,它没有错误,但输出不正确,并且在显示此输出后程序将停止。
如果我在data.tochararray(msg,(data.length() + 1));
行评论。然后,程序将显示正确的温度和湿度值输出。如何解决?
解决方法
使用基本的itoa
函数。它包含在stdlib.h
char buf[12]; // "-2147483648\0"
lcd.printIn(itoa(random(1024)-512,buf,10));
,
删除字符串中的所有空格后,就没有问题了。谢谢。