簡體   English   中英

我可以從傳感器讀取值,然后將其添加到RF24l01網絡的JSON字符串

[英]Can i read value from sensors then add it to JSON string for RF24l01 network

我讀了幾個例子,值是這樣的字符串或數字

json[] =
      "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}";

例如,我有2個值:

pack0.humidity = dht.readHumidity();
pack0.temperature = dht.readTemperature();

我可以讀取那些溫度和潮濕,並將它添加到循環()中的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));

考慮使用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可確保寫入不會溢出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM