我读了一些示例,值是这样的字符串或数字
json[] =
"{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}";
例如,我有2个值:
pack0.humidity = dht.readHumidity();
pack0.temperature = dht.readTemperature();
我可以读取这些温度和湿度并将其添加到loop()中的json中吗 像这样
json[] =
"{\"Temperature\": /*temp here*/,
\"Humidity\":/*humid here*/}";
任何人都可以举例说明我的项目。非常感谢。 我当前的rf24代码
struct package0
{
float temperature = 0;
float humidity = 0;
int soil = 0;
};
typedef struct package0 Package0;
Package0 pack0;
void loop()
{
delay(2000);
pack0.humidity = dht.readHumidity();
pack0.temperature = dht.readTemperature();
pack0.soil = map(analogRead(SOILPIN), 0, 4096, 100, 0);//convert to percentage
if (isnan(pack0.humidity) || isnan(pack0.temperature))
{
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
RF24NetworkHeader header(master00);
bool ok = network.write(header, &pack0, sizeof(pack0));
答案 0 :(得分:0)
考虑使用ArduinoJson,它将为您执行JSON编码。该库的优点在于,它使以后轻松修改数据模式变得容易。
或者您也可以只使用snprintf
来自己做:
const int BUFFER_SIZE = 48; // Choose a suitable number here
char json[BUFFER_SIZE];
snprintf(json, BUFFER_SIZE, "{\"Temperature\":%f,\"Humidity\":%f}", pack0.humidity, pack0.temperature);
json
将包含您的JSON数据。使用snprintf
确保写入不会溢出。