9600波特率每秒传送多少字节_arduino传送字符串json到python解析为字典数据
原文链接:https://dsx2016.com/?p=1441
公众号:大师兄2016
前言
前几篇文章仅仅是将获取到的温湿度数据打印在串口,简单的字符串就可以,只需要查看,未实现存储.
为了方便的将arduino
的数据使用python
存到数据库中,使用json
数据是一个不错的方式.
此处设计的为arduino
传输的为字符串json,python
将字符串转码为字典后然后进行数据处理.
python字符转换
str转json
[dsx_def_highlightjs code=code]
# 引入json模块
import json
# 创建字符串json
str = '{"temperature":27,"humidity":85}'
# 解析为字典
j = json.loads(str)
# 打印数据
print(j)
# 打印数据类型
print(type(j))
[/dsx_def_highlightjs]
获取到的结果为
{'temperature': 27, 'humidity': 85}
<class 'dict'>
arduino发送字符串
arduino
如何拼接字符串
+
运算符允许你把字符串和另一个字符串,常量字符数组,ASCII
,变量,或者常量字符等组合起来。
// 字符串拼接数字stringVal = stringOne + 123;// 字符串拼接字符stringVal = stringOne + "abc";// 两个字符串变量拼接stringVal = stringOne + stringTwo;
arduino
把温湿度拼接
参考代码注释
#include <dht11.h>
#define DHT11PIN 4dht11 DHT11;void setup()
{Serial.begin(9600);}void loop()
{Serial.println();// 初始化库int chk = DHT11.read(DHT11PIN);// 定义温度变量名String temperature = ""temperature":";// 获取温度int temperatureNum=(float)DHT11.temperature;// 定义湿度变量名String humidity = ""humidity":";// 获取湿度int humidityNum=(float)DHT11.humidity;// 拼接字符串jsonString dataRes="{"+temperature+temperatureNum+","+humidity+humidityNum+"}";// 打印到串口Serial.print(dataRes);// 延时2s执行delay(2000);}
python接收字符串
此处使用usb
串口接收数据
注意,python
接收到的为bytes
字节符
b'{"temperature":28,"humidity":78}'
bytes
转str
方式
# 第一种
str(b'123', encoding='utf-8')
# 第二种
bytes.decode(b'123')
python
处理arduino
传来的温湿度数据
参考代码注释
# 引入串口库(注意是serial,不是pyserial)
import serial
# 引入json库
import json# 设置端口变量和值
serialPosrt = "COM3"
# 设置波特率变量和值
baudRate = 9600
# 设置超时时间,单位为s
timeout = 0.5
# 接受串口数据
ser = serial.Serial(serialPosrt, baudRate, timeout=timeout)# 循环获取数据(条件始终为真)
while 1:# 读取接收到的数据的第一行strData = ser.readline()# 把拿到的数据转为字符串(串口接收到的数据为bytes字符串类型,需要转码字符串类型)strJson = str(strData, encoding='utf-8')# 如果有数据,则进行json转换if strJson:# 只有当检测到字符串中含有温湿度字符名时才进行json转码,其他的字符串内容不作操作if "temperature" in strJson:print("当前接受到的数据位->", strJson)# 字符串转为json(每个字符串变量名必须为双引号包括,而不是单引号)jsonData = json.loads(strJson)print("转码成功,当前类型为->", type(jsonData))else:print("当前接收到的数据为空")
总结
本文描述了数据通信的数据预处理和数据转码
python
期望接收json
数据,而不是无序的字符串流
- 将
arduino
的数据设置为字符串json
格式(C/C++
) python
将获取到的bytes
字节符转为字符串(python
)python
将字符串str
转为json
(字典)(python
)
下期内容
- 使用
sqlite
等数据库存储arduino
的传感器数据
END.
9600波特率每秒传送多少字节_arduino传送字符串json到python解析为字典数据相关推荐
- 波特率9600每秒的传输字节_波特率、比特率、通信速度的区别01
1.写在前面 I2C通信速度100KHz是什么意思? SPI数据传输速率最大150Mbps是什么意思? 串口9600bps每秒传输9600字节数据吗? 不少参加工作,甚至工作两三年的工程师,都没有搞明 ...
- 计算机数据传输9600波特率,波特率9600每秒的传输字节 传输一个字节要多久-与非网...
波特率9600指的是每秒可以传输9600个二进制位,也就是9600/8个英文字母的数据量,也就是1200个字节,大约1.2KB. "波特"(Baud)本身已是速率,所以不需要写成 ...
- 计算机数据传输9600波特率,什么是波特率_波特率9600是什么意思_串口通信为什么要设置波特率?...
波特率(Baud Rate) 单位 bps -- 每秒传送的字节数 Byte Per Second.. (BaudRate) 模拟线路信号的速率,也称调制速率,以波形每秒的振荡数来衡量.如果数据不压缩 ...
- 兆比特每秒和兆字节每秒_网速中的“KB”“MB”“s”等字母都是啥意思,读啥,比如兆这样?...
1.这有啥不好意思的.... 2.可以匿名,如下: 3.网速的单位 b与B 计算机信息的基本单位是bit(比特),1 bit 就是背后的0或1, 8个bit是1字节 通常小写的b或bit代表比特,大写 ...
- C#中字节数组与字符串的来回转换
C#中字节数组与字符串的来回转换会遇到一个奇怪的问题.这个问题是在做网络传送文件时遇到的. 问题如下: 就是把件流形成的字节数组转成字符串发送,对端接收到过后把字符串还原成字节数组然后形成文件流. 这 ...
- web简易计算器代码_30秒内便能学会的30个超实用Python代码片段
许多人在数据科学.机器学习.web开发.脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言. Python流行的部分原因在于简单易学. 本文将简要介绍30个简短的.且能在30秒内掌握 ...
- 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个...
2019独角兽企业重金招聘Python工程师标准>>> 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如"我ABC ...
- 解决在C#(.net)按字节数截取字符串最后出现乱码的问题
解决在C#(.net)按字节数截取字符串最后出现乱码的问题 参考文章: (1)解决在C#(.net)按字节数截取字符串最后出现乱码的问题 (2)https://www.cnblogs.com/xion ...
- 如何将零终止的字节数组转换为字符串?
本文翻译自:How to convert a zero-terminated byte array to string? I need to read [100]byte to transfer a ...
最新文章
- python 模拟浏览器selenium 微信_Spider-Python爬虫之使用Selenium模拟浏览器行为
- 【转】mssql中大小写的区分
- 设计模式 - Iterator(迭代器)
- docker命令行解析以及如何向服务器端发送请求(docker源码学习一)
- [设计模式笔记]4.建造者模式
- Java Script 第十节课 Java Script的for循环练习。
- python自动化测试常用库_Python自动化测试常用库整理
- 【Spring学习笔记-MVC-17】Spring MVC之拦截器
- 2019年物联网发展趋势与预测分析
- 前端小白,如何快速提升自己?了解3点,找工作不用愁
- Hibernate批量处理数据、HQL连接查询
- linux mysql 数据恢复_怎样恢复Mysql数据库误删除后的数据
- 人工智能来了 微智全景首款刷脸支付终端亮相
- 英语语法——名词和名词性从句
- 你没见过的中文编程工具,用中文开发android安卓应用,安卓开发的初体验!
- win10如何显示html文件夹,Win10显示隐藏文件夹图标_Win10查看隐藏文件夹方法-192路由网...
- [HNOI2007]最小矩形覆盖(旋转卡壳)
- request.js?b775:43 Uncaught (in promise) Error: 抱歉,系统繁忙,请稍后重试! at __webpack_exports__.default (r
- (转)Unity3D手游开发实践
- adb shell 中查看文件大小指令 ls -al 和 du -k \ du-h
热门文章
- 服务器配置能连多少个小程序,每个服务器能配置多少小程序
- 深度搜索 java_java实现的深度搜索与广度搜索算法BFS,DFS以及几种最短路径算法...
- php observer,php设计模式 Observer (观察者模式)
- 易语言下载别人的源码编译出来用不了_我是如何阅读源码的
- 1从控制台输入年份,判断是闰年还是平年;
- Java经纬度坐标与高斯坐标的转换
- Vue中引入css文件
- Python个 flask 教程地址 做个记录方便以后学习用
- 摩拜回应裁员传闻:属正常业务调整 部分岗位仍在招聘
- 数据科学入门的5个技巧