当前位置:   article > 正文

PYQT编写一个电压数据采集界面_python 采集电压

python 采集电压

二话不说先上效果图:

 开发流程:

1、电压采集

 使用某宝上电压采集模块,该模块支持RS485连接上位机;

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

  1. # encoding: utf-8
  2. '''
  3. @author: halen.li
  4. @contact: 1056008549@qq.com
  5. @file: GET_V.py
  6. @time: 2021/6/26 0026 8:05
  7. @desc:
  8. '''
  9. import serial
  10. import serial.tools.list_ports
  11. import re
  12. from time import sleep
  13. import struct
  14. def GetCom():
  15. port_list=list(serial.tools.list_ports.comports())
  16. if len(port_list)==0:
  17. print("NO Find COM Port")
  18. else:
  19. for i in range(0,len(port_list)):
  20. matchport = re.match(r'(.*) - USB-SERIAL (.*?).*',str(port_list[i]),re.M|re.I)
  21. return (matchport.group(1))
  22. def OpenCom(portx):
  23. try:
  24. ser = serial.Serial(portx, 9600, timeout=1)
  25. if (ser.is_open):
  26. WritePort(ser)
  27. sleep(0.1)
  28. len_return_data = ser.inWaiting()
  29. if len_return_data:
  30. return_data = ser.read(len_return_data)
  31. str_return_data = str(return_data.hex())
  32. voltage_data = str_return_data[6:14]
  33. result = struct.unpack('!f', bytes.fromhex(voltage_data))[0]
  34. ser.close()
  35. return(round(result,3))
  36. ser.close()
  37. except Exception as e:
  38. print("Open com error:",e)
  39. def WritePort(ser):
  40. data = '01 03 00 00 00 02 C4 0B'
  41. send_data = bytes.fromhex(data)
  42. ser.write(send_data)
  43. def GetVoltage():
  44. portx = GetCom()
  45. Vol = []
  46. while True:
  47. Vol_v = OpenCom(portx)
  48. if Vol_v != None and Vol_v > 0.1:
  49. Vol.append(Vol_v)
  50. if len(Vol) == 5:
  51. break
  52. else:
  53. break
  54. return Vol

2、界面开发

使用QtDesigner设计界面

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/363296
推荐阅读
相关标签
  

闽ICP备14008679号