Ich habe einen Apogee sq520 PAR-Sensor, der über USB angeschlossen wird und für den Betrieb unter Windows und Mac (aber nicht Linux) mit einer dazugehörigen GUI zum Anzeigen der Daten konzipiert ist. Ich habe den Sensor über den USB-Anschluss mit dem Raspberry PI verbunden (da die E/A-Pins nicht im Bild sind) und muss jetzt ein Programm schreiben, damit der Pi ihn lesen kann. Nachdem ich mich an das Apogee-Supportteam gewandt hatte, teilten sie mir den Quellcode mit (unten). Da ich jedoch ein absoluter Anfänger bin, fällt es mir schwer, den Code so zu ändern, dass er vom Raspberry Pi gelesen werden kann. Brauche jede Hilfe und Unterstützung, die ich bekommen kann.
Hinweise:
- Code nutzt Pyserial-Bibliothek
- Code ist auf Python 2.7 geschrieben (laut Website). - Ich verwende Python 3
- Wenn ich den Code so kompiliere, wie er ist, erhalte ich viele Syntaxfehler, unabhängig davon, ob ich in Python 2 oder 3 kompiliere
- Sensor wird über 5-V-USB angeschlossen
- Weitere Informationen zum Sensor: https://www.apogeeinstruments.com/sq-52 ... escription
Code: Select all
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('
Mobile version