起因:学校运河杯报了个项目,制作一个天气预测的装置。我用arduino跑了BME280模块,用蓝牙模块实现两块arduino主从机透传。但是为了分析,还需要提取出数据。因此我用python写了个上位机程序,用pyserial模块实现arduiho和电脑的串口通讯,再用xlwt模块写入excel表格,用time模块获取时间作为excel的文件名。 import xlwt

import time

import serial

#设置表格样式

def set_style(name,height,bold=False):

style = xlwt.XFStyle()

font = xlwt.Font()

font.name = name

font.bold = bold

font.color_index = 4

font.height = height

style.font = font

return style

#写Excel

def write_excel():

if serial.isOpen():

print ('串口已打开\n')

f = xlwt.Workbook()

sheet1 = f.add_sheet('arduino_data',cell_overwrite_ok=True)

row0 = ["temp","pres","hum"]

time1=time.localtime(time.time())

#写第一行

for i in range(len(row0)):

sheet1.write(0,i,row0[i],set_style('Times New Roman',220,True))

i=1

time.sleep(5)

serial.flushInput()

while True:

try:

size = serial.inWaiting()

if size != 0:

response = serial.read(size) # 读取内容并显示

s=response.decode('utf-8').rstrip('\r\n').split('\t')

if len(s)!=3:

serial.flushInput()

continue

else:

try:

for j in range(len(s)):

sheet1.write(i,j,int(s[j]),set_style('Times New Roman',220,False))

print(s)

serial.flushInput() # 清空接收缓存区

i = i+1

time.sleep(0.5)

except ValueError:

serial.flushInput()

continue

except KeyboardInterrupt:

time2=time.localtime(time.time())

f.save(r'C:\Users\10020\Desktop\arduino_data\{0}.{1}_{2:0>2d}.{3:0>2d}.{4:0>2d}-{5}.{6}_{7:0>2d}.{8:0>2d}.{9:0>2d}.xls'.format\

(time1[1],time1[2],time1[3],time1[4],time1[5],

time2[1],time2[2],time2[3],time2[4],time2[5]))

serial.close()

print(time1)

print(time2)

quit()

if __name__ == '__main__':

serial = serial.Serial('COM3',9600,timeout=2)

write_excel()

运行代码后会一直从串口读取arduino的数据,然后写入excel。按Ctrl+c来中止代码进程,此时会在C:\Users\10020\Desktop\arduino_data\这个文件夹下生成以“开始运行时间-结束运行时间”为名称的xls文件。

代码的运行效果:

需要注意的是: 串口和波特率根据电脑上显示的COM口和设置的arduino波特率决定 arduino是通过串口发送字节串到电脑,需要编码成utf-8再对字符串进行处理 每一次接受完数据要清楚数据缓存

总结

以上所述是小编给大家介绍的python Arduino串口传输数据到电脑并保存至excel表格,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对聚米学院网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

python串口数据采集 保存_python 中Arduino串口传输数据到电脑并保存至excel表格相关推荐

  1. python算法和数据结构_Python中的数据结构和算法

    python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...

  2. 计算机基础知识教程excel单元格拆分,电脑内怎么将excel表格中某个单元格的内容拆分至不同单元格里...

    电脑内怎么将excel表格中某个单元格的内容拆分至不同单元格里 当我们在使用电脑的时候,可以下载excel软件来处理数据文件,那么如果想要将一个单元格中的内容拆分到不同的单元格中的话,应如何操作呢?接 ...

  3. python数据库模糊查询_python中数据库like模糊查询方式

    python中数据库like模糊查询方式 在Python中%是一个格式化字符,所以如果需要使用%则需要写成%%. 将在Python中执行的sql语句改为: sql = "SELECT * F ...

  4. python redis 消息队列_python中利用redis构建任务队列(queue)

    Python中的使用标准queue模块就可以建立多进程使用的队列,但是使用redis和redis-queue(rq)模块使这一操作更加简单. Part 1. 比如首先我们使用队列来简单的储存数据:我们 ...

  5. python编写ATM类_Python中编写类的各种技巧和方法

    有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Pickling).你可以把它当作一个教程, ...

  6. python首行缩进_python中缩进

    初识Python 初识Python 跟学习所有的编程语言一样,首先得了解这门语言的编程风格和最基础的语法.下面就让我们一起来了解一下Python的编程风格. 1.逻辑行与物理行 在Python中有逻辑 ...

  7. python方法之间加点_python中技巧

    1.使用xpath从html文档得到其中元素: 123we为了得到其中的123we元素 tree=html.fromstring(***.text) tt=list(set(tree.xpath(&q ...

  8. python决策树 多分类_Python中的决策树分类:您需要了解的一切

    python决策树 多分类 什么是决策树? (What is Decision Tree?) A decision tree is a decision support tool that uses ...

  9. python打开dat文件_python中对文件的操作

    """ 在变量,序列(这里的序列其实就是元组,列表,字符串,集合,字典)和对象中存储的数据是暂时的,程序结束就会丢失. 为了能够长世界地保存程序中的数据,需要将程序中的数 ...

最新文章

  1. NOIP2017 列队
  2. How to install python packages
  3. java 连接mongodb
  4. 881.BoatstoSavePeople
  5. 用turtle画中国象棋棋盘
  6. mongodb 日志,(一个看日志解决新问题的方法) -- clwu
  7. [转]自定义UITableView各种函数
  8. 7-ELEVEn 便利店 EDI 概览
  9. 利用ZEBAR 软件生成ZPL 代码
  10. qq浏览器android flash,支持flash游戏 安卓QQ浏览器2.0预览版体验
  11. UIAutomator2常用类之UiObject2
  12. IT界5大女神程序员,我觉得最后那位很有内涵
  13. base64字符串转换为图片
  14. 凡人修仙传jar_凡人的贝壳无法逃脱灵魂般的阴影
  15. 50件关于学霸与学渣的小事
  16. Unity 讯飞实时语音转写(二)—— 接收转写结果
  17. Python图像库PIL的类Image的paste写法
  18. 电脑端使用文件微信聊天记录的本机/新机备份迁移
  19. 为何自从熊猫烧香以后中国再也没有爆发过类似于此的大规模网络病毒事件?
  20. 管理网络与业务网络分离+虚拟网络部署

热门文章

  1. 批量修改文件名部分字段
  2. #gStore-weekly | gstore源码解析(五):安全机制之日志追踪
  3. 入手评测 i7 1165g7和r7 4750u参数对比哪个好
  4. LeetCode(String)1768. Merge Strings Alternately
  5. 戴尔服务器t440安装系统,戴尔_PowerEdge T440_塔式服务器_网络存储服务器_服务器 | Dell 中国大陆...
  6. 爬虫大数据软件开发中程序员的伦理问题
  7. STM32低功耗模式与烟雾报警器触发信号电路设计
  8. 软件测试中一般术语的英文和缩写
  9. 锂电池Simulink模型电池建模二阶RC模型二阶戴维南模型 ,包括说明文档和技术指标
  10. wdr5620千兆版虚拟服务器,TPLINK WDR5620千兆版与斐讯K2P对比评测