Comment lire un multimètre et coller dans une cellule de feuille de calcul Excel sur appui de raccourci clavier en utilisant Python

Le script Python suivant utilise PyVISA / LabInstruments pour lire un multimètre Rigol DM3058(E) et coller automatiquement la lecture de tension dans une feuille de calcul ouverte sur appui de Shift+Alt+Q.

D’abord, clonez LabInstruments dans le répertoire courant en utilisant

clone_labinstruments.sh
git clone https://github.com/ulikoehler/LabInstruments.git

Maintenant installez les exigences du requirements.txt suivant

requirements.txt
system_hotkey310
pyperclip
pyvisa
pyvisa-py

et exécutez le script :

read_multimeter_paste_excel.py
#!/usr/bin/env python3
"""
Ce script permet la lecture rapide d'un multimètre, collant automatiquement la lecture
dans la feuille de calcul courante par ex. excel et appuyant sur "Entrée" pour avancer à la cellule suivante.

Appuyez sur Shift+Alt+Q pour lire le multimètre et coller la lecture dans la cellule courante.
"""
import subprocess
import pyautogui
import time
import re
import pyperclip
import sexpdata
import pyvisa
from LabInstruments.DM3058 import DM3058

import locale
locale.setlocale(locale.LC_NUMERIC, f"{locale.getdefaultlocale()[0]}.utf-8")

rm = pyvisa.ResourceManager()
rm.list_resources()
inst = rm.open_resource('USB0::6833::2500::DM3R245003970::0::INSTR')
multimeter = DM3058(inst)
multimeter.set_speed("S")
multimeter.mode_dc_voltage()


def run():
    voltage = multimeter.read_voltage()

    locale_formatted_voltage = locale.format_string("%.5f", voltage, grouping=False)
    print("Voltage: ", locale_formatted_voltage)

    # Copie la tension formatée localement dans le presse-papiers
    pyperclip.copy(locale_formatted_voltage)
    # Colle dans la cellule
    pyautogui.hotkey('ctrl', 'v')
    # Attend excel
    time.sleep(0.1)
    # Appuie sur la touche Entrée pour sauvegarder
    pyautogui.press('enter')

# Enregistre les raccourcis clavier
from system_hotkey import SystemHotkey
hk = SystemHotkey()
hk.register(('shift', 'alt', 'q'), callback=lambda x: run())

# Attend la sortie
while True:
    time.sleep(10)

Consultez les articles similaires par catégorie : Electronics Python