Added measurement script for multiple devices
This commit is contained in:
parent
a5c9eb180d
commit
d387caecad
@ -6,8 +6,8 @@ import serial
|
||||
|
||||
|
||||
print('---- Looking for device ----')
|
||||
slave_address_list = range(1,256)
|
||||
baud_list = [4800,115200]
|
||||
slave_address_list = range(200,256)
|
||||
baud_list = [19200,115200]
|
||||
CO2_addr = 9
|
||||
total_devices = 0
|
||||
for slave_address in slave_address_list:
|
||||
|
42
tests/measure_multiple_devices.py
Executable file
42
tests/measure_multiple_devices.py
Executable file
@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env python3
|
||||
from time import sleep, time
|
||||
from sys import exit
|
||||
import minimalmodbus
|
||||
import serial
|
||||
|
||||
slave_address_list = [ 252, 253 ]
|
||||
|
||||
# read
|
||||
while True:
|
||||
for slave_address in slave_address_list:
|
||||
# initialize modbus
|
||||
instrument = minimalmodbus.Instrument('/dev/rs485', slave_address, close_port_after_each_call=True) # port name, slave address (in decimal)
|
||||
instrument.serial.baudrate = 115200
|
||||
instrument.serial.bytesize = 8
|
||||
instrument.serial.parity = serial.PARITY_EVEN
|
||||
instrument.serial.stopbits = 1
|
||||
instrument.serial.timeout = 0.05 # seconds
|
||||
instrument.mode = minimalmodbus.MODE_RTU # rtu or ascii mode
|
||||
instrument.clear_buffers_before_each_transaction = True
|
||||
|
||||
try:
|
||||
CO2_addr = 9
|
||||
CO2 = instrument.read_register(CO2_addr, 1, functioncode=4) * 10
|
||||
T_SHT4x_addr = 10
|
||||
T_SHT4x = instrument.read_register(T_SHT4x_addr, 1, functioncode=4)
|
||||
RH_SHT4x_addr = 11
|
||||
RH_SHT4x = instrument.read_register(RH_SHT4x_addr, 1, functioncode=4) * 10
|
||||
T_SCD4x_addr = 12
|
||||
T_SCD4x = instrument.read_register(T_SCD4x_addr, 1, functioncode=4)
|
||||
RH_SCD4x_addr = 13
|
||||
RH_SCD4x = instrument.read_register(RH_SCD4x_addr, 1, functioncode=4) * 10
|
||||
T_SHT4x_signed_addr = 14
|
||||
T_SHT4x_signed = instrument.read_register(T_SHT4x_signed_addr, 1, functioncode=4, signed=True)
|
||||
T_SCD4x_signed_addr = 15
|
||||
T_SCD4x_signed = instrument.read_register(T_SCD4x_signed_addr, 1, functioncode=4, signed=True)
|
||||
with open(f'measurement_device_{slave_address}.csv', 'a+') as f:
|
||||
f.write(f'{time():.1f} {CO2} {T_SHT4x} {RH_SHT4x} {T_SCD4x} {RH_SCD4x} {T_SHT4x_signed} {T_SCD4x_signed}\n')
|
||||
except minimalmodbus.NoResponseError:
|
||||
print(f'Read error for device {slave_address} at {time()}')
|
||||
continue
|
||||
sleep(10)
|
Loading…
Reference in New Issue
Block a user