Difference between revisions of "Component: Temperature (DS18B20) (Environmental)"

From Flowcode Help
Jump to navigationJump to search
Line 1: Line 1:
 
+
{| style="width:50%"
 
 
{| width="50%"
 
 
|-
 
|-
| width="20%" style="color: gray;" | Author
+
| width="20%" style="color:gray;" | Author
 
| MatrixTSL
 
| MatrixTSL
 
|-
 
|-
| width="20%" style="color: gray;" | Version
+
| width="20%" style="color:gray;" | Version
| 1.0 (Release)
+
| 1.0
 
|-
 
|-
| width="20%" style="color: gray;" | Category
+
| width="20%" style="color:gray;" | Category
 
| Environmental
 
| Environmental
 
|}
 
|}
  
  
 +
==Temperature (DS18B20) component==
 +
A rugged temperature sensor allowing one or more sensors to be addressed and read. Capable of reading temperatures from -55 to +125 degrees C. Requires a One Wire component to perform the bus operations.
  
==[[File:Component Icon 783b7689_0c71_44fb_9dde_673e4b7455ba.png|Image]] Temperature (DS18B20) component==
+
==Detailed description==
A rugged temperature sensor allowing one or more sensors to be addressed and read.
+
 
Capable of reading temperatures from -55 to +125 degrees C.
+
''No detailed description exists yet for this component''
Requires a One Wire component to perform the bus operations.
 
  
 
==Examples==
 
==Examples==
 +
 +
  
 
This example shows how to connect the DS18B20 component to the OneWire component and either select a specific device on the bus or scan through the devices on the bus collecting the temperature readings.
 
This example shows how to connect the DS18B20 component to the OneWire component and either select a specific device on the bus or scan through the devices on the bus collecting the temperature readings.
Line 30: Line 31:
 
==Downloadable macro reference==
 
==Downloadable macro reference==
  
===<span style="font-weight: normal;"><u><tt>SampleAllDevices</tt></u></span>===
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
Performs a temperature conversion on all compatible devices.
+
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SampleAllDevices'''
 +
|-
 +
| colspan="2" | Performs a temperature conversion on all compatible devices. The temperature can be read using the ReadTemperature macro. Brefore calling ReadTemperature you need to use one of the Address macros.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:]] -
 +
| width="90%" | WaitForCompletion
 +
|-
 +
| colspan="2" | 0=Dont Wait, 1=Block and Wait To Complete&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
The temperature can be read using the ReadTemperature macro.
 
  
Brefore calling ReadTemperature you need to use one of the Address macros.
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''AddressSpecificDevice'''
 +
|-
 +
| colspan="2" | Starts a temperature conversion on a specific device using a hex string identifier. SerialNumber parameter should be 12 characters and contain the 48-bit Serial.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
 +
| width="90%" | SerialNumber
 +
|-
 +
| colspan="2" | 48-bit Serial Number e.g. "32DF4A3C1901"&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
'''Parameters'''
 
  
:[[Variable Types|BOOL]] ''WaitForCompletion''
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
::0=Dont Wait, 1=Block and Wait To Complete
+
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetSerialString'''
 +
|-
 +
| colspan="2" | Gets the Serial String for the current addressed device.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
  
'''Return value'''
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''AddressNextDevice'''
 +
|-
 +
| colspan="2" | Scans for the next connected device with a matching family code. Goes through the device list generated by the ScanBus macro.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
:''This call does not return a value''
 
  
 +
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetTemperature'''
 +
|-
 +
| colspan="2" | Reads the temperature from the last sample on the selected device. The selected device is set using the AddressNext or AddressSpecific macros.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] -
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
===<span style="font-weight: normal;"><u><tt>AddressSpecificDevice</tt></u></span>===
 
Starts a temperature conversion on a specific device using a hex string identifier.
 
  
SerialNumber parameter should be 12 characters and contain the 48-bit Serial.
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SampleAddressedDevice'''
 +
|-
 +
| colspan="2" | Performs a temperature conversion on the current addressed device. Requires one of the Address component macros to be called. The temperature can be read using the ReadTemperature macro.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:]] -
 +
| width="90%" | WaitForCompletion
 +
|-
 +
| colspan="2" | 0=Dont Wait, 1=Block and Wait To Complete&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
'''Parameters'''
 
  
:[[Variable Types|<- STRING]] ''SerialNumber''
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
::48-bit Serial Number e.g. "32DF4A3C1901"
+
|-
::''This parameter may be returned back to the caller''
+
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
 +
|-
 +
| colspan="2" | Configures each matching sensor on the bus with the specified conversion bits.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
  
'''Return value'''
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
+
|-
:''This call does not return a value''
+
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WriteRegister'''
 
+
|-
===<span style="font-weight: normal;"><u><tt>AddressNextDevice</tt></u></span>===
+
| colspan="2" | A simple example showing a generic way to write a register using I2C.&nbsp;
Scans for the next connected device with a matching family code.
+
|-
 
+
|-
Goes through the device list generated by the ScanBus macro.
+
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
+
| width="90%" | Address
'''Parameters'''
+
|-
 
+
| colspan="2" | &nbsp;
:''This macro has no parameters''
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
+
| width="90%" | Data
'''Return value'''
+
|-
 
+
| colspan="2" | &nbsp;
:''This call does not return a value''
+
|-
 
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
+
| width="90%" style="border-top: 2px solid #000;" | ''Return''
===<span style="font-weight: normal;"><u><tt>GetSerialString</tt></u></span>===
+
|}
Gets the Serial String for the current addressed device.
 
 
 
'''Parameters'''
 
 
 
:''This macro has no parameters''
 
 
 
 
 
'''Return value'''
 
 
 
:[[Variable Types|STRING]]
 
 
 
 
 
===<span style="font-weight: normal;"><u><tt>GetTemperature</tt></u></span>===
 
Reads the temperature from the last sample on the selected device.
 
 
 
The selected device is set using the AddressNext or AddressSpecific macros.
 
 
 
'''Parameters'''
 
 
 
:''This macro has no parameters''
 
 
 
 
 
'''Return value'''
 
 
 
:[[Variable Types|FLOAT]]
 
 
 
 
 
===<span style="font-weight: normal;"><u><tt>SampleAddressedDevice</tt></u></span>===
 
Performs a temperature conversion on the current addressed device.
 
 
 
Requires one of the Address component macros to be called.
 
 
 
The temperature can be read using the ReadTemperature macro.
 
 
 
'''Parameters'''
 
 
 
:[[Variable Types|BOOL]] ''WaitForCompletion''
 
::0=Dont Wait, 1=Block and Wait To Complete
 
 
 
 
 
'''Return value'''
 
 
 
:''This call does not return a value''
 
 
 
 
 
===<span style="font-weight: normal;"><u><tt>Initialise</tt></u></span>===
 
Configures each matching sensor on the bus with the specified conversion bits.
 
 
 
'''Parameters'''
 
 
 
:''This macro has no parameters''
 
 
 
 
 
'''Return value'''
 
 
 
:''This call does not return a value''
 
  
  
 +
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
 +
|-
 +
| colspan="2" | &nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] -
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
==Simulation macro reference==
 
  
''This component does not contain any simulation macros''
 
  
  
 
==Property reference==
 
==Property reference==
<span style="font-weight: normal;"><u>One Wire Component</u></span>
 
  
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''OneWireComp''.
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
+
|-
Link to the one wire component to host the bus.
+
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
 
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''  
<span style="font-weight: normal;"><u>Alarm High</u></span>
+
|-
 
+
|-
This property is of type ''Unsigned integer'' and can be referenced with the variable name ''AlarmHigh''.
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
+
| width="90%" | One Wire Component
The high byte of the alarm range
+
|-
 
+
| colspan="2" | Link to the one wire component to host the bus.&nbsp;
<span style="font-weight: normal;"><u>Alarm Low</u></span>
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
This property is of type ''Unsigned integer'' and can be referenced with the variable name ''AlarmLow''.
+
| width="90%" | Alarm High
 
+
|-
The Low byte of the Alarm range
+
| colspan="2" | The high byte of the alarm range&nbsp;
 
+
|-
<span style="font-weight: normal;"><u>Conversion Bits</u></span>
+
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
+
| width="90%" | Alarm Low
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''ConversionBits''.
+
|-
 
+
| colspan="2" | The Low byte of the Alarm range&nbsp;
The number of bits used to perform a temperature sample.
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
Controls the conversion time and the resolution.
+
| width="90%" | Conversion Bits
 
+
|-
<span style="font-weight: normal;"><u>Max Conversion Time</u></span>
+
| colspan="2" | The number of bits used to perform a temperature sample. Controls the conversion time and the resolution.&nbsp;
 
+
|-
This property is of type ''Unsigned integer'' and can be referenced with the variable name ''MaxConvTime''.
+
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
+
| width="90%" | Max Conversion Time
The maximum amount of time in milliseconds it will take for a sample to complete.
+
|-
 
+
| colspan="2" | The maximum amount of time in milliseconds it will take for a sample to complete.&nbsp;
<span style="font-weight: normal;"><u>Temperature Resolution</u></span>
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
This property is of type ''Floating point'' and can be referenced with the variable name ''TempRes''.
+
| width="90%" | Temperature Resolution
 
+
|-
The maximum resolution steps that the temperature can be read in.
+
| colspan="2" | The maximum resolution steps that the temperature can be read in.&nbsp;
 
+
|-
<span style="font-weight: normal;"><u>Simulate Comms</u></span>
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
+
| width="90%" | Number Sensors
This property is of type ''True or false'' and can be referenced with the variable name ''SimComms''.
+
|-
 
+
| colspan="2" | Sens the number of sensors we can communicate with during simulation&nbsp;
No - We use the panel GUI to perform the simulation.
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
Yes - We use OneWire comms via an API to communicate with real hardware.
+
| width="90%" | Serial 0
 
+
|-
<span style="font-weight: normal;"><u>Number Sensors</u></span>
+
| colspan="2" | Serial number for simulated one wire device&nbsp;
 
+
|-
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''NumSensors''.
+
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
 
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Connections'''  
Sens the number of sensors we can communicate with during simulation
+
|-
 
+
|-
<span style="font-weight: normal;"><u>Serial 0</u></span>
+
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
 
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Simulations'''  
This property is of type ''Line of text'' and can be referenced with the variable name ''Serial0''.
+
|-
 
+
|-
Serial number for simulated one wire device
+
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 +
| width="90%" | Simulate Comms
 +
|-
 +
| colspan="2" | No - We use the panel GUI to perform the simulation. Yes - We use OneWire comms via an API to communicate with real hardware.&nbsp;
 +
|}

Revision as of 20:47, 16 November 2021

Author MatrixTSL
Version 1.0
Category Environmental


Temperature (DS18B20) component

A rugged temperature sensor allowing one or more sensors to be addressed and read. Capable of reading temperatures from -55 to +125 degrees C. Requires a One Wire component to perform the bus operations.

Detailed description

No detailed description exists yet for this component

Examples

This example shows how to connect the DS18B20 component to the OneWire component and either select a specific device on the bus or scan through the devices on the bus collecting the temperature readings.

The temperature and serial number is output using a UART connection as is onboard a Arduino or ESP32 device.

FC6 Icon.png Example DS18B20

Downloadable macro reference

Fc9-comp-macro.png SampleAllDevices
Performs a temperature conversion on all compatible devices. The temperature can be read using the ReadTemperature macro. Brefore calling ReadTemperature you need to use one of the Address macros. 
[[File:]] - WaitForCompletion
0=Dont Wait, 1=Block and Wait To Complete 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png AddressSpecificDevice
Starts a temperature conversion on a specific device using a hex string identifier. SerialNumber parameter should be 12 characters and contain the 48-bit Serial. 
Fc9-string-icon.png - STRING SerialNumber
48-bit Serial Number e.g. "32DF4A3C1901" 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png GetSerialString
Gets the Serial String for the current addressed device. 
Fc9-string-icon.png - STRING Return


Fc9-comp-macro.png AddressNextDevice
Scans for the next connected device with a matching family code. Goes through the device list generated by the ScanBus macro. 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png GetTemperature
Reads the temperature from the last sample on the selected device. The selected device is set using the AddressNext or AddressSpecific macros. 
[[File:]] - Return


Fc9-comp-macro.png SampleAddressedDevice
Performs a temperature conversion on the current addressed device. Requires one of the Address component macros to be called. The temperature can be read using the ReadTemperature macro. 
[[File:]] - WaitForCompletion
0=Dont Wait, 1=Block and Wait To Complete 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png Initialise
Configures each matching sensor on the bus with the specified conversion bits. 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png WriteRegister
A simple example showing a generic way to write a register using I2C. 
Fc9-u8-icon.png - BYTE Address
 
Fc9-u8-icon.png - BYTE Data
 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png Initialise
 
[[File:]] - Return



Property reference

Fc9-prop-icon.png Properties
Fc9-type-16-icon.png One Wire Component
Link to the one wire component to host the bus. 
Fc9-type-21-icon.png Alarm High
The high byte of the alarm range 
Fc9-type-21-icon.png Alarm Low
The Low byte of the Alarm range 
Fc9-type-16-icon.png Conversion Bits
The number of bits used to perform a temperature sample. Controls the conversion time and the resolution. 
Fc9-type-21-icon.png Max Conversion Time
The maximum amount of time in milliseconds it will take for a sample to complete. 
Fc9-type-15-icon.png Temperature Resolution
The maximum resolution steps that the temperature can be read in. 
Fc9-type-16-icon.png Number Sensors
Sens the number of sensors we can communicate with during simulation 
Fc9-type-10-icon.png Serial 0
Serial number for simulated one wire device 
Fc9-conn-icon.png Connections
Fc9-conn-icon.png Simulations
Fc9-type-7-icon.png Simulate Comms
No - We use the panel GUI to perform the simulation. Yes - We use OneWire comms via an API to communicate with real hardware.