二话不说先上效果图:

开发流程:
1、电压采集
使用某宝上电压采集模块,该模块支持RS485连接上位机;

根据采集模块Moubus通讯规则,使用python 编写获取电压值,上代码

# encoding: utf-8
'''
@author: halen.li
@contact: 1056008549@qq.com
@file: GET_V.py
@time: 2021/6/26 0026 8:05
@desc:
'''
import serial
import serial.tools.list_ports
import re
from time import sleep
import struct
def GetCom():
port_list=list(serial.tools.list_ports.comports())
if len(port_list)==0:
print("NO Find COM Port")
else:
for i in range(0,len(port_list)):
matchport = re.match(r'(.*) - USB-SERIAL (.*?).*',str(port_list[i]),re.M|re.I)
return (matchport.group(1))
def OpenCom(portx):
try:
ser = serial.Serial(portx, 9600, timeout=1)
if (ser.is_open):
WritePort(ser)
sleep(0.1)
len_return_data = ser.inWaiting()
if len_return_data:
return_data = ser.read(len_return_data)
str_return_data = str(return_data.hex())
voltage_data = str_return_data[6:14]
result = struct.unpack('!f', bytes.fromhex(voltage_data))[0]
ser.close()
return(round(result,3))
ser.close()
except Exception as e:
print("Open com error:",e)
def WritePort(ser):
data = '01 03 00 00 00 02 C4 0B'
send_data = bytes.fromhex(data)
ser.write(send_data)
def GetVoltage():
portx = GetCom()
Vol = []
while True:
Vol_v = OpenCom(portx)
if Vol_v != None and Vol_v > 0.1:
Vol.append(Vol_v)
if len(Vol) == 5:
break
else:
break
return Vol
2、界面开发
使用QtDesigner设计界面

ui转py文件
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'Vol

本文介绍了一种使用PYQT5创建电压数据采集界面的方法,通过RS485连接采集模块并遵循Modbus通讯规则获取电压值。在QtDesigner中设计UI界面,然后转换为py文件,实现界面逻辑处理,包括实时界面刷新和按钮事件绑定。作为初学者,作者克服困难,成功编写出可用程序。
6329

被折叠的 条评论
为什么被折叠?



