实现并口数据的接收功能、以及绘图工具进行数据显示

优采云 发布时间: 2020-08-11 12:58

  实现并口数据的接收功能、以及绘图工具进行数据显示

  前言:这个小项目是自己的毕设,做的比较简单,之前记录是pyqt的环境配置,说实话,今天忽然听到自己也都忘得差不多了,看来还是要好好记录一下自己的知识。

  这个项目分为了两个部份,其中下位机的数据采集是使用STM32L0系列的开发板作为了主控器,温度采集模块是DB18B20,还有一个GSM模块,用于发送邮件,比较简单的项目。上位机部份也就是使用pyserial模块来进行数据的接收,使用matplotlib模块来进行绘图。

  下位机部份的代码还在,但是用于时间关系,开发板等东西已然送人了,所以这篇博客主要就讲一下上位机的程序开发,但是为了和上一篇博客中实现的疗效一样,我去找到了一个软件模拟下位机向PC端发送数据。

  1.模拟软件向PC端发送数据–VSPD软件

  找了一篇博客,收录VSPD使用教程,放上链接如下:

  2.串口接收数据

  今天打算把之前的代码用来跑一下,但是发觉出了一些小问题,这里也记载一下,被自己蠢哭的问题。

  问题1:

  pyserial模块的安装问题,换了环境,但是使用pip安装,以及在pycharm中进行安装,都没有成功,下载的包都是空的文件夹,其截图如下:

  

  解决办法,去官网下载压缩包,然后解压到你的类库的Lib/site-packages目录下,然后运行命令进行安装;

  #files

  

  命令行安装

  

  综上问题1解决

  问题2(自己犯低级错误):

  

  a.串口初始化部份

  class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):

def __init__(self, parent=None):

super(MainWindow, self).__init__(parent)

self.setupUi(self)

### 1. 画图

self.my_graph_1 = MyMplCanvas()

self.left1.addWidget(self.my_graph_1)

self.t = [] ### 储存计数

self.m = [] ### 储存接收的数据

self.i = 0 ### 计数值

### 2. 串口部分

# 串口初始化为None

self.ser = None

# 设置窗口名称

self.setWindowTitle("Temperature--Serial")

# 刷新一下串口的列表

# self.refresh()

# 波特率

self.comboBox_2.addItem('115200')

self.comboBox_2.addItem('57600')

self.comboBox_2.addItem('9600')

self.comboBox_2.addItem('4800')

self.comboBox_2.addItem('2400')

self.comboBox_2.addItem('1200')

# 实例化一个定时器

self.timer = QTimer(self)

# 定时器调用读取串口接收数据

self.timer.timeout.connect(self.recv)

# 打开串口按钮

self.pushButton.clicked.connect(self.open)

# 关闭串口

self.pushButton_2.clicked.connect(self.close)

# 波特率修改

self.comboBox_2.activated.connect(self.baud_modify)

# 串口号修改

self.comboBox.activated.connect(self.com_modify)

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849

  b.数据接收及处理

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线