modbus-configuretools-xzf8971

A package to read/write registers on a temperature sensor with python.


Keywords
modbus, python, rs485-comunication, sensor, temperature
License
MIT
Install
pip install modbus-configuretools-xzf8971==1.1.0

Documentation

temperature_sensor_reader

This is a temperature sensor package designed for modbus. Implemented in pymodbus only. PyPI website: https://pypi.org/project/temperature-sensor-reader-xzf8971/

Install

from pypi:

pip install temperature-sensor-reader-xzf8971  

from github:

pip install git+https://github.com/xzf89718/temperature_sensor_reader

Jiandarenke modbus RS485 as example

Before run scripts

Check the COM and chmod

chmod 666 \dev\ttyUSBx

Import modules

from modbus_configuretools import temperature_sensor.RS485_Jiandarenke as RS485_JDRK  
from modbus_configuretools import temperature_sensor.JDRKAddressConfig as Config

Configure parameters for Jiandarenke RS485 sensor

It's OK to set None for unkown value

# Modify these config values 
# Please configure these value in temperature_sensor before read or write values  
# SLAVEID must be specified. If SLAVEID is none, set to 1  
# ADDRESS_HUMIDITY = 0x0000  
# ADDRESS_TEMPERATURE_DEW_POINT = 0x0001  
# ADDRESS_TEMPERATURE = 0x0002  
# ADDRESS_TEMPERATURE_CALI = 0x0050  
# ADDRESS_HUMUDITY_CALI = 0x0051  
# ADDRESS_SLAVEID = 0x07D0  
# ADDRESS_BAUDRATE = 0x07D1  
# TEMPERATURE_CALI = 164  
# HUMIDITY_CALI = 7  
# SLAVEID = 1
# BAUDRATE = 1
myconfig = Config(ADDRESS_HUMIDITY, ADDRESS_TEMPERATURE_DEW_POINT, ADDRESS_TEMPERATURE, ADDRESS_SLAVEID, ADDRESS_BAUDRATE, ADDRESS_TEMPERATURE_CALI, ADDRESS_HUMUDITY_CALI, TEMPERATURE_CALI, HUMIDITY_CALI, SLAVEID, BAUDRATE)

Calibration of sensor. Not necessary calibration every time

sensor.CalibrationJiandarenke(myconfig)  

Set slaveID and baudrate

Please make sure only 1 sensor connect to the modbus bus

sensor.WriteSlaveIDAndBaudrate(myconfig)

Init and read measured values from sensor

# Create a wrapper for JDRK sensor  
sensor = RS485_JDRK(port="/dev/ttyUSB0")  
# Init and connect client
sensor.InitClient()  
# Read slaveID and baudrate  
slaveID, baudrate = sensor.ReadSalveIDAndBaudrate(myconfig)  
# Read temperature, dew point, humidity in one request  
# Only correct for specified sensor
temperature, dew_point_temperature, humidity = sensor.ReadTemperatureAndHumidity(myconfig)  
# Read temperature only  
temperature = sensor.ReadTemperature(myconfig)  
# Read dew point temperature  
dew_point_temperature = sensor.ReadTemperatureDewPoint(myconfig)  
# Read humidity only  
humidity = sensor.ReadTemperature(myconfig)  

Close the sensor

sensor.close()