python esp32 json pyserial

esp32:

#include <ArduinoJson.h>

void setup() {
  Serial.begin(9600);

}

void loop() {
  if (Serial.available()) {
    // 读取串口输入的数据
    String jsonString = Serial.readStringUntil('\n');

    // 创建 JSON 文档
    StaticJsonDocument<300> doc;

    // 解析 JSON 数据
    DeserializationError error = deserializeJson(doc, jsonString);

    // 检查解析是否成功
    if (error) {
      Serial.print("Failed to parse JSON: ");
      Serial.println(error.c_str());
      return;
    }

    // 提取字段值
    int values[10];
    for (int i = 0; i < 10; i++) {
      String fieldName = "data" + String(i);
      values[i] = doc[fieldName].as<int>();
    }

    // 打印提取的值
    for (int i = 0; i < 10; i++) {
      Serial.print("data");
      Serial.print(i);
      Serial.print(": ");
      Serial.println(values[i]);
    }
  }
}

串口测试字符串:

{"data0": 10, "data1": 20, "data2": 30, "data3": 40, "data4": 50, "data5": 60, "data6": 70, "data7": 80, "data8": 90, "data9": 100}

输出:

解析成功

 

posted @ 2023-08-07 14:35  为鲸  阅读(31)  评论(0编辑  收藏  举报