实现并口数据的接收功能、以及绘图工具进行数据显示
优采云 发布时间: 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.数据接收及处理