我可以从传感器读取值,然后将其添加到 RF24l01 网络的 JSON 字符串中吗

标签 c json arduino

我读了一些示例,值是这样的字符串或数字

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));

最佳答案

考虑使用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 确保写入不会溢出。

关于我可以从传感器读取值,然后将其添加到 RF24l01 网络的 JSON 字符串中吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56463206/

相关文章:

使用 Arduino USB 主机进行 Android (ADB) 调试

c - 如何将多个数据组合到一个变量中

c - 这个程序有什么错误?

c++ - 在任何编程语言中回溯

c - 我用 c 语言做了一个计算器,当我尝试运行它时会弹出错误

java - 如何使用 Jackson 删除 Java 中的空 json 节点?

c++ - 如何用arduino控制伺服电机

c - 使用 for 循环、三元运算符和条件时出现意外的换行符

c# - 将 JSON 反序列化为字符串

javascript - datatables.js 不重新加载仅显示