iaq_sensor_wired/tests/minimalmodbus_test.py
2021-09-09 18:24:24 +02:00

35 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python3
from time import sleep
import minimalmodbus
import serial
slave_address = 0x11
instrument = minimalmodbus.Instrument('/dev/ttyUSB0', 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
# read
CO2 = instrument.read_register(9, 1, functioncode=4) * 10
sleep(0.1)
T_SHT4x = instrument.read_register(10, 1, functioncode=4)
sleep(0.1)
RH_SHT4x = instrument.read_register(11, 1, functioncode=4) * 10
sleep(0.1)
T_SCD4x = instrument.read_register(12, 1, functioncode=4)
sleep(0.1)
RH_SCD4x = instrument.read_register(13, 1, functioncode=4) * 10
sleep(0.1)
T_SHT4x_signed = instrument.read_register(14, 1, functioncode=4, signed=True)
sleep(0.1)
T_SCD4x_signed = instrument.read_register(15, 1, functioncode=4, signed=True)
print(f'CO2:\t\t{CO2} ppm\nT_SHT4x:\t{T_SHT4x} deg C\nRH_SHT4x:\t{RH_SHT4x} %')
print(f'T_SCD4x:\t{T_SCD4x} deg C\nRH_SCD4x:\t{RH_SCD4x} %')
print(f'T_SHT4x_signed:\t{T_SHT4x_signed} deg C')
print(f'T_SCD4x_signed:\t{T_SCD4x_signed} deg C')