У меня есть датчик Apogee sq520 PAR, который подключается через USB и предназначен для работы на Windows и Mac (но не Linux) с сопутствующим графическим интерфейсом для просмотра данных. Я подключил датчик к Raspberry PI через порт USB (поскольку контакты ввода-вывода не показаны), и теперь мне нужно написать программу для Pi, чтобы прочитать его. После обращения в службу поддержки Apogee они предоставили мне исходный код (ниже). Однако, поскольку я новичок, мне сложно вносить изменения в код, который будет читаться Raspberry Pi. Нужна вся помощь и поддержка, которую я могу получить.
Примечания:
- Код использует библиотеку Pyserial.
- Код написан на Python 2.7 (согласно веб-сайту). - Я использую Python 3.
- При компиляции кода как есть я получаю множество синтаксических ошибок, независимо от того, компилируется ли он на Python 2 или 3.
- Датчик подключается через USB 5 В.
- Подробнее о датчике: https://www.apogeeinstruments.com/sq-52 ... escription
from serial import Serial
from time import sleep
import struct
GET_VOLT = '\x55!'
READ_CALIBRATION = '\x83!'
SET_CALIBRATION = '\x84%s%s!'
READ_SERIAL_NUM = '\x87!'
GET_LOGGING_COUNT = '\xf3!'
GET_LOGGED_ENTRY = '\xf2%s!'
ERASE_LOGGED_DATA = '\xf4!'
class Quantum(object):
def __init__(self):
"""Initializes class variables, and attempts to connect to device"""
self.quantum = None
self.offset = 0.0
self.multiplier = 0.0
self.connect_to_device()
def connect_to_device(self):
"""This function creates a Serial connection with the defined comport
and attempts to read the calibration values"""
port = 'COM1' # you'll have to check your device manager and put the actual com port here
self.quantum = Serial(port, 115200, timeout=0.5)
try:
self.quantum.write(READ_CALIBRATION)
multiplier = self.quantum.read(5)[1:]
offset = self.quantum.read(4)
self.multiplier = struct.unpack('
Подробнее здесь: https://stackoverflow.com/questions/688 ... ry-pi-4-th
Мобильная версия