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.

DS18B20 Class

Module: ds18b20

This driver supports, and was tested with, a DS18B20 with external power.
Multiple DS18B20 devices can be connected to this bus. This module will identify all such devices connected, and allow you to access them using an index starting at 0.
Parasitic power is not currently supported due to the very tight 10us limit on switching a GPIO properly to supply power during certain operations. For this reason, you should use external power for your sensors.
Setting the alarm values (Tl, Th) is also not supported, since this is only useful when doing a 1-wire device search looking for devices in an alarm state, a capability not yet supported in MRAA. In reality, this is trivial to handle yourself in your application.
This device requires the use of a TTL level UART (specifically through the UartOW MRAA context class) to provide access to a Dallas 1-wire bus. It is important to realize that the UART is only being used to provide an interface to devices on a Dallas 1-wire compliant bus.
A circuit like the following should be used for the UART interface (ASCII schematic - best viewed in a fixed monospace font):
-| U| (D1) A| TX |< b + R| | T| RX---- o----- o >to 1-wire data bus -|
>1-wire--- o----- o[ DS18B20 ] o(-) | GND
D1 = 1N4148 R1 = 4.7K
The cathode of D1 is connected to the UART TX.

Methods

DS18B20

(
  • uart
)
Number

DS18B20 object constructor
This method will search the 1-wire bus and store information on each device detected on the bus. If no devices are found, an exception is thrown. Once this function completes successfully, you can use devicesFound() to determine how many devices were detected.

Parameters:

  • uart Number

    Default UART to use (0 or 1). Default is 0.

Returns:

Number:

init

()

update

(
  • index
)

Update our stored temperature for a device. This method must be called prior to getTemperature() .

Parameters:

  • index Number

    The device index to access (starts at 0). Specify -1 to query all detected devices. Default: -1

getTemperature

(
  • index
  • fahrenheit
)
Number

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

Parameters:

  • index Number

    The device index to access (starts at 0).

  • 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

setResolution

(
  • index
  • res
)

Set the device resolution for a device. These devices support 9, 10, 11, and 12 bits of resolution, with the default from the factory at 12 bits.

Parameters:

  • index Number

    The device index to access (starts at 0).

  • res DS18B20_RESOLUTIONS_T

    One of the RESOLUTIONS_T values

copyScratchPad

(
  • index
)

Copy the device's scratchpad memory to the EEPROM. This includes the configuration byte (resolution).

Parameters:

  • index Number

    The device index to access (starts at 0).

recallEEPROM

(
  • index
)

Copy the device's EEPROM memory to the scratchpad. This method will return when the copy completes. This operation is performed by the device automatically on power up, so it is rarely needed.

Parameters:

  • index Number

    The device index to access (starts at 0).

devicesFound

() Number

This method will return the number of DS18B20 devices that were found on the bus by init() .

Returns:

Number:

number of DS18B20 's that were found on the bus

getId

(
  • index
)
String

Return an 8 byte string representing the unique device ID (1-wire romcode) for a given device index.

Parameters:

  • index Number

    The device index to access (starts at 0).

Returns:

String:

8 byte string representing the 1-wire device's unique romcode.