UPM

The UPM API is a high level sensor library for IoT devices using MRAA. See examples here. Back to index page.
SparkFun sensor images provided under CC BY-NC-SA-3.0.

HWXPXX Class

Module: hwxpxx

This module implements support for the Veris HWXPHTX Hardware Protocol Humidity and Temperature Sensor family. It uses MODBUS over an RS485 interface. You must have libmodbus v3.1.2 (or greater) installed to compile and use this driver.
This module was developed using libmodbus 3.1.2, and the HWXPHTX. This sensor supports humidity, and optionally, temperature, slider switch, and override switch reporting. The HWXPHTX used to develop this driver did not include the optional slider or override switches, however support for them is provided.
It was developed using an RS232->RS485 inteface. You cannot use the built in MCU TTL UART pins for accessing this device b you must use a full serial RS232->RS485 interface connected via USB.

Methods

HWXPXX

(
  • device
  • address
  • baud
  • bits
  • parity
  • stopBits
)
Number

HWXPXX constructor

Parameters:

  • device String

    Path to the serial device

  • address Number

    The MODBUS slave address

  • baud Number

    The baudrate of the device. Default: 19200

  • bits Number

    The number of bits per byte. Default: 8

  • parity String

    The parity of the connection, 'N' for None, 'E' for Even, 'O' for Odd. Default: 'N'

  • stopBits Number

    The number of stop bits. Default: 2

Returns:

Number:

update

()

Read current values from the sensor and update internal stored values. This method must be called prior to querying any values, such as temperature, humidity, override switch status, or slider switch status.

getTemperature

(
  • fahrenheit
)
Number

Get the current temperature. update() must have been called prior to calling this method. If this option was not installed, this method will always return 0C/0F, depending on the scale the device is operating in natively.

Parameters:

  • fahrenheit Boolean

    true to return the temperature in degrees fahrenheit, false to return the temperature in degrees celsius. The default is false (degrees Celsius).

Returns:

Number:

The last temperature reading in Celsius or Fahrenheit

getHumidity

() Number

Get the current relative humidity. update() must have been called prior to calling this method.

Returns:

Number:

The last humidity reading

getSlider

() Number

Get the current slider switch position. update() must have been called prior to calling this method. This returns a value between 0-100 corresponding to the position of the slider switch. If this option is not installed, this method will always return 0.

Returns:

Number:

The last slider switch reading

getOverrideSwitchStatus

() Boolean

Get the current override switch status. update() must have been called prior to calling this method. This returns true if the override switch was pressed. Use clearOverrideSwitch() to reset this value to false. If this option is not installed, then this method will always return false. It is not possible to programatically set this value to true - that can only be done by physically pressing the override switch.

Returns:

Boolean:

The last overide switch status reading

clearOverrideSwitch

()

Clear the override switch status (set it to false). If this option is not installed, then this method will have no effect (the overide switch status will always be false).

getTemperatureOffset

() Number

Return the current temperature offset stored on the device. This is a value between -50 and +50, specified in tenths of a degree in whatever scale (Celsius or Fahrenheit) is in use. This offset is applied to the returned temperature reading by the device.

Returns:

Number:

The current temperature offset in tenths of a degree

getHumidityOffset

() Number

Return the current humidity offset stored on the device. This is a value between -100 and +100, specified in tenths of a percent. This offset is applied to the returned humidity reading by the device.

Returns:

Number:

The current humidity offset in tenths of a percent

setTemperatureOffset

(
  • offset
)

Set the stored temperature offset on the device. This is a value between -50 and +50, specified in tenths of a degree in what ever scale (Celsius or Fahrenheit) is in use. This offset is applied to the returned temperature reading by the device.

Parameters:

  • offset Number

    Offset in tenths of a degree with a range of -50 to +50

setHumidityOffset

(
  • offset
)

Set the stored humidity offset on the device. This is a value between -100 and +100, specified in tenths of a percent. This offset is applied to the returned humidity reading by the device.

Parameters:

  • offset Number

    Offset in tenths of a percent with a range of -100 to +100

setTemperatureScale

(
  • fahrenheit
)

Set the temperature scale used by the device. This driver detects this setting automatically and adjusts itself accordingly, so this is generally never needed. It is used to set the native reporting scale of the temperature either in degrees Celsius or Fahrenheit. Its setting will not affect the operation of getTemperature() .

Parameters:

  • fahrenheit Boolean

    true to set Fahrenheit, false to set Celsius

getSlaveID

() String

Return a string corresponding the the device's MODBUS slave ID. This includes information such as the manufacturer, device model number and serial number.

Returns:

String:

string represnting the MODBUS slave ID

setSlaveAddress

(
  • addr
)

Set a new MODBUS slave address. This is useful if you have multiple HWXPXX devices on a single bus. When this method is called, the current temperature scale is re-read so that further update() calls can work correctly.

Parameters:

  • addr Number

    The new slave address to set

setDebug

(
  • enable
)

Enable or disable debugging output. This primarily enables and disables libmodbus debugging output.

Parameters:

  • enable Boolean

    true to enable debugging, false otherwise

Properties

INPUT_HUMIDITY

Enum INPUT_REGS_T

INPUT_TEMPERATURE

Enum INPUT_REGS_T

INPUT_SLIDER

Enum INPUT_REGS_T

COIL_TEMP_SCALE

Enum COIL_REGS_T

COIL_OVERRIDE

Enum COIL_REGS_T

HOLDING_TEMP_OFFSET

Enum HOLDING_REGS_T

HOLDING_HUM_OFFSET

Enum HOLDING_REGS_T