首页 > 编程语言 >python esp32 json pyserial

python esp32 json pyserial

时间:2023-08-07 14:45:12浏览次数:35  
标签:10 String python esp32 JSON int json print Serial

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}

输出:

解析成功

 

标签:10,String,python,esp32,JSON,int,json,print,Serial
From: https://www.cnblogs.com/aker-whale/p/17611401.html

相关文章

  • python 获取本机IP(公网,局域网)
    获取公网IP1importrequests2importre3res=requests.get("https://myip.ipip.net",timeout=5).text4ip=re.findall(r'(\d+\.\d+\.\d+\.\d+)',res)[0]5print(ip)获取局域网IP1importsocket23res=socket.gethostbyname(socket.g......
  • PEP 703作者给出的一种no-GIL的实现——python3.9的nogil版本
    PEP703的内容是什么,意义又是什么呢?可以说python的官方接受的no-GIL提议的PEP就是PEP703给出的,如果GIL帧的从python中移除那么可以说对整个python生态圈将有着跨越性发展的意义。  ====================================================  PEP703地址:https://peps.python.org......
  • ChatGPT 作为 Python 编程助手
    推荐:使用NSDT场景编辑器助你快速搭建可编辑的3D应用场景简单的数据处理脚本我认为一个好的起点是某种数据处理脚本。由于我打算让ChatGPT之后使用各种Python库编写一些机器学习脚本,这似乎是一个合理的起点。目标首先,我想尝试加载数据集;确保所有数据集值都是数值,或将其转......
  • python爬虫之scrapy框架介绍
    一、Scrapy框架简介Scrapy是一个开源的Python库和框架,用于从网站上提取数据。它为自从网站爬取数据而设计,也可以用于数据挖掘和信息处理。Scrapy可以从互联网上自动爬取数据,并将其存储在本地或在Internet上进行处理。Scrapy的目标是提供更简单、更快速、更强大的方式来从网......
  • esp32cam(6贴片位)烧录MicroPython的方法(ch340)
    起因:购买的esp32cam烧录底座(ch340)无法刷入MicroPython,将ch340的驱动重装后,即使刷入也不能正常连接thonny。看了好几个csdn的帖子也无济于事,后看到B站up邪恶的胖次菌的视频esp32cam烧录笔记openmv/micropython找到解决办法。按照视频中6贴片位的esp32cam连好杜邦线后,即可在thonn......
  • python爬虫之scrapy框架介绍
    一、Scrapy框架简介Scrapy是一个开源的Python库和框架,用于从网站上提取数据。它为自从网站爬取数据而设计,也可以用于数据挖掘和信息处理。Scrapy可以从互联网上自动爬取数据,并将其存储在本地或在Internet上进行处理。Scrapy的目标是提供更简单、更快速、更强大的方式来从网......
  • 【Python】PySpark 数据计算 ② ( RDD#flatMap 方法 | RDD#flatMap 语法 | 代码示例 )
    文章目录一、RDD#flatMap方法1、RDD#flatMap方法引入2、解除嵌套3、RDD#flatMap语法说明二、代码示例-RDD#flatMap方法一、RDD#flatMap方法1、RDD#flatMap方法引入RDD#map方法可以将RDD中的数据元素逐个进行处理,处理的逻辑需要用外部通过参数传入map函数......
  • 解析json数据导出某个字段的值到excel(记录)
    记录一下导出代码publicstaticvoidmain(String[]args){ //将你的json数据放在txt文档里并复制路径到下面StringfilePath="E:/home/2023年需求/人才/20230801出表/job_mobile_json.txt";//替换成你的文件路径try{Stringcontent=r......
  • 【Python】PySpark 数据计算 ④ ( RDD#filter 方法 - 过滤 RDD 中的元素 | RDD#distin
    文章目录一、RDD#filter方法1、RDD#filter方法简介2、RDD#filter函数语法3、代码示例-RDD#filter方法示例二、RDD#distinct方法1、RDD#distinct方法简介2、代码示例-RDD#distinct方法示例一、RDD#filter方法1、RDD#filter方法简介RDD#filter方法可以根据指定......
  • python 抓包
    Scapy方式Scapy是一个强大的Python库,可用于创建、发送和解码网络数据包。它能够抓取和处理各种网络层协议、载荷和报头信息。Scapy是一个全能的库,包含各种工具和功能。该库具有灵活性、可扩展性和实用性fromscapy.allimport*pkts=sniff(iface="eth0",count=10)forpkt......